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

用户行为序列建模(篇六)-【阿里】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、搜索、推荐、数据挖掘算法和优化,提供面试辅导、专业知识入门到进阶辅导等定制化需求等服务,助力您顺利完成学习和求职之旅(有需要者可私信联系)

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

http://www.xdnf.cn/news/14810.html

相关文章:

  • 实战篇----利用 LangChain 和 BERT 用于命名实体识别-----完整代码
  • flask使用-链接mongoDB
  • Python爬虫-爬取汽车之家全部汽车品牌及车型数据
  • ListExtension 扩展方法增加 转DataTable()方法
  • Lua现学现卖
  • DOP数据开放平台(真实线上项目)
  • 电商返利APP架构设计:如何基于Spring Cloud构建高并发佣金结算系统
  • OpenLayers 下载地图切片
  • 解决cursor无法下载插件等网络问题
  • vue-29(创建 Nuxt.js 项目)
  • 从用户到权限:解密 AWS IAM Identity Center 的授权之道
  • 给定一个没有重复元素的数组,写出生成这个数组的MaxTree的函数
  • TDengine 如何使用 MQTT 采集数据?
  • lambda、function基础/响应式编程基础
  • [论文阅读] 软件工程 | 微前端在电商领域的实践:一项案例研究的深度解析
  • NLP中的同义词替换及我踩的坑
  • 创客匠人视角:创始人 IP 打造为何成为知识变现的核心竞争力
  • 【算法深练】单调栈:有序入栈,及时删除垃圾数据
  • 鸿蒙5:组件监听和部分状态管理V2
  • 为何需要防爆平板?它究竟有何能耐?
  • 【龙泽科技】新能源汽车故障诊断仿真教学软件【吉利几何G6】
  • 学习使用dotnet-dump工具分析.net内存转储文件(2)
  • vue-28(服务器端渲染(SSR)简介及其优势)
  • 舵机在不同类型机器人中的应用
  • Python 数据分析与可视化 Day 10 - 数据合并与连接
  • Linux的top指令CPU占用率详解(白话版)——Linux进阶常用知识点
  • 网络缓冲区
  • uni-app项目实战笔记26--uniapp实现富文本展示
  • 展开说说:Android之ContentProvider源码浅析
  • 机器学习算法-K近邻算法-KNN