7月3日下午,爱奇艺技术产品团队举办了“i技术会”线下技术沙龙,本次技术会的主题是“NLP与搜索”。我们邀请到了来自字节跳动、去哪儿和腾讯的技术专家,与爱奇艺技术产品团队共同分享与探讨NLP与搜索结合的魔力。
其中,来自爱奇艺的技术专家张志钢为大家带来了爱奇艺搜索排序算法实践的分享。
福利!关注公众号,在后台回复关键词“NLP”,就可以获得本次i技术会嘉宾分享完整PPT和录播视频。
以下为“爱奇艺搜索排序算法实践”干货分享,根据【i技术会】现场演讲整理而成。
01
背景介绍
1.爱奇艺搜索场景
爱奇艺的搜索场景主要有以下三个特点:
(1)多产品线,如爱奇艺主端、随刻、极速版、TV等;
(2)多业务形态,包括综合搜索及各垂类业务;
(3)多数据类型,包括专辑、短视频、爱奇艺号等。
我们以下图这个具体的搜索场景为例,首先,我们在搜索框输入对应的Query,点击搜索按钮,跳转到最终的结果页。
结果页的情况如图所示:第一个是专辑长视频,下面是三个短视频,接着是相关小说,数据类型是比较多样的。
此外,结果页顶部的Tab栏还分为综合、影视、短视频、小视频等等,“综合”栏对应的是我们的综合搜索业务,后面的“影视”“短视频”等对应的则是我们的多垂类搜索业务。
本文将主要介绍我们基于综合搜索的实践。
2.业务优化目标
我们的业务优化目标主要分为四大块:
(1)提升搜索效率。这里主要有三个衡量指标,都与用户的体验有关。第一个指标是Session CTR,就是用户一次请求对应的点击率;第二个指标是UCTR,指的是用户整体点击率;第三是二次搜索率,也就是一个用户在短时间内有多次搜索行为,说明对当前搜索结果不是特别满意;
(2)促进用户消费。用户消费的衡量指标目前包括三大类:用户播放时长、点击次数及互动次数。
(3)完善内容生态。目前我们搜索的范围包括全网视频(站内及站外)、优质垂类分发、爱奇艺号等等。
(4)新热多样,包括针对新视频的冷启动、时效性提升、多样性优化等。
3.整体架构
下图是我们的整体架构图。
最上方是用户业务方的调用接口,之后进入到综合调度模块,这块主要负责URL的接收,以及整体业务逻辑的处理。
综合调度会读取一系列数据,包括Query的分词解析纠错以及Query的意图识别,例如Query本身要查询哪些品类?是电影、电视剧还是综艺?要查询查询长视频还是短视频?
另外,还有运营配置模块,这里我们支持人工定义,在特定的Query和场景下,吐出相应的Doc。
中间这一部分是归并重排,负责合并从多个分片的Doc并去重,同时进行重排以及策略调权。
下方部分的预测服务采用Lambda架构,索引部分主要分为两大块——全量索引和实时索引,均匹配对应的召回、粗排、精排流程。
同时,我们的预测服务也会读取用户画像和交叉特征。交叉特征计算是独立的一个服务,主要内容为当前Query和当前候选Doc的交叉统计后验特征,包括点击率、时长等维度,另外会进行Term扩展,将Query分词后的多个Term分别与候选Doc计算交叉特征,然后聚合形成新的特征。
此外,归并重排这部分会打印实时日志,然后产生样本,进行模型训练。
4.算法策略框架
我们的整体算法策略框架也分为三大块:第一部分是索引,这部分主要进行分级、分片的处理。
分级策略包括规则和模型,比如站内视频、长视频、新视频、模型分数较高的优先进入一级索引。
此外,我们还需要对不同的分级进行分片,分片主要按照天级、小时级、实时等生成时间窗口划分,并基于索引进行基础搜索,即召回流程,如倒排索引、向量召回等。
框架的最上方则是上层排序,包括粗排、精排、Rerank的功能。