DiffuRec: A Diffusion Model for Sequential Recommendation
Background
序列推荐(Sequential Recommendation, SR)领域,主流方法是将用户与物品表示为fixed embedding。然而,这种静态向量表达方式难以全面刻画用户多样化的兴趣及物品的潜在多维属性。此外,用户行为的不确定性也未被充分建模。
近年来扩散模型(Diffusion Models)在图像生成与自然语言处理中表现优异,其核心优势在于可以生成连续分布式表示。本文提出首次将扩散模型引入序列推荐任务,旨在增强推荐系统对用户兴趣与物品语义的建模能力,并引入合理的不确定性来提升推荐质量。
Introduction
DiffuRec 主要贡献如下:
1)多兴趣与多属性建模:将用户兴趣和物品属性建模为分布,而非固定向量,更真实地反映实际推荐场景中的多样性。2)目标物品guide机制:利用目标物品信息引导历史交互的representation学习,提高目标预测的准确性。3)不确定性注入:通过扩散过程引入噪声,增强模型鲁棒性。4)扩散与逆过程:训练阶段添加高斯噪声以生成中间表示,推理阶段逐步去噪恢复目标物品的表示。
论文认为,现有的如 VAE、GNN、Transformer 等方法难以统一有效建模上述特性,因此设计了融合扩散机制的统一模型 DiffuRec。
Method
preliminary
diffusion phase:
reverse phase:
approximator
其中
⊙
\odot
⊙ 是哈达玛积。x 是指导变量,在diffusion phase 是noised target item,reverse phase 是reversed target item representation。其中
λ
i
∼
N
(
δ
,
δ
)
\lambda_i \sim \mathcal{N}(\delta, \delta)
λi∼N(δ,δ),
δ
\delta
δ是一个超参数,定义了该正态分布的均值和方差。
此处 x 引入了来自目标 item 的语义信息作为一种监督信号促进模型模型捕获用户当前意图。
λ
\lambda
λ额外引入扰动,更符号实际过程中用户交互行为存在不确定性的特点,也可以增强模型鲁棒性。
x
0
x_{0}
x0是通过 Transformer 生成的,从建模角度(是用户当前兴趣的表达), 从预测角度(是目标 item 的分布式表示)
它本质上是用户兴趣(interest representation)在当前上下文下的外在表现,但从任务角度来说,它也扮演着“预测下一个 item”的角色。
a.diffusion
其中 a,b是超参数,控制噪声的范围,t是diffusion step 的最大值,s是从均匀分布中采样的变量,𝑠 =⌊𝑠′⌋, 𝑠′ ∼ 𝑈 (0, 𝑡).
其中x0是one step加噪的
e
n
+
1
e_{n+1}
en+1
b.reverse
c.loss function and rounding
for diffusion phase:
loss func:
本文使用cross entropy loss,虽然 diffusion model 通常用 MSE loss,但在推荐任务里这么做不合理,因为:1)推荐中的 item embedding 是离散的、不连续的,因此优化欧式距离不合理,使用的话也会造成训练不稳定;2)推荐系统更常用点积来衡量item之间的相似性。
for inference phase:
需要把模型去噪得到的x0 映射成一个物品index 空间中的index。具体做法:
用x0和所有候选item做内积,选择内积最大的。
Experiment
DiffuRec 模型在“diffusion 扩散阶段”和“reverse 逆过程”中引入的不确定性和扰动,不只是随便加点高斯噪声来增强模型的鲁棒性,而是在噪声的基础上引入了来自目标 item 的语义信息。这就像是让模型在“带着目标意图”的前提下进行训练,使得最后的预测更加准确。
五、Conclusion
DiffuRec 是第一个将扩散模型用于序列推荐任务的工作。它能有效建模物品的多潜在属性与用户的多兴趣,并通过引入噪声建模不确定性。实验表明,DiffuRec 在多个数据集上大幅超过现有 SOTA 方法。