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

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

简介

DIN(Deep Interest Network)是阿里巴巴于2018年提出的点击率预估模型。以往的Embedding &MLP通过固定长度的向量作为用户表征的方式限制了用户的多兴趣表达,DIN针对不同的目标item,基于用户历史点击的item得到和当前目标item的注意力得分,实现用户的多兴趣表征

应用场景

阿里妈妈的展示广告的CTR排序,在线取得了10.0%CTR、3.8%RPM(Revenue Per Mille,即千次展示收入,是针对广告展示商而言的)的提升

已有工作的不足

在电商的在线展示广告场景,用户的兴趣是多样的。Embedding &MLP通过固定长度的向量作为用户表征的方式限制了用户的多兴趣表达

解决的方案

有两种方案:

(1)方案一:可以通过增加向量的维度来弥补。缺点:增加了计算量,并且需要学习更多的参数(增加了模型复杂度,有可能出现过拟合)。而且,在预测用户点击广告时,只有用户的部分兴趣会影响他/她点击/不点击,所有没有必须融入用户多个不同的兴趣到同一个向量

(2)方案二:从用户历史行为序列中自适应学习用户对特定广告的兴趣表征,在不同的广告上有不同的表征可以极大地提升模型的表达能力

模型结构和Loss设计

特征

涉及四种类型的特征:用户画像特征、用户行为特征、广告特征、上下文特征。具体如下:

特征表示成one-hot/multi-hot encoding的形式,示例如下:

说明:本文中没有手工组合的交叉特征,我们用DNN捕捉特征交叉

Base CTR

1、模型整体结构

2、模型具体结构

包含三部分:Embedding层、Pooling层和Concat层、MLP层,具体如下

(1)Embedding层

将上述4种类型的特征经过Embedding层得到低维稠密表征(即embedding)

(2)Pooling层和Concat层

1)Pooling层

由于用户行为是不同的,所以进行table lookup后得到的embedding的个数是不同的。常采用sum/avg pooling的方式来得到固定长度的向量ei

2)Concat层

将4种类型特征最终得到的embedding concat一起

(3)MLP层

经过激活函数PReLU,最终用softmax预测用户点击目标item的概率

3、Loss设计

用交叉熵损失函数表示

DIN的模型结构和Loss设计

1、模型整体结构

2、对比Base CTR模型

有如下2点不同:局部激活单元,激活函数

(1)局部激活单元

目标:从用户历史行为序列中自适应学习用户对特定广告的兴趣表征

数学表达:

其中,用户表征用vU(A)表示。

说明:attention score不要进行softmax来实现和为1,从而保留的原始attention,突出强度比较高的兴趣

(2)激活函数

背景:由于每层的输入有不同的分布,PReLU中采用固定的校正点(s=0)是不合适的。因而,设计了“自适应激活函数”Dice

优势:自适应调整校正点,校正点由输入的均值确定。而且,可以在校正点左右平滑切换

数学表达:

曲线:

自适应激活函数中的p(s)的定义:

训练阶段:E(s)、Var(s)是每个mini-batch的均值、方差

测试阶段:用在数据集上计算得到的E(s)、Var(s)的移动均值表示

3、对比LSTM

基于LSTM建模用户行为序列没有带来提升

原因在于:用户序列中包含多个兴趣,兴趣的快速跳跃和突然停止导致用户行为数据看起来带有噪声

模型训练

已有方式的不足

L2范数:在每次mini-batch中,需要在所有的参数空间上计算,带来了不可承受的计算量

改进

提出mini-batch aware regularization,只需每次mini-batch中的非零的特征参数参与计算,保证可承受的计算量

参数更新

基于loss进行参数的mini-batch梯度下降

模型效果

Baseline

LR、Base Model(即Embedding&MLP)、Wide&Deep、PNN、DeepFM

评估

离线:GAUC(相比AUC,更能反映出在线展示广告系统的在线效果)、RelaImpr计算如下:

在线:CTR、RPM

数据集

数据集行为类型说明
Amazon Datasetreview大部分用户、商品有5次review
MovieLens Datasetclick原始的label是0~5,将4~5设置为positive,转换为2分类
阿里巴巴在线展示广告 Datasetclick2周数据

离线效果

结论:

(1)在上述3个数据集,DIN的效果均是最佳;

(2)采用Dice激活函数、mini-batch aware regularization具有更高的效果

具体效果如下所示:

说明:MBA指的是Mini-Batch Aware,Reg指的是regulation

在线效果

指标:10%的CTR提升,3.8%的RPM提升

线上性能:由于在线广告的时延要求在10ms以内,所以采用CPU-GPU的优化来加速线上预测,具体如下:

(1)request batching:利用GPU merge CPU的紧邻请求;

(2)GPU memory optimization:降低GPU内存浪费;

(3)并发内核计算:多CUDA内核进行矩阵计算

效果:单机实现QPS双倍提升

效果可视化

1、局部激活单元

结果:和目标item越相近,weighted越高

2、embedding可视化

结果:可以实现用户的多兴趣表征

代码实现

论文开源代码

结尾

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

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

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

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

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

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

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


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

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

 

http://www.lqws.cn/news/570691.html

相关文章:

  • AlphaFold3安装报错
  • 【系统分析师】2021年真题:论文及解题思路
  • GitLab详细分析
  • ​19.自动补全功能
  • 机器学习7——神经网络上
  • SpringCloud系列(40)--SpringCloud Gateway的Filter的简介及使用
  • 基于YOLO的目标检测图形界面应用(适配于YOLOv5、YOLOv6、YOLOv8、YOLOv9、YOLOv10、YOLOv11、YOLOv12)
  • Spring Cloud 服务追踪实战:使用 Zipkin 构建分布式链路追踪
  • NLP文本增强——随机删除
  • ASP.Net依赖注入!使用Microsoft.Extensions.DependencyInjection配置依赖注入
  • Vue中的v-if与emit事件传递:一个常见陷阱分析
  • documents4j导出pdf
  • Spark Web UI从0到1详解
  • 野生动物检测数据集介绍-5,138张图片 野生动物保护监测 智能狩猎相机系统 生态研究与调查
  • 【大模型学习 | CLIP 原理代码实现】
  • Matlab自学笔记六十一:快速上手解方程
  • Vue 与react 生命周期对比
  • 什么是DID(Decentralized Identifier,去中心化身份)
  • 如何优化RK3588集群的性能?支持12个RK3588云手机阵列
  • C++ 设计模式—简略版
  • MySQL的调控按钮
  • 【linux】权限深入解析
  • C/C++数据结构之动态数组
  • Vulkan 学习(18)---- 使用 ValidationLayer
  • 洛谷日常刷题3
  • 通过交互式可视化探索波动方程-AI云计算数值分析和代码验证
  • Xcode 中的 Compilation Mode 是管什么的
  • 模拟与可视化复杂非线性偏微分方程:从KdV到云端几何问题-AI云计算数值分析和代码验证
  • 现代 JavaScript (ES6+) 入门到实战(一):告别 var!拥抱 let 与 const,彻底搞懂作用域
  • 80%的知识库场景选择FastGPT,20%的复杂场景选择Dify