推荐系统个性化重排序

facf41ffa2eb78913b0b4aa4290e4ce5.png

本文是阿里巴巴团队在2019 RecSys上发表的关于推荐系统中重排序的算法,论文标题为《Personalized Re-ranking for Recommendation》,论文地址:https://arxiv.org/pdf/1904.06813.pdf

1

前言

推荐系统分为4个步骤:召回、粗排、精排、和重排序。重排阶段是整个流程中的最后一环。

24ae2ff45d1386ecdf1bf724c7ea5df5.jpeg

精排模型之后为啥还要进行重排序呢?主要是因为:(1)精排模型是基于Pointwise的方式进行Item点击率预估的,未考虑展现Item之间的关系;(2)用户对 “展示Item互相影响” 的反馈行为不一致,推荐系统的重排序是针对于用户的,取决于用户的偏好和意图。对于一个价格敏感的用户,在重排序模型中,“价格”特征之间的交互作用应该更为重要。典型的全局Encoding Function可能不是最优的,因为它忽略了每个用户的特征分布之间的差异。例如,当用户关注价格比较时,具有不同价格的类似项目往往会在列表中更加聚集,用户比较倾向于点击价格更便宜的商品。当用户没有明显的购买意向时,推荐列表中的商品往往需要多样化,更有助于用户发现自己感兴趣的商品。

2

原理介绍

本文主要创新点是利用大火的Transormer中Multi-head结构去拟合Item间的关系和影响,主要框架如下图所示:

17204d25355bc8e8e5cb36da8d420824.png

主要有Input Layer, Encoding Layer和Output Layer三部分组成。输入Initial List是一个精排模型输出的推荐集合,输出Re-ranked List是重排序后的结果。

Input Layer:

(1)  是该Item在精排模型时的特征。

(2)  是用户与该Item的一个交叉特征,它通过一个DNN的方法Pre-train得到的,如下图所示,作者在后文的实验中证明了,这种方法确实对整体的Precision有一定程度提升。

efca9a5ff9eaa6067387105f4223af5a.png

(3)  是一个位置的Embedding,是利用精排模型产出的排名,通过实验,作者发现   设置为Trainable的效果更好一些。上述的三组Embedding是输入层的组成部分。

基于(1)、(2)、(3)的特征和Embedding,拼接生成一个输入数据  ,再使用一个前向神经网络将  转化为最终的输入向量  ,公式表示如下:

5f4b7ef5f106aa57fc7edf2ac869b3d3.png

其中:

Encoding Layer:

Encoding Layer利用Transformer中Self-attention结构,实现任意两个Item的交叉从而获得他们互相间的影响。Encoding Layer就是一个传统的Transformer结构,Q、K、V都是同一个Matrix,如下图所示。

其中:

 
是多头数量

362327bb3f87fd3f5a80964bfb6ebb55.png

Output Layer:

输出层使用Softmax输出一个Score列表,根据Score就可以实现重排。具体来说, 

outside_default.png

其中 :outside_default.png 是Transformer部分的输出。对应的损失函数为:

outside_default.png

其中: outside_default.png 是所有用户的请求的集合,即保证重排后的列表尽可能的符合每个用户的需求。

讨论:

Last but not the least,作者通过实验发现,各种成熟的Re-rank算法都是有正向的收益的,这个很好理解,Re-rank是一个增量的过程,可以起到一定Listwise的作用。

基于文章的介绍,感觉Rank和Re-rank两个步骤的数据特征和标签相似,所以本论文中的Re-ranks是采用Transformer结构的模型学习Rank的残差?

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值