【论文导读】DLP-KDD2019|BST---使用Transformer进行序列推荐

机器学习初学者

共 3466字,需浏览 7分钟

 ·

2020-09-11 00:31

前言

本次分享一篇使用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 FeaturesUser Behavior SequenceTarget 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矩阵,,其中为embedding维度,为物品数量。

  • Target Item:与上述相同的处理方式;

关于Positional Feature Embedding,文章单独进行了说明:“Attention is all you need”[2]一文中提到,可以使用位置的Embedding方法来捕捉句子的顺序信息。当然,在序列推荐中,也能捕捉用户历史行为的一个先后顺序。对于每一个历史物品的位置特征,文中给出计算方式:

其中表示推荐时间,表示点击的时间。简单来说,就是做一个与当前的时间差。

Transformer层

该部分,作者直接引入了Transformer模型来捕获用户的行为序列信息。

「自注意力机制层:」

使用多头自注意力机制:

其中表示所有历史物品的embedding矩阵,表示的数量;

「前向网络层:」

为了克服过拟合等问题,作者在原有Transformer模型上,加入了dropoutLeakyReLU在自注意力机制层与前向网络层之间:

「堆叠多个自注意力机制块:」

以上部分称为一个attention block,对于个block,可以定义为:

作者在实验中也对这个超参数进行了讨论。

具体的Transformer模型的内容可以参考原文:“Attention is all you need”,或阅读NIPS2017|行为序列建模的方式---Transformer

MLP层

使用了如上图图所示的全连接神经网络。

损失函数使用了CTR预估最为常见的交叉损失:

实验

文章提出的BST模型整体结构非常简单,最主要的内容就是在序列推荐中引入Transformer进行了尝试,且取得了不错的效果。

但我们发现,取得了最好的结果,随着其增大而结果变差。作者的理由是:

This may be due to the fact that the sequential dependency in users’ behavior sequence is not as complex as that in sentences in machine translation task, thus smaller number of blocks are enough to obtain good performance.Similar observation is reported in [7].

即用户行为序列并不像机器翻译序列那样复杂,很小的block也能充分获得不错的性能。并且表示“「Self-attentive sequential recommendation」”[3]一文中也是相似的情况。

讨论

1、文中只和两个非序列推荐模型进行比较,那和其他序列模型,例如DIEN进行对比,结果会怎么样?

2、关于文中提到的block数量的解释是否具有说服力?(个人并不清楚)

3、关于位置编码的设计,文章使用的方法与Transformer不同,不过时间差确实能反应两个历史物品的一个先后顺序大小。

总结

本篇文章提出的模型BST是简单的应用Transformer结构,实现序列推荐,完成CTR预估。

本篇论文也会进行复现,大家可以star一下我的github项目:https://github.com/ZiyaoGeng/Recommender-System-with-TF2.0,目前已有138?。

参考文献

[1] Chen Q, Zhao H, Li W, et al. Behavior sequence transformer for e-commerce recommendation in Alibaba[C]//Proceedings of the 1st International Workshop on Deep Learning Practice for High-Dimensional Sparse Data. 2019: 1-4.
[2] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Advances in neural information processing systems. 2017: 5998-6008.
[3] Wang-Cheng Kang and Julian McAuley. 2018. Self-attentive sequential recommendation. In ICDM. 197–206.



往期精彩回顾





获取一折本站知识星球优惠券,复制链接直接打开:

https://t.zsxq.com/662nyZF

本站qq群1003271085。

加入微信群请扫码进群(如果是博士或者准备读博士请说明):

浏览 25
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报