运维开发网

万象:百度的海量多媒体信息处理系统

运维开发网 https://www.qedev.com 2021-04-17 09:16 出处:51CTO 作者:百度Geek说
与传统网页不同,富媒体数据的理解与处理相比于此前的网页会更难、更具有挑战。万象系统是百度搜索为了解决富媒体信息海量处理问题而设计和开发的系统,文中对万象系统进行了一次全面的总览介绍,万象系统目前在百度已经承接了搜索所需要的所有图片、视频数据的加工和处理,管理着超大量级的图片和视频实体特征数据,每天支持数十亿的处理吞吐,为百度产品的效果提升奠定了基础。

万象:百度的海量多媒体信息处理系统

导读: 与传统网页不同,富媒体数据的理解与处理相比于此前的网页会更难、更具有挑战。万象系统是百度搜索为了解决富媒体信息海量处理问题而设计和开发的系统,文中对万象系统进行了一次全面的总览介绍,万象系统目前在百度已经承接了搜索所需要的所有图片、视频数据的加工和处理,管理着超大量级的图片和视频实体特征数据,每天支持数十亿的处理吞吐,为百度产品的效果提升奠定了基础。

一、背景

互联网信息经历过近几年的发展,已经从早期单纯的网页形式发展成如今的图文视频并茂的时期。我们现在看到的信息呈现方式不仅仅是枯燥的全版文字网页,而是包含大量图片、视频信息的内容载体。从传统文字传递信息方式转换成图片和视频(包括语音)是人类信息传递通道的一次升级,也是更贴近自然交流过程的一个发展阶段。国家广电总局和网络视听节目管理司共同编著的《中国视听新媒体发展报告(2017)》显示:

“2016年,我国在线视频市场规模达到609亿元,同比增长56%。截至2016年8月,网络自制视听节目播放量同比增长180%,流量占比从2015年的8%增长到14%。”

——《中国视听新媒体发展报告(2017)》

从信息量来看,图片承载的信息量要多于文字,视频承载的比图片更多。同一个内容,可以用文字、图片、甚至视频方式呈现,即使是同一个图片或者视频,不同人从中获取得到的信息量也不完全一致。随着手机的普及以及手机应用APP的繁荣,内容呈现不仅仅局限在网页,而更多地呈现于体验更好的native app,它们提供了更友好的操作和不一样的信息体验。这些给传统搜索引擎带来很多新的挑战。

二、搜索引擎面临的新挑战

传统搜索引擎承接了用户查询获取信息的入口,在html时代内容呈现方式都有固定的规范以及统一的载体(浏览器),搜索引擎可以方便地对全网信息进行内容提炼、加工和检索,找出与用户查询最相关的结果。

然而,这种方式如今正在悄悄发生转变:

(1)以内容为核心的竞争:网页不再是信息的唯一载体

万象:百度的海量多媒体信息处理系统

△内容的多种呈现方式

同一内容可以新闻稿方式出现在PC网页,也可以图文并茂地出现在手机传媒的WISE应用中,还可以视频方式呈现在各种垂类APP中。随着头部应用的出现,内容开放的壁垒开始形成。PC时代网页都是开放形式对外输出,如今头部应用可以把内容尽收在自己的应用内部。

特别是到了富媒体时代,手机的普及以及图片视频编辑门槛的降低,越来越多的优质内容以图片和视频方式呈现,给用户的体验越来越好。西瓜,抖音,快手等爆款式的视频APP出现,也反映了用户对富媒体资源的认可和追捧。而对搜索引擎而言,越来越多的优质内容将以跨媒介的富媒体形式出现。

(2)搜索引擎作为分发入口的地位受到挑战

伴随手机APP生态的兴起,用户消费信息不再完全通过搜索引擎,而同时通过各种垂类APP,来消费各种类型的内容信息。由于存在多种创造入口,内容在不同平台都会被不同人群进行消费而产出不同的反馈信号。由于反馈信号来源于多种不同手机应用平台而不完全体现在传统的PC网页上,这对传统搜索引擎Ranking机制带来致命的影响。

传统搜索引擎在作为用户获取信息的主要入口的时候,可以获取到用户对每个内容消费的各种特征反馈信号:点击量,浏览时长,播放量,点赞量,评论等等。而由于内容多样性呈现方式以及手机应用壁垒割离,导致搜索引擎获取的反馈信号并不能完全代表用户的意图,从而引起相关性排序的偏差。 

万象:百度的海量多媒体信息处理系统

△反馈信号分散在多端

由于用户可以从多个应用端接入并消费内容和信息,其在不同端的行为反馈需要被搜索引擎所收集用于精准排序。

