前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WWW'22「快手」序列推荐:解耦长短期兴趣

WWW'22「快手」序列推荐:解耦长短期兴趣

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

关注我们,一起学习~

title:Disentangling Long and Short-Term Interests for Recommendation link:https://arxiv.53yu.com/pdf/2202.13090.pdf code:https://github.com/tsinghua-fib-lab/CLSR from:WWW 2022

1. 导读

本文结合自监督方法提出CLSR模型来挖掘用户的长短期兴趣,并进行进一步的解耦。

1. 首先提出了两个独立的编码器来独立捕获不同时间尺度的用户兴趣。

2. 然后从交互序列中提取长期和短期兴趣代理,作为用户兴趣的伪标签。

3. 然后设计成对对比任务来监督兴趣表征与其相应兴趣代理之间的相似性。

4. 最后由于长期和短期兴趣的重要性是动态变化的,通过基于注意力的网络自适应地聚合它们进行预测。

2. 定义

令商品数为N,用户数为M,以

\{x^u\}_{u=1}^M

表示用户的交互数据集合,

x^u=[x_1^u,...,x_{T_u}^u]

表示用户

x^u

的交互数据,即商品列表。

输入:交互序列

输出:是否会点击商品的概率

3. 方法

3.1 用户兴趣建模

由于用户的长短期兴趣随时间的动态变化很大,因此将这两个方面分别建模而不是使用统一的表征来表达它们。长期兴趣是相对稳定的,而短期兴趣是动态的、经常变化的。并且每次交互都由这两个方面以及目标商品决定。利用以下三个机制来建模,其中f1(),f2(),f3()分别对用户长期兴趣,短期兴趣和交互进行建模。其中U是用户,V为商品,Y表示交互。当前时间表示t,前一时刻表示为t-1。U中包含了用户ID和交互序列,三者的关系如图所示。

