阿里CTR预估三部曲(3):Deep Session Interest Network for Click-Through Rate Prediction
Introduction
文章主要提出对于用户表现sessions,同一个session内的兴趣是相近的,而不同session之间的兴趣是异质的,因此DSIN应运而生来解决上述的问题,其中利用自注意力网络来获取sessin的兴趣表示,然后使用双向lstm来捕捉序列关系,最后利用local activation单元来整合目标item对于不同session兴趣的重要性。
DSIN
DSIN在全连接层之前,分成了两部分,左边的那一部分,将用户特征和物品特征转换对应的向量表示,这部分主要是一个embedding层,就不再过多的描述。右边的那一部分主要是对用户行为序列进行处理,从下到上分为四层:
1)序列切分层session division layer
2)会话兴趣抽取层session interest extractor layer
3)会话间兴趣交互层session interest interacting layer
4)会话兴趣激活层session interest acti- vating layer
接下来,我们主要介绍这4层。
Session Division Layer
为了准确地抽取用户的兴趣,作者将用户表现序列切分成多个sessions,切分规则是是否前后时间间隔超过30分钟。
Session Interest Extractor Layer
为了更好地发掘session内的用户表现行为,文章采用多头自注意力机制,同时也做了一些自注意力机制中的改变,提升了性能。
Bias Encoding
文章中对于位置关系的编码没有采用[《attention is all you need》](Attention Is All You Need简析)中所示的positional encoding,而是采用bias encoding。
从文章的介绍来看,BE是K*T* d m o d e l d_{model} dmodel的,而 B E ( k , t , c ) BE_{(k,t,c)} BE(k,t,c)的意思是对第k个session中,第t个物品的嵌入向量的第c个位置都加上偏置项。
所以加入偏置项后,Q变为:
Multi-head Self-attention
该部分与《attention is all you need》一致,同时可以参考https://mp.weixin.qq.com/s/RLxWevVWHXgX-UcoxDS70w这篇文章一起理解。
###Session Interest Interacting Layer
该部分就是一个双向的lstm,同时最后的结果通过相加前向及后向的最后一个hidden state得到最终结果。
Session Interest Activating Layer
用户的会话兴趣与目标物品越相近,那么应该赋予更大的权重,这里使用注意力机制来刻画这种相关性:
同时对于混合了上下文信息的会话兴趣,一样也使用注意力机制来刻画这种相关性:
最后将用户的偏好,物品的偏好, U I 和 U H U^I和U^H UI和UHconcat一起后送入MLP层进行计算,得出最终结果。