如何让用户找到想要的内容?阿里文娱搜索算法实践

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
NLP自然语言处理_高级版,每接口累计50万次
简介: 视频搜索是涉及信息检索,自然语言处理(NLP),机器学习、计算机视觉(CV)等多领域的综合应用场景,随着深度学习在这些领域的长足进展以及用户对视频生产和消费的广泛需求,视频搜索技术的发展在学术和工业界都取得了飞速的发展。

作者| 阿里文娱高级算法专家 若仁

视频搜索是涉及信息检索,自然语言处理(NLP),机器学习、计算机视觉(CV)等多领域的综合应用场景,随着深度学习在这些领域的长足进展以及用户对视频生产和消费的广泛需求,视频搜索技术的发展在学术和工业界都取得了飞速的发展。

在GMIC 2020 阿里文娱技术专场,阿里文娱高级算法专家若仁,分享了视频搜索技术简介、多模态在视频搜索的应用,希望对相关的算法同学能带来启发。

考虑到大家来自不同的业务领域和技术方向,我会先简单介绍优酷视频搜索的业务背景,同时快速介绍搜索的基本评估指标,以及搜索系统的算法框架,还有相关性和排序模型,让大家有一个更全面的认识,后面会重点介绍多模态视频搜索的相关技术。

一、阿里文娱搜索业务简介

搜索团队为整个阿里文娱提供一站式的搜索服务,服务范围包括优酷Phone和OTT端,还包括大麦、淘票票。涉及的检索内容,从影剧综漫的长视频影视库,到覆盖社会各领域的UPGC视频。此外,影人和演出场馆的也在搜索服务范围。以优酷为例,我们有数亿的视频资源,不仅包括平台购买版权的OGC视频,更多是用户上传的UPGC视频。 视频的存储、计算以及分发,比文字更具挑战。
005.jpg

搜索技术的用户价值主要体现在两个维度:

一是工具属性。就是用户将搜索服务作为寻找内容的工具,目标是“找准,找全”,即“搜的到,搜的准”。从这个维度去评估搜索效果的好坏,需要一系列的体验类指标,比如跳出率、相关性,以及时效性和多样性。这些都是搜索通用的技术指标;所谓可播性指在应用上能播放,这是全网视频搜索特有的,受内容版权和内容监管多方面的原因,有一些内容是平台无法播放的。 此外,我们还会定期做人工评测,做横向和纵向比较。

二是分发属性。让用户消费更多的视频内容,有更多VV(观看视频数)以及TS(消费时长)的引导。这些指标对于垂直搜索,是非常重要的,也是用户满意度最直接的衡量。对于平台来说,搜索还能支持平台的宣发和商业价值,实现广告/会员的商业价值,前提是将用户体验做好。
006.jpg

搜索算法框架,由下到上依次是数据层、技术层、内容召回、多媒体相关性、排序、意图。

1)数据层:最基础是视频内容的数据,我们从视频内容中抽取出对应的知识,包括实体、实体之间的关系以及属性。通过内容组织的方式,以图谱知识去指导我们做聚合,从时效性的维度做聚合,从多种维度将内容组织起来;

2)技术层:在数据基础之上,利用CV和NLP技术,支撑上层内容召回和相关性,排序,以及对Query的意图理解;

3)召回层:对多媒体内容理解是难点,下文会详细展开讲;

4)相关性:包括基础相关性/语义匹配技术;

5)排序层:按照体验和分发等维度,去提升搜索整体体验。排序利用机器学习排序学习的方式,去提升分发效果,此外还要优化体验类目标,如时效性,多样性等,同时也要实验平台的宣发等目标,是典型的多目标优化场景;

6)意图:对Query意图理解,首先要对Query做成分分析,标明Query各成分是什么,是节目名还是剧集信息。然后要建立细粒度的意图体系,对用户表达的意图去做深层次的意图理解,从而更精准的指导召回,相关性和排序。

