BST: Behavior Sequence Transfor

2019-12-24  本文已影响0人  小新_XX

用户历史行为中包含了丰富的信息,是刻画用户心智的重点特征。在推荐广告领域,如何挖掘用户行为序列中的有效信息是CTR预估等任务的重点。笔者在上一篇文章中介绍了DIN(Deep Interest Network),其抓住了用户行为序列与目标广告/商品之间的关系。在这篇文章中将介绍阿里团队的另外一项重要的工作:BST(Behavior Sequence Transformer) ,将NLP中的transformer模型运用到了CTR预估中,更好地挖掘用户行为序列内部的时序关系。

文章地址:Behavior Sequence Transformer for E-commerce Recommendation in Alibaba
Transformer论文地址:Attention Is All You Need,想对transformer有详细了解的同学们可以参考

transformer的tensorflow代码可以参考tf官方的github:地址
我自己试了一下,简洁直观,容易实现。

1. BST网络简介

BST的网络结构如下图所示:

图1 BST网络结构
1.1 核心思想
WDL 和 DIN没有考虑到用户序列的时序性,即用户序列中不同商品间的关系。本论文使用了transformer的结构,来捕捉这种关系。

1.2 输入特征
网络的输入特征有两部分:用户行为序列(User Behavior Sequence)和其他特征(user, item, context, cross等)。其中用户序列中的每一个item有两部分组成:sequence item feature 和positional feature,如图1所示。这里的用户序列也包含了target item及其position,见图1的右下角。

1.3 transformer layer

2. self attention过程详解

图2 self attention 图3 multi-head self attention

在图2中,seq 首先经过embedding得到向量\boldsymbol E \in \mathbb{R}^{n\rm x d}, 其中n=4为序列长度,d=6为embedding size. 然后\boldsymbol E与3个相同形状的权重矩阵\boldsymbol W_Q, \boldsymbol W_K, \boldsymbol W_V点乘,将自身映射为3个不同的矩阵\boldsymbol Q, \boldsymbol K, \boldsymbol V。接下来这三个矩阵会完成self attention的基本操作,即式(2)。\boldsymbol Q\boldsymbol K得到的attention score \boldsymbol W作为权重,与\boldsymbol V点乘,作为self attention的输出。

图3在图2的基础上加入了multi head 操作,即将\boldsymbol Q, \boldsymbol K, \boldsymbol V在embedding size d 的维度拆分为h个矩阵(图中h=3),分别进行self attention 操作,得到的结果再concat起来作为最终的输出。

参考文献:
[1] multi-head attention
[2] 推荐系统遇上深度学习(四十八)-BST:将Transformer用于淘宝电商推荐
[3] 论文笔记:Attention is all you need

上一篇下一篇

猜你喜欢

热点阅读