目录
概
本文提出了一个用 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 就可以了.