CTR预估 论文精读(十四)--Deep Rerank: Personalized Re-ranking for Recommendation(PRM)

Deep Rerank: Personalized Re-ranking for Recommendation 论文解读

0. 论文摘要

Ranking is a core task in recommender systems, which aims at providing an ordered list of items to users. Typically, a ranking function is learned from the labeled dataset to optimize the global performance, which produces a ranking score for each individual item. However, it may be sub-optimal because the scoring function applies to each item individually and does not explicitly consider the mutual influence between items, as well as the differences of users’ preferences or intents. Therefore, we propose a personalized re-ranking model for recommender systems. The proposed re-ranking model can be easily deployed as a follow-up modular after any ranking algorithm, by directly using the existing ranking feature vectors. It directly optimizes the whole recommendation list by employing a transformer structure to efficiently encode the information of all items in the list. Specifically, the Transformer applies a self-attention mechanism that directly models the global relationships between any pair of items in the whole list. We confirm that the performance can be further improved by introducing pre-trained embedding to learn personalized encoding functions for different users. Experimental results on both offline benchmarks and real-world online e-commerce systems demonstrate the significant improvements of the proposed re-ranking model.

1. 创新点

该论文延续了阿里实用风格,其模型结构不复杂,建模思想很直接,使用 Transform 建模精排后 item-pairs 之间的相互影响,使用预训练的 Personal vector 建模 user-item 交互特征,最终在离线和线上都取得一定收益,思路方法值得借鉴学习。

Specifically, the Transformer applies a self-attention mechanism that directly models the global relationships between any pair of items in the whole list. We confirm that the performance can be further improved by introducing pre-trained embedding to learn personalized encoding functions for different users.

2. 引入重排原因

  1. 首先,精排模型没有考虑候选列表商品之间的相互影响:精排模型考虑的是 user-item 之间的打分,但是不能考虑到候选列表商品之间 item-item 之间的上下文影响,因此本文提出deep re-rank建模候选商品列表上下文影响,旨在重新得到一个考虑展示商品之间上下文影响的商品列表;

  2. 其次,不同用户对不同item之间影响的反馈都不一样:比如展示的10个商品里面有类似的商品,对于有购买某商品意图的用户,这种类似的商品如果排在一块,用户点击价格低的那个商品概率会变大。对于没有购买意图的用户,这种时候把同类商品打散可能更适合让用户去发现。所以会基于第一个的基础上映入第二个问题。

  3. 精排模型中的 pairwise, listwise 开始考虑 item pair,item list 建模,但是只是优化算是函数来更好的利用点击label信息,不能显式建模后续商品间的相互影响(rank 与 re-rank与目标不同,前者旨在学习 user-item 打分,后者尝试考虑候选商品间相互影响,进行再次排序,旨在得到一个更符合用户偏好的序列,因此说re-rank拟合rank的残差这种说法是不正确的)

3. 现有方案

  1. 使用 GRU, LSTM, Pointer Network建模候选商品之间的序列特征,缺点是并行程度低, 耗时大;
  2. 使用 解码器生成方式生成候选序列,使用 t − 1 t-1 t1 时刻的 item 产出 t t t 时刻的 item,无无法并行,并且需要 n 次推理,无法在线上使用;(n 为商品数)

4. 重排

4.1 重排建模公式

  1. LTR Loss

L = ∑ r ∈ R ℓ ( { y i , P ( y i ∣ x i ; θ ) ∣ i ∈ I r } ) \mathcal{L}=\sum_{r \in \mathcal{R}} \ell\left(\left\{y_{i}, P\left(y_{i} \mid \boldsymbol{x}_{i} ; \theta\right) \mid i \in I_{r}\right\}\right) L=rR({yi,P(yixi;θ)iIr})
R \mathcal{R} R 是推荐系统中用户请求集合, I r I_{r} Ir 是对请求 r ∈ R r \in \mathcal{R} rR 的候选商品集, x i \boldsymbol{x}_{i} xi 是item i i i 的特征空间, y i y_i yi 是 item label(click or not), P ( y i ∣ x i ; θ ) P\left(y_{i} \mid \boldsymbol{x}_{i} ; \theta\right) P(yixi;θ) 是对 item 的点击预测概率; θ \theta θ 是参数, l \mathcal{l} l 是通过 y i y_i yi P ( y i ∣ x i ; θ ) P\left(y_{i} \mid \boldsymbol{x}_{i} ; \theta\right) P(yixi;θ) 计算出来的 Loss;

  1. 本文 Rerank Loss

