前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SIGIR'22「amazon」CaFe:从粗粒度到细粒度的稀疏序列推荐

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

作者头像
秋枫学习笔记
发布2022-09-19 10:38:33
5710
发布2022-09-19 10:38:33
举报
文章被收录于专栏:秋枫学习笔记

关注我们,一起学习~

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) 来计算时间步 𝑡 时,编码器输出和embedding之间的相关性,其中E分别表示第j中意图和第k个商品。

r_{j, t}^{c}=\mathbf{R}_{t}^{c} \mathrm{E}_{j}^{c T}, r_{k, t}^{v}=\mathbf{R}_{t} \mathbf{E}_{k}^{v T}

3.3 训练

\begin{aligned} \mathcal{L}=& \mathcal{L}_{c}+\mathcal{L}_{v} \\ =&-\sum_{S_{u} \in \mathcal{S}} \sum_{1 \leq t \leq n}\left[\log \left(\sigma\left(r_{y^{c}, t}^{c}\right)\right)+\sum_{c_{j} \notin S_{u}} \log \left(1-\sigma\left(r_{c_{j}, t}^{c}\right)\right)\right] \\ &-\sum_{S_{u} \in \mathcal{S}} \sum_{1 \leq t \leq n}\left[\log \left(\sigma\left(r_{y^{v}, t}^{v}\right)\right)+\sum_{v_{k} \notin S_{u}} \log \left(1-\sigma\left(r_{v_{k}, t}^{v}\right)\right)\right] \end{aligned}

如上式,使用交叉熵损失函数,分别计算商品和意图的损失。

3.4 推理阶段

根据意图和商品的联合概率分布来计算最终选择哪个商品进行推荐,公式如下,选择概率最大的进行推荐。

\begin{aligned} P\left(c_{j}, v_{k} \mid S_{u}^{c}, S_{u}^{v}, \Theta\right) &=P\left(c_{j} \mid S_{u}^{c}, \Theta\right) P\left(v_{k} \mid c_{j}, S_{u}^{c}, S_{u}^{v}, \Theta\right) \\ &=\sigma\left(r_{j, t}^{c}\right) \sigma\left(r_{k, t}^{v}\right) \end{aligned}

4. 结果

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋枫学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.1 问题定义
  • 2.2 自注意力推荐
  • 3.1 Embedding层
  • 3.2 从粗到细的编码器
    • 3.2.1 意图编码器
      • 3.2.2 商品编码器
        • 3.2.3 预测
        • 3.3 训练
        • 3.4 推理阶段
        • 4. 结果
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档