前几天写了一篇阿里的论文BST,最后应用在我们自己的新闻推荐场景,离线AUC没有什么提升,今天分享一篇有收益的文章,同样出自阿里。
绝密伏击:推荐系统论文:Behavior Sequence Transformer(https://zhuanlan.zhihu.com/p/96338316)
文章DSIN(Deep Session Interest Network for Click-Through Rate Prediction)发表在IJCAI-2019,主要贡献在于对用户的历史点击行为划分为不同session,对每个session使用Transformer学习session embedding,最后使用BiLSTM对session序列建模。这篇文章和阿里的另一篇DIEN( Deep Interest Evolution Network )很像,「主要区别在于用户历史行为序列的刻画,引入了session,并用transformer学习session表征」 。
图1:DSIN模型结果
模型主要由四个部分组成, 「Session Division Layer」 是对用户的历史行为划分到不同session, 「Session Interest Extractor Layer」 是学习session的表征, 「Session Interest Interacting Layer」 是学习session之间的演变, 「Session Interest Activating Layer」是学习当前item和历史点击session的相关性。后面会讲一下这四个部分的具体实现。
主要是将用户的历史点击行为序列划分为多个sessions。「这里有一个假设是相同session用户的行为是接近的,比如都是在点一些和裤子相关的商品,而不同session间的用户行为是有差异的,比如后面可能是点一些和洗发水相关的商品」。文章将间隔超过30分钟作为session的划分,比如将历史点击序列 转换为session ,第 个session表示为:
其中 是第 个session的长度,
是输入item的embedding大小
这部分主要是获取session表征。用户在相同session内的行为是高度相关的,此外用户在session内的一些随意行为会偏离整个session表达。为了刻画相同session内行为间的相关性,同时减小不相关行为的影响,DSIN使用「multi-head self-attention」 对每个session建模。为了刻画不同session间的顺序,DSIN使用了 「Bias Encoding」 。
「2.2.1 Bias Encoding」
为了刻画不同session的顺序关系,使用bias encoding,定义如下:
其中 表示第 个session中,第 个物品的embedding向量的第个位置的偏置项。也就是说,对每个session中的每个物品对应的embedding的每个位置,都加入了偏置项。加入bias encoding后,用户的session表示为:
「2.2.2 Multi-head Self-attention」
在推荐系统中,用户的点击行为会受各种因素影响,比如颜色、款式和价格。「Multi-head self attention」可以在不同的子空间上建模这种关系。这里将第 个session划分为 个 ,使用
表示,其中 。 可以表示为:
其中 是线性矩阵。
然后将 的输出concat到一起,再接入一个FFN网络:
其中 表示前向神经网络, 表示线性矩阵。
经过 「Multi-head self attention」 处理之后,每个session得到的结果仍然是
大小,随后,经过一个 「avg pooling」 操作,将每个session兴趣转换成一个 维向量:
使用双向LSTM建模session之间的演变。
上式中的两项分别表示前向的隐藏层状态和反向的隐藏层状态。
这部分主要是通过Attention机制刻画Item和session之间的相关性。用户的session与目标物品越相近,越应该赋予更大的权重。使用注意力机制来刻画这种相关性:
其中 是目标item的embedding
使用了两个数据集进行了实验,分别是阿里妈妈的广告数据集(Advertising)和阿里巴巴的电商推荐数据集(Recommender)。对比结果如下:
图2:DSIN模型结果对比
从实验结果来看,AUC相比DIEN都有 「0.5%」 以上的提升。
这篇文章在我们自己的业务场景(新闻推荐场景)上也实验了,选取了用户最近的10次点击session,session长度最大取20,使用7天训练,1天测试,最后离线AUC相比DIEN大概有「0.46%」的提升,和文章的结果基本吻合。个人感觉这篇文章的设计还是比较巧妙,充分利用了用户行为的内在结构,使用session划分用户的点击序列,使得在使用LSTM等序列模型对历史点击建模的时候,长度大大缩小,而且效果还有所提升。
Alex-zhai:阿里Deep Session Interest Network解读
2. Deep Session Interest Network for Click-Through Rate Prediction
3. Ethan Wong:DSIN(Deep Session Interest Network )分享