多媒体内容理解是视频搜索的重点,视频内容传递的信息是非常丰富的,是不可能用标题的短短十几个文字描述全面的。用户在检索表达时,需求的差别非常大,这就是天然的语义鸿沟。所以我们不能把视频当作黑盒子,需要利用NLP能力、CV的能力以及其他技术能力对视频内容有全面的分析解构。

二、相关性和排序模型

1、挑战
视频搜索相对通用搜索是有特殊挑战的。第一个挑战是内容相关性匹配,下图中前两个case,体现出用户表达的Query和视频标题不是那么相关,需要通过对内容理解分析,通过对它的元信息的丰富,建立起内容相关性。
007.jpg

如“变形计2017姚金冬”,视频标题中只有“姚金冬”,实际上通过视频内容的理解,可以知道“姚金冬”和“变形计”,并且是2017年的。通过内容理解和IP指纹,把IP周边视频,如切条或二创视频,和IP建立起关联关系,能大大丰富视频的元信息,提升内容相关性匹配度。

第二个挑战是实体知识匹配,我们要借助于视频标题的结构化去理解,用NER方式抽取出来,同时也需要CV的技术去辅助NER识别的准确率。比如“法不容情国语”,QP端理解出“法不容情”是一个节目名,这就是Query的成分分析;用户上传的是“公共用地被占私用,法不容情”的社会问题,需要对文档端去做结构化的理解,要理解出“法不容情”在上下文中不是节目,而是其他意思,然后在相关性匹配的时候,利用这些先验知识做更好的相关性判断,从而决定相关性匹配度。 此外,“中国餐馆电视剧”这个case也类似,用户找的是《中国餐馆》节目,而不是需要检索出“中国餐馆放着抗日神剧”。

第三个层面的挑战是语义匹配,当然是通用搜索也有语义匹配问题,一些语义类/how to类的知识匹配,要去做语义和更全面的分析,比如利用内容理解和实体知识的辅助补充等,才能做好语义匹配。

007.jpg

2、解法
我们整个视频搜索相关性是从四个维度去做:

1)基础特征:基于基础文本的特征匹配,包括term weight、匹配矩阵等;

2)知识特征:通过内容理解,以及视频自身所带的元信息,例如视频中的人物,所关联的节目相关的元信息,以及针对视频标题所做的结构,比如我们抽取出哪部分是人物,哪些是IP名,哪些是游戏角色等。标题结构化之后,根据Query成分的理解,支持在知识层面去做匹配;

3)后验特征:因为用户去搜索Query之后,搜索结果之间会产生交互,形成Query和Doc交互特征。Query_Anchor以及通过这些交互特征能够指导Query意图的理解,把他们作为这种后验关联的一些特征,能够支持我们这种意图匹配。

4)语义:是文本层面的语义匹配,利用DSSM语义模型和Bert语义模型,做离线和在线的语义匹配模型。除了这种匹配层面之外,还要支持语义召回。通过SMT和点击行为分析等技术,进行语义扩展,扩大召回语义内容的范围,利用它们形成的特征更好的做好语义匹配。

希望通过前面两个slide,能够让大家更好的理解视频搜索相关性的挑战和解法。

3、相关性数据集构建和特征体系

全面准确的发现问题是解决问题的基础。相关性数据集的目的是给相关性算法提供ground truth,标注是重点。相关性标注数据集的标注规范较复杂,标注样本量比较大的,通过外包进行人工的标注,重点需要关注的是标注质量和标注成本。根据标注规范不仅要去标注样本的等级,对同等级下样本的还需要标注偏序关系,质量的把控特别关键。对于成本来说,需要有高效的样本挖掘机制和方法。

008.jpg
如图中左侧所示,可以通过Active Learning的思想来加快标注的效率提升,同时也能提升标注质量。 我们可以基于训练集不断地迭代线上模型,对于线上模型预测不是那么准确的样本,可以提供给外包同学去检测标注,形成一个快速的迭代闭环,提升训练的精度。大家用这种方法去做,能够大大提升整个标注的质量和效率。

