阿里IJCAI2019的文章,是DIN和DIEN的改进版本:
DSIN(Deep Session Interest Network)
深度会话兴趣网络
文章标题:Deep Session Interest Network for Click-Through Rate Prediction
文章地址:https://arxiv.org/abs/1905.06482
文章代码:https://github.com/hhh920406/DSIN
本文将从以下几个内容进行:
1、DSIN是什么(what)
2、为什么要提出DSIN(why)
3、DSIN要怎么做(how)
4、实现效果(result)
5、小甜点(dessert)
文献亮点:
(1)首次采用带有bias encoding的 self-attention机制,提取每个session内用户兴趣
(2)采用Bi-LSTM刻画用户在不同session间的兴趣关系
(3)采用local activation unit自适应学习不同session与目标item之间的权重
1、DSIN是什么
首先,去掉标题的所有定语,可以看出,DSIN是点击率预测的一个网络。
其次,网络这个词的定语有 deep、session、interest。
deep表示网络是深度网络;
session表示网络是带有会话信息;
会话:可以理解为一个集合,这个集合中,有很多元素,在该文献中,
该元素是指用户浏览的商品信息和对应浏览的行为。
interest表示网络是兴趣网络,
这里兴趣的作用点是用户,即反应和刻画用户当前兴趣、在用户多样的兴趣中,找出用户最感兴趣的物品
三个词关联在一起,作用到网络这个词上,构成深度会话兴趣网络,
表示这是通过在用户多个行为兴趣点(以session形式存储)中,
找到用户感兴趣的item(interest)的深度(deep)网络框架。
总结一下:DSIN是采用session的形式,在用户浏览记录基础上,预测用户是否对当前item是否感兴趣的一种网络框架
2、为什么要提出DSIN(why)
用户的浏览记录,按照时间顺序排列,组成一个sequence。
在历史用户兴趣物品探索中,DIIN、DIEN均基于整个sequence,
但在淘宝场景中,作者观测到,用户的浏览记录在不同时间段,有较大的区别。
在单个时间段内,浏览物品类似,不同时间段之间,物品类型相差较大,
例如,下图1. session的划分原则是,两物品的点击时间超过30min
图中例子是来源于真实工业场景,我们可以看出,同一个session内规律明显,不同session间物品类型区别比较大。
session1(第一行),主要是女士上衣和裤子,session2主要是戒指美甲相关,session3则是外套。
基于上述发现,作者提出,采用DSIN 通过对用户历史记录划分为不同session,对用户的序列行为建模,进行点击率预测。
如果将用户所有序列直接作为输入,进行点击率预测,会存在比较大的噪声,比如上述session分割点,物品类型差别较大,会对预测结果产生比较大的干扰。
3、DSIN怎么做(how)
(1) Session Divsion Layer---session划分层
将sequence划分为session,划分时间间隔为30min。
即连续两个行为间的时间间隔超过30min,则划分为两个session
bi表示用户在session中的第i个行为
T表示session包含的用户行为个数
Qk表示第k个session
(2) Session Interest Extractor Layer --- session兴趣提取层
同一session内用户行为强相关,且用户在session内的偶然行为,
不同与其原始表达的兴趣,即同一session内,也存在部分偏差
为刻画同一session内用户行为的内在联系,减少这些无关行为的影响,
作者对每个session采用multi-head self-attention,且对self-attention机制进行改进。
a. Bias Encoding
self-attention 为利用sequence内订单的关系,其对输入embedding应用位置编码。
且session内不同订单的偏差,以及不同表示session间的偏差,均需要刻画。所以,作者在位置编码基础上,提出bias encoding,具体计算公式如下:
wK表示session间的偏差向量,k表示session的index;
wT表示session的位置偏差,t表示session内行为的位置索引;
wC表示各个行为embedding的位置偏差向量,c表示行为embedding的单位索引;
加上bias encoding后,用户行为session Q可用下式计算:
b. Multi-head Self-attention
在推荐系统中,用户的点击行为通常会受到多种因素影响,比如颜色、款式、价格等等。
Multi-head Self-attention可以刻画不同表示子空间的关系。
表示Qk的第h个head,H表示heads的个数。
WQ, WK, WV分别是参数矩阵,在训练过程中学习,d model表示 embedding size
WO为参数矩阵,在训练过程中学习得到。FFN为前馈神经网络
Avg表示average pooling。
Session Interest Extractor Layer整体过程如下:
首先,处理好的session,作为输入,加入bias endocing的偏置信息,获得Q;
其次,将Q复制两份,一份经过Multi-Head Attention 得到输出结果Qmha;
一份不做处理,将两者结果相加,并做norm处理
然后,将上一步输出结果复制两份,一份经过前馈神经网络处理,得到输出结果,
另一份不做处理,将两个相加,并Norm处理,输出结果
最后。将上一步输出结果,进行池化处理(均值),得到整个信息提取层的输出结果
(3) Session Interest Interacting Layer 兴趣交互层
Bi-LSTM可以很好的刻画序列关系,可以很好的应用于session间的交互信息,
采用双向LSTM,可以更好地刻画用户的session之间上下文关系,前后间关系,时间轴上,全方位刻画,具体Bi-LSTM网络结构,可参考文献,或者相关书籍。
(4) Session Interest Activating Layer 兴趣激活层
soft alignment用户session和目标item需要soft alignment(校准或对齐)
该层的主要作用,将目标item与用户历史session兴趣相关联。用户历史中与目标item相关性越高,则用户点击该item的可能性越大。
这里也采用Attention mechanism,计算历史session兴趣与目标item之间的权重大小
WI为参数矩阵,训练可得。XI表示item profile, Ik为经过Self-Attention后用户第k个session的信息。
同样,经过Bi-LSTM后的结果Hk,需要计算与目标之间的attention:
WI为参数矩阵,训练可得。XI表示item profile, Hk为经过Bi-LSTM后用户第k个session的信息。
最后,将User Profile和Item Profile的embedding 向量与上述的UI和UH拼接后,喂入MLP中训练。
4、实现效果(result)
作者在Alimama广告公开数据集,以及阿里真实的推荐场景中进行测试,对比各种算法的auc,结果见下表。
可以看出,DSIN开头的结果,优于其他算法。
对比DSIN内的不同细节点:
b为DSIN带位置encoding;
c为DSIN带有bias encoding,但没有BI-LSTM学习session间的关系,
以及activation unit自适应计算各个session与目标item之间的权重关系;
d为完整文献DSIN
对比c和d,可以看出BI-LSTM学习session上下文关系,可更具象的刻画session间的关系。
对比b和d,可以看到,bias encoding的有效性。
5、小甜点(dessert)
User Profile包含gender, city, etc
Item Profile包含seller id, brand id, etc
User Behavior包含用户最近点击的item ids
点击率预测的发展史(ctr特征交叉发展史) :
wide&deep====特征线性表示;
deepFM=====二阶交叉特征;
DCN=======特征的高阶表示(多层半径结构);
AFM======采用attention机制自动学习交叉特征的权重;
用户的系列行为,表示了用户动态的和相关的兴趣,在当前CTR预估中十分有效:
用户的序列表现Users’ sequential behaviors imply users’ dynamic and evolving interests and have been widely proven effective in the CTR prediction task
Youtube 将用户观看列表用average pooling,将embedding转化为固定长度;
DIN采用attention机制刻画用户历史行为与目标item之间的关系;
DIEN采用辅助loss,自动学习当前行为和下一行为之间的关系,AUGRU进行兴趣提取。