论文概要:
在用户的行为序列中如何动态获取其兴趣的变化是ctr预测的一大主流思想。然而,大多数现有的研究忽略了序列的内在结构:序列由会话组成,其中会话是用户根据其发生时间对其行为进行间隔划分的一个动态表示。总体的表现形式是:单个会话内的行为是同构的,会话间是异构的。所以,提出DSIN算法进行用户行为的表征。总体的简单架构是:
- 单独会话中用自注意力机制对一个session中的items进行偏重的表征,获取用户的兴趣。
- 利用双向bi-LSTM对不同会话进行综合建模,提取用户综合表征的兴趣。
- 对于目标item尽心了两次激活(即注意力机制进行权重的分配):
- 单个session通过self-attention机制对用户短期interset建模后的表征I(是一个集合,是对用户在每个session中的建模),对目标item的注意力权重的分配
- 将I中的每个i采用双向Bi-LSTM之后,生成包含有上下文的H(对用户历史状态的综合建模),对目标item的注意力权重的分配。
论文的框架如图:
框架解读:
数据的输入:user Profile:包括用户基本信息(性别、居住地、平均消费等),符号表示,
表示user Profile特 征的个数。维度:[
, ]一维
item Profile:包括物品的基本信息(商品类型、商品赞助商等)[,]一维
user Behavior:用户行为序列(主要使用的是用户的click序列,数据的表现形式是:itemid组成的list)[,
]
数据的输出:对最后的MLP层进行softmax
损失函数:对数似然损失函数:
每一层的详解:自下而上
User Profile:将one-hot之后的结果进行embedding操作,若还包括其他的辅助信息,则进行concat即可
Item Profile:同上。
User Behavior:四部分
- session divsion layer:序列分割层sessions:按照30分钟为一个session
- session interest extractor layer:用于获取session内部item之间的关联关系
Bias Encoding:意思是对第k个session中,第t个物品的嵌入向量的第c个位置都加上偏置项。重新构建Q
Muti-head self_attention:和attention is all you need中一致,使用自注意力机制
- session interest interacting layer:
利用双向LSTM进行不同session之间的上下文兴趣提取,并且结果的输出为(前向ht和后项ht的相加)
- session interest activating layer:
分别计算:用户会话与目标物品的权重分配;上下文会话与目标物品的权重分配。
Output层:concat[User features, Item features, 用户会话与目标物品的权重分配,上下文会话与目标物品的权重分配]进行几层的MLP层,最后加一层softmax进行模型的预测。
评测指标:AUC,一个排序指标,即只要正例排列在负例之前即可,不在乎真正的数值。