L = ∑ r ∈ R ℓ ( { y i , P ( y i ∣ X , P V ; θ ^ ) ∣ i ∈ S r } ) \mathcal{L}=\sum_{r \in \mathcal{R}} \ell\left(\left\{y_{i}, P\left(y_{i} \mid \boldsymbol{X}, \boldsymbol{P} \boldsymbol{V} ; \hat{\theta}\right) \mid i \in \mathcal{S}_{r}\right\}\right) L=rR({yi,P(yiX,PV;θ^)iSr})
传统LTR loss 没有建模 item pair的相互影响,re-rank 加入了候选商品列表之间的 item pair loss,引入了个性化矩阵 P V PV PV 来学习指定用户的编码器,能够建模 item-pair 之间的相互影响;

S r \mathcal{S}_{r} Sr 是排序模型得到的排序列表, θ ^ \hat{\theta} θ^ 是重排模型参数, X \boldsymbol{X} X 是精排后所有 item 的特征矩阵;

其中 PV 采用精排模型 user-item 打分最后隐层即可,作者提出预训练比较好;

4.2 Deep Re-rank 建模

4.2.1 模型结构

CTR预估 论文精读(十四)--Deep Rerank: Personalized Re-ranking for Recommendation(PRM)_第1张图片

主体模型结构主要包含输入层,编码层和输出层,其中 re-rank 输入为精排打分降序输出列表,输入为固定长度列表 S r = [ i 1 , i 2 , … , i n ] \mathcal{S}_{r}=\left[i_{1}, i_{2}, \ldots, i_{n}\right] Sr=[i1,i2,,in],则特征输入 X \boldsymbol{X} X X ∈ R n × d  feature  \boldsymbol{X} \in \mathbb{R}^{n \times d_\text { feature }} XRn×d feature  X \boldsymbol{X} X 的每行 x i x_i xi 对应 item i ∈ S i \in S iS d  feature  d_\text { feature } d feature  为每个 item 的特征。

4.2.2 输入层

Personalized Vector (PV)

PV 是个性化矩阵,采用预训练模型产生, P V ∈ R n × d p v P V \in \mathbb{R}^{n \times d_{\mathrm{pv}}} PVRn×dpv X ∈ R n × d  feature  X \in \mathbb{R}^{n \times d_\text { feature }} XRn×d feature  是原始输入特征,两者合并得到输入矩阵 E ′ ∈ R n × ( d feature  + d p v ) E^{\prime} \in \mathbb{R}^{n \times\left(d_{\text {feature }}+d_{p v}\right)} ERn×(dfeature +dpv)

E ′ = [ x i 1 ; p v i 1 x i 2 ; p v i 2 ⋯ x i n ; p v i n ] E^{\prime}=\left[\begin{array}{c} x_{i_{1}} ; p v_{i_{1}} \\ x_{i_{2}} ; p v_{i_{2}} \\ \cdots \\ x_{i_{n}} ; p v_{i_{n}} \end{array}\right] E=xi1;pvi1xi2;pvi2xin;pvin

Position Embedding(PE)

PE 为一个维度与输入特征矩阵相同的可训练矩阵, P E ∈ P E \in PE R n × ( d feature  + d p v ) \mathbb{R}^{n \times\left(d_{\text {feature }}+d_{p v}\right)} Rn×(dfeature +dpv) ,作者提出,使用一个可学习的位置向量比固定位置 embedding 效果要好:
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^{\prime \prime}=\left[\begin{array}{c} x_{i_{1}} ; p v_{i_{1}} \\ x_{i_{2}} ; p v_{i_{2}} \\ \cdots \\ x_{i_{n}} ; p v_{i_{n}} \end{array}\right]+\left[\begin{array}{c} p e_{i_{1}} \\ p e_{i_{2}} \\ \cdots \\ p e_{i_{n}} \end{array}\right] E=xi1;pvi1xi2;pvi2xin;pvin+pei1pei2pein
然后采用一个前馈神经网络做矩阵变换,将输入矩阵 E ′ ′ ∈ R n × ( d ^ feature  + d p v ) E^{\prime \prime} \in \mathbb{R}^{n \times\left(\hat{d}_{\text {feature }}+d_{p v}\right)} ERn×(d^feature +dpv) 转换到 E ∈ R n × d E \in \mathbb{R}^{n \times d} ERn×d,其中 d d d 是编码层输出维度:
E = E W E + b E \boldsymbol{E}=\boldsymbol{E} \boldsymbol{W}^{E}+b^{E} E=EWE+bE
其中 W E ∈ R ( d feature  + d p v ) × d W^{E} \in \mathbb{R}^{\left(d_{\text {feature }}+d_{p v}\right) \times d} WER(dfeature +dpv)×d 是变换矩阵, b E b^{E} bE 是一个 d d d 维矢量;

