大众点评搜索基于知识图谱的深度学习排序实践

搜索是大众点评App上用户进行信息查找的最大入口,是连接用户和信息的重要纽带。而用户搜索的方式和场景非常多样,并且由于对接业务种类多,流量差异大,为大众点评搜索(下文简称点评搜索)带来了巨大的挑战,具体体现在如下几个方面:

搜索排序问题在机器学习领域有一个单独的分支,LearningtoRank(L2R)。主要分类如下:

在排序模型方面,点评搜索也经历了业界比较普遍的迭代过程:从早期的线性模型LR,到引入自动二阶交叉特征的FM和FFM,到非线性树模型GBDT和GBDT+LR,到最近全面迁移至大规模深度学习排序模型。下面先简单介绍下传统机器学习模型(LR、FM、GBDT)的应用和优缺点,然后详细介绍深度模型的探索实践过程。

随着业务的发展,在传统模型上取得指标收益变得愈发困难。同时业务的复杂性要求我们引入海量用户历史数据,超大规模知识图谱特征等多维度信息源,以实现精准个性化的排序。因此我们从2018年下半年开始,全力推进L2核心排序层的主模型迁移至深度学习排序模型。深度模型优势体现在如下几个方面:

下图是我们基于Google提出的Wide&Deep模型搭建的网络结构[2]。其中Wide部分输入的是LR、GBDT阶段常用的一些细粒度统计特征。通过较长周期统计的高频行为特征,能够提供很好的记忆能力。Deep部分通过深层的神经网络学习Low-Order、高纬度稀疏的Categorical型特征,拟合样本中的长尾部分,发现新的特征组合,提高模型的泛化能力。同时对于文本、头图等传统机器学习模型难以刻画的特征,我们可以通过End-to-End的方式,利用相应的子网络模型进行预处理表示,然后进行融合学习。

深度学习的横空出世,将算法工程师从很多人工挖掘和组合特征的事情中解放出来。甚至有一种论调,专做特征工程的算法工程师可能面临着失业的风险。但是深度学习的自动特征学习目前主要集中体现在CV领域,CV领域的特征数据是图片的像素点——稠密的低阶特征,深度学习通过卷积层这个强力工具,可以自动对低阶特征进行组合和变换,相比之前人工定义的图像特征从效果上来说确实更加显著。在NLP领域因为Transformer的出现,在自动特征挖掘上也有了长足的进步,BERT利用Transformer在多个NLPTask中取得了State-of-The-Art的效果。

但是对于CTR预估和排序学习的领域,目前深度学习尚未在自动特征挖掘上对人工特征工程形成碾压之势,因此人工特征工程依然很重要。当然,深度学习在特征工程上与传统模型的特征工程也存在着一些区别,我们的工作主要集中在如下几个方面。

深度学习最大的魅力在于其强大的特征表征能力,在点评搜索场景下,我们有海量的用户行为数据,有丰富的商户UGC信息以及美团大脑提供的多维度细粒度标签数据。我们利用深度学习将这些信息Embedding到多个向量空间中,通过Embedding去表征用户的个性化偏好和商户的精准画像。同时向量化的Embedding也便于深度模型进一步的泛化、组合以及进行相似度的计算。

用户行为序列(搜索词序列、点击商户序列、筛选行为序列)包含了用户丰富的偏好信息。例如用户筛选了“距离优先”时,我们能够知道当前用户很有可能是一个即时消费的场景,并且对距离较为敏感。行为序列特征一般有如下图所示的三种接入方式:

一种更常见的刻画用户偏好的方式,是直接将用户ID经过Embedding后作为特征接入到模型中,但是最后上线的效果却不尽如人意。通过分析用户的行为数据,我们发现相当一部分用户ID的行为数据较为稀疏,导致用户ID的Embedding没有充分收敛,未能充分刻画用户的偏好信息。

如上图所示,将用户画像特征和行为特征进行离散分桶,拼接特征名和所属桶号,得到的聚类ID为:US_lt1_pn3_pg3_r3_5s4_c2_b1_bd2_bt2_nu3。

我们也采取了类似Airbnb的方案,稀疏性的问题得到了很好的解决,并且这样做还获得了一些额外的收益。大众点评作为一个本地化的生活信息服务平台,大部分用户的行为都集中自己的常驻地,导致用户到达一个新地方时,排序个性化明显不足。通过这种聚类的方式,将异地有相同行为的用户聚集在一起,也能解决一部分跨站的个性化问题。

商户Embedding除了可以直接将商户ID加入模型中之外,美团大脑也利用深度学习技术对UGC进行大量挖掘,对商家的口味、特色等细粒度情感进行充分刻画,例如下图所示的“好停车”、“菜品精致”、“愿意再次光顾”等标签。

这些信息与单纯的商户星级、点评数相比,刻画的角度更多,粒度也更细。我们将这些标签也进行Embedding并输入到模型中:

