基于Pairwise策略优化的双塔召回算法模型研究

2023-08-10 02:08于庆洋
中国新通信 2023年11期
关键词:推荐系统

摘要:在推荐或广告系统中,召回阶段扮演着快速从大量的候选集中挑选出较为合适的物品Item集合,作为下一阶段精排的准入,从而起到在较为贴合用户兴趣的基础上,缓解精排的计算压力的作用,故召回阶段面临的候选集数量通常非常大,一般在几百万至上亿规模。此时,在训练召回模型时,采样便成了很重要的问题,尤其是负采样,一般情况下,训练召回模型时,会做随机负采样,由于召回模型负样本的不置信问题,采到的负样本有可能并不是真负样本,导致影响了模型的训练效果。针对此问题,本文提出了一个基于双塔模型的Pairwise训练策略,利用度量学习的思想规避召回模型负采样过程中负样本不置信的问题,不直接针对负样本判别真假,而是学习样本对之间的差距,提升模型学习精度与效率。

关键词:推荐系统;召回;双塔模型;负样本;Pairwise

一、背景介绍

推荐系统的技术阶段一般包括召回、排序和重排序。其中,召回模型是推荐系统的核心技术之一。推荐系统可以被看作一个用于人与物的匹配系统。其最终目的是通过实现千人千面,将最符合用户兴趣的物品展示给用户,并按照用户偏好对每个物品进行匹配分值排序。为了实现这一目的,可以将推荐系统抽象为如下的框架:用户请求推荐引擎时,使用一个排序算法将所有的物品与该用户计算出一个匹配分值,然后按照该分值从高到低在页面上展示物品。然而,推荐系统所面临的候选集通常规模非常大,从几百万至亿级别不等,如果对每个物品都进行计算,系统的性能无法满足线上要求。因此引入召回模型,快速从海量候选集中挑选出适量与用户兴趣较为匹配的物品集,然后將其送入排序算法进行更加精确的匹配计算。

当下,抛开规则策略型的召回技术,业界共识的召回技术到目前为止已发展了两代。

第一代:启发式规则召回技术,例如ItemCF 召回技术,召回与用户历史行为过的物品相似Item。

该召回技术优点为实现简单,性能也较为高效。

两阶段实现:

①从用户的历史行为(点击、收藏、点赞等)中获取触发Item。

②在候选物品集中检索与触发物品最近邻的Item。 物品之间的相似度列表可以离线预先计算好存入类Key-Value数据库,线上直接获取结果。

此类召回方法有以下缺点:

①模型较为简单,精度有限。

②每次触发均为用户历史行为过的物品,易造成马太效应,模型泛化能力不足。

第一阶段和第二阶段之间有明显差距,不是联合训练,影响最终效果。

第二代:针对第一代召回技术的不足,发展出了第二代召回模型范式:

基于 Embedding 的向量化检索模型。分别将用户和物品用Embedding向量进行表征,用向量之间余弦距离的大小表示用户与物品的匹配程度,配合快速向量化最近邻检索ANN方法,既做到了泛化能力强,又兼顾了召回模型的高性能需求。

二、双塔模型框架

上述提到的基于Embedding 的向量化检索模型,目前业界主流实现为双塔模型,结构如图1。

可以看出,双塔模型其实是一套框架,左侧塔和右侧塔可以分别使用不同的神经网络结构进行处理,只要在最顶端的两塔的输出层交互时,向量保持维度一致即可。

训练阶段:分别将用户侧和物品侧原始特征经过特征处理、离散化等操作后,对特征进行Embedding化,拼接Embedding特征向量后分别经过几层全连接神经网络(激活函数可以是ReLu、SeLu等),对输入的特征信息进行编码表征。最终左右两个塔分别输出用户Embedding向量U_Vector与物品Embedding向量I_Vector,并将二者拼接后送入单层全连接神经网络,输出层的激活函数使用Sigmoid方便进行概率输出Y_Prob,最后用输出的Y_Prob与真实的Label(该用户对该物品是否真的有行为)做交叉熵形成损失函数,再利用反向传播算法更新双塔模型的网络参数,直到模型收敛。

