Towards Universal Sequence Representation Learning for Recommender Systems

Hou Y., Mu S., Zhao W. X., Li Y., Ding B. and Wen J. Towards Universal Sequence Representation Learning for Recommender Systems. KDD, 2022.

本文提出了一个用 text 替代 ID 的序列模型.

符号说明

  • \([w_1, \ldots, w_c]\), item text;
  • \(\tau\), temperature;
  • \(B\), batch size.

UniSRec

统一的文本表示

  • 首先, 我们用预训练模型 (e.g., BERT) 来得到 item 的一个统一表示:

    \[x_i = \text{BERT}([\text{CLS}]; w_1, \ldots, w_c), \]

    其中 \([\text{CLS}]\) 是一个特殊的 token, 最后 \(x_i\) 就是取的 \([\text{CLS}]\) 位置的 emedding.

  • 接下来, 进行 Parametric whitening, 这被证明能够提高 embedding 的质量, 不同之处在于, 作者这里采用可学习的 (\(\bm{b}, \bm{W}_1\)):

    \[\tilde{\bm{x}}_i = (\bm{x}_i - \bm{b}) \cdot \bm{W}_1. \]

  • Domain Fusion and Adaptation. 为了是的 UniSRec 能够拓展到不同的 domain 上, 作者利用 MoE 进行 fusion:

    \[\bm{v}_i = \sum_{k=1}^G g_k \cdot \tilde{\bm{x}}_i^{(k)}, \\ \bm{g} = \text{Softmax}(\bm{x}_i + \bm{W}_2 + \bm{\delta}), \\ \bm{\delta} = \text{Norm}( \text{Softplus}( \bm{x}_i \cdot \bm{W}_3 ) ). \]

统一的序列表示

  • 通过 transformer 进行序列建模 \(\bm{s}\).

  • 训练的时候, 假设一个 batch 有 \(\{\langle \bm{s}_1, \bm{v}_1 \rangle, \ldots \langle \bm{s}_B, \bm{v}_{B} \rangle\}\), 设计如下的 sequence-item 对比损失:

    \[\ell_{S-I} = -\sum_{j=1}^B \log \frac{ \exp(\bm{s}_j \cdot \bm{v}_j / \tau) }{ \sum_{j'=1}^B \exp(\bm{s}_j \cdot \bm{v}_{j'} / \tau) }. \]

  • 此外, 还有一个 sequence-sequence 的对比损失, 旨在区分来自不同 domain 的序列:

    \[\ell_{S-S} = -\sum_{j=1}^B \log \frac{ \exp( \bm{s}_j \cdot \bm{\tilde{s}}_j / \tau) }{ \sum_{j'=1}^B \exp( \bm{s}_j \cdot \bm{s}_{j'} / \tau) }, \]

    其中 \(\tilde{\bm{s}}_j\) 是通过 Item/Word drop 后得到的另一个 view.

  • 于是预训练的损失为:

    \[\mathcal{L}_{PT} = \ell_{S-I} + \lambda \ell_{S-S}. \]

Parameter-Efficient Fine-tuning

  • 想要扩展到一个新的 domain 很简单, 只需要微调 MoE adaptor 就可以了.

代码

[official-code]

posted @ 2024-05-28 16:46  馒头and花卷  阅读(34)  评论(0编辑  收藏  举报