在我们的深度学习排序模型中,除了Embedding特征,也存在大量Query、Shop和用户维度的强记忆特征,能够很快收敛。而Embedding特征是更为稀疏的弱特征,收敛速度较慢,为了加速Embedding特征的收敛,我们尝试了如下几种方案:

图片在搜索结果页中占据了很大的展示面积,图片质量的好坏会直接影响用户的体验和点击,而点评商户首图来自于商户和用户上传的图片,质量参差不齐。因此,图片特征也是排序模型中较为重要的一类。目前点评搜索主要用了以下几类图片特征:

通常模型的预测目标与业务指标总会存在一些Gap。如果模型的预测目标越贴近业务目标,越能保证模型优化的同时业务指标也能够有相应的提升;反之则会出现模型离线指标提升,但线上关键业务指标提升不明显,甚至出现负向的问题。工业届大部分深度学习排序采用Pointwise的LogLoss作为损失函数,与搜索业务指标有较大的Gap。体现在如下两个方面:

基于上述理由,我们对于深度学习模型的损失函数进行了优化。

为了让排序模型的优化目标尽量贴近搜索业务指标,需要按照Query计算损失,且不同位置的样本具有不同的权重。搜索系统常用的指标NDCG(NormalizedDiscountedCumulativeGain)相较于LogLoss显然更贴近搜索业务的要求,NDCG计算公式如下:

问题在于NDCG是一个处处非平滑的函数,直接以它为目标函数进行优化是不可行的。LambdaRank提供了一种思路:绕过目标函数本身,直接构造一个特殊的梯度,按照梯度的方向修正模型参数,最终能达到拟合NDCG的方法[6]。因此,如果我们能将该梯度通过深度网络进行反向传播,则能训练一个优化NDCG的深度网络,该梯度我们称之为Lambda梯度,通过该梯度构造出的深度学习网络称之为LambdaDNN。

到目前为止,损失函数的计算过程中并未考虑样本所在的位置信息。因此进一步对梯度进行改造,考虑Doci和Docj交换位置时的NDCG值变化,下式即为前述的Lambda梯度。可以证明,通过此种方式构造出来的梯度经过迭代更新,最终可以达到优化NDCG的目的。

我们利用TensorFlow分布式框架训练LambdaDNN模型。如前文所述,Lambda梯度需要对同Query下的样本进行计算,但是正常情况下所有的样本是随机Shuffle到各个Worker的。因此我们需要对样本进行预处理:

为了提升训练效率,我们与基础研发平台数据平台中心紧密协同,一起探索并验证了多项优化操作:

整体下来,对于30亿左右的样本量、上亿级别的特征维度,一轮迭代大概在半小时内完成。适当的增加并行计算的资源,可以达到分钟级的训练任务。

NDCG的计算公式中,折损的权重是随着位置呈指数变化的。然而实际曝光点击率随位置变化的曲线与NDCG的理论折损值存在着较大的差异。

对于移动端的场景来说,用户在下拉滑动列表进行浏览时,视觉的焦点会随着滑屏、翻页而发生变动。例如用户翻到第二页时,往往会重新聚焦,因此,会发现第二页头部的曝光点击率实际上是高于第一页尾部位置的。我们尝试了两种方案去微调NDCG中的指数位置折损:

经过上述对NDCG计算改造训练出的LambdaDNN模型,相较Base树模型和PointwiseDNN模型,在业务指标上有了非常显著的提升。

Lambda梯度除了与DNN网络相结合外,事实上可以与绝大部分常见的网络结构相结合。为了进一步学习到更多交叉特征,我们在LambdaDNN的基础上分别尝试了LambdaDeepFM和LambdaDCN网络;其中DCN网络是一种加入Cross的并行网络结构,交叉的网络每一层的输出特征与第一层的原始输入特征进行显性的两两交叉,相当于每一层学习特征交叉的映射去拟合层之间的残差。

离线的对比实验表明,Lambda梯度与DCN网络结合之后充分发挥了DCN网络的特点,简洁的多项式交叉设计有效地提升模型的训练效果。NDCG指标对比效果如下图所示:

深度学习排序模型虽然给业务指标带来了大幅度的提升,但由于深度学习模型的“黑盒属性”导致了巨大的解释性成本,也给搜索业务带来了一些问题:

这些问题都会潜在带来一些用户无法理解的排序结果。我们需要对深度排序模型清晰地诊断并解释。

基于Lime解释器的思想,我们开发了一套深度模型解释器工具——雅典娜系统。目前雅典娜系统支持两种工作模式,Pairwise和Listwise模式:

2018年下半年,点评搜索完成了从树模型到大规模深度学习排序模型的全面升级。团队在深度学习特征工程、模型结构、优化目标以及工程实践上都进行了一些探索,在核心指标上取得了较为显著的收益。当然,未来依然有不少可以探索的点。

在特征层面,大量知识图谱提供的标签信息尚未充分挖掘。从使用方式上看,简单以文本标签的形式接入,损失了知识图谱的结构信息,因此,GraphEmbedding也是未来需要尝试的方向。同时团队也会利用BERT在Query和商户文本的深层语义表达上做一些工作。

