前言
本次分享一篇使用Transformer作为用户行为序列建模的CTR预估文章。论文较短,只有4页,感兴趣的同学可以阅读下原文[1]。
本文约1.7k字,预计阅读10分钟。
概要
本文“Behavior Sequence Transformer for E-commerce Recommendation in Alibaba”[1]是2019年阿里团队发表在DLP(Deep Learning Practice for High-Dimensional Sparse Data)-KDD上关于序列推荐的一篇论文。文章最主要的内容就是「通过Transformer模型在用户行为序列中捕获序列信息来进行推荐」。其余内容与其他Embedding&MLP的模型没有本质上的变化。本文主要聚焦于推荐系统中排序阶段的任务,「即可以把它看作是一个CTR预估任务」。
与WDL、DIN的对比
WDL(Wide&Deep)模型只是单纯的将所有Embedding特征进行拼接,且忽略了用户行为序列的先后信息。
DIN(Deep Interest Network)则是应用一个Attention机制来加大与目标物品相似的历史物品的权重,但Attention没有位置的先后顺序(即打乱历史物品的顺序,并不影响最后的结果),因此DIN依旧没有考虑到用户行为的序列特征。
为了解决上述模型缺陷,作者受Transformer的启发---“可以通过自注意机制更好地捕捉句子中单词之间的依赖关系”,使用Transformer来提取用户行为序列中物品之间的“依赖关系”。
【题外话】作者在该篇文章中,只与WDL、DIN这些非序列化模型进行对比,个人认为只能证明序列化推荐的有效性,很难说明Transformer在序列推荐有很好的应用,后期实验也证明了这一点。
模型结构
BST的模型结构主要由Embedding层、Transformer层与MLP层组成,如下所示:

Embedding层
Embedding层依旧是将所有的高维稀疏的输入特征映射为低维密集型特征。但由于是序列推荐,所以将所有的特征分成了三块内容:Other Features
、User Behavior Sequence
、Target Item
。
Other Features:包括用户的基本特征、目标物品的基本特征、上下文信息、交叉特征,先将每个大的种类特征内的所有内容进行拼接,再分别进行embedding映射为一个低维向量,最后得到一个embedding矩阵, ,其中 为embedding维度, 为特征数量(这里指的是用户的基本特征等4个大的类别);
User Behavior Sequence:由于表示一个序列特征,且不使用RNN神经网络,因此需要一个
Positional Feature
表示相对位置,Sequence Item Features
表示历史物品信息。其中文中指出,item_id, category_id
已经完全充分能表示物品信息。Positional Feature与Sequence Item Feature分别得到两个embedding低维向量,再进行拼接,得到一个embedding矩阵,