当前位置: 首页 > 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、搜索、推荐、数据挖掘算法和优化,提供面试辅导、专业知识入门到进阶辅导等定制化需求等服务,助力您顺利完成学习和求职之旅(有需要者可私信联系)

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

 

相关文章:

  • Linux下基于C++11的socket网络编程(基础)个人总结版
  • 学习日志02 ETF 基础数据可视化分析与简易管理系统
  • BERT 模型详解:结构、原理解析
  • 视频跳帧播放器设计与实现
  • Java I/O 模型详解:BIO、NIO 和 AIO
  • [Python 基础课程]Hello World
  • 实战四:基于PyTorch实现猫狗分类的web应用【2/3】
  • 【Linux庖丁解牛】— 文件系统!
  • 什么是RAG检索生成增强?
  • 利用deepseek学术搜索
  • 「Java案例」华氏摄氏温度转换
  • XIP (eXecute In Place)
  • 双指针的用法
  • Nginx漏洞处理指南
  • [database] Closure computation | e-r diagram | SQL
  • llama.cpp学习笔记:后端加载
  • VMware设置虚拟机为固定IP
  • Java--可变参数--作用域--构造器--this
  • Qwen-VL系列全面解析:从技术突破到应用实践
  • OSPF(开放最短路径优先)