同时,结合 DIN, DIEN, DSEN, BST 这种可训练位置矩阵编码应该是一种较为可取的位置编码方案;

4.2.3 编码层

编码层作用是用于编码精排序列 item-paris 和其他信息的影响,主要包含 用户偏好 和 原始精排序列顺序;

CTR预估 论文精读(十四)--Deep Rerank: Personalized Re-ranking for Recommendation(PRM)_第2张图片

Attention Layer

作者使用Mult-head attention 建模精排原始序列 item-paris 的相互影响,
S ′ = M H ( E ) =  Concat  (  head  1 , … ,  head  h ) W O  head  i =  Attention  ( E W Q , E W K , E W V ) \begin{aligned} S^{\prime}=& M H(E)=\text { Concat }\left(\text { head }_{1}, \ldots, \text { head }_{h}\right) W^{O} \\ \text { head }_{i} &=\text { Attention }\left(E W^{Q}, E W^{K}, E W^{V}\right) \end{aligned} S= head iMH(E)= Concat ( head 1,, head h)WO= Attention (EWQ,EWK,EWV)
其中 W Q , W K , W V ∈ R d × d . W O ∈ R h d × d m o d e l \boldsymbol{W}^{Q}, \boldsymbol{W}^{K}, \boldsymbol{W}^{V} \in \mathbb{R}^{d \times d} . \boldsymbol{W}^{\boldsymbol{O}} \in \mathbb{R}^{\boldsymbol{h} d \times d_{\mathrm{model}}} WQ,WK,WVRd×d.WORhd×dmodel 是映射矩阵, h h h 是 head 个数.

Attention 采用 self-attention 标准结构:
 Attention  ( Q , K , V ) = softmax ⁡ ( Q K T d ) V \text { Attention }(Q, K, V)=\operatorname{softmax}\left(\frac{Q K^{T}}{\sqrt{d}}\right) V  Attention (Q,K,V)=softmax(d QKT)V
Feed-Forward NetworkStacking The Encoding Layer​ 同标准 Transformer 相同,但是 FFN 是 position-wise 级别;

其实,作者这里采用了原始 Transformer 建模精排序列 item-paris 之间的相互影响,在代码层面就是直接将 batch size 设置为精排序列程度 n n n,输入 batch size 为重排固定长度 n n n;

4.2.4 输出层

输出层采用 softmax 输出 P ( y i ∣ X , P V ; θ ^ ) P\left(y_{i} \mid \boldsymbol{X}, \boldsymbol{P} \boldsymbol{V} ; \hat{\theta}\right) P(yiX,PV;θ^) 作为用户对各 item 的点击概率,依据该分数进行重排得到输出,
 Score  ( i ) = P ( y i ∣ X , P V ; θ ^ ) = softmax ⁡ ( F ( N x ) W F + b F ) , i ∈ S r \text { Score }(i)=P\left(y_{i} \mid X, P V ; \hat{\theta}\right)=\operatorname{softmax}\left(F^{\left(N_{x}\right)} W^{F}+b^{F}\right), i \in \mathcal{S}_{r}  Score (i)=P(yiX,PV;θ^)=softmax(F(Nx)WF+bF),iSr
其中 F ( N x ) F^{\left(N_{x}\right)} F(Nx) N x N_{x} Nx 个 Transformer 的编码输出, W F \boldsymbol{W}^{F} WF 是可学习的映射矩阵, b F \boldsymbol{b}^{F} bF 是偏置项, n n n 是输入重排的初始序列长度;