推理阶段:第一阶段的训练完毕后,左右两个塔的参数均已经固化下来。推理时,当收到用户请求时,根据用户画像的存储,可实时获取到该用户的原始特征,将特征喂入左侧已经训练好的塔,就可在塔的顶端获取到该用户最终的输出向量U_Vector。物品向量的获取和用户侧不太一样:由于物品侧的特征一般均为静态属性,故不需要线上实时获取物品Item的输出Embedding向量,只需要在每次双塔模型训练完毕后,将所有候选集中的物品特征全部取出,拼接后喂入右侧的物品塔,再经过几层全连接神经网络,顶端输出物品向量I_Vector,然后将批量获取到的物品向量存入Faiss等快速向量化最近邻ANN检索数据库工具中,当线上实时获取到用户向量U_Vector时,查找Faiss等检索数据库,快速找到与该用户向量U_Vector最近邻的TopK个物品向量,达到召回目的,生成精排候选集。

三、召回模型样本偏差问题

在机器/深度学习模型领域中,有一个重要原则:训练与推理样本分布要保持一致,否则会影响模型效果。理解下这个问题,若训练模型的样本集分布为A、B、C这三类,但当模型训练完成,在使用模型进行推理时,线上均为D、E两大类待预测样本,显然,模型在训练时从未见过这两类样本,线上的推理效果可想而知。

这个问题存在于双塔召回模型中。分析一下,通常情况下,召回模型的采样方法和精排模型相同,正样本为用户行为点击过的样本,负样本为曝光未点击样本。这种采样方式在精排模型中没有问题,但是在召回模型中有较大的问题,原因如下:由于召回模型在训练时,选取的负样本均为“曝光未点击”样本,而模型在线上进行召回推理时,面对的是海量的候选物品集合,很多物品Item从未给用户展示,因此明显会产生上述的样本偏差问题,从而极大地影响召回模型效果。

四、双塔模型随机负采样

采用随机负采样的方式来解决召回模型的样本偏差问题是一种有效的解决方法。随机负采样的方式可以使得负采样的分布更加均匀,从而减轻样本偏差的问题。但这种方式也带来了一个新的问题,即负样本的置信问题。由于随机负采样的方式会导致大量不相关的物品出现在负样本中,这些负样本对模型训练的效果会产生负面影响,从而导致模型的效果下降。因此,在使用随机负采样的方式时,需要采取一些策略,如降低随机负采样的采样率、对负样本进行过滤、引入其他的策略等,从而保证采样的负样本的质量。 经过仔细分析,上述提出的随机负采样方法虽然规避了样本偏差问题,但是存在另外一个问题:由于负样本一部分是来自全物品库的随机采样,这其中包含了很多从未给用户曝光展示过的物品。然而,按照这种采样方式,会将很多这类从未给用户曝光过的物品Item当成负样本来引导模型参数的训练。很明显,若某一物品从未展示给某用户,就无法判断用户对该物品的喜好,也就无法下定论说此物品Item对该用户来说是负样本。因此,按照全物品库随机负采样的方式,将会导致训练时很多喂入双塔召回模型的负样本其实是存在置信度缺陷的。为了解决此问题,本文提出核心观点:基于度量学习的Pairwise训练策略,以优化双塔召回模型。本方法针对上述负样本不置信问题,结合度量学习与Pairwise训练方法,以用户为衡量标准,学习样本之间与用户的匹配程度差距,而非直接用单一的正负样本进行学习。这样,既达到将双塔模型参数学习到最佳收敛状态,又能规避由负样本不置信导致的对模型参数学习造成的负面影响。

五、度量学习与Pairwise训练

(一)度量学习

度量学习也就是常说的相似度学习。距离测度学习的目的即为了衡量样本之间的相近程度,而这也正是模式识别的核心问题之一。大量的机器学习方法,比如K近邻、支持向量机、径向基函数网络等分类方法以及K-Means聚類方法,还有一些基于图的方法,其性能好坏都主要有样本之间的相似度量方法的选择决定。

(二)Pairwise方法

