写点什么

解读优酷视频多级多模态搜索引擎的关键技术

  • 2020-06-11
  • 本文字数:1759 字

    阅读完需:约 6 分钟

解读优酷视频多级多模态搜索引擎的关键技术

优酷在文本搜索系统的基础上,不断探索视频搜索的方案,在多模态输入、多级多模态索引、跨模态检索上做了大量工作,本次分享将揭开优酷多模态图引擎的面纱。

背景

随着智能手机及移动互联网的快速发展,人们接触到的多模态数据不管是数量还是类别都在飞速增长。



优酷作为视频平台,拥有海量 OGC、UGC 视频内容,而视频内容数据是高维度多模态数据,有标题、简介、评论等文本信息,有视频帧的图像信息,有声音,也有连贯的动作视频片段。传统的基于倒排索引的搜索引擎只适合检索文本信息,对于多媒体内容检索能力不足。


为了让用户更便捷地找到多媒体内容,增加多模态搜索能力,优酷视频搜索团队设计并研发了多级多模态搜索引擎(MMS),可以提供分布式大规模多层级多模态索引能力,低延时跨模态级联检索能力,多层级检索、融合、排序能力。

系统概况


MMS 基于阿里平台的 Hippo(在线服务调度)、SAP(应用服务框架)等基础设施开发部署,主要在索引结构、检索控制、执行框架、部署等方面做了系统设计和选型。

关键技术

1 分布式多级多模态索引结构设计

每层级独立构建分布式索引,索引类型包括倒排及向量索引。以视频、帧(图片)、人脸为例,索引结构如下:



视频、帧、人脸存在层级关系;同时帧图片及人脸都有表征向量建的向量索引,支持亿级别规模,分 10 个分片,Top10 的召回率 90%以上。

2 检索调度

MMS 的复杂性在于其在线检索逻辑,即在支持层级及多模态 query 输入的基础上,如何控制跨层级、跨模态的检索。通过定义标准的跨层级和跨模态准则,根据用户的输入形成在线检索逻辑。


基本的检索流程如下图:



由 multi-call 进行多层级、多模态扩展查询逻辑,其中关键是多级、跨模态的扩展查询逻辑。


1)跨层级


跨层级的检索由用户输入的层级作为起始检索点,用户想要的输出作为终点作为扩展,系统具有自适应推理能力。


2)跨模态


跨模态检索会有两种形式的解决方案,使用不同场景,索引构建前,不同模态数据做统一表征,映射到统一空间,在线进行向量检索,此处内容表征的占主要,MMS 主要解决是在文本、向量间进行跨模态检索。

3 图化执行引擎

复杂检索逻辑及低延迟服务能力要求,需要有高效的执行框架,图化执行引擎具备最大限度并行能力。同时对算子进行抽象,可以更自由编排及复用。


MMS 选择 Suez 图化执行引擎,采用 DAG 执行引擎+业务逻辑算子的实现方式。

4 通用性算子实现

搜索逻辑中会设计 query parser、merge、sort 通用逻辑,基于图化执行引擎接口实现通用算子:


1)query parser 算子负责解析请求,查询串使用简单文本方式,相对于 pb/binary 方式,可视化的查询串更加直观,同时查询语法简单且强大。查询串支持查询文本查询,向量查询,或者同时有两者,支持高级语法,可以控制的查询参数粗排精排等;


2)merge 融合多层级 doc,补全所需要的正排、summary 信息;


3)sort 是搜索排序逻辑,排序后选取 Top N 返回;


4)result 是结果返回和处理逻辑,基于查询使用文本方式,我们希望结果也是直接可视化,所以在构建结果的时候支持了 json/xml,同时为了兼顾性能,我们也支持 protobuf 的返回格式,同时还加入 snappy/lz4 方式压缩,使返回结果集更小,传输效率更高;为了方便调试,我们加入了调试参数,可以保存聚合调试参数,输出引擎内部的调试内容。

产品应用

1 优酷智能搜索

采用 MMS 对视频、帧、元素(人物、动作)等多级内容进行索引,召回出视频解构后的信息,可以实现定帧播放,支持用户对于精准视频内容片断的需求。


2 以图搜剧

