BERT 在推荐系统领域可能会有什么作为?
看不到这个问题具体的提问时间,题主的想法很好,但不算新,现在已经有一些推荐领域或者ctr的相关论文发表出来了,预计这个领域会被彻底洗一遍。
但推荐领域的场景和nlp还是不一样的,所以有些地方的处理方式也是不尽相同。
其实可以从两方面来看这个问题:
首先推荐领域可以看成是一个有监督的序列模型,所以这个问题可以扩充成“BERT在序列模型上的应用”;
另外,BERT不算是一个很创新的模型结构,其主要的结构取自Transformer中的encoder,而Transformer中特征的提取是依靠self-attention的,所以这个问题也可以这样问“self-attention在序列模型上的应用”;
下面简单列举一些self-attention在序列模型上应用的论文和文章:
1、https://zhuanlan.zhihu.com/p/78251135
这篇文章跟BERT的思维很像,同样是利用无标签的大量数据进行预训练,最后在实际场景中做finetune。
但这里的序列和nlp是有一些不一样的,作者也做了一些调整和创新。首先序列中的token是一系列信息(nlp中是一个词),需要分别做embedding,而在mask时也需要全部掩盖;另外BERT中的代理任务next sentence prediction在序列数据中需要特别处理,因为序列里面是没有明显断句的,作者在里面没有写出具体处理方式。
另外作者没有完全套用Transformer结构,而是用cnn+attention代替了原来的self-attention,用于提升训练效率。其实,self-attention也是可以通过一些方法来提高训练速度的,比如将序列拆成几个block,单个block中进行self-attention,然后外层再套一个self-attention,这样可以降低计算。
2、BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer
论文为了适应ctr的场景,最后一个token总是被mask的;文章中试验较多,很多结构和超参可以参考这篇文章;
2、 Behavior Sequence Transformer for E-commerce Recommendation in Alibaba
将Transformer中的encoder结构应用在ctr中,论文中没有用position embedding,而是将时序embedding代替了;
3、 Self-Attentive Sequential Recommendation
这篇论文是应用了Transformer中的decoder结构,每个时点预测下一个item,做dot-product排序,所以它的loss是每个时点的loss相加。
4、 AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks
这篇论文不是序列模型,而是将每个特征看成了序列中的一个token,然后在特征层面做self-attention,所以这里要求将每个特征embedding到相同的维度,包括dense特征。
5、 Deep Session Interest Network for Click-Through Rate Prediction
这篇论文模型结构设计的业务背景是因为用户每个session的点击目的是不一样的,所以论文将用户的序列数据拆成了多个session序列,单个session中应用了self-attention,各个session间则用了bi-lstm的结构。这个模型结构也可以用来做长文本的表征,比如将单个句子看成一个session。