WWW'22「Spotify」序列推荐:考虑不确定性的随机自注意力机制

2022-09-19 10:57:24 浏览数 (1)

关注我们,一起学习

title:Sequential Recommendation via Stochastic Self-Attention link:https://arxiv.53yu.com/pdf/2201.06035.pdf code:https://github.com/zfan20/STOSA from:WWW 2022

前置知识:自注意力机制,transformer,序列推荐

本文和下面这篇文章有类似之处,都是考虑不确定性,指同一作者缩写,感兴趣的小伙伴可以阅读

CIKM'21「品趣」序列推荐DT4SR:将序列建模为不确定性分布

1. 导读

序列推荐中一种常用的方式是采用类似transformer的结构,利用点积方式的自注意力机制发掘行为序列中不同商品的关系,而真实数据中,用户的行为具有不确定性,因此行为序列是具有不确定性的,直接用点积形式的自注意力机制无法很好的捕获行为中商品之间的关系。

本文提出了随机自注意力机制STOSA来考虑不确定性,并且对BPR损失加入正则来约束正负样本关系。

2. 方法

如图 1 所示为STOSA的结构。首先将商品表示为具有椭圆高斯分布的随机embedding,包括平均embedding和协方差embedding。然后设计一个基于 Wasserstein 距离的新型 Wasserstein 自注意力模块来推断随机序列embedding。采用 Wasserstein 距离来衡量具有不确定性信号的序列中商品之间的相异性。最后,在标准 BPR 损失中加入了一个新的正则化项,用于测量正项和负项之间的距离。

2.1 随机embedding层

通过将商品表示为分布来将不确定性引入商品embedding中。不同于确定性的向量表征,将商品建模为随机分布涵盖了更大的空间,以包括更多的协作邻居。使用多维椭圆高斯分布来表示商品,椭圆高斯分布由均值向量和协方差向量控制,其中协方差引入了商品的潜在不确定性。

对于所有商品,令均值embedding表为

M^{mu} in mathbb{R}^{|V| times d}

,协方差embedding表为

M^{Sigma} in mathbb{R}^{|V| times d}

。两者对应的位置embedding

P^{mu} in mathbb{R}^{ntimes d}

,

P^{Sigma} in mathbb{R}^{ntimes d}

,将embedding和位置embedding结合后得到下式,

begin{array}{l} hat{mathbf{E}}_{mathcal{S}^{u}}^{mu}=left[hat{mathbf{E}}_{s_{1}}^{mu}, hat{mathbf{E}}_{s_{2}}^{mu}, ldots, hat{mathbf{E}}_{s_{n}}^{mu}right]=left[mathbf{m}_{s_{1}}^{mu} mathbf{p}_{s_{1}}^{mu}, mathbf{m}_{s_{2}}^{mu} mathbf{p}_{s_{2}}^{mu}, ldots, mathbf{m}_{s_{n}}^{mu} mathbf{p}_{s_{n}}^{mu}right] \ hat{mathbf{E}}_{mathcal{S}^{u}}^{Sigma}=left[hat{mathbf{E}}_{s_{1}}^{Sigma}, hat{mathbf{E}}_{s_{2}}^{Sigma}, ldots, hat{mathbf{E}}_{s_{n}}^{Sigma}right]=left[mathbf{m}_{s_{1}}^{sum} mathbf{p}_{s_{1}}^{sum}, mathbf{m}_{s_{2}}^{sum} mathbf{p}_{s_{2}}^{sum}, ldots, mathbf{m}_{s_{n}}^{sum} mathbf{p}_{s_{n}}^{sum}right] end{array}

2.2 Wasserstein 自注意力层

2.2.1 Wasserstein 注意力

A in mathbb{R}^{n times n}

表示自注意力的值,

A_{kt}

表示位置k的商品

s_{k}

和位置t的商品

s_{t}

之间的注意力系数,其中k<=t。传统的系数计算方式为下式,

mathbf{A}_{k t}=mathbf{Q}_{k} mathbf{K}_{t}^{top} / sqrt{d}

但是这里的点积无法适用于分布之间的计算,因此采用Wassertein距离来衡量。对于上述两个商品,可以对得到随机embedding为

N(mu_{s_k},Sigma_{s_k})

N(mu_{s_t},Sigma_{s_t})

,其中

mu_{s_k}=hat{E}_{s_k}^{mu}W_{K}^{mu}

,

Sigma_{s_k}=ELU(diag(hat{E}_{s_k}^{Sigma}W_{K}^{Sigma})) 1

,对于

s_t

也同理。ELU为激活函数,其结果的范围是

[-1, infty)

,为了使协方差大于0所以 1。适用2-Wasserstein距离来衡量分布的相似性,公式如下,

begin{aligned} mathbf{A}_{k t} &=-left(W_{2}left(s_{k}, s_{t}right)right) \ &=-left(left|mu_{s_{k}}-mu_{s_{t}}right|_{2}^{2} operatorname{trace}left(Sigma_{s_{k}} Sigma_{s_{t}}-2left(Sigma_{s_{k}}^{1 / 2} Sigma_{s_{k}} Sigma_{s_{t}}^{1 / 2}right)^{1 / 2}right)right) end{aligned}
为什么用Wasserstein距离?