模型结构层面,目前线上依然以全连接的DNN网络结构为主,但DNN网络结构在低秩数据的学习上不如DeepFM和DCN。目前LambdaDeepFM和LambdaDCN在离线上已经取得了收益,未来会在网络结构上做进一步优化。

THE END
1.有关循环神经网络的详细内容- 循环神经网络是一类用于处理序列数据的神经网络。与传统的前馈神经网络不同,RNN具有循环连接,能够对序列中的历史信息进行记忆和利用。它的神经元不仅接收当前输入,还接收来自上一时刻的隐藏状态作为输入,这种结构使得它在处理具有时间序列或序列依赖关系的数据时非常有效。 https://blog.csdn.net/m0_63243562/article/details/144358010
2.机器学习——神经网络与深度学习:从基础到应用神经网络是一类仿生算法,通过连接不同的节点(即神经元),实现信息的传递和处理。每个神经元都能接收多个输入信号,经过加权求和后通过激活函数产生输出。神经网络最早于20世纪40年代提出,但直到深度学习技术兴起,才得以广泛应用。https://cloud.tencent.com/developer/article/2456527
3.科学网—[转载]群视角下的多智能体强化学习方法综述该类问题的研究是为了帮助智能体之间达成合作交流或竞争的目的,在自主学习的基础上,增加可交流模块,学习何时交流、如何交流等。此部分工作通常考虑部分可观环境中的一组协作智能体,其中智能体需要通过信息交互来最大化它们的联合回报。Foerster等人[22]提出了RIAL和DIAL算法,两种方法都是利用神经网络拟合值函数以及智能体https://blog.sciencenet.cn/home.php?mod=space&uid=3472670&do=blog&id=1422698
4.2020届计算机科学方向毕业设计(论文)阶段性汇报本次汇报将主要更新建图算法设计,深度学习模型设计方案、以及在两个关系抽取数据集上的初步实验进展;在训练调优方向,稳定整体训练过程并减少数据分布不平衡带来的影响,提升模型整体表现;继续探索针对知识图谱子图的图神经网络更新策略,利用好关系类型在三元组表征方式中的信息,高效挖掘高阶的结构化关系知识。 https://zhiyuan.sjtu.edu.cn/html/zhiyuan/announcement_view.php?id=3709
5.强化学习笔记(1.0)【3】另一种分类方式,在线学习和离线学习 在线学习:本人在场,本人边玩边学习(on-policy)比如:Sarsa 离线学习:本人可以不在场,本人或者其他人玩,不必边玩边学习(off-policy) Sarsa--在线学习 Q learning,Deep-Q-Network--离线学习 3.为什么要用强化学习 强化学习(Reinforcement Learning)是一个机器学习大家族的分https://www.ctyun.cn/zhishi/p-419744
6.融合用户属性信息的冷启动推荐算法AET在离线训练时,首先使用用户的历史评分数据做矩阵分解,分析用户和商品的潜在语义,可以视作用户的潜在兴趣和商品的潜在用途。然后使用用户的属性数据(如性别、年龄、城市等)和上述提取的用户潜在兴趣训练神经网络。 在线给出推荐预测时,使用上文训练好的神经网络,将目标用户的属性数据映射到用户的潜在兴趣向量(predicted prhttp://www.chinaaet.com/article/3000073409
7.强化学习在线(Online): 智能体在与环境交互的过程中学习。 4. 强化学习的常用算法 Q-learning: 一种无模型、基于价值的算法,使用 Q 函数来估计状态-动作对的价值。 SARSA: 与 Q-learning 类似,但使用当前策略进行学习。 Deep Q-learning: 将 Q-learning 与深度神经网络结合,能够处理高维状态空间。 https://www.jianshu.com/p/d7e03db8d9aa
8.ICLR2022微软亚洲研究院深度学习领域最新研究成果一览在进入下一层前,研究员们会减去本层中产生的周期分量和回看分量,从而鼓励后续的神经网络层聚焦于尚未展开的周期性依赖。按照这样的模式堆叠 N 层就构成了实验涵盖了在线以及离线强化学习的不同情况,均验证了 VLOG 的良好表现。 此外,研究员们还开源了文中使用的麻将强化学习环境和对应的离线强化学习数据集,来https://www.msra.cn/zh-cn/news/features/iclr-2022
9.SLAM算法解析:抓住视觉SLAM难点,了解技术发展大趋势上一届国际计算机视觉大会ICCV,成为了深度学习技术的主场,但在我们宣布卷积神经网络的全面胜利之前,让我们先看看计算机视觉的,非学习几何方面的进展如何。同步定位与地图构建可以说是机器人学领域最重要的算法之一,在计算机视觉和机器人研究社区完成了一些开创性的工作。本文将总结来自 ICCV 实时 SLAM 的未来研讨会的要点https://auto.vogel.com.cn/c/2021-09-28/1135866.shtml