右侧是相关性的技术特征,最上层是Query相关的特征,有常规类的,非常基础的文本特征;有意图理解输出的特征,比如说人物、节目、宽泛、How to类意图等;文档端的先验特征包括从文档标题解构出来的特征以及基础文本特征,除了先验特征还会使用前面说的后验特征;最下层是Query和Doc的匹配类特征,匹配特征也会分基础匹配、意图匹配、语义匹配、知识匹配这几个维度。

4、排序特征体系

009.jpg

  1. 搜索词特征组:搜索词以及匹配特征这些特征类别,是搜索领域通用的;
  2. 匹配特征组:有一些特征是平台特有的,比如视频的实时播控、内容宣发特征;
  3. 视频内容特征组:内容质量对于我们的平台非常重要,因为每天上传视频量非常大,需要做好内容质量的评估,才能更好地指导冷启动的分发。我们人工智能部有一个CV团队,负责为我们提供高质量的特征,从封面图、标题、画质/图像/声音各模态去评估视频质量;
  4. 用户特征组:用户行为特征,用户画像及用户行为的表征学习特征主要用在一些宽泛搜索场景。例如频道页的搜索排序、 OTT宽泛意图排序等。

接下来分享2017年,我们和达摩院在搜索上落地的表征学习排序方案。

100.jpg

第一层是对特征域编码层,按照用户、搜索意图、视频三元素。在用户维度,划分了用户id域、用户观看视频序列域;搜索意图维度,划分了搜索词id域、搜索词视频表达域、文本编码域。视频维度,划分了视频统计特征域、视频文本编码域、视频i2i域。
第二层和第三层不同特征域间网络结构相互独立,通过稀疏编码优化的全连接层对第一层的高维特征域进行降维,把高维信息投影至低维的向量空间中。
通过第三层全连接层对域内信息的二次编码,输出域内特征向量。
通过第四层把concat层链接起来,对域间的id特征向量、行为特征向量、文本特征向量和观看序列特征向量做多模态的特征向量融合。
之后经过两层的全连接网络实现对给定用户和搜索意图下每个视频的排序分值的预测。这个模型是内容分发的一个排序模型,它同时还会结合相关性模型,时效性,以及视频质量等从多维度模型融合,来决定最后的排序。

三、多模态视频搜索

基于标题和描述等文本信息的检索,会遇到很多困难。

首先是单模态信息缺失,用户在上传UGC视频的时候,标题是比较简单,很难将丰富的视频内容表达清楚,有时这些文字信息还和视频内容是没有关联关系的;

其次是用户搜索意图越来越多元化,即使是版权视频的搜索也不再集中于节目名字的搜索,社交与互动的需求逐渐增长越来越多;

其次还有TO B侧的需求,也就是内容二创的用户,需要去找各种各样的视频片段,视频素材,这部分的需求也是需要用多模态技术去支撑。

11.jpg

基于多模态技术的搜索,将语言、语音、文字、图像的各种模块集中起来,综合这些信息来理解,能够方便用户更好地找到所需内容,得到更好的搜索体验。目前在工业界和学术界对多模态搜索的研究热度都非常高,学术界有很多方案是基于将 Query和视频映射到一个中间Concept的空间,然后在中间维度做相似度的匹配排序。此外,也有VQA/GQA等各类基于视频问答的数据集去推动自然语言和图像的关系推理,最近Video/Visual Bert的端到端的解决方案也有了很大的突破。

学术界喜欢这种端到端的解决方案的,对于短小视频的理解,可能是个不错的方案。但针对长视频,这些方案是很难真正做到准确的理解的。因为长视频包含内容信息是更多维,更宽泛。此外在工业界搜索引擎是需要有可解释和可控性的,很少是采用单一端到端的解决方案。所以我们优酷的多模态搜索采用的技术方案是:

  1. 利用CV算法技术,将其他模块的信息降维到文本模态;
  2. 通过我们多模态内容检索的技术实现召回;
  3. 再从上层通过内容相关性和排序技术,达到用户对内容各维度检索需求的满足。

