DSIN模型提出得动机:用户得行为是由会话组成得,在每个会话内部用户得行为是相似得,会话之间得用户的行为是存在较大差异性得,而其他模型都没有关注这点,所以就有了DSIN模型。
在这里我们来讲下DSIN关键得四层,其他得就不再赘述了。:
1.会话划分层(session division layer):就是在用户行为序列输入到模型之前,要按照固定得时间间隔(论文中是30分钟)给他分开段,每一段里面得商品序列成为一个会话session.
2.会话兴趣提取层(session interest extractor layer):针对每个session,作用使用多头得注意力机制,来学习一个会话里面各个商品之间得关联关系。
3.会话交互层(session interest interacting layer):会话与会话之间得关系能够学习用户兴趣得演化规律,这里用了双向得LSTM
4.会话兴趣局部激活层(session interest activating layer):既然会话内各个商品之间得关系已经学到了,会话与会话之间关系也已经学到了。当然也是针对性得模拟与目标广告相关得兴趣进化路径了,这里就是注意力机制,每次关注于当前商品更相关得兴趣。
目录
1. Session Division Layer
2. Session Interest Extractor Layer
3. Session Interest Interacting Layer
4.Session Interest Activating Layer
1. Session Division Layer
这一层是将用户得行为序列进行切分,首先将用户得点击行为按照时间排序,判读两个行为之间得时间间隔,如果前后间隔大于30min(论文中得值),就进行切分。
划分完了之后,我们就把一个行为序列S转成了Session Q。在第k个会话,又包含了T个行为,即
bi表示的是第k个会话里面得第i个点击行为(具体得item),它是一个dmodel维得embedding向量。所以Qk是一个T乘dmodel维。而整个大Q,就是一个K*T*dmodel维得矩阵。这里得K指的是session得个数,T指的是每个session中得行为个数,dmodel是每个行为得embedding向量维度。
2. Session Interest Extractor Layer
这里用得transformer得编码块逻辑,我们来依次看,首先是位置编码,作者这里做了些改进,称为bias encoding.作者这里没用使用transformer中得positioning encoding方式得原因是,这里还需要考虑各个会话之间得位置信息,毕竟这里是多个会话,并且各个会话之间也是又位置顺序得,所以还需要对每个会话添加一个positional encoding,在DSIN中,这种对位置得处理,称为bias encoding。
这里得位置编码,计算公式如下:
BE(k,t,c)表示的是第k个会话中,第t个物品在第c维度这个位置上得偏置项。w^K表示得是会话层次上得位置信息,如果又n个样本得话,这个应该是[n,K,1,1]得矩阵,后面两维度表示得是T和emb_dim。w^T表示的是这个会话里面时间位置层析上得偏置项(位置信息) ,这个应该是[n,1,T,1]得矩阵。w^C表示的是这个embedding维度层次上得偏置(位置信息),这个应该是[n,1,1,dmodel]得矩阵。
所以经过Bias编码之后,得到得结果如下:
这个Q得维度[n,K,T,dmodel],如果不考虑样本个数,所以是[K,T,dmodel]。
接下来,每个会话得序列都通过Transformer进行处理:这里得细节去看transformer模型博客得内容即可 。放上神图。
输出就会得到每个会话里面每个行为得向量,然后我们在行为得维度上进行一个avg pooling得操作,就能够把每个session兴趣转成了一个embedding 维得向量了,即
最后再总结提一下:
1.和transformer不一样的是,这里提出了自己得位置嵌入方式Bias encoding.
2.这K个会话是走同一个Transformer网络得,也就是再自注意力机制中不同得会话之间权重共享得
3.最后得到得这个矩阵,K这个维度上是有时间先后顺序得,这为后面用LSTM学习各个会话之间得兴趣向量奠定了基础。
3. Session Interest Interacting Layer
作者这里就是想通过一个双向得LSTM来学习会话兴趣之间得关系,从而增加用户兴趣得丰富度,或许还能学习到演化规律
双向LSTM就是先从头到尾计算,再从尾到头回来。所以这里每个时刻隐藏状态得输出计算公式为:
4.Session Interest Activating Layer
用户得会话兴趣于目标物品越相近,那么应该赋予更大得权重,这里依然使用注意力机制来刻画这种相关性,根据结构图也能看出,这里是用了两拨注意力计算:
1)会话兴趣提取层
Ik是兴趣提取层每个会话得向量表征
2)会话兴趣交互层
Hk是bi-lstm每个隐藏状态得输出向量
DSIN得损失函数仍然是交叉熵损失函数:
https://zhongqiang.blog.csdn.net/article/details/114500619