首页 > 其他分享 >BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer

BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer

时间:2023-02-11 15:45:30浏览次数:56  
标签:Transformer bm BERT4Rec token Sequential mathcal Encoder

目录

Sun F., Liu J., Wu J., Pei C., Lin X., Ou W. and Jiang P. BERT4Rec: Sequential recommendation with bidirectional encoder representations from transformer. In International Conference on Information and Knowledge Management (CIKM), 2019.

BERT 用在序列推荐之上. 其实, 从序列角度, 之前 NLP 用过的 RNN, Transformer 似乎都可以套用在序列推荐之上, 但是总有一种感觉, 它们的效果并不是那么好 (真的是纯纯的主观感觉).

基本框架

  1. 给定用户 \(u\) 的过去的历史纪录 \(\mathcal{S}_u = [v_1, \cdots, v_t, \cdots, v_n]\), 将其中的部分替换成 [mask] token, 训练的目标就是用左右的信息来预测中间的 mask;

  2. 通过 embedding layer 获得各 token 的 embedding, 需要注意的是, 虽然这里也加入了 positional 信息, 但是不是通过固定的 sinusoid embeddings 得到, 而是直接学习的, 所以这里会有一个问题, 就是输入的序列长度是受到限制的;

  3. 通过一系列的 attention 得到每个 token 的表征;

  4. 再通过两层的变换得到最后的输出:

    \[P(v) = \text{softmax}(\text{GELU}(\bm{h}_t^L \bm{W}^P + \bm{b}^P)\bm{E}^T + \bm{b}^O); \]

  5. 通过如下的损失进行训练:

    \[\mathcal{L} = \frac{1}{|\mathcal{S}_u^m|} \sum_{v_m \in \mathcal{S}_u^m} -\log P(v_m = v_m^*| \mathcal{S}_u'). \]

代码

BERT4Rec

BERT4Rec-VAE-Pytorch

标签:Transformer,bm,BERT4Rec,token,Sequential,mathcal,Encoder
From: https://www.cnblogs.com/MTandHJ/p/17111798.html

相关文章