例如,基于人脸识别的技术,将视频中出现的明星人物,如《这就是街舞》视频中识别出易烊千玺、黄子韬等;此外通过OCR/ASR的技术,识别各视频中的对话内容转化成文本。然后基于文本去做结构化理解。
结构化的文本,需要有系统性的理解和组织,用后面会讲到的关键词抽取技术,把它理解好并形成我们的一些内容主题;同时还会利用音乐识别、动作识别、以及场景识别,情绪识别等CV技术,不断丰富解构内容,实现用户在上面去各种组合搜索的时候,我们都能够召回,还能排的比较好。

12.jpg

这个slide主要是用一个案例来介绍我们在多模态视频搜索时,内容关键词是怎么更好的组织,视频内容降维成文本之后,怎么能够去做好这些文本内容的组织理解。

首先,从案例看到,内容关键词的词库是非常非常大的,此外内容和关键词属于多对多的关系。我们要通过各种关键词的抽取技术抽取候选的内容关键词,并且要扩大候选词来源的一个多样性,比如基于"NER"的方法能确保抽取的内容关键词是百科类实体名称,有较广泛的知识内涵; “新词发现”方法会综合Ngram以及语言模型(LM)等多种基础能力扩大对未知知识领域的挖掘。

候选关键词是一个断扩充的过程,随着我们在视频内容理解的维度扩大,候选关键词的来源会越来越丰富。在丰富的内容候选关键词基础上,根据内容候选关键词和视频内容相关程度构建分类模型预测不同的等级,最相关的是核心内容关键词,其次是相关内容关键词以及提及内容关键词,然后整个在关键词分级的核心特征是除了文本特征之外,还会采用音频/视频表征网络生成的一些多模态特征来共同训练,来提升预测关键词相关度的准确率,把关键词和内容表达的关联度预测更精准。

在过程中会看到这么做存在的一些问题,以图中视频为例,该视频主要是讲欧洲瓷器的发展史,但是该视频文本标题是“陶瓷: 陶瓷(六)”,非常简短的描述,对它做内容理解降维成文本后,能够利用上面讲到的技术抽取内容关键词“塞夫勒”,“麦森”,但是如何能够把“塞夫勒”、“麦森”和“欧洲”关联起来,知道这个视频讲的是欧洲瓷器发展史,而不是中国或者日本;此外对于瓷器领域知识实体,“陶器”, “青花瓷”, “高岭土”,怎么把它们和“瓷器”概念关联起来。

这些都是需要有知识图谱(KG)知识支撑的,这就需要KG实体知识库涵盖广泛的领域,需要有全行业的丰富实体,才能帮助提取核心内容主题。另外像抽取的内容关键词“伯特格尔”是个人名,但是要用什么技术能把它和内容主题相关程度识别准确,知识库不一定能收录,单纯通过频次也不一定能理解准确,但是“伯特格尔” 被“他”指代提及多次,需要有这种指代推理能力,把这样的关系理解出来。有了这些关系的理解,才能基于内容关键词之上去理解整个的内容事件、内容主题、以及内容故事线等不同层级的抽象,才能够更全面的理解视频,然后来更好的去支撑上层的召回匹配和排序。

13.jpg

目前,我们做的这些探索都上线了,在线上能看到效果。像用户搜索“军情解码张召忠“,排前面的这几个视频内容都是“张召忠”主讲的,但是在标题文本里面是没有的,是通过内容理解的方式能够把它抽取出来;像“军武次位面虎式坦克”,“虎式坦克”是用户是要找的,但是在视频标题中都是“荣耀之虎”,“虎P之腿”,这些视频里面是针对“虎式坦克”有详细的内容介绍,通过内容理解能够将用户的需求和内容关联起来,能做比较好的召回和排序;最右边的是高晓松老师的“晓说以色列“也是这类,大家可以在优酷APP上多做一些体验。

