前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WSDM'22 | 序列推荐:对比学习缓解表征退化问题

WSDM'22 | 序列推荐:对比学习缓解表征退化问题

作者头像
秋枫学习笔记
发布2022-09-19 11:03:50
9100
发布2022-09-19 11:03:50
举报
文章被收录于专栏:秋枫学习笔记

关注我们,一起学习~

title:Contrastive Learning for Representation Degeneration Problem in Sequential Recommendation

link:https://arxiv.org/pdf/2110.05730.pdf

from:WSDM 2022

1. 导读

本文是针对序列推荐提出的方法,作者发现现有模型生成的商品embedding会发生退化,导致一些不相似的稀有商品的embedding很集中,相似。本文提出DuoRec利用对比学习来重建序列的表征。并且,在模型中构建基于Dropout的模型级增强来保留更好语义信息。

思考:本文总体框架适合以往提出的序列推荐方法类似的,例如SASRec等,即通过embedding层之后,利用Transformer块对序列进行编码。本文主要的亮点在于对embedding进行增强,一方面,利用基于Dropout的方式在模型层面对序列表征进行增强;另一方面,利用相似序列挖掘正样本和负样本,结合对比学习进行约束。

对于序列推荐和对比学习熟悉的老铁可以略过第二部分,文中对表征退化问题进行了分析具体见论文2.2,公式太长可以左右滑动

2. 基础

2.1 符号

商品集合表示为V,用户交互序列表示为

s=[v_1,...,v_t]

,模型的目标即根据序列信息预测在时间t+1时可能交互的商品。

2.2 对比学习

2.2.1 噪声对比估计(NCE)

对比学习是将正样本对拉近,将负样本对推开。具体来说,噪声对比估计 (NCE) 目标通常用于训练编码器𝑓如下式,其中

x

x^+

是来自正样本分布

p_{pos}

的样本对,

x^-

是从数据

p_{data}

中随机采样得到,τ为温度系数。

2.2.2 对其和均匀性

NCE 损失是直观地执行推和拉。数学描述被正式定义为在向量被归一化的假设下表示的对齐和均匀性,如下所示,其中

p_{pos}

是正样本对的分布,

p_{data}

是独立样本的分布。最小化

l_{align}

等价于使得正样本对更相近,最小化

l_{uniform}

等价于使得这些样本均匀分布。

\begin{array}{c} \ell_{\text {align }} \triangleq \underset{\left(x, x^{+}\right) \sim p_{\text {pos }}}{\mathbb{E}}\left\|f\left(x^{+}\right)-f(x)\right\|^{2}, \\ \ell_{\text {uniform }} \triangleq \log \underset{x^{-i . i d .}}{\mathbb{E}} p_{\text {data }} e^{-2\left\|f\left(x^{-}\right)-f(x)\right\|^{2}}, \end{array}

3. DuoRec

3.1 序列编码作为用户表征

在序列推荐中,主要思想是聚合历史交互来描述用户的偏好。与 SASRec 类似,DuoRec 的编码模块是一个 Transformer。为了利用 Transformer 的编码能力,首先将商品转换为embedding。然后应用多头自注意力模块来计算用户表征。

3.1.1 Embedding层

文中将序列

s=[v_1,...,v_t]

中商品的embedding表示为

\mathbf{s=[v_1,...,v_t]}

,同样为了保证顺序关系,加入了位置编码

\mathbf{P}

,则可以将不同位置t的商品embedding表示为下式

\mathbf{h^0_t=v_t+p_t}

3.1.2 自注意力机制

在得到embedding后,通过多头注意力机制进行编码,将

\mathbf{H^0=[h_0^0,...,h_t^0]}

,经过L层的多头注意力层Trm后,可得到输出表征,表达为下式,最后在

\mathbf{H^L=[h_0^L,...,h_t^L]}

选出最后一个表征

h_t^L

作为序列的表征。

\mathbf{H}^L=Trm(\mathbf{H^0})

3.2 推荐学习

下一个商品预测任务被定义为整个商品集的分类任务。给定序列表征 𝒉 和商品嵌入矩阵 𝑽,预测分数计算如下,最后结合交叉熵损失函数

l_{Rec}

进行训练。

\hat{y}=softmax(Vh)

3.3 对比正则项

为了缓解表示退化问题,通过利用无监督和有监督的对比样本来开发对比正则化。

3.3.1 无监督增强

DuoRec 中的无监督对比增强旨在为无监督风格的单个序列提供语义上有意义的增强。本文提出了模型级增强,在序列向量的计算中,embedding层和 Transformer 编码器中都有 Dropout 模块。使用不同的 Dropout 掩码将输入序列前向传递两次将生成两个不同的向量,它们在语义上相似但具有不同的特征。因此,为输入序列 𝑠 的无监督增强选择不同的 Dropout 掩码,对编码器的输入embedding进行运算,以获得

