Personalized Re-ranking for Recommendation

总结

先用rank模型进行rank init,然后用 item emb; user emb + position emb得到输入向量,再transformer,再softmax输出

Personalized Re-ranking for Recommendation_第1张图片

细节

除了考虑物品,还要考虑user-item, item pair之间的特征

input-encoding-output

input layer
用旧rank模型给出一个序列 S = [ i 1 , i 2 , … , i n ] \mathcal{S} = [i_1, i_2, \dots, i_n] S=[i1,i2,,in]

对item x,加上一个user-specific feature p v pv pv,concat起来得到新的item embedding
E ′ = [ x i 1 ; p v i 1 x i 2 ; p v i 2 … x i n ; p v i n ] E' = \begin{bmatrix} x_{i_1} ; & pv_{i_1} \\ x_{i_2} ; & pv_{i_2} \\ \dots \\ x_{i_n} ; & pv_{i_n} \end{bmatrix} E=xi1;xi2;xin;pvi1pvi2pvin
再加上position embedding/pe,有:
E ′ ′ = [ x i 1 ; p v i 1 x i 2 ; p v i 2 … x i n ; p v i n ] + [ p e i 1 p e i 2 … p e i n ] E^{''} = \begin{bmatrix} x_{i_1} ; & pv_{i_1} \\ x_{i_2} ; & pv_{i_2} \\ \dots \\ x_{i_n} ; & pv_{i_n} \end{bmatrix} + \begin{bmatrix} pe_{i_1} \\ pe_{i_2} \\ \dots \\ pe_{i_n} \end{bmatrix} E=xi1;xi2;xin;pvi1pvi2pvin+pei1pei2pein
再加一个dnn做下投影

encoding layer
transformer+ffn,其中transformer用的是multi-head attention,stack了多层

output layer
linear layer + softmax

user emb学习
user emb是pre-trained model,用了点击日志,架构:
Personalized Re-ranking for Recommendation_第2张图片
其中: H u H_u Hu是用户侧的信息,包含gender, age等一次性信息,以及点击日志等长期行为信息
loss用了交叉熵损失
使用的sigmoid前一层的hidden layer

实验

训练阶段用的是被点击的样本,loss取了交叉熵

dataset

  1. Yahoo Letor dataset:http://webscope.sandbox.yahoo.com
  2. rerank:https://github.com/rank2rec/rerank

baseline

  1. L2R:svmrank, lambdaMart, dnn-based L2r
  2. rerank:DLCM

评估指标

  1. precision@k
  2. map@k

你可能感兴趣的:(机器学习,transformer,深度学习,机器学习)