9月7日-8日,相约 2023 腾讯全球数字生态大会!聚焦产业未来发展新趋势! 了解详情
写点什么

优酷视频元素内容召回系统:多级多模态引擎探索

  • 2020-07-19
  • 本文字数:4039 字

    阅读完需:约 13 分钟

优酷视频元素内容召回系统:多级多模态引擎探索

导读: 多级多模态引擎是为推荐搜索定制的专业化的召回引擎。优酷视频搜索在基础的文本 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


原文链接


https://mp.weixin.qq.com/s?__biz=MzU1NTMyOTI4Mw==&mid=2247502849&idx=1&sn=a9d6b7f727f99e877cb2a4a601773725&chksm=fbd77e6dcca0f77bb63e12273c5befbe00c24fed18525ee0d040acdb95a84f3a8def26707277&scene=27#wechat_redirect


活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2020-07-19 10:001962

评论

发布
暂无评论
发现更多内容

二叉树学习总结

Nick

数据结构 算法 二叉树 红黑树

Pod 阶段

耳东@Erdong

容器 4月日更

使用 lxrunoffline 管理运行wsl

Rust从0到1-结构体-一个例子

rust struct

架构训练营——作业1

架构实战营

模块一-学生管理系统架构设计

华仔架构训练营

Spark数据倾斜方案实战(二)

小舰

4月日更

VSCode 插件之 - GitLens

HoneyMoose

自然语言处理:网购商品评论情感判定

不脱发的程序猿

人工智能 自然语言处理 4月日更 网购商品评论情感判定 文本分析

模块一:课后作业

iHai

架构实战营

模块一笔记:4R、3原则与设计环

去北方

架构训练营--微信业务架构

月伴沧海

复杂度分析

奈奈奈奈

Java

架构实战营 模块1 课后作业

༺NPE༻

旋转木马案例

赫鲁小夫

4月日更

花费一月时间吐血整理程序员必读书单,建议收藏

Silently9527

程序员

作业1

大肚皮狒狒

Prometheus2.25新特性讲解

远鹏

Prometheus cncf openmetrics

架构实战营模块一作业

hunk

架构实战营

杭州又多了一个失意的人

箭上有毒

架构实战营 模块1作业

唐江

架构实战营

架构实战营作业:模块一

心晴雨亦晴(~o~)

手摸手教你阅读和调试大型开源项目 ZooKeeper

HelloGitHub

Java zookeeper 源码分析 ZooKeeper原理

LeetCode题解:剑指 Offer 49. 丑数,二叉堆,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

架构实战营模块一作业

陈俊

架构实战营

你可以伤害我,但是不能侮辱我

小天同学

人生 自我思考 个人感悟 4月日更 处世态度

【架构实战营】模块 1 作业

dragonboa

【命题作业】模块 1:微信业务架构图+“学生管理系统”架构设计

小李

架构实战营

架构师实战营 1 期 作业1-微信的业务架构及学生管理系统

灵霄

架构实战营

架构训练营模块一作业

Geek_e0c25c

架构训练营

模块一作业

chenmin

  • 扫码添加小助手
    领取最新资料包
优酷视频元素内容召回系统:多级多模态引擎探索_AI_DataFunTalk_InfoQ精选文章