推荐系统 - BST模型
2021-07-31 本文已影响0人
nlpming
1. 简介
Behavior Sequence Transformer由阿里巴巴淘宝团队19年发表在KDD2019会议上,论文的主要思想如下:通过引入transformer对用户历史行为序列建模,从而引入用户历史行为序列信息。 相比之前提出的DIN模型(DIN模型引入Attention机制增强模型序列建模能力),线上CTR指标提升3.02pp。在WDL的基础上引入用户历史序列信息,通过平均他们的Emb向量获取序列信息,论文中称此模型为WDL(+Seq),BST模型与此模型相比线上CTR指标提升更为显著4.54pp。
2. BST模型结构
- 首先,介绍下Embedding层。每个Item都对应两类特征:Sequence Item Features和Positional Feature。其中,Sequence Item Features包含两类:Item_id 和 category_id。Positional Feature就是Transformer中引入的位置信息,但是在这里计算Position val的方式与原论文不同,计算公式如下:。每一个item 其对应的pos信息为,当前推荐的时间减去用户点击item的时间。最后通过将Sequence Item Features和Positional Feature产生的Embedding向量进行拼接,得到此item最终的Embedding向量输入到Transformer Encoder block中。
- 对于Transformer Layer其实就是利用了Transformer Encoder block,论文中经过试验发现层数 的时候,试验效果最好。可能的原因是因为,相比NLP中的机器翻译任务,推荐中用户行为序列信息更加的简单,所以不需要很深的网络结构。
- BST通过引入Transformer Layer感觉同时实现DIN中的Attention机制,和DIEN中序列信息的建模。以一种非常简单的方式引入的Self Attention,并且很好的利用用户历史行为序列信息。 论文中将预测用户是否点击item的问题,建模成了一个二分类问题。使用的交叉熵损失函数,最终的试验数据集如下。用户规模在2亿多,商品规模在千万级别,样本数量在百亿级别。训练数据来自Taobao app日志,使用7天的数据作为训练,1天的数据作为测试。
3. 实验参数及结果
-
最终实验中选用的Embedding维度为 4-64。batch size大小设置为 256;dropout设置维0.2;序列长度为20;MLP总共三层,每层的参数数量为:1024 * 512 * 256;学习率设置为 0.01;优化算法为AdaGrad。
实验参数.png -
实验结果如下,可以看出BST模型相比DIN, WDL(+Seq)在离线AUC指标上的提升不是很显著。但是在线上CTR指标的提升比较显著。论文中作者给出的实际经验是,即使离线AUC指标有轻微的提升,对线上的指标都是非常巨大的提升。Google WDL论文也给出了相似的结论。
实验结果.png
4. BST模型理解
- 其中Attention Unit和DIN模型的注意力单元是一样的;
- BST模型代码实现:https://github.com/shenweichen/DeepCTR/blob/master/deepctr/models/bst.py
参考资料
- 【BST论文】Behavior Sequence Transformer for E-commerce
Recommendation in Alibaba https://arxiv.org/pdf/1905.06874.pdf%C2%A0