使用 Wasserstein 距离有几个优点。

  • 首先,Wasserstein 距离测量分布之间的距离,能够测量具有不确定性信息的商品的相异性。
  • 其次,Wasserstein距离满足三角不等式,可以在序列建模中归纳地捕捉协同传递性。
  • 最后,Wasserstein 距离还具有训练过程更稳定的优势,因为它在两个分布不重叠时提供了更平滑的测量,这在 SR 中意味着两个商品彼此远离。但是,KL散度会产生无穷大的距离,导致数值不稳定

2.2.2 Wasserstein注意力的聚合

这里和传统的方式类似,将注意力权重归一化后对embedding加权求和,公式如下,其中

mathbf{V}_{s_{k}}^{mu}=hat{mathbf{E}}_{s_{k}}^{mu} W_{V}^{mu}

,

mathbf{V}_{s_{k}}^{Sigma}=diag (hat{mathbf{E}}_{s_{k}}^{Sigma}) W_{V}^{Sigma}

,k<=t,即先后关系。得到新的表征序列为

Z^{mu}=(z_{s_1}^{mu},...,z_{s_n}^{mu})

,

Z^{Sigma}=(z_{s_1}^{Sigma},...,z_{s_n}^{Sigma})
tilde{A}_{kt}=frac{A_{kt}}{sum_{j=1}^tA_{jt}}
mathbf{z}_{s_{t}}^{mu}=sum_{k=1}^{t} tilde{mathbf{A}}_{k t} mathbf{V}_{k}^{mu}, text { and } mathbf{z}_{s_{t}}^{Sigma}=sum_{k=0}^{t} tilde{mathbf{A}}_{k t}^{2} mathbf{V}_{k}^{Sigma}

2.3 FFN和输出

利用两个带有 ELU 激活的FFN来在随机embedding中引入非线性,公式如下,

begin{array}{l} operatorname{FFN}^{mu}left(mathbf{z}_{s_{t}}^{mu}right)=operatorname{ELU}left(mathbf{z}_{s_{t}}^{mu} W_{1}^{mu} b_{1}^{mu}right) W_{2}^{mu} b_{2}^{mu} \ operatorname{FFN}^{Sigma}left(mathbf{z}_{s_{t}}^{Sigma}right)=operatorname{ELU}left(mathbf{z}_{s_{t}}^{Sigma} W_{1}^{Sigma} b_{1}^{Sigma}right) W_{2}^{Sigma} b_{2}^{Sigma} end{array}

再结合LN,残差链接等方法得到最终的输出,公式如下,

begin{array}{l} mathrm{Z}_{s_{t}}^{mu}=mathrm{z}_{s_{t}}^{mu} text { Dropout }left(mathrm{FFN}^{mu}left(text { LayerNorm }left(mathrm{z}_{s_{t}}^{mu}right)right)right) \ mathrm{Z}_{s_{t}}^{Sigma}=mathrm{ELU}left(mathrm{z}_{s_{t}}^{Sigma} text { Dropout }left(mathrm{FFN}^{Sigma}left(text { LayerNorm }left(mathrm{z}_{s_{t}}^{Sigma}right)right)right)right) 1 end{array}

这些z组成的新序列可以在堆叠使用Wasserstein自注意力来计算。

2.4 预测层

从多层Wasserstein自注意力得到最终的输出后,每次利用前一个embedding来预测后一个可能交互的商品,如计算第t个位置

N(mu_{s_t},Sigma_{s_t})

和第t 1( j )个位置

N(mu_{j},Sigma_{j})

的Wasserstein相似度,如下式,其中

mu_{s_t}=Z_{s_t}^{mu}

Sigma_{s_t}=Z_{s_t}^{Sigma}

mu_j=M_j^{mu}

Sigma_j=M_{j}^{Sigma}

d_{s_t,j}=W_2(s_t,j)

2.5 BPR损失及正则

本文采用标准 BPR 损失作为衡量排名预测误差的基础损失。但是,BPR loss 没有考虑正样本和负样本之间的距离。因此,引入了一个正则化项来增强这样的距离,如下所示,其中[x] 表示max(x,0),j 表示真实的下一个交互商品,j-表示随机采样的负样本。含义:正样本和负样本之间的距离要大于正样本和前序st之间的距离。

ell_{p v n}left(s_{t}, j^{ }, j^{-}right)=left[d_{s_{t}, j^{ }}-d_{j^{ }, j^{-}}right]_{ }

加入正则后的损失函数为下式

L=sum_{mathcal{S}^{u} in mathcal{S}} sum_{t=1}^{left|mathcal{S}^{u}right|}-log left(sigmaleft(d_{s_{t}, j^{ }}-d_{s_{t}, j^{-}}right)right) lambda ell_{p v n}left(s_{t}, j^{ }, j^{-}right) beta|Theta|_{2}^{2}

3. 结果

0 人点赞