本文介绍的论文是《Deep Match to Rank Model for Personalized Click-Through Rate Prediction》。
论文下载地址是:https://github.com/lvze92/DMR。
本文提出了一种将协同过滤思想融入Ranking阶段CTR预估模型的模型Deep Match to Rank(简称DMR),提升了模型的个性化能力,并取得了不错的实验效果,一起来学习下。
1、背景
推荐系统通常分为两个阶段,即召回和排序阶段。在召回阶段会对用户和物品进行匹配,得到较小的一部分候选集进入到排序阶段。在召回阶段,协同过滤方法是最常用来计算用户和物品相关性的方法。在排序阶段,排序模型会对候选集的每个物品进行打分,然后选取得分最高的N个物品推荐给用户。而打分最为常用的方式是预测用户对物品的点击率。因此,点击率预估也受到了学术界和工业界众多研究者的关注。而本文也重点关注点击率预估问题。
对于点击率预估问题,个性化是提升其效果的一个重要的方面。个性化的一个重要方面就是对用户兴趣的刻画,如之前提到过的DIN、DIEN、DSIN等模型。但是这些模型忽略了建模用户和物品之间的相关性。用户和物品之间的相关性,可以直接衡量用户对目标商品的偏好强度。(下文中用户和物品的相关性,咱们用U2I相关性来表示)
表征U2I相关性,主要有基于矩阵分解和基于深度学习的方法。基于深度学习的方法,如咱们比较熟悉的Youtube的DNN召回模型。那么能否将这种类似YoutbueDNN的Deep Match的思想融入到Rank阶段的模型呢?答案是可以的,也就是本文要介绍的DMR模型(Deep Match to Rank)。
2、DMR模型介绍
DMR模型的整体结构如下:
咱们就按论文里的思路进行介绍,先介绍一下基础的模型,然后重点介绍图中的User-to-Item和Item-to-Item模块。
2.1 Base Model
先说一下输入部分,输入可以分为四部分:用户特征、用户行为特征、目标物品特征、上下文特征。
用户特征:用户ID、消费等级等,用xp表示
用户行为特征:用户交互过的物品集合,每个物品包括其物品ID、品类ID,用xb=[e1;e2;...;eT]表示。其中e1即用户交互过的第一个物品的向量,不同用户的行为长度通常不同,因此往往对所有物品对应的向量进行pooling操作。
目标物品特征:物品ID、品类ID,用xt表示
上下文特征:时间、召回方式、对应的召回评分,用xc表示
大多数输入特征是离散特征,通过Embedding的方式转换成对应的嵌入向量。其中用户行为和目标物品共用同一组Embedding来节省存储空间。
随后,将x=[xp,xb,xt,xc]输入到多层全连接网络中,中间层使用pRelu激活函数,最后一层使用sigmoid激活函数,得到点击率预估值。损失函数使用交叉熵损失:
好了,在Base模型的基础上呢,DMR进一步引入了 Item-to-Item 和 User-to-Item两个子网络。
2.2 Item-to-Item Network
Item-to-Item Network的结构如下:
Item-to-Item Network的思路基本跟DIN是相同的,首先计算用户历史行为中每个物品跟目标物品之间的相关性得分,然后基于该相关性得分对历史行为物品向量进行加权平均。相关性得分计算公式如下:
这里输入主要有三部分,分别是历史行为中第t个物品对应的向量et、第t个物品的偏置向量pt,以及目标物品向量ec。
在计算相似性之后,有三部分输出到concat层:
1)对历史行为中物品向量的加权求和:
2)所有历史行为中物品与目标物品相关性评分的求和,注意这里是softmax之前的得分,从另一个角度刻画了用户与目标物品的相关性:
3)目标物品向量。
2.3 User-to-Item Network
接下来再介绍User-to-Item Network,其结构如下:
这一部分类似于YoutubeDNN的结构:即基于用户历史行为得到用户向量表示,然后与目标物品对应的向量求内积,来表征相关性。
先来看看目标物品的向量,这里是物品ID对应的Embedding,并且单独使用了另一组物品ID的Embedding。
这里需要注意的是,除了User-to-Item Network中目标物品ID的Embedding外,其他输入部分的物品ID的Embedding都是同一组Embedding。后续实验也表明使用两组Embedding尽管增大了存储空间,但模型的表征能力更强,同时实验效果也好于仅仅把Embedding的长度扩大两倍。
用户的向量表示u仍是其历史行为中物品向量的加权求和,但与之前不同的是,这里计算相关性并没有用到目标物品向量。这里的加权我认为更多取决于偏置向量,如时间因素,那么有可能学到的事近期发生的行为具有更大的权重,时间较远的行为权重较小:
随后,用户和物品的相关性通过内积的方式得到:
我们希望r越大,代表用户与目标物品的相关性更高,但是仅仅通过反向传播方式去训练并不容易实现这一目标,同时目标物品的另一组Embedding也学习的不充分。因此在上述的基础上,增加了辅助网络(类似于DIEN)。
辅助网络的任务是基于用户的前T-1次行为,来预测用户第T次交互的物品。基于用户的向量表示u,我们很容易得到用户前T-1次行为后的向量表示uT-1,即拿前T-1次行为重复上述用户向量表示的计算过程即可。那么用户第T次交互的物品为j的概率为:
可以看到,辅助网络是一个多分类网络,为了减少计算复杂性,进行了负采样操作,因此辅助网络的损失为:
那么此时总的损失计算如下:
这里增加User-to-Item Network网络,个人感觉还带来了另一个好处,可以降该模型应用于召回阶段做召回,然后保存预测值,这样就可以直接作为一维特征用于DMR模型中,减少了DMR模型计算的耗时。
好了,整体的模型就介绍到这里了,接下来看一下具体的实验结果。
3、模型实验
这里实验主要使用了两部分的数据集,分别是阿里妈妈公开的数据集和阿里巴巴线上推荐系统日志收集到的数据集。
首先看下DMR与一些主流的CTR预估模型的对比结果:
这里主要看的是AUC指标,RI代表的是相对Base(LR模型)的提升比例。可以看到DMR的效果最好。接下来是对DMR中一些Part的实验:
可以看到,完整的DMR结构取得了最好的实验结果。
好了,本文就介绍到这里了,再次提醒下大伙,论文和对应的代码都开源了:https://github.com/lvze92/DMR,感兴趣的可以看一看~~