用户行为序列建模(篇七)-【阿里】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 Dataset | review | 大部分用户、商品有5次review |
MovieLens Dataset | click | 原始的label是0~5,将4~5设置为positive,转换为2分类 |
阿里巴巴在线展示广告 Dataset | click | 2周数据 |
离线效果
结论:
(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、搜索、推荐、数据挖掘算法和优化,提供面试辅导、专业知识入门到进阶辅导等定制化需求等服务,助力您顺利完成学习和求职之旅(有需要者可私信联系)
友友们,自己的知乎账号为“快乐星球”,定期更新技术文章,敬请关注!