这对于搜索引擎抓取系统提出了新的挑战,即如何获取到这些分散到各个不同载体的用户行为数据。抓取系统需要超越此前仅抓取网页的限制,扩展到抓取图片、网页,甚至突破手机应用上的页面获取到经过用户授权的内容和信号。

进一步,在搜索引擎内部进行信息处理过程中,将这些信号和特征以内容为粒度进行聚合和传递,以让相同内容的其他载体在排序过程中可以用到这些信号。

例如,谢豪《野蜂飞舞》在不同的视频中都有不同的用户反馈信号,但实质上都是对同一个内容的用户反馈信号。传统而言,这些视频都来自不同的播放页和站点,用户行为反馈信号会被认为是不同网页的所属,而这种基于站点而不是内容的检索方式在新一代基于富媒体内容的搜索引擎系统设计中将发生改变。

(3)富媒体信息的消费方式呈现多样化

传统网页搜索下,用户输入关键词来检索信息,搜索引擎返回与用户搜索需求最相关的网页;而在富媒体信息下,用户不仅可以通过关键词来检索信息,还可以输入图片来检索信息,甚至通过内容语义来检索信息。目前,常见的产品形态是:

  • 以文(关键词)搜图
  • 以文(关键词)搜视频
  • 以图搜图:搜索相同或者相似图片,如拍照查询相同或者相似的图片
  • 以图搜视频:搜索包含该图的视频,如拍一张电影截图查找是来自哪部电影
  • 以文(内容语义)搜图或视频:以文字表示的语义内容检索相关图片或者视频,如查找《三生三世》中包含刘亦菲接吻的所有片段

这些输入多样化对搜索引擎的设计带了新的要求:不仅仅是传统基于item的倒排拉链,还要考虑给予语义向量的倒排等。

三、富媒体信息的处理与检索

富媒体信息处理与检索,是指对包括视频、图片在内的多媒体资源进行收录、筛选、建立索引,并提供用户以文本、图片等输入方式进行信息检索的能力。下图给出了百度搜索引擎对富媒体信息的处理流程。

万象:百度的海量多媒体信息处理系统

△富媒体信息的处理与检索

首先会在离线对图片、视频等富媒体数据进行加工和处理,识别出其中的内容与语义,然后转变成系统能够识别和处理的属性(如文本标签,分类标签等),质量信息(如站点或者作者权威性,点赞量/播放量等,黄反信息等等),或者光学属性(如清晰度)。这些基础特征信息构成了对一个富媒体数据的全部表述。

不同富媒体数据之间还会有相同/相似,包含等关系属性。如网上很多的剪辑视频,可能来自某部电影;或者两个一样的视频文件,只是来自不同播放站点带了不同的水印或者封面而已。这种关系,在我们系统中称之为实体粒度的聚合特征(相对于上一段所提到的基础特征)。当两个实体被判断为相同的时候,相关的特征信息可以合并汇聚,供两个实体同时使用。如播放量和点赞量会累加,缺失的特征标签会被另外一个实体补充等等,从而实现内容级别的汇聚。

四、万象系统

在百度搜索引擎中,对视频/图片等多媒体数据进行处理的系统称为:万象(取自包罗万象,万象更新的意思),是对图片/视频等多媒体内容的加工和处理,提供规模化的收录、加工、筛选、建立索引的能力,为用户以文本、图片等输入方式进行信息检索提供强有力的数据支持。

万象:百度的海量多媒体信息处理系统

△万象架构图

整个万象系统承载了百度搜索引擎主要的图片与视频数据处理,涉及海量的图片、视频(横版视频与竖版视频);每天都在计算和处理这些庞大的数据,支持图片搜索、搜索结果配图、视频搜索、推荐等等所有百度内部涉及富媒体的主要产品线。

规模化与时效性是整个系统处理富媒体信息的两个最核心的设计指标。

  • 规模化:指能大规模处理视频、图片等多媒体数据;同时能够调动和管理涉及几十万core算力的异构资源(CPU,GPU,FPGA等等);
  • 时效性:指能够以满足产品迭代要求和周期的方式完成数据产出,包括各种特征和属性生产、数据筛选、索引生产等等,以确保产品效果时效性。

除了底层的基础服务外,整个万象系统主要包括:

(1)千仞系统:负责分析单个实体(图片/视频)基础特征,如单一图片的人物/场景/OCR/清晰度等等分析;(2)初元系统:负责分析实体与实体之间关系(相同,相似,包含,类聚等等),如是否是剪辑视频/是否同一事件的图集等;(3)丹鼎系统:负责管理特征,以及按照内容实体粒度聚合和组织特征数据;(4)其他辅助系统:负责裁剪、转码、编辑等。

1. 千仞系统(Blades)

