Contrastive Learning for Representation Degeneration Problem in Sequential Recommendation

Qiu R., Huang Z., Ying H. and Wang Z. Contrastive learning for representation degeneration problem in sequential recommendation. WSDM, 2022.

对比学习之于序列推荐.

符号说明

  • \(\mathcal{V}\), items;
  • \(s = [v_1, v_2, \ldots, v_t]\), \(v_i \in \mathcal{V}, 0 \le i \le t\), 某个序列.

Motivation

  • 序列推荐一般使用交叉熵 (二元的或者一般的) 来训练, 即

    \[J(s) = -\log p_{\theta}(s) =-\sum_{n=1}^t \log p_{\theta}(v_n |c_n) =-\sum_{n=1}^t \log \frac{\exp(\langle \bm{h}_c, \bm{v}_n \rangle)}{\sum_{v'}^{\mathcal{V}} \exp(\langle \bm{h}_c, \bm{v}' \rangle)}. \]

    其中 \(c_n = s_{<n}\), 而 \(\bm{h}_c, \bm{v}_n\) 为对应的 embddings.

  • \[\frac{\partial J(s)}{\partial \bm{v}^*} = \sum_{n=1}^t \frac{\exp(\langle \bm{h}_c, \bm{v}^* \rangle)}{\sum_{v'}^{\mathcal{V}} \exp(\langle \bm{h}_c, \bm{v}')} \bm{h}_c = \sum_{n=1}^t p(v^*|c_n) \bm{h}_c, \quad \forall v^* \not \in s. \]

  • 由此可见, 对于那些 rare items, 它的提取几乎就是由那些 popular items 所决定了. 这可能导致, 那些不活跃的 item 的 embeddings 都一致地往差不多的方向进化, 从而趋同:

  • 从而如上图所示, 大部分 rate items 聚在一处, 而且整体的 embeddings 呈现低秩的情形.

DuoRec

  • 根据 embedding matrix \(\bm{V} \in \mathbb{R}^{|\mathcal{V}| \times d}\), positional encoding matrix \(\bm{P} \in \mathbb{R}^{N \times d}\), 从而可以得到:

    \[\bm{h}_t^0 = \bm{v}_t + \bm{p}_t, \]

    每个 item 的 embedding.

  • 由此, 对于序列 \(s\) 我们可以得到序列 embeddings: \(\bm{H}^0 = [\bm{h}_0^0, \bm{h}_1^0, \ldots, \bm{h}_t^0]\), 然后通过 Transformer encoder 得到:

    \[\bm{H}^L = [\bm{h}_0^L, \bm{h}_1^L, \ldots, \bm{h}_t^L] = \text{Trm}(\bm{H}^0). \]

    并将 \(\bm{h}_t^L\) 作为该序列的表示.

Contrastive Regularization

  • 我们知道, 对比学习有这让相似的样本靠近同时整体特征区域均匀分布的能力, 作者希望借这种能力解决最开始所提出的问题.

  • Dropout 增强: 由于一般的 transformer 架构都包含 dropout, 所以当我们重复进行一次 forward 过程后会得到另一个不同的结果:

    \[\bm{H}^{L'} = \text{Trm}(\bm{H}^0), \quad \bm{h}' = \bm{h}_t^{L'} = \bm{H}^{L'}[-1]. \]

  • Similar Sequences: 此外, 作者假设若两个 sequences:

    \[s_i = [v_{i,1}, v_{i,2}, \ldots, v_{i,t^i}], \\ s_j = [v_{j,1}, v_{j,2}, \ldots, v_{j,t^j}] \\ \]

    的下一个预测目标 \(v_{i,t^i + 1} = v_{j,t^j+1}\), 则我们认为这两个 sequences 背后的 users 是类似的.
    对于序列 \(s\), 我们采样这样的一个近似序列 \(s'\), 然后得到:

    \[\bm{H}_{s}^{L'} = \text{Trm}({\bm{H}_s^0}'), \quad \bm{h}_s' = \bm{h}_{t,s}^{L'} = \bm{H}_s^{L'}[-1]. \]

  • 有了这两个不同的视角后, 我们定义:

    其中 \(\mathcal{S}_1^- = \{\bm{h}_2', \bm{h}_{2, s}', \bm{h}_3', \bm{h}_{3,s}', \ldots, \bm{h}_{|\mathcal{B}|}', \bm{h}_{|\mathcal{B}|, s}'\}\).

  • 最后的损失为:

    \[\ell = \ell_{\text{Rec}} + \lambda \ell_{\text{Reg}}, \\ \ell_{\text{Rec}} = -\text{one-hot}(\bm{y}_i) \log \hat{\bm{y}}_i, \\ \hat{\bm{y}} = \text{softmax}(\bm{Vh}). \]

代码

official

posted @ 2023-06-06 14:03  馒头and花卷  阅读(58)  评论(0编辑  收藏  举报