相关文章
|
17天前
|
存储 算法 Java
Java中,树与图的算法涉及二叉树的前序、中序、后序遍历以及DFS和BFS搜索。
【6月更文挑战第21天】Java中,树与图的算法涉及二叉树的前序、中序、后序遍历以及DFS和BFS搜索。二叉树遍历通过访问根、左、右子节点实现。DFS采用递归遍历图的节点,而BFS利用队列按层次访问。以下是简化的代码片段:[Java代码略]
19 4
|
24天前
|
机器学习/深度学习 搜索推荐 算法
推荐系统的算法与实现:深入解析与实践
【6月更文挑战第14天】本文深入探讨了推荐系统的原理与实现,包括用户和项目建模、协同过滤、内容过滤及混合推荐算法。通过收集用户行为数据,系统预测用户兴趣,提供个性化推荐。实践中,涉及数据处理、建模、算法选择及结果优化。随着技术发展,推荐系统将持续改进,提升性能和用户体验。
|
5天前
|
数据采集 算法 JavaScript
揭开JavaScript字符串搜索的秘密:indexOf、includes与KMP算法
JavaScript字符串搜索涵盖`indexOf`、`includes`及KMP算法。`indexOf`返回子字符串位置,`includes`检查是否包含子字符串。KMP是高效的搜索算法,尤其适合长模式匹配。示例展示了如何在数据采集(如网页爬虫)中使用这些方法,结合代理IP进行安全搜索。代码示例中,搜索百度新闻结果并检测是否含有特定字符串。学习这些技术能提升编程效率和性能。
揭开JavaScript字符串搜索的秘密:indexOf、includes与KMP算法
|
9天前
|
算法 调度 云计算
操作系统中的调度算法:从理论到实践
在计算机科学领域,操作系统的调度算法是决定任务执行顺序的关键。本文首先概述了调度算法的基本概念和重要性,随后深入探讨了几种主要的调度算法,包括先来先服务、短作业优先、轮转与优先级调度等。通过引用最新的科研数据和实验证据,文章揭示了不同调度算法的性能表现和适用场景。此外,本文还讨论了现代操作系统中调度算法面临的挑战和未来的发展方向,强调了在多核处理器和云计算环境下调度策略的复杂性。最后,通过案例分析,展示了如何在实际系统中应用这些理论知识,以及在设计高效调度系统时需要考虑的因素。
|
17天前
|
存储 算法 Java
Java查找算法概览:二分查找适用于有序数组,通过比较中间元素缩小搜索范围;哈希查找利用哈希函数快速定位,示例中使用HashMap存储键值对,支持多值关联。
【6月更文挑战第21天】Java查找算法概览:二分查找适用于有序数组,通过比较中间元素缩小搜索范围;哈希查找利用哈希函数快速定位,示例中使用HashMap存储键值对,支持多值关联。简单哈希表实现未涵盖冲突解决和删除操作。
19 1
|
18天前
|
机器学习/深度学习 人工智能 算法
【机器学习】Q-Learning算法:在序列决策问题中的实践与探索
【机器学习】Q-Learning算法:在序列决策问题中的实践与探索
25 0
【机器学习】Q-Learning算法:在序列决策问题中的实践与探索
|
20天前
|
存储 算法 Java
广度优先搜索(Breadth-First Search,BFS)是一种用于图的遍历或搜索的算法。
广度优先搜索(Breadth-First Search,BFS)是一种用于图的遍历或搜索的算法。
|
23天前
|
算法 JavaScript 决策智能
基于禁忌搜索算法的TSP路径规划matlab仿真
**摘要:** 使用禁忌搜索算法解决旅行商问题(TSP),在MATLAB2022a中实现路径规划,显示优化曲线与路线图。TSP寻找最短城市访问路径,算法通过避免局部最优,利用禁忌列表不断调整顺序。关键步骤包括初始路径选择、邻域搜索、解评估、选择及禁忌列表更新。过程示意图展示搜索效果。
|
3天前
|
存储 缓存 算法
Java中的数据结构与算法优化实践
Java中的数据结构与算法优化实践
|
28天前
|
存储 算法 数据挖掘
螺旋矩阵 II:从理论到实践的五种算法解析
螺旋矩阵 II:从理论到实践的五种算法解析