SIGIR'22「amazon」CaFe:从粗粒度到细粒度的稀疏序列推荐

2022-09-19 10:38:33 浏览数 (3)

关注我们,一起学习~

title:Coarse-to-Fine Sparse Sequential Recommendation link:https://arxiv.org/pdf/2204.01839.pdf from:SIGIR 2022

1. 导读

本文是针对序列推荐的一篇短文,主要针对自注意力方法无法很好地应对稀疏数据,无法对稀疏数据提高较好的保证,而提出的从粗到细的自注意力方法CaFe。该方同时从购物意图交互商品中对用户动态性进行建模,显式地从粗粒度和细粒度两方面学习序列中的含义。

  • CaFe从粗粒度的序列中学习用户意图,从而提供高质量的用户意图表征;
  • CaFe将意图表征融合到商品编码器输出中,提升商品表征。
  • 结合两种表征进行后续商品交互预测

2. 预备知识

2.1 问题定义

商品集合为V,意图集合为C,|C|<<|V|,用户集合为U,交互序列集合为

S={S_1,...,S_{|U|}}

。如上所示,意图可以是一些商品的类型,而下面的商品则是具体的。用户的交互数据表示为

S_u={s_1^u,...,s_{|S_u|}^u}

,其中

s_i^{u}=(v_i^u,c_i^u)

。给定交互序列

S_u

,预测

v_{|S_u| 1}^u

2.2 自注意力推荐

本文的主干网络采用SASRec,SASRec采用自注意力机制挖掘用户行为序列中的关系,这里对SAS做简要介绍。详细可阅读原论文或本文的第2节。

  • Embedding层:Embedding层对交互序列中的商品进行编码,结合对应位置的embedding构成最终的序列embedding;
mathbf{M}^{v}=text { Embedding }left(S^{v}right)=left[mathbf{e}_{1} mathbf{p}_{1}, mathbf{e}_{2} mathbf{p}_{2}, ldots, mathbf{e}_{n} mathbf{p}_{n}right]
  • Transformer编码器:这部分采用多头自注意力机制,经过多层自注意力层得到输出,其中O为输出,m为不同的头,W为可学习参数,H为经过l层自注意力得到的序列中交互商品的embedding。要求j>i,因为只能之前的行为对之后的行为有影响,反之不行。
begin{aligned} mathbf{O}_{i} &=text { Concat }left[mathbf{O}_{i}^{(1)}, ldots, mathbf{O}_{i}^{(m)}, ldots, mathbf{O}_{i}^{(M)}right] mathbf{W}_{O} \ mathbf{O}_{i}^{(m)} &=sum_{j=1}^{n} f_{mathrm{att}}left(mathrm{H}_{i}^{l} mathbf{W}_{Q}^{(m)}, mathrm{H}_{j}^{l} mathbf{W}_{K}^{(m)}right) cdot mathrm{H}_{j}^{l} mathbf{W}_{V}^{(m)} end{aligned}

3. 方法

image.png

3.1 Embedding层

用户u的交互序列

S_u

包含商品序列

S_u^v

和意图序列

S_u^c

,两者对应的embedding分别为

mathbf{E}^v in mathbb{R}^{d times |V|}

,

mathbf{E}^c in mathbb{R}^{d times |C|}

,d为embedding维度,|V|,|C|为商品和意图集合的大小。两类序列中的位置编码分别表示为

mathbf{P}^v in mathbb{R}^{d times n}

,

mathbf{P}^c in mathbb{R}^{d times n}

。分别对两个序列进行编码可以得到下式,

mathbf{M}^{v}=operatorname{Embedding}^{v}left(S_{u}^{v}right) ; mathbf{M}^{c}=text { Embedding }^{c}left(S_{u}^{c}right)

embedding的计算方式和SASRec类似,公式如下

mathbf{M}^{v}=text { Embedding }left(S^{v}right)=left[mathbf{e}_{1} mathbf{p}_{1}, mathbf{e}_{2} mathbf{p}_{2}, ldots, mathbf{e}_{n} mathbf{p}_{n}right]

3.2 从粗到细的编码器

3.2.1 意图编码器

对于意图序列,目的是捕获用户的粗粒度兴趣动态。意图序列通常是稠密的,因为 |C|远小于|V |。因此,使用SASRec 模型作为意图序列的编码器。给定意图embedding

M^c

,SASRec 编码器的输出用作意图序列表征

R^c in mathbb{R}^{d times n}

3.2.2 商品编码器

越靠近当前时间的交互,对预测越重要。对应的商品编码器也是Transformer形式,但增强了关注最近商品的能力。在注意力权重计算中加入掩码分数

theta_{ij}

增强商品编码器中的短期用户动态性建模。公式如下,θ=1时就是标准版的点积注意力机制,exp(w)θ可以写成**exp(w lnθ)**,lnθ通过下式计算,其中w,b为可学习参数,H为多头注意力机制经过l层后的输出商品embedding,H以及自注意力计算方式和2.2 SASRec一样,d表示两个商品间的距离向量,dij表示距离embedding表中第n i-j个embedding,m表示第m个头,即这里使用的是多头自注意力。

f_{mathrm{att}}left(mathbf{Q}_{i}, mathbf{K}_{j}right)=frac{exp left(w_{i j}right) cdot theta_{i j}}{sum_{k=1}^{n} exp left(w_{i k}right) cdot theta_{i k}}, w_{i j}=frac{mathbf{Q}_{i} mathbf{K}_{j}^{T}}{sqrt{d}}
ln theta_{i j}=left(mathrm{H}_{i}^{l} mathbf{W}_{Q}^{(m)} mathrm{H}_{j}^{l} mathbf{W}_{K}^{(m)} mathbf{d}_{i j}right) mathbf{W}_{L}^{(m)} mathbf{b}_{L}

同样经过和意图编码类似的步骤得到商品的embedding

R^v

,使用商品embedding来关注近期的偏好,使用意图序列得到的embedding来关注长期偏好,最终embedding为下式,

R=R^v R^c

3.2.3 预测

在 CaFe 中,同时用

R^c

和 R 预测下一个意图和商品。采用矩阵分解 (MF) 来计算时间步

sas

0 人点赞