阿里序列建模论文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

类比Transformer中的Position Embedding,Attention这种结构并行化更好,但是丢失了序列的位置关系,因此引入了Position Embedding来获得每个位置的编码,把这种位置编码的偏移添加到原有每个位置的embedding中,并且在模型更新时学习这个位置编码的参数:

Multi-head Self-attention

在推荐系统中,用户的行为受多种因素的影响,比如颜色、风格、价格等,多头注意力机制可以在不同表示的子空间中捕捉多种因素的关系,如上图所示,输入为有偏置项的embedding,输出提取出来的session兴趣向量

 

Session Interest Interacting Layer 

用户的session之间仍保持着一种序列关系,因此希望利用Bi-LSTM模型来捕捉session之间的关系,加强用户兴趣的演化进程:

 

Session Interest Activating Layer

用户的session兴趣和目标项有较强的相关性,因此希望利用目标项对session兴趣进行加权,引入注意力机制,模型的输入为兴趣提取层输出、兴趣交互层输出、目标项向量,输出为兴趣提取层、兴趣交互层最终向量:

最后,将上述两种输出,和用户画像特征,商品画像特征进行拼接后输入到MLP层得到最终的模型输出

 

posted @ 2024-01-26 16:43  xd_xumaomao  阅读(22)  评论(0编辑  收藏  举报