0. 写在前面
接着上一篇《DIEN论文解读》来讲讲alibaba最近的一个成果--DSIN(Deep Session Interest Network)深度兴趣会话网络。DSIN是DIEN的升级版,不仅对用户序列进行了更加细致的划分,并且进一步优化了网络架构层数,提高了模型对用户兴趣的表达能力。
个人心得:
- 用户的行为序列可以用一个个session序列表示,session内的用户兴趣变化不大;
- self-attention用于提取一个session内的用户兴趣
论文地址:
https://arxiv.org/pdf/1905.06482v1.pdf
论文代码:
https://github.com/shenweichen/DeepCTR/tree/v0.8.0
1. 背景
DIN \ DIEN 论文均实现对用户的兴趣进行建模,在实现方式上,两者均采用将用户行为序列中每个独立的物品元素作为一个兴趣点进行建模的方案。然而,在实际场景中,用户在某一个确定的时间段(session)内,兴趣不会发生太大变化。
因此,论文提出了DSIN模型,引入了用户session兴趣,并相对应的实现了兴趣抽取,兴趣演化等一系列建模,通过确定session-->session兴趣抽取-->兴趣交互-->兴趣激活(引入待推荐物品)这个流程来建模,实现最终的推荐。
2. 模型架构
DSIN模型结构如图所示。
从图中我们可以看到,左侧是通用部分,在其他模型中也均为此设计,包括用户特征,物品特征,以及上下文特征。不同之处在于右侧对于基于session的用户兴趣的建模设计。这一部分主要分为如下四个部分:
- Session Division Layer -- sessioin兴趣划分层
- Session Interest Extractor Layer -- session兴趣抽取层
- Session Interest Interacting Layer -- sessioin兴趣交互层
- Session Interest Activating Layer -- session兴趣激活层
下面详细介绍上述四个模块。
2.1 Session Division Layer
论文以30min为一个session间隔,将用户行为序列中30min以内的物品元素归为一个session,依次间隔类推,进而将整个用户行为序列划分为一个个session。从论文提供的示意图中可以看到,一个session内,用户的兴趣基本没有变化,因此浏览的物品类别也保持一致。
2.2 Session Interest Extractor Layer
我们将用户行为序列划分为了一个个session,那么,如何对这个session内用户的兴趣进行建模呢?每个session其本质上都是用户行为序列的一个子序列,而self-attention能够很好的处理序列数据中元素之间的相关性。因此,DSIN使用 Multi-head self-attention来对每个session建模。同时,为了刻画不同session之间的顺序,DSIN引入偏置编码Bias Encoding,实际上是对序列中位置信息的编码。
2.3 Session Interest Interacting Layer
用户会话兴趣抽取层对用户在session内的兴趣进行了建模,考虑到用户的兴趣会随时间发生变化,因此论文在DSIN中设计了一层会话兴趣演化层,用于学习用户的兴趣演化,这与DIEN的兴趣演化建模思路有很强的一致性。与DIEN不同的是,DSIN使用的是双向LSTM对用户的兴趣演化进行建模,如下图所示。
LSTM中的隐藏状态被视为结合了上下时刻的用户兴趣,利用LSTM来学习捕捉用户的兴趣变化轨迹。
2.4 Session Interest Activating Layer
上面说到,LSTM学习到了用户兴趣变化的轨迹,然而推荐结果评估的是用户在每个session的兴趣会对当前待推荐物品的偏好产生的影响程度。因此,DSIN引入了会话兴趣激活层,
思路也类似于DIEN,将会话兴趣提取层及会话兴趣演化层中每一个兴趣表示向量与待推荐物品进行attention的操作。
得到待推荐物品与每个session兴趣的相关程度。进而与物品特征、用户特征及上下文特征进行级联,送入全连接层,得到最终的推荐概率。
3. 效果
论文给出了DSIN与业界主流的推荐模型,如youtubeNet, wide&deep,DIN及DIEN的对比效果。可以看出,相较于其他的模型,DSIN在推荐效果上均有提升。
4. 总结
DSIN设计者巧妙的洞察到了用户在一段时间内兴趣不会发生显著变化的事实,继而在DIEN的基础上,加入了session的概念,设计出了DSIN。这说明,对于任何一个推荐场景,都需要算法相关工作人员对其有深刻的理解,并将其理解体现到建模的思路当中,这样方能有方向性的优化模型。另外,DSIN也有许多设计细节值得我们借鉴,例如为每个session添加一个bias enconding来校正每个session中物品位置信息。总之,这篇论文还是值得每个商品推荐算法工程师细细品味。