GRN:基于上下文感知的生成式重排序网络
GRN通过上下文感知的评估器和生成器,有效解决了传统重排序方法忽略上下文信息的问题。实验证明其在离线和在线场景中均具有显著优势。
摘要
本文详细解析阿里巴巴团队发表于2021年的论文《GRN: Generative Rerank Network for Context-wise Recommendation》。该论文提出了一种基于上下文感知的生成式重排序网络(GRN),通过双向LSTM(Bi-LSTM)和自注意力机制建模上下文信息,并结合指针网络生成最优的重排序列表。本文将从问题背景、模型创新、公式解析、实验验证等方面展开深入解读。
一、问题背景与动机
1.1 传统重排序方法的局限性
在推荐系统中,重排序(Reranking)是推荐流程的最后一步,旨在对初始排序列表进行优化,生成最终推荐列表以满足用户需求。传统重排序方法通常基于贪心策略,通过点对点(Point-wise)或列表对列表(List-wise)模型对候选物品进行评分,然后按分数高低进行排序。然而,这种方法存在以下问题:
- 忽略物品间的相互影响:最终推荐列表中的物品之间存在复杂的上下文关系,贪心策略无法捕捉这些关系。
- 上下文变化导致预测不准确:重排序后,物品的上下文环境发生变化,导致原本的评分预测失效。
1.2 上下文感知重排序的意义
上下文感知重排序的核心思想是建模最终推荐列表中物品间的上下文关系,从而更准确地预测用户对物品的交互概率(如点击率、转化率)。通过引入上下文信息,重排序模型能够更好地捕捉用户意图的演变和物品间的相互影响,生成更优的推荐列表。
二、模型创新点
2.1 核心贡献
- 上下文感知的评估器(Evaluator):通过双向LSTM和自注意力机制建模最终推荐列表中的上下文信息,准确预测物品的交互概率。
- 生成器(Generator):基于GRU和指针网络,逐步从初始排序列表中选择物品,生成最终推荐列表。
- 两阶段训练策略:先训练评估器,再通过策略梯度优化生成器,确保生成器在评估器的指导下生成最优的重排序列表。
- 显著性能提升:在公开数据集和淘宝实际场景中的实验表明,GRN在点击率(CTR)和收入(GMV)等指标上显著优于现有方法。
三、模型架构与公式解析
3.1 整体架构
GRN模型由三部分组成:
- 评估器(Evaluator):通过双向LSTM和自注意力机制建模最终推荐列表中的上下文信息,预测物品的交互概率。
- 生成器(Generator):基于GRU和指针网络,逐步从初始排序列表中选择物品,生成最终推荐列表。
- 训练过程:先通过交叉熵损失训练评估器,再通过策略梯度优化生成器。
3.2 关键公式解析
公式1:双向LSTM的前向计算
i t = σ ( W x i x 0 t + W h i h t − 1 + W c i c t − 1 + b i ) f t = σ ( W x f x 0 t + W h f h t − 1 + W c f c t − 1 + b f ) c t = f t ⊙ c t − 1 + i t ⊙ tanh ( W x c x 0 t + W h c h t − 1 + b c ) o t = σ ( W x o x 0 t + W h o h t − 1 + W c o c t + b o ) h t → = o t ⊙ tanh ( c t ) \begin{split} \mathbf{i}_{t} &= \sigma(\mathbf{W}_{xi}\mathbf{x}_{0}^{t} + \mathbf{W}_{hi}\mathbf{h}_{t-1} + \mathbf{W}_{ci}\mathbf{c}_{t-1} + \mathbf{b}_{i}) \\ \mathbf{f}_{t} &= \sigma(\mathbf{W}_{xf}\mathbf{x}_{0}^{t} + \mathbf{W}_{hf}\mathbf{h}_{t-1} + \mathbf{W}_{cf}\mathbf{c}_{t-1} + \mathbf{b}_{f}) \\ \mathbf{c}_{t} &= \mathbf{f}_{t} \odot \mathbf{c}_{t-1} + \mathbf{i}_{t} \odot \tanh(\mathbf{W}_{xc}\mathbf{x}_{0}^{t} + \mathbf{W}_{hc}\mathbf{h}_{t-1} + \mathbf{b}_{c}) \\ \mathbf{o}_{t} &= \sigma(\mathbf{W}_{xo}\mathbf{x}_{0}^{t} + \mathbf{W}_{ho}\mathbf{h}_{t-1} + \mathbf{W}_{co}\mathbf{c}_{t} + \mathbf{b}_{o}) \\ \overrightarrow{\mathbf{h}_{t}} &= \mathbf{o}_{t} \odot \tanh(\mathbf{c}_{t}) \end{split} itftctotht=σ(Wxix0t+Whiht−1+Wcict−1+bi)=σ(Wxfx0t+Whfht−1+Wcfct−1+bf)=ft⊙ct−1+it⊙tanh(Wxcx0t+Whcht−1+bc)=σ(Wxox0t+Whoht−1+Wcoct+bo)=ot⊙tanh(ct)
- 符号解释:
- x 0 t \mathbf{x}_{0}^{t} x0t:第 t t t个物品的特征向量。
- h t − 1 \mathbf{h}_{t-1} ht−1:前一时刻的隐藏状态。
- c t − 1 \mathbf{c}_{t-1} ct−1:前一时刻的记忆单元状态。
- i t \mathbf{i}_{t} it、 f t \mathbf{f}_{t} ft、 o t \mathbf{o}_{t} ot:输入门、遗忘门、输出门。
- σ ( ⋅ ) \sigma(\cdot) σ(⋅):Sigmoid激活函数。
- ⊙ \odot ⊙:逐元素乘法。
- 作用:双向LSTM通过前向和后向两个方向捕捉序列中的长期和短期依赖关系。
公式2:自注意力机制
A = softmax ( V V T d k ) V \mathbf{A} = \text{softmax}\left(\frac{\mathbf{V}\mathbf{V}^{T}}{\sqrt{d_{k}}}\right)\mathbf{V} A=softmax(dkVVT)V
- 符号解释:
- V \mathbf{V} V:最终推荐列表中所有物品的特征矩阵。
- d k d_{k} dk:物品特征向量的维度。
- softmax ( ⋅ ) \text{softmax}(\cdot) softmax(⋅):归一化函数,用于计算注意力权重。
- 作用:自注意力机制捕捉物品间的相互影响,无论它们在列表中的距离有多远。
公式3:评估器的输出
E ( x 0 t ∣ u , V ; Θ E ) = σ ( f ( f ( f ( x u ⊕ x 0 t ⊕ h t ⊕ a t ) ) ) ) E(\mathbf{x}_{0}^{t}|u,\mathbf{V};\boldsymbol{\Theta}^{E}) = \sigma(f(f(f(\mathbf{x}_{u} \oplus \mathbf{x}_{0}^{t} \oplus \mathbf{h}_{t} \oplus \mathbf{a}_{t})))) E(x0t∣u,V;ΘE)=σ(f(f(f(xu⊕x0t⊕ht⊕at))))
- 符号解释:
- x u \mathbf{x}_{u} xu:用户的特征向量。
- h t \mathbf{h}_{t} ht:双向LSTM的输出。
- a t \mathbf{a}_{t} at:自注意力机制的输出。
- ⊕ \oplus ⊕:向量拼接操作。
- f ( x ) = ReLU ( W x + b ) f(\mathbf{x}) = \text{ReLU}(\mathbf{W}\mathbf{x} + \mathbf{b}) f(x)=ReLU(Wx+b):多层感知机(MLP)的非线性变换。
- 作用:评估器通过MLP融合用户特征、物品特征、序列信息和注意力信息,预测物品的交互概率。
公式4:生成器的GRU计算
z t = σ ( W z x i t − 1 + U z h t − 1 ) r t = σ ( W r x i t − 1 + U r h t − 1 ) h t → = tanh ( W x i t − 1 + U ( r t ⊙ h t − 1 ) ) h t = ( 1 − z t ) ⊙ h t − 1 + z t ⊙ h t → \begin{split} \mathbf{z}_{t} &= \sigma(\mathbf{W}_{z}\mathbf{x}_{i}^{t-1} + \mathbf{U}_{z}\mathbf{h}_{t-1}) \\ \mathbf{r}_{t} &= \sigma(\mathbf{W}_{r}\mathbf{x}_{i}^{t-1} + \mathbf{U}_{r}\mathbf{h}_{t-1}) \\ \overrightarrow{\mathbf{h}_{t}} &= \tanh(\mathbf{W}\mathbf{x}_{i}^{t-1} + \mathbf{U}(\mathbf{r}_{t} \odot \mathbf{h}_{t-1})) \\ \mathbf{h}_{t} &= (1 - \mathbf{z}_{t}) \odot \mathbf{h}_{t-1} + \mathbf{z}_{t} \odot \overrightarrow{\mathbf{h}_{t}} \end{split} ztrththt=σ(Wzxit−1+Uzht−1)=σ(Wrxit−1+Urht−1)=tanh(Wxit−1+U(rt⊙ht−1))=(1−zt)⊙ht−1+zt⊙ht
- 符号解释:
- x i t − 1 \mathbf{x}_{i}^{t-1} xit−1:第 t − 1 t-1 t−1步选择的物品特征。
- h t − 1 \mathbf{h}_{t-1} ht−1:前一时刻的隐藏状态。
- z t \mathbf{z}_{t} zt、 r t \mathbf{r}_{t} rt:更新门和重置门。
- 作用:GRU捕捉用户意图的演变,生成动态的用户状态表示。
公式5:生成器的指针网络
x ^ c j = exp ( x ~ c j ) ∑ j m exp ( x ~ c j ) \hat{\mathbf{x}}_{c}^{j} = \frac{\exp(\widetilde{\mathbf{x}}_{c}^{j})}{\sum_{j}^{m} \exp(\widetilde{\mathbf{x}}_{c}^{j})} x^cj=∑jmexp(x cj)exp(x cj)
- 符号解释:
- x ~ c j \widetilde{\mathbf{x}}_{c}^{j} x cj:通过MLP对物品特征进行非线性变换后的表示。
- x ^ c j \hat{\mathbf{x}}_{c}^{j} x^cj:物品的选择概率。
- 作用:指针网络根据用户状态和物品特征,选择最合适的物品加入最终推荐列表。
四、实验与结果
4.1 数据集
- Rec数据集:来自淘宝的大规模点击日志数据,包含用户画像、物品画像、初始排序列表和最终推荐列表。
- Ad数据集:来自阿里妈妈的广告点击日志数据,经过处理后适用于重排序任务。
4.2 离线实验结果
- 评估器性能:GRN的评估器在AUC和GAUC指标上显著优于基线模型,证明了其捕捉上下文信息的能力。
- 生成器性能:GRN的生成器在NDCG和LR(列表奖励)指标上优于现有方法,证明了其生成最优重排序列表的能力。
4.3 在线A/B测试
- PV和IPV提升:在淘宝“猜你喜欢”场景中,GRN的PV(页面浏览量)和IPV(点击量)分别提升了5.2%和6.1%。
五、总结与展望
5.1 论文总结
GRN通过上下文感知的评估器和生成器,有效解决了传统重排序方法忽略上下文信息的问题。实验证明其在离线和在线场景中均具有显著优势。
5.2 未来方向
- 长期奖励优化:在生成器中引入长期奖励机制,进一步提升重排序效果。
- 多样性优化:在重排序中引入多样性目标,避免推荐结果同质化。
参考文献
- Vaswani A, et al. Attention is all you need. NeurIPS 2017.
- Covington P, et al. Deep neural networks for YouTube recommendations. RecSys 2016.
作者注
本文详细解析了GRN模型的核心思想与技术细节,适合推荐系统从业者与研究者参考。代码与数据集已开源,欢迎进一步探索!
更多推荐
所有评论(0)