\zeta=\left\{\begin{array}{l} U_{l}=f_{1}(U) \\ U_{s}^{(t)}=f_{2}\left(U_{s}^{(t-1)}, V^{(t-1)}, Y^{(t-1)}, U\right) \\ Y^{(t)}=f_{3}\left(U_{l}, U_{s}^{(t)}, V^{(t)}, U\right) \end{array}\right.

image.png

  • 长期兴趣:长期兴趣相对稳定,因此这里是从整个序列中提取。
  • 短期兴趣:随着用户不断与推荐商品进行交互,短期兴趣会不断变化。例如,用户可能会在点击某个商品后建立新的兴趣。同时,用户也可能逐渐失去某些兴趣。也就是说,短期利益是时间相关的变量,因此利用前一时刻的兴趣来建模当前时刻的兴趣。
  • 交互预测:利用长短期兴趣和交互数据进行预测。

3.2 自监督实现

在本节中设计了两个独立的编码器来实现 𝑓1 和 𝑓2,它们学习长短期兴趣的表征。然后以通过自我监督来实现解耦。最后,基于注意力机制的自适应融合模型来完成𝑓3。CLSR 的概述如图 2 所示。

3.2.1 为长短期兴趣生成查询向量

\begin{array}{l} q_{l}^{u}=\operatorname{Embed}(u) \\ q_{s}^{u, t}=\operatorname{GRU}\left(\left\{x_{1}^{u}, \cdots, x_{t}^{u}\right\}\right) \end{array}

先对用户特征做embedding,经过GRU捕获随时间变化的关系。长短期兴趣分属于不同的编码器

\phi

,

\psi

,分别利用上述得到的两个embedding与交互序列,输入到两个编码器可以得到长短期兴趣表征,公式如下,

\begin{aligned} \boldsymbol{u}_{l}^{t} &=\phi\left(\boldsymbol{q}_{l}^{u},\left\{x_{1}^{u}, \cdots, x_{t}^{u}\right\}\right) \\ \boldsymbol{u}_{s}^{t} &=\psi\left(\boldsymbol{q}_{s}^{u, t},\left\{x_{1}^{u}, \cdots, x_{t}^{u}\right\}\right) \end{aligned}

3.2.2 长期兴趣编码器

图2(B)中是长期兴趣编码器

\phi

的过程,使用注意力机制,公式如下,其中W为可学习参数,

\tau_l

表示多层MLP,||表示拼接,E(x)表示商品的embedding。

\begin{aligned} v_{j} &=\boldsymbol{W}_{\boldsymbol{l}} \boldsymbol{E}\left(x_{j}^{u}\right) \\ \alpha_{j} &=\tau_{l}\left(v_{j}\left\|\boldsymbol{q}_{l}^{u}\right\|\left(v_{j}-q_{l}^{u}\right) \|\left(v_{j} \cdot q_{l}^{u}\right)\right) \\ a_{j} &=\frac{\exp \left(\alpha_{j}\right)}{\sum_{i=1}^{t} \exp \left(\alpha_{i}\right)} \end{aligned}

得到系数后,对序列中的embedding加权求和,公式如下,

u_l^t=\sum_{j=1}^t{a_j \cdot E(x^u_j)}

3.2.3 短期兴趣编码器

利用循环神经网络捕获短期兴趣,其中W为可学习参数,ρ表示循环神经网络模型,例如LSTM,GRU等。

\begin{array}{l} \left\{o_{1}^{u}, \ldots, o_{t}^{u}\right\}=\rho\left(\left\{E\left(x_{1}^{u}\right), \ldots, E\left(x_{t}^{u}\right)\right\}\right) \\ v_{j}={W}_{s} \boldsymbol{o}_{j}^{u} \end{array}

利用长期兴趣中计算注意力系数的方式可以同样利用现有的v可以求得短期兴趣的注意力系数b。加权求和后得到短期兴趣embedding,如下,

u_s^t=\sum_{j=1}^t{b_j \cdot o_j}

3.2.4 自监督解耦长短期兴趣

因为上面是通过无监督的方式提取出长短期兴趣表征的,无法确保长短期兴趣的解耦,因此这一节采用自监督的方法来进行解耦。

计算整个交互历史的平均表征作为长期兴趣的代理,并使用最近𝑘次交互的平均表征作为短期兴趣的代理。利用代理来监督解耦,公式如下,其中E(x)表示交互序列中的商品embedding。

\begin{array}{l} \boldsymbol{p}_{l}^{u, t}=\operatorname{MEAN}\left(\left\{x_{1}^{u}, \cdots, x_{t}^{u}\right\}\right)=\frac{1}{t} \sum_{j=1}^{t} E\left(x_{j}^{u}\right) \\ \boldsymbol{p}_{s}^{u, t}=\operatorname{MEAN}\left(\left\{x_{t-k+1}^{u}, \cdots, x_{t}^{u}\right\}\right)=\frac{1}{k} \sum_{j=1}^{k} E\left(x_{t-j+1}^{u}\right) \end{array}

仅在序列长度大于阈值

l_t

时才计算代理,因为如果整个序列仅包含几个商品,则无需区分长期和短期。

l_t

和𝑘是超参数。

使用代理作为标签,可以利用它们来监督长短期兴趣的解耦。在编码器输出和代理之间进行对比学习,这要求学习到的长短期兴趣表征与其对应的代理更相似,而不是相反的代理。在图 2 (A) 中说明了对比任务。公式如下,以长期兴趣为例,长期兴趣保证和长期兴趣代理表征的相似度要大于长期兴趣和短期兴趣的表征,并且大于短期兴趣和长期兴趣代理之间的相似度。

\begin{array}{l} \operatorname{sim}\left(u_{l}^{t}, p_{l}^{u, t}\right)>\operatorname{sim}\left(u_{l}^{t}, p_{s}^{u, t}\right) \\ \operatorname{sim}\left(p_{l}^{u, t}, u_{l}^{t}\right)>\operatorname{sim}\left(p_{l}^{u, t}, u_{s}^{t}\right) \\ \operatorname{sim}\left(u_{s}^{t}, p_{s}^{u, t}\right)>\operatorname{sim}\left(u_{s}^{t}, p_{l}^{u, t}\right) \\ \operatorname{sim}\left(p_{s}^{u, t}, u_{s}^{t}\right)>\operatorname{sim}\left(p_{s}^{u, t}, u_{l}^{t}\right) \end{array}

本文采用BPR损失或Triplet loss来对上述的约束关系构建损失函数,公式如下,将上述u,p,q带入即可构建四个相应的损失函数。在BPR中sim()函数为内积,Triplet loss中为欧氏距离。

\begin{array}{l} \mathcal{L}_{\mathrm{bpr}}(a, p, q)=\sigma(\langle a, q\rangle-\langle a, p\rangle) \\ \mathcal{L}_{\mathrm{tri}}(a, p, q)=\max \{d(a, p)-d(a, q)+m, 0\} \end{array}

损失函数就是把四个损失函数相加,如下,其中f()表示两种损失函数之一。

\mathcal{L}_{\text {con }}^{u, t}=f\left(u_{l}, \boldsymbol{p}_{l}, \boldsymbol{p}_{s}\right)+f\left(\boldsymbol{p}_{l}, \boldsymbol{u}_{l}, \boldsymbol{u}_{s}\right)+f\left(\boldsymbol{u}_{s}, \boldsymbol{p}_{s}, \boldsymbol{p}_{l}\right)+f\left(\boldsymbol{p}_{s}, \boldsymbol{u}_{s}, \boldsymbol{u}_{l}\right)

3.2.5 自适应兴趣融合

长短期兴趣那个发挥更重要的作用取决于历史序列。例如,用户在不断浏览同一类别的商品时,主要受短期兴趣的驱动。同时,也取决于目标商品。例如,运动爱好者可能由于长期兴趣而点击推荐的自行车,即使在他/她浏览了几本书之后。因此,将历史序列目标商品都包含在聚合器的输入中,其中历史序列用 GRU 压缩。基于注意力的自适应融合模型如图 2 (D) 所示,自适应的动态融合长短期兴趣。公式如下,其中σ为sigmoid函数,

\tau_f

表示MLP。

\begin{array}{l} \boldsymbol{h}_{t}^{u}=\operatorname{GRU}\left(\left\{\boldsymbol{E}\left(x_{1}^{u}\right), \ldots, \boldsymbol{E}\left(x_{t}^{u}\right)\right\}\right) \\ \alpha=\sigma\left(\tau_{f}\left(\boldsymbol{h}_{t}^{u}\left\|\boldsymbol{E}\left(x_{t+1}^{u}\right)\right\| \boldsymbol{u}_{l}^{t} \| \boldsymbol{u}_{s}^{t}\right)\right. \\ \boldsymbol{u}^{t}=\alpha \cdot \boldsymbol{u}_{\boldsymbol{l}}^{t}+(1-\alpha) \cdot \boldsymbol{u}_{s}^{t} \end{array}

最后经过两层MLP(图2 E)进行预测,公式如下,

\hat{y}^{t+1}{u,v}=MLP(u^t||E(v))

损失函数如下,

\mathcal{L}_{\mathrm{rec}}^{u, t}=-\frac{1}{N} \sum_{v \in O} y_{u, v}^{t+1} \log \left(\hat{y}_{u, v}^{t+1}\right)+\left(1-y_{u, v}^{t+1}\right) \log \left(1-\hat{y}_{u, v}^{t+1}\right)

结合之前的对比学习损失函数,总的损失函数如下,

\mathcal{L}=\sum_{u=1}^{M} \sum_{t=1}^{T_{u}}\left({\mathcal{L}}_{\mathrm{rec}}^{u, t}+\beta{\mathcal{L}}_{\mathrm{con}}^{u, t}\right)+\lambda\|\Theta\|_{2}

4. 结果

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3.1 用户兴趣建模
  • 3.2 自监督实现
    • 3.2.1 为长短期兴趣生成查询向量
      • 3.2.2 长期兴趣编码器
        • 3.2.3 短期兴趣编码器
          • 3.2.4 自监督解耦长短期兴趣
            • 3.2.5 自适应兴趣融合
            相关产品与服务
            日志服务
            日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档