用户可以通过拍照、上传图片搜索人物及节目、相似画面的视频。输入态丰富为图像,召回系统采用 MMS,既具备传统的通过人脸识别后用人名召回节目,又可直接通过图片向量进行召回。


总结 &展望

多媒体信息不断丰富,直播、小视频等相关应用增长迅猛,5G 移动通信技术的进一步普及,多媒体信息的生产、传播将会持续爆发式增长。人工智能技术日臻成熟,对于多模态内容理解、表征会进一步加强。多模态的人机交互体现会渗透到生活、生产各个环节。多级多模态的检索能力是必须要面临的核心问题。


优酷的多级多模态搜索引擎(MMS)提供了低延迟的跨模态、跨层级搜索能力,支持大规模多模态的索引。在视频分发、视频创作中都有着十分关键的应用场景。MMS 技术在更多的智能交互场景也将发挥更广泛的应用场景。


作者介绍:阿里文娱开发专家 崇懿,阿里文娱开发专家 慧善


2020-06-11 09:003808

评论

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

Region 创建、分裂及合并的原理

TiDB 社区干货传送门

当数据库遇上 Kuberbetes丨「能量钛」圆桌论坛回顾

TiDB 社区干货传送门

实践案例 数据库架构选型

PD 调度器模块

TiDB 社区干货传送门

TiDB 底层架构

TiSpark 服务安装、部署及测试

TiDB 社区干货传送门

事务前沿研究丨确定性事务

TiDB 社区干货传送门

TiDB 底层架构

从 MySQL 大量数据清洗到 TiDB 说起

TiDB 社区干货传送门

实践案例

一张脑图让你快速了解 TiDB 5.0版本新特性

TiDB 社区干货传送门

TiDB 底层架构

038-拯救大兵瑞恩之 TiDB 如何在 TiKV 损坏的情况下恢复

TiDB 社区干货传送门

DM多库合并至TiDB

TiDB 社区干货传送门

迁移 实践案例

接触TiDB4.0时,一些部署方式实践尝试

TiDB 社区干货传送门

安装 & 部署

Flink on TiDB —— 便捷可靠的实时数据业务支撑

TiDB 社区干货传送门

实践案例

TiDB 慢日志在伴鱼的实践

TiDB 社区干货传送门

实践案例

Grafana汇总报表

TiDB 社区干货传送门

监控

TiDB 在汽车之家818台网互动项目中的应用

TiDB 社区干货传送门

实践案例 管理与运维 数据库架构选型

还在用变量去实现多维度分组排序吗?你 out 了!

TiDB 社区干货传送门

实践案例

TiDB 的统计信息

TiDB 社区干货传送门

TiDB Ansible 使用指南

TiDB 社区干货传送门

TiDB 3.0:窗口函数初体验

TiDB 社区干货传送门

TiDB 热点问题详解

TiDB 社区干货传送门

TiDB 集群可用性增强 —— TiDB 5.0 的 Joint Consensus 机制介绍

TiDB 社区干货传送门

TiDB 底层架构

PD 启动主流程分析

TiDB 社区干货传送门

TiDB 底层架构

DM filter 实践整理

TiDB 社区干货传送门

实践案例

TiDB Parser模块的简单解读与改造方法

TiDB 社区干货传送门

TiDB 底层架构

TiDB 升级——ansible与tiup使用小结

TiDB 社区干货传送门

TiDB 底层架构

TiDB 热点问题定位

TiDB 社区干货传送门

故障排查/诊断

在 minikube 上使用 TiDB Operator 构建 TiDB 集群(持续更新中)

TiDB 社区干货传送门

安装 & 部署

解读 TiDB Server

TiDB 社区干货传送门

TiDB new feature max_execution_time

TiDB 社区干货传送门

知乎已读服务的前世今生与未来

TiDB 社区干货传送门

【精选实践】一体化无边界的大数据基础平台

TiDB 社区干货传送门

TiDB 数据一致性校验实现:Sync-diff-inspector 优化方案

TiDB 社区干货传送门

性能调优

解读优酷视频多级多模态搜索引擎的关键技术_语言 & 开发_阿里巴巴文娱技术_InfoQ精选文章