当前位置: 首页 > news >正文

用户行为序列建模(篇六)-【阿里】DSIN

简介

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行为求和:

  • Multi-head Self-attention

和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测试集:20170513max_length>=200
阿里巴巴的推荐数据集展现、点击训练集:20181213~20181219测试集:20181220max_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)的可视化

论文中进行了可视化,说明了效果

代码实现

TensorFlow实现DSIN

结尾

亲爱的读者朋友:感谢您在繁忙中驻足阅读本期内容!您的到来是对我们最大的支持❤️

正如古语所言:"当局者迷,旁观者清"。您独到的见解与客观评价,恰似一盏明灯💡,能帮助我们照亮内容盲区,让未来的创作更加贴近您的需求。

若此文给您带来启发或收获,不妨通过以下方式为彼此搭建一座桥梁: ✨ 点击右上角【点赞】图标,让好内容被更多人看见 ✨ 滑动屏幕【收藏】本篇,便于随时查阅回味 ✨ 在评论区留下您的真知灼见,让我们共同碰撞思维的火花

我始终秉持匠心精神,以键盘为犁铧深耕知识沃土💻,用每一次敲击传递专业价值,不断优化内容呈现形式,力求为您打造沉浸式的阅读盛宴📚。

有任何疑问或建议?评论区就是我们的连心桥!您的每一条留言我都将认真研读,并在24小时内回复解答📝。

愿我们携手同行,在知识的雨林中茁壮成长🌳,共享思想绽放的甘甜果实。下期相遇时,期待看到您智慧的评论与闪亮的点赞身影✨!

万分感谢🙏🙏您的点赞👍👍、收藏⭐🌟、评论💬🗯️、关注❤️💚~


自我介绍:一线互联网大厂资深算法研发(工作6年+),4年以上招聘面试官经验(一二面面试官,面试候选人400+),深谙岗位专业知识、技能雷达图,已累计辅导15+求职者顺利入职大中型互联网公司。熟练掌握大模型、NLP、搜索、推荐、数据挖掘算法和优化,提供面试辅导、专业知识入门到进阶辅导等定制化需求等服务,助力您顺利完成学习和求职之旅(有需要者可私信联系)

友友们,自己的知乎账号为“快乐星球”,定期更新技术文章,敬请关注!

相关文章:

  • BF的数据结构题单-省选根号数据结构 - 题单 - 洛谷 计算机科学教育新生态
  • SQL Server从入门到项目实践(超值版)读书笔记 19
  • 03【C++ 入门基础】函数重载
  • 使用ros2服务实现人脸检测4-客户端(适合0基础小白)
  • 通达信【MACD趋势增强系统】幅图(含支撑压力位)
  • D-FiNE:在DETR模型中重新定义回归任务为精细粒度分布细化
  • MySQL数据库的增删改查
  • SpringCloud系列(41)--SpringCloud Config分布式配置中心简介
  • 模拟多维物理过程与基于云的数值分析-AI云计算数值分析和代码验证
  • CppCon 2017 学习:The Asynchronous C++ Parallel Programming Model
  • 在线之家官网入口 - 免费高清海外影视在线观看平台
  • STM32之28BYJ-48步进电机驱动
  • 思二勋:算法稳定币的发展在于生态场景、用户和资产的丰富性
  • 打造地基: App拉起基础小程序容器
  • 大事件项目记录12-文章管理接口开发-总
  • 现代 JavaScript (ES6+) 入门到实战(一):告别 var!拥抱 let 与 const,彻底搞懂作用域
  • Spark Web UI从0到1详解
  • SpringSecurity6-授权-动态权限
  • (NIPS-2024)CogVLM:预训练语言模型的视觉专家
  • 大事件项目记录13-接口开发-补充