基于双塔的Pairwise训练模型结构如图2。所谓的Pair,指的是样本对,在这里,一个Pair样本对为:这里的Item+指的是用户点击过的Item,Item-指的是用户未点击过的Item,从而将模型的优化目标转化为:针对同一个User,Item+与他的匹配程度,要远远高于Item?与他的匹配程度。所以Loss中没有具体的正负Label,而存在“的匹配分”与“的匹配分”相互比较的形式。

六、基于Pairwise度量学习的双塔召回模型实现

(一)基于Sampled Softmax Loss实现

为了实现基于上述的双塔模型Pairwise训练方式,有几种Loss可供选择。

一种是采样的Softmax Loss,即:Sampled Softmax Loss。

这种Loss将召回看成一个超大规模的多分类问题,优化的目标是使,User选中Item+的概率最高。

User选中Item+的概率:

(1)

其中vu是User Embedding,vi代表Item Embedding,|I|代表整个Item候选集。

为使以上概率达到最大,要求分子,即User与Item+的匹配度,尽可能大;而分母,即User与除Item+之外的所有Item的匹配度之和,尽可能小。体现出上文所说的“不与Label比较,而是匹配得分相互比较”的特点。

但是,由于计算分配牵扯到整个候选Item集合|I|,计算量大到不现实。所以实际优化的是Sampled Softmax Loss,即从|I|中随机采样若干Item,近似代替计算完整的分母。

(2)

(二)基于Hinge Loss实现

优化目标是:User与正样本Item的匹配程度,要比User与负样本Item的匹配程度高出一定的阈值。

(0,margin-user·item++user·item-)      (3)

(三)基于BPR Loss实现

上文中提到的 Hinge loss有两个不足:

①超参数Margin需要调节,且不同业务和数据场景,超参数Margin的选择对模型的学习有非常大的影响,导致训练不稳定。

②仔细观察Hinge Loss不拿发现,若使用Hinge Loss,一旦两个样本之间匹配程度很相近,Loss便无法捕捉到。

因此本文主要使用如下的BPR Loss实现。

其思想是计算“给User召回时,将Item+排在Item-前面的概率”。

pCorrectOrder=sigmoid(user·item--user·item+)        (4)

因为的Ground-Truth Label永远是1,所以将pCorrectOrder喂入二分类交叉熵损失(Binary Cross-Entropy Loss)的公式,就有:

LBPR=-log(pCorrectOrder)=log(1+exp(user·item--user·item+))    (5)

七、实验结论

使用同一线上数据做A/B实验,分别采用原始的双塔召回模型与引入度量学习Pairwise的双塔召回模型,评价指标采用离线准确率、线上点击率、单路召回占比。对比结果如表1所示。结果表明:①引入度量学习Pairwise的双塔召回模型,无论是离线准确率、线上点击率均有较大幅度提升,充分说明了引入Pairwise度量学习后,对模型的训练效果有较大的正面影响。②引入Pairwise度量学习策略方法后,该模型的单路召回占比相较于随机负采样而言,也有较大幅度提升,表明该方法对模型的泛化性也有较大幅度的提升,有效地缓解了召回的马太效应问题。

八、结束语

本文采用将Pairwise与度量学习同时引入双塔召回模型,以解决随机负采样造成的负样本不置信度高和模型泛化能力差的问题。通过真实的线上A/B实验验证了该方法的有效性和可行性,对智能推荐召回系统的研究具有重要意义。

作者单位:于庆洋 伊利集团

参  考  文  献

[1] Jui-Ting Huang. Embedding-based Retrieval in Facebook Search, KDD 2020,Facebook.

猜你喜欢
推荐系统
数据挖掘在选课推荐中的研究
基于用户偏好的信任网络随机游走推荐模型
基于个性化的协同过滤图书推荐算法研究
个性化推荐系统关键算法探讨
浅谈Mahout在个性化推荐系统中的应用
关于协同过滤推荐算法的研究文献综述
一种基于自适应近邻选择的协同过滤推荐算法
UGC标签推荐系统的一种新的标签清理方法
网上商品推荐系统设计研究
基于Mahout分布式协同过滤推荐算法分析与实现