千仞系统分析单一实体产出的特征数据,我们称为基础特征数据。分析和理解图片/视频是极其复杂和高成本的过程,在整个千仞系统中需要调动近几十万Core的弹性CPU资源以及GPU/FPGA等专用计算资源。

在基础特征分析中,有些特征只需要成本低廉的CPU就能分析处理,如图片长宽;而有些则成本高昂,需要GPU等高级硬件且耗时很长才能产出,如OCR/分类/清晰度等等。成本高的特征,在千仞中会尽量减少重复计算,提高生产率。

万象:百度的海量多媒体信息处理系统

△千仞系统

在千仞系统中,首要问题是如何用有限的资源支持如此庞大的计算需求。在千仞系统中,所有特征计算都会转换成DAG执行,除了支持传统的批量特征计算外,流式计算也是最重要部分之一。DAG执行引擎能有效地对各种特征关联关系进行管理,合并重复计算单元,同时结合数据热点调度,从而提高计算的性能。同时还包括重型算子的计算优化,例如OCR以及视频指纹计算,如何突破单卡吞吐屏障实现百倍甚至千倍规模提升等等。

2. 初元系统(Initial)

光分析出单个图片或者视频实体的特征还不足以满足业务需求。在很多情况下,我们需要知道实体与实体之间的关系,例如:(1)黄反鉴别、(2)原创识别、(3)优质内容提取、(4)基于事件/时间/空间等关系的实体聚合查找、(5)基于相同或者相似实体的推荐等等。

这些关系的分析是由万象的子系统——初元来完成的。

万象:百度的海量多媒体信息处理系统

△初元系统

初元系统是基于千仞系统生产出来的基础特征构建的。表征每个实体是其基础的特征属性,通过在全集实体集合中进行指纹级别的比对,来找到所需要的各种关系。如何动态地、实时地构建全集实体集合是系统设计的挑战之一。

3. 丹鼎系统(Athanors)

无论是千仞产出的特征还是初元产出的特征,最终都会存储到特征库——丹鼎系统。

丹鼎系统不仅仅是存储实体的特征信息,而更重要的是进行实体粒度的特征属性聚合和传递。相同的两个实体(例如,视频)会有不同的标题、点赞量、转发量等等特征属性。如果初元分析出两个实体其实为同一个实体(如只是带上了不同水印的同一个视频),当这些信息汇聚到丹鼎系统的时候,相关的属性会聚合并可同时为任何一个实体使用。 

万象:百度的海量多媒体信息处理系统

△丹鼎系统

丹鼎系统的聚合技术是为了将信息以内容为单位进行整合,从而给下游检索系统实现内容粒度的信息检索奠定基础。内容聚合过程并不会把此前单个实体原有的特征信息给抹去,相反会在保留原有单个实体特征属性下实现动态汇聚技术。

例如,实体E1和E2被认为是两个内容相同的视频,E1拥有比较高质量的内容(例如,更清晰或者无黑白等),而E2拥有更符合需求的标题关键词,当用户使用搜索引擎的时候,E1会有更好的用户体验并被搜索引擎分发给用户,这个时候所生成的E1标题就不是原有标题而是从E1和E2的标题关键词中挑选或者再生产更能符合相关性需求的标题。同时,E2的其他特征属性(如点击量,播放量,评论数等)也会同时累加到E1属性上,作为最终E1的属性返回给搜索引擎参与最后的结果排序。

五、总结

在以内容为王的时代,新一代的搜索引擎已经从传统的基于网页的收录与检索,升级成基于富媒体信息等多种内容载体的信息收录与检索。与传统网页不同,富媒体数据的理解与处理相比于此前的网页会更难、更具有挑战。

万象系统是百度搜索为了解决富媒体信息海量处理问题而设计和开发的系统,文中对万象系统进行了一次全面的总览介绍,万象系统目前在百度已经承接了搜索所需要的所有图片、视频数据的加工和处理,管理着超大量级的图片和视频实体特征数据,每天支持数十亿的处理吞吐,为百度产品的效果提升奠定了基础。

阅读原文

https://mp.weixin.qq.com/s/PcaXLc7qkNL9FAEjzAdudg

推荐阅读

百亿级流量的百度搜索中台,是怎么做可观测性建设的?

十亿级流量的搜索前端,是怎么做架构升级的?

百度信息流和搜索业务中的弹性近线计算探索与应用

----------  END  ----------

百度架构师

百度官方技术公众号上线啦!

技术干货 · 行业资讯 · 线上沙龙 · 行业大会

招聘信息 · 内推信息 · 技术书籍 · 百度周边

欢迎各位同学关注!

0

精彩评论

暂无评论...
验证码 换一张
取 消