导读:
多级多模态引擎是为推荐搜索定制的专业化的召回引擎。优酷视频搜索在基础的文本Query搜索系统的基础上,不断探索视频搜索的特色,在多模态输入、多级多模态索引、跨模态检索上积累很多实践经验,在C端及B端都有线上应用。创新的脚步在持续,多模态图引擎已经研发完成即将应用于线上,此次分享也会揭开面纱。本次分享题目为优酷的视频元素内容召回系统,主要介绍:
搜索多模态输入和人脸搜
多级多模态引擎及应用
多模态图引擎揭秘
01 搜索多模态输入和人脸搜
1. 优酷视频搜索业务介绍
先简单说一下优酷视频搜索的业务,优酷的搜索业务涵盖 APP、WEB、大屏、OTT、 PC的客户端,还有支付宝、淘宝等应用的小程序,都有优酷搜索的功能。搜索的结果页会根据用户的意图和搜索结果呈现出不同的组织形式。
用户意图以节目为主,会呈现节目的搜索结果页;用户也会搜索宽泛意图的Query,有聚合类型的结果页;会有UCG视频的结果;还会有明星;组织形式会非常多,会根据用户的意图,搜索结果的内容,做不同的呈现。
2. 用户交互形态
优酷视频搜索业务有很多用户交互的形态,在APP端大家能看到的就是常用的文本搜索,在大屏端,常用的有首字母搜索的能力,这都属于文本输入的搜索;APP端、大屏的OTT端搜索,还有语音搜索的能力,通过对话语音的录入,获得搜索结果。
现在在大屏端已经有了多轮对话的能力。在右侧的例子里面可以展现出来,如果用户通过语音录入:”我想看刘德华的电影”,就会给出搜索结果,如果继续去讲说”和周润发一起演的电影”,这就会在现有的结果基础上再进行筛选。多轮对话的搜索能力,在现有大屏场景上是非常好的体验。当然现在还在设想多模态的搜索,它可以拍摄图像、录入视频,通过各种多模态的输入能力,触发搜索。
3. 视频多级元素内容
介绍一下什么叫做多级的元素内容。简单的去定义一下视频九级的分类等级。
宏观:频道、节目
微观:帧的粒度、帧的区域、对象、由帧和镜头组成的叙事场景、描述的故事等
会把整个的视频分成多个等级。基于现在的AI能力的理解,会把不同的对象,镜头,动作等,都能识别处理出来,做为整个视频召回的基础能力。
4. 搜索多模态输入
大家先看关于多模态输入的视频,这是比较有科技感的宣传片。
大家可以看到,在整个的宣传片里面,可以根据录入的视频和图像,识别出来里面的人物,可能和人物相关的作品,与人物有关的新闻的内容。用手机作为载体,输入视频图像等不同模态。
5. 人脸搜
上面这张PPT里面展现的是阿里文娱内部在做的人脸搜的产品,它通过手机拍照,从相册里面去选择图片,来搜索和明星相似的人脸。
介绍一下人脸搜的整个系统结构。它作为搜索的多模态输入的基本形态,左侧图展现的是几个模块,首先是有输入端,APP提供拍照、从相册里选择图片、上传等功能。在端侧会先做图像的初步压缩和裁剪。它的图片不是通过直接请求到后端,先会走图片上传流程。
阿里通用的就是AUS服务,把图片上传到服务端,返回 URL, APP端会把 URL及其他参数请求搜索服务。通过在线图片计算服务,首先对上传的图片进行包括人脸识别、人脸向量化等图片处理。拿到图片的特征后,到引擎里去做检索,这里会包含向量的检索,识别出来人物的名称做倒排的检索等。
现在APP端有很多开源的端智能能力,阿里最近开源的MMN框架,在端侧就可以做关键点的识别、分类预测等。这个框架会提高图像处理能力,实现比较好的交互。比如拍海报,上面的人物就可以自动把人脸框出来,并且给出人的名字,类似的能力直接在端上就可以实现。
这是整个的多模态输入的基础框架,在语音的场景,视频录入的场景,都可以沿用这套基础框架进行支持。
02 多级多模态引擎及应用
下面介绍一下多级多模态引擎的设计。
1. 索引结构
索引结构分为三个等级,以视频帧里面的人脸为例,每个视频的索引等级都是单独做分布式的索引,整个索引设计中不仅包括向量的索引结构,还包括倒排的索引结构等。
2. 跨层级跨模态检索
跨层级检索:
先讲一下跨层级的检索,一个比较简单的流程是:根据用户输入的层级,比如说用户要检索人脸,最终想拿到包含人脸的视频,用户输入的是一张图片,最终返回结果会是视频的片段。在这套引擎里面会有系统自适应的推理能力,给出整个检索路径。
跨模态检索:
另外就是跨模态的检索,主要支持文本和向量间的跨模态。刚才有提到例子通过人脸的向量以及对图片的理解,人脸识别就可以给出来人的名字。可以根据向量和人的名字一起检索,做到从人脸向量到名字文本的跨模态检索的能力。
整个执行流程,右侧图可以看出来它是图的结构,是一个DAG的结构,整个引擎底层执行框架的设计,是DAG执行框架,在这上面是希望是能做到更高的并行,另外可以更提供更好的扩展性。
最关键的两个步骤:
多层级的Merge:系统自动的做层级之间的检索来组成整个检索路径;
在最上层做多层级排序:根据召回的所有层级,以及关联的层级信息,做最终的排序。
3. 多级多模态引擎的应用
分享一下现在在线应用上的几个例子,对在2C端,大家在优酷APP中就可以体验,比如搜易烊千玺跳舞,就会有优酷智能搜索的结果,这里面是合集。点进去可以看到包含有易烊千玺跳舞片段的视频,而且检索会把易烊千玺跳舞的时间点都给得出来。
除了2C端的智能搜索的应用,在2B端也做过很做了很多尝试:
搜镜头。因为对于内容的创作生产,寻找素材是很需要智能搜索,所以在2B端,你可以搜类似《长安十二时辰》相关的片段,他对应的就会给出很短的视频片断,基于对视屏内容的解构,给出来的镜头。通过多级多模态检索引擎,就可以检索出来。
搜台词。会给出相关的出现过类似台词的视频,这些台词都是出现在不同剧里的,也是通过多级多模态引擎去检索,检索的是某剧包含该台词的视频片段。
这就是整个的多模态引擎的设计和应用。
03 多模态图引擎
下面也分享一下最近在思考和研发的多模态图引擎。
1. 搜索知识图谱的应用
大家对知识图谱都比较熟悉,尤其是做搜索的或者常用搜索引擎的同学。在搜索引擎里面你可以去搜索问题。比如说:邓超的妻子是谁,在百度和Google都会给出对应的卡片,直接就能得到正确答案,并且给出图像的介绍。比如说搜索《重生》电视剧的演员是谁,《重生》有多少集,这些问题都可以直接回答出来,这些就是知识图谱的应用。
2. 文娱行业知识图谱的构建
在对于刚才提到的多模态的信息,是视频行业所涵盖的知识,就会构建出文娱行业的知识图谱。
从宏观讲,视频节目之间都有关联,它可能是与某制作公司或者某大的IP相关联同时刚才也有提到,在微观层面它会有场景、事件,还会有里面动作、表情和物体的识别。经过系统的构建,就会生成文娱行业的知识图谱。从这一点做更深入的思考,在原有的引擎上提出,要建设多模态的图引擎。
3. 图引擎
简单的跟大家介绍一下图引擎。在Apache里面有个顶级的开源项目Tinkerpop,它给出了图数据库、图分析系统的标准定义,还给出了通用图数据语言Gremlin。
现在的图数据库的应用还是非常广泛的,阿里有开源的图数据库GDB,百度、头条都有推出一些相关的图数据库。
这张图展现的是图数据库的排行。大家都知道Neo4j,JanusGraph、Titan等图数据库。在知识图谱的应用上,包括搜索、社交领域等都会有比较丰富的应用。
而Gremlin所支持图遍历的能力,其实是一种动态召回的能力。把基本的图遍历过程分成了filter,map等5种类型,基本上涵盖了所有需要的查询过程。
4. 多模态图遍历应用场景
在刚才讲到从多模态的输入到对于多模态引擎的设计,这基于我们对于视频行业的理解和思考。刚才提到了整个的文娱行业会有比较丰富的知识图谱,需要用图引擎去做检索服务。另外必须要打造的功能点是有多模态的召回能力,这张图里面就很好展现了应用场景。
例如,用户搜索:”和邓超老婆长得像的女演员出演的电视剧”,整个图里面展现的是图遍历的过程,下面是对应的Gremlin语句。
通过邓超搜索到人,根据知识关系,可以知道他的老婆是孙俪。同时怎么去描述它长得像?
这要用到多模态向量检索,通过孙俪的人脸向量的表征,进行向量检索,可能会搜出”蒋勤勤”或者”刘涛”,直接给出人物的实体 ( entity ),再推理出他们出演的电影作品或电视剧,给出最终的结果。
在此过程中,在图遍历的基础能力上,又扩展了多模态的检索能力,从中间增加了VectorQuery的能力。因为在视频行业里面,除了刚才提到的整个知识库以外,多媒体内容需要做表征、检索,这就成为图引擎应用于文娱行业的创新点。
5. 多模态图引擎的索引设计
图引擎一般基于顶点、边去构建整个图谱,通过顶点和边的构建来支持图的多轮检索能力。分布式的索引,在Searcher上,会根据主键去做分片,分片上会包含KV和KKV的索引结构,以及倒排和向量的索引结构。这些会更加方便、高效地支持图遍历能力。
6. 图遍历支持模型服务
在视频元素内容召回能力上,图遍历支持模型服务是强需求。因为在整个召回过程中会做图片的表征,进行实体的打分、排序,在图遍历过程中提供 model的step,step可以调用本地的模型,或者是通过远程访问调用深度模型、需要GPU跑的模型,再返回到检索链路中。
04 总结和展望
随着整个人工智能技术的逐渐丰富,视频行业将会把知识库的内容做得更加丰富和完善,刚才也展现了里面的冰山一角。这些都给引擎带来非常大的挑战,也提供了非常大的机会。我们希望通过搜索引擎更深入地迭代,来更好地满足用户交互体验。
在多模态输入能力上,对现有很多智能设备,包括家里的大屏电视、能力非常强大的手机等,都是为用户提供了更好的交互体验场景,这些场景都需要有多模态的搜索能力做为基础。
分享嘉宾:崇懿,阿里文娱技术专家。多年搜索推荐系统研发经验,目前在阿里巴巴文娱负责搜索工程,致力打造具有视频特色的搜索引擎。
编辑整理:李沛欣
出品平台:DataFunTalk