datawhale深度推荐模型组队学习Task05-DIN模型

本文深入解析了阿里巴巴的DIN(Deep Interest Network)模型,该模型针对电商广告推荐,通过引入注意力机制捕捉用户兴趣。DIN模型在常规的MLP基础上,结合用户历史购买行为,动态关注与候选商品关联性强的历史商品。模型使用了自适应的Dice激活函数,并通过多层网络学习商品间关联性,以权重表示用户兴趣。在构建模型时,先构建数据集,然后构建DIN模型,包括输入层、Embedding层、Dice激活函数、注意力机制和DNN网络。最后,模型训练和验证展示了其性能。DIN模型在实际应用中面临用户历史行为序列处理和兴趣随时间变化的挑战,后续研究如DSIN和DIEN对此进行了改进。

序言:
不同于之前几个模型各种拼接的画风,阿里巴巴提出的DIN模型着眼于电商广告推荐的具体场景,具有浓厚的商业气息。
在电商广告推荐场景中,如何捕捉用户的兴趣,根据用户兴趣推荐相关的商品是一个关键问题。用户的兴趣往往可以通过他历史购买过的商品来获得,因此,如何利用用户历史购买的商品来考察当前候选商品用户是否会感兴趣,就是DIN模型所要解决的问题。

1 模型原理

DIN模型的构造思路就是以常规的MLP模型作为基准模型,在其上引入注意力机制,考察当前候选商品与每个用户历史购买的商品之间的关联性,如果关联性强,则说明候选商品与用户购买过的商品很相似,用户有更大的可能会点击该商品。
注意力机制的具体做法是:对于用户购买过的某个商品,将该商品的embedding向量与候选商品的embedding向量一同作为输入,通过一个多层的学习网络,得到一个分数,这个分数就用来衡量两者之间的关联性。对于用户购买过的所有商品,我们都可以学习到一个分数,把这些分数作为每个历史购买商品embedding向量的权重,模型就会更加关注分数高的,即与候选商品关联性更强的历史商品,从而捕捉到用户的兴趣。
在这里插入图片描述

1.1 模型的输入特征

作者将输入特征分为四类:

  • User Profile Features:用户信息特征,包含与用户个人有关的特征。
  • User Behaviors:用户历史行为特征,即用户历史购买的商品信息序列,每个商品的信息包括商品ID、店铺ID和商品类别ID。
  • Candidate Ad:候选商品特征,由候选商品的商品ID、店铺ID和商品类别ID组成。
  • Context Features:语境特征,指推荐行为所处的环境信息,例如推荐时间、推荐平台等。

这些特征仍然采用Embedding进行处理,将类别特征经过one-hot编码后映射称为固定长度的向量。但需要注意的是,每个用户历史购买的商品数量都是不同的,这就导致用户历史行为序列长度不统一。这里需要采用multi-hot对用户历史行为序列进行编码,即令序列为长度是商品个数的向量,将用户历史购买过的商品对应位置置为1。于是输入特征的形式就如下图所示:
在这里插入图片描述

1.2 基准模型

除开注意力机制,可以看到DIN的基准模型是一个常规的Embedding+MLP模型。对用户历史行为序列经过Embedding后进行求和池化,然后与其他经过Embedding处理后的特征拼接,展平后输入MLP网络中进行学习。
在这里插入图片描述

1.3 注意力机制

DIN模型的注意力机制是由一个激活单元实现的。激活单元有两个输入,一个是用户历史行为序列中的某一个商品Embedding,另一个是候选商品的Embedding,将这两者与它们之间的外积进行拼接,然后输入到一个多层网络中,学习到该历史商品所对应的一个权重。
在这里插入图片描述
于是,将所得到的权重与历史商品Embedding相乘,就得到了用户U对于候选商品A的兴趣表达式:
vU(A)=f(vA,e1,e2,...,eH)=∑j=1Ha(ej,vA)ej=∑j=1Hwjej v_U(A)=f(v_A,e_1,e_2,...,e_H)=\sum_{j=1}^Ha(e_j,v_A)e_j=\sum_{j=1}^Hw_je_j vU(A)=f(vA,e1,e2,...,eH)=j=1Ha(ej,vA)ej=j=1Hwjej
其中,{ e1,e2,...,eH}\{e_1,e_2,...,e_H\}{ e1,e2,...,eH}为用户的历史行为Embedding序列,a(ej,vA)a(e_j,v_A)a(ej,vA)为第j个历史商品对应的权重。

1.4 激活函数

仔细观察的话,会发现模型使用的激活函数并不是常用的ReLU,而是PReLU或Dice。
在这里插入图片描述
PReLU的表达式如下。从函数曲线上可以看到,PReLU以0作为硬矫正点,函数不连续,这对于每一层的输入分布不同的情况可能并不合适。
f(s)={ s,s>0αs,s<=0=p(s)s+(1−p(s))αsf(s)=\left\{ \begin{aligned} &s, s>0 \\ &\alpha s, s<=0 \end{aligned}=p(s)s+(1-p(s))\alpha s \right.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值