在训练阶段,我们使用点击作为label,最小化下面损失函数
L = − ∑ r ∈ R ∑ i ∈ S r y i log ⁡ ( P ( y i ∣ X , P V ; θ ^ ) \mathcal{L}=-\sum_{r \in \mathcal{R}} \sum_{i \in S_{r}} y_{i} \log \left(P\left(y_{i} \mid \boldsymbol{X}, \boldsymbol{P} \boldsymbol{V} ; \hat{\theta}\right)\right. L=rRiSryilog(P(yiX,PV;θ^)

这个就设计模型训练的样本组织了,作者一提而过,其实反倒是最难得点;

4.2.5 PV预训练

承接 2.2.1 输入层中的个性化矩阵 PV,采用预训练得到,而非直接随机初始化在重排中学习,原因是重排的任务是修正精排任务,在重排阶段训练出的任务指定型的用户个性化表征(user-item)缺乏用户一般性偏好,因此使用一个预训练的神经网络参数用户个性化偏好矩阵PV:

CTR预估 论文精读(十四)--Deep Rerank: Personalized Re-ranking for Recommendation(PRM)_第3张图片

用户 u u u 对 item i i i 的点击概率 ( P ( y i ∣ H u , u ; θ ′ ) ) \left(P\left(y_{i} \mid \mathcal{H}_{u}, u ; \theta^{\prime}\right)\right) (P(yiHu,u;θ)) 考虑了用户 u u u 所有历史行为 ( H u ) \left(\mathcal{H}_{u}\right) (Hu) 和用户的其他特征包含性别、年龄、购买等级等;

Loss函数使用一个 point-wise 交叉熵:
L = ∑ i ∈ D ( y i log ⁡ ( P ( y i ∣ H u , u ; θ ′ ) ) + ( 1 − y i ) log ⁡ ( 1 − P ( y i ∣ H u , u ; θ ′ ) ) \begin{aligned} \mathcal{L}=\sum_{i \in \mathcal{D}} &\left(y_{i} \log \left(P\left(y_{i} \mid \mathcal{H}_{u}, u ; \theta^{\prime}\right)\right)\right. +\left(1-y_{i}\right) \log \left(1-P\left(y_{i} \mid \mathcal{H}_{u}, u ; \theta^{\prime}\right)\right) \end{aligned} L=iD(yilog(P(yiHu,u;θ))+(1yi)log(1P(yiHu,u;θ))
其中 D \mathcal{D} D 为展示给用户 u u u 的商品集, θ ′ \theta^{\prime} θ 是参数矩阵, y i y_i yi 是用户对 item i i i 的点击label,其中模型结构不限,也可以采用 FM, FFM, DeepFM, DCN等等;

将最后一层隐层作为 p v i pv_i pvi ,即用户 u u u 对 item i i i 的个性化矩阵(对应PV中的一行);

个人建议直接采用精排模型中最后隐层作为 p v i pv_i pvi

5. 实验结论

  • 切除实验证明Position embedding对提升效果很重要,侧面证实了初始序列信息的重要性,

  • 实验采用了 4 层transformer block,效果最好;再多会过拟合;

  • head数量无明显影响,作者建议只使用1个head(这点与NLP不同,因为重排阶段是建立在精排的前提上,所以重排的输入同质性是很严重的,因此多头对应的原始特征向量到不同特征子空间提升有限);

  • 预训练PV很重要,预训练模型可自行适配(DNN, DCN, DeepFM等),提升明显;

6. 个人总结

该论文延续了阿里实用风格,其模型结构不复杂,建模思想很直接,建模重排后 item-pairs 相互影响,同时引入user-item 个性化偏好信息,秉着这个思想进行建模尝试:

  • 实验结果验证使用 Transformer 建模 item-pairs 效果最好 (使用可训练 Position bias embedding);
  • 使用预训练的 PV(personal vector) 效果比直接在重排中训练效果好;

最终在离线和线上都取得一定收益,思路方法值得借鉴学习。

7. 参考文献

[1] Personalized Re-ranking for Recommendation

你可能感兴趣的:(推荐系统论文进阶,re-rank,重排,deep,rerank,ctr预估,PRM)