简介
DSIN(Deep Session Interest Network)是阿里巴巴于2019年提出的点击率预估模型。相比于DIN、DIEN,考虑了用户行为序列的内在结构(序列是由session组成的,在每个session内,用户行为是高度同构的,在session间是异构的),实现了对用户兴趣的更精准地刻画,并取得了更好的离线效果(论文中没有给出在线效果)
已有工作
CTR预估
截止目前,已有的CTR预估工作主要集中在两方面:
(1)特征交叉。从Wide&Deep->DeepFM->DCN->AFM。交叉越充分,可提取的信息越丰富,效果越好;
(2)利用用户行为序列。从YoutubeNet->DIN->DIEN。利用序列信息,提升用户表征能力和目标预测准确性
基于Session的推荐
截止目前,session经常被用在序列化推荐中,但是未被用在CTR预估中
已有工作的不足
未考虑用户行为序列的内在结构:序列是由session组成的,在每个session内,用户行为是高度同构的,在session间是异构的
解决的方案
step1:将用户行为序列划分为不同的session,本文是按照至少每30min划分作为一个session。这点和Airbnb的划分方式是一致的。在每个session内通过带bias的self-attention提取用户兴趣;
step2:将step1再经过Bi-LSTM,建模session间的用户兴趣演变
step3:使用“局部激活单元”自适应学习在目标target上的不同session兴趣
模型结构和Loss设计
Base CTR
模型结构
介绍三部分:feature representation、embedding、MLP
(1)feature representation
涉及三种类型的特征:用户画像(如性别、城市等)、内容画像(如卖家id、品牌id等)、用户行为(如用户点击的item id、item的side information等)
(2)embedding
上述三种类型的特征都会表示成embedding的形式。具体处理如下:
(3)MLP
上述特征经过concat、flattened后喂给MLP,再经过激活函数(如RELU),最终用softmax预测用户点击目标item的概率
Loss设计
用交叉熵损失函数表示
DSIN的模型结构
如下所示,包含4部分:Session Division Layer、Session Interest Extractor Layer、Session Interest Interacting Layer、Session Interest Activating Layer
第一部分:Session Division Layer
目标:划分session,保证在每个session内,用户行为是高度同构的,在session间是异构的
方式:按照至少每30min划分作为一个session
第二部分:Session Interest Extractor Layer
目标:提取用户兴趣
方式:需要考虑bias,再按照transformer结构进行multi-head Self-attention学习session内的时序信息。包含Bias Encoding、Multi-head Self-attention两部分
Bias Encoding
由如下三部分组成,并和用户原session行为求和:
和transformer的self-attention结构相同
第三部分:Session Interest Interacting Layer
目标:捕捉用户兴趣演变
第四部分:Session Interest Activating Layer
使用“局部激活单元”自适应学习在目标target上的不同session兴趣
DSIN的Loss设计
loss:交叉熵损失函数
模型效果
Baseline
YoutubeNet(有无用户行为两种)、Wide&Deep、DIN、DIN-RNN、DIEN
评估
离线:AUC
数据集
数据集 | 行为类型 | 行为序列周期 | 行为序列长度 |
阿里妈妈的广告数据集 | 展现、点击 | 训练集:20170506~20170512测试集:20170513 | max_length>=200 |
阿里巴巴的推荐数据集 | 展现、点击 | 训练集:20181213~20181219测试集:20181220 | max_length>=200 |
离线效果
结论:
(1)DSIN效果最佳;
(2)由于用户行为序列的不连续,导致DIN-RNN的效果比DIN的差
具体效果如下所示:
效果复盘
(1)按照session进行建模的效果
1)从离线结果可知,DIN-RNN比DIN的效果差,DSIN-BE比DSINBE-NO-SIIL的效果好
2)按照session处理,会导致由于用户行为序列的快速跃变、突然停止,带来用户行为的session变得充满噪声,导致信息在RNN传输时带来信息损失,影响用户行为序列建模的用户表征
3)按照session处理,保证在每个session内,用户行为是高度同构的,在session间是异构的,更适合进行序列建模
(2)用户兴趣交叉层的效果
从离线结果可知,DSIN-BE比DSINBE-NO-SIIL的效果好,从而论证必要性
(3)bias编码的效果
DSIN比DSIN-PE的效果好,论证bias编码可以捕捉session的高阶信息
(4)self-attention、激活单元(activation unit)的可视化
论文中进行了可视化,说明了效果
代码实现
结尾
亲爱的读者朋友:感谢您在繁忙中驻足阅读本期内容!您的到来是对我们最大的支持❤️
正如古语所言:"当局者迷,旁观者清"。您独到的见解与客观评价,恰似一盏明灯💡,能帮助我们照亮内容盲区,让未来的创作更加贴近您的需求。
若此文给您带来启发或收获,不妨通过以下方式为彼此搭建一座桥梁: ✨ 点击右上角【点赞】图标,让好内容被更多人看见 ✨ 滑动屏幕【收藏】本篇,便于随时查阅回味 ✨ 在评论区留下您的真知灼见,让我们共同碰撞思维的火花
我始终秉持匠心精神,以键盘为犁铧深耕知识沃土💻,用每一次敲击传递专业价值,不断优化内容呈现形式,力求为您打造沉浸式的阅读盛宴📚。
有任何疑问或建议?评论区就是我们的连心桥!您的每一条留言我都将认真研读,并在24小时内回复解答📝。
愿我们携手同行,在知识的雨林中茁壮成长🌳,共享思想绽放的甘甜果实。下期相遇时,期待看到您智慧的评论与闪亮的点赞身影✨!
万分感谢🙏🙏您的点赞👍👍、收藏⭐🌟、评论💬🗯️、关注❤️💚~
自我介绍:一线互联网大厂资深算法研发(工作6年+),4年以上招聘面试官经验(一二面面试官,面试候选人400+),深谙岗位专业知识、技能雷达图,已累计辅导15+求职者顺利入职大中型互联网公司。熟练掌握大模型、NLP、搜索、推荐、数据挖掘算法和优化,提供面试辅导、专业知识入门到进阶辅导等定制化需求等服务,助力您顺利完成学习和求职之旅(有需要者可私信联系)
友友们,自己的知乎账号为“快乐星球”,定期更新技术文章,敬请关注!