h_t^{0'}

,即对embedding层得到的h表征进一步计算得到。然后输入到编码器,通过不同的dropout掩码得到不同的输出,公式如下,经过编码后,同样采用最后一个表征h_t来代表整体的序列表征。

\boldsymbol{H}^{L^{\prime}}=\operatorname{Trm}\left(\boldsymbol{H}^{0^{\prime}}\right), \quad \boldsymbol{h}^{\prime}=\boldsymbol{h}_{t}^{L^{\prime}}=\boldsymbol{H}^{L^{\prime}}[-1]

3.3.2 有监督正采样

DuoRec 中的监督对比增强旨在将语义相似序列之间的语义信息合并到对比正则化中。如果只应用无监督对比学习,原本语义相似的样本将被分类为负样本。因此,最重要的是确定哪些样本在语义上相似。

语义相似性。如果两个序列代表相同的用户偏好,那么很自然地推断出这两个序列包含相同的语义。因此,对于不同的序列

s_i=[v_{i,1},...,v_{i,t^i}]

s_{j}=[v_{j,1},...,v_{j,t^j}]

,如果预测目标,即后一个商品

v_{i,t^i+1}

v_{j,t^j+1}

是一样的,则表明两个序列语义相似。

正采样。对于输入序列𝑠,数据集中存在具有相同目标商品的序列。从这些序列中随机抽取一个语义相似的序列

s_s

。从而经过上述步骤得到其表征,

\boldsymbol{H}_s^{L^{\prime}}=\operatorname{Trm}\left(\boldsymbol{H}_s^{0^{\prime}}\right), \quad \boldsymbol{h}_s^{\prime}=\boldsymbol{h}_{s,t}^{L^{\prime}}=\boldsymbol{H}_s^{L^{\prime}}[-1]

3.3.3 负采样

为了有效地为一对增强样本构建负样本,同一训练批次中的所有其他增强样本都被视为负样本。假设训练批次为

\mathcal{B}

,其大小为

|\mathcal{B}|

,增广后大小为

2|\mathcal{B}|

,序列为

\left\{\boldsymbol{h}_{1}^{\prime}, \boldsymbol{h}_{1, s}^{\prime}, \boldsymbol{h}_{2}^{\prime}, \boldsymbol{h}_{2, s}^{\prime}, \ldots, \boldsymbol{h}_{|\mathcal{B}|}^{\prime}, \boldsymbol{h}_{|\mathcal{B}|, s}^{\prime}\right\}

,即经过正采样后都会对应一个增广的embedding。对于每一个样本对(如,

h_1'

h_{1,s}'

),除了这两个样本对之外,其他的都看做是这有两个样本对对应的负样本(如,

S^-=\left\{\boldsymbol{h}_{2}^{\prime}, \boldsymbol{h}_{2, s}^{\prime}, \ldots, \boldsymbol{h}_{|\mathcal{B}|}^{\prime}, \boldsymbol{h}_{|\mathcal{B}|, s}^{\prime}\right\}

),因此,负样本集合大小为2(|B| - 1)。但是,如果负样本集合中有序列对应的目标商品与正样本一样,则将其从负样本集合中去除

3.3.4 正则化目标

和前面NCE的公式类似,这里有了正负样本后,同样可以构建类似的损失函数,如下,

\begin{aligned} \ell_{\operatorname{Reg}}=\underset{i \in|\mathcal{B}|}{\mathbb{E}}\left[-\log \frac{e^{\left(\boldsymbol{h}_{i}^{\prime}\right)^{\top}\left(\boldsymbol{h}_{i, s}^{\prime}\right) / \tau}}{e^{\left(\boldsymbol{h}_{i}^{\prime}\right)^{\top}\left(\boldsymbol{h}_{i, s}^{\prime}\right) / \tau}+\sum_{s^{-} \in \mathcal{S}_{i}^{-}} e^{\left(\boldsymbol{h}_{i}^{\prime}\right)^{\top}\left(s^{-}\right) / \tau}}\right] \\ +\underset{i \in|\mathcal{B}|}{\mathbb{E}}\left[-\log \frac{e^{\left(\boldsymbol{h}_{i, s}^{\prime}\right)^{\top}\left(\boldsymbol{h}_{i}^{\prime}\right) / \tau}}{e^{\left(\boldsymbol{h}_{i, s}^{\prime}\right)^{\top}\left(\boldsymbol{h}_{i}^{\prime}\right) / \tau}+\sum_{s^{-} \in \mathcal{S}_{i}^{-}} e^{\left(\boldsymbol{h}_{i, s}^{\prime}\right)^{\top}\left(s^{-}\right) / \tau}}\right], \end{aligned}

因此总的损失函数为

l=l_{Rec}+\lambda l_{Reg}

其中λ为超参数。

4. 结果

这里是总体方法的对比效果,文中还对提出的不同监督和无监督两个增强方案进行了分别讨论,感兴趣的小伙伴可以阅读。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.1 符号
  • 2.2 对比学习
    • 2.2.1 噪声对比估计(NCE)
      • 2.2.2 对其和均匀性
      • 3.1 序列编码作为用户表征
        • 3.1.1 Embedding层
          • 3.1.2 自注意力机制
          • 3.2 推荐学习
          • 3.3 对比正则项
            • 3.3.1 无监督增强
              • 3.3.2 有监督正采样
                • 3.3.3 负采样
                  • 3.3.4 正则化目标
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档