阿里序列建模论文DSIN
背景
作者通过观察发现,用户的行为序列由多个session组成,session是根据时间划分出来的用户行为(比如说可以根据用户浏览时间划分session,若用户30分钟没有浏览记录时,下一次浏览即为一个新的session),观察发现每个session内部用户行为是高度相似(同质)的,不同session之间的用户行为差异性较大(异质),基于以上分析,作者提出一种DSIN模型,把用户行为序列拆分为多个session建模
方法
模型整体结构如上所示,模型保护两个部分:
- 左边部分把用户属性和候选item映射成embedding
- 右边部分分session建模用户的行为序列
DSIN的重点在右边session建模部分,分为四个步骤:
- session division layer —— session划分层,用于把用户序列划分为一个个session
- session interest extractor layer —— 兴趣提取层,用于得到每个session的向量表示
- session interest interacting layer —— 兴趣交互层,用于学习session之间的交互关系
- session interest activating layer —— 兴趣激活层,用于学习session和目标项的关系
Session Division Layer
session划分层的作用就是不用户的行为序列划分为多个session,划分依据是如果相邻的两个行为发生的时间间隔超过30min,那么这两个行为会被划分在不同session中
Session Interest Extractor Layer
一般来说,在同一个session中用户的行为相关性较强,但是也会有一些随机的行为会使兴趣产生偏移,比如说,用户在某一段时间内浏览关于家居的商品,突然想到需要下单某一个零食,那么在这个session中,虽然混进了零食,但是我们希望这个session反应的更多的是用户对于家居的兴趣,所以为了捕捉同一个session中的行为关系,减少不相关行为的影响,session兴趣提取层利用了多头自注意力机制来进行建模
Bias Encoding
Multi-head Self-attention
在推荐系统中,用户的行为受多种因素的影响,比如颜色、风格、价格等,多头注意力机制可以在不同表示的子空间中捕捉多种因素的关系,如上图所示,输入为有偏置项的embedding,输出提取出来的session兴趣向量
Session Interest Interacting Layer
Session Interest Activating Layer
用户的session兴趣和目标项有较强的相关性,因此希望利用目标项对session兴趣进行加权,引入注意力机制,模型的输入为兴趣提取层输出、兴趣交互层输出、目标项向量,输出为兴趣提取层、兴趣交互层最终向量:
最后,将上述两种输出,和用户画像特征,商品画像特征进行拼接后输入到MLP层得到最终的模型输出