阿里 Re-rank Recommendation 读后感

Re-rank作为一种考虑到推荐items之间关系和影响的排序模式,近年来被越来越多的应用到推荐系统中。常规的推荐系统仅仅考虑<user, item> pair,并不会考虑items间作为一个list进行推荐互相的影响。Rerank模型将常规rank模型的输出作为输入,强化items之间的关系以及items与用户的关系进行one-more-time排序。对于不同用户来说,list中items的分布应该具有比较大的差异。

Personalized Re-ranking for Recommendation​arxiv.org

Learning a Deep Listwise Context Model for Ranking Refinement​arxiv.org

这篇paper的思路很大程度上继承了DLMC(Deep Listwise Context Model)的思路,DLMC用的是rnn方法,基于搜索的场景,本文利用大火的transormer中multi head结构去拟合item间的关系和影响,基于推荐的场景。两篇paper都强调的一点是可以无缝迁移到工业界推荐系统,因为用到的特征都是前一步rank中所用到的特征,不需要做额外的特征抽取。Transformer替换RNN的优势也是较为普遍认知的,1.工程上并行化更容易2.算法上对于远距离的item关系刻画更好。由于业务场景的不同,DLMC强调的是不同query下的特征分布是不同的,比如搜索“老友记”,那相关性相比于多样性就更重要,本文强调不同用户的意图不同对推荐list的影响,比如一个没有明显购买意图的用户,推荐的多样性就变得很重要。

Model Architecture

下图是PRM的模型结构,是一个比较传统的multi head结构,主要有input layer, encoding layer和output layer三部分组成。输入Initial List是一个精排模型输出的推荐集合,输出Re-ranked List是重排序后的结果。

structure of PRM(Personalized Re-ranking Model)

Input Layer:[公式] 是该item在精排模型时的特征, [公式] 是用户与该item的一个交叉特征,通过pre-train得到的,pre-train的方法用了一个dnn的方法,简单粗暴,如下图所示,作者在后文的实验中证明了,这种方法确实对整体的precision有一定程度提升。 [公式] 是一个位置的embedding,主要是利用精排模型产出的排名,通过实验,作者发现 [公式] 设置为trainable的效果更好一些。上述的三组embedding是输入层的组成部分。

user-item pretrain method

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

[公式]

transformer encoder

Output Layer:前边transformer出来的score做一个softmax。

Last but not the least,作者通过实验发现,各种成熟的re-rank算法都是有正向的收益的,这个很好理解,re-rank是一个增量的过程,可以起到一定list-wise的作用。整篇paper的工业界实现应该不是瓶颈,transformer也很好的解决了之前rnn的耗时问题,提供了我们一个做re-rank的思路。

发布了18 篇原创文章 · 获赞 588 · 访问量 103万+

猜你喜欢

转载自blog.csdn.net/hellozhxy/article/details/104919852