DIN论文阅读笔记

DIN论文阅读笔记

1. 主要贡献

1.1 注意力机制

在深度学习运用在点击率预测的方法中,首先将大规模稀疏输入特征映射到低维嵌入向量中,然后按照分组方式变换为定长向量,最后连接在一起馈入多层感知器以学习非线性关系特征。 通过这种方式,无论候选广告是什么,用户特征都被压缩成一个固定长度的表示向量。但是使用定长的向量会带来瓶颈,这将会使 Embedding&MLP方法从历史信息中捕获用户的多样化的兴趣带来困难。本文提出了DIN模型,可以:

1.1.1 从用户到商品层面

使用兴趣分布代表用户多样化的兴趣(不同用户对不同商品有兴趣)

1.1.2 从商品到用户方面

与attention机制一样,根据商品局部激活用户兴趣相关的兴趣(用户有很多兴趣,最后导致购买的是小部分兴趣,仅仅取决于历史行为数据中的一小部分,而不是全部。attention机制就是保留并激活这部分兴趣)。在输入层增加了激活单元。(突破了用户兴趣向量固定化的界限,因为在DNN中,输入的向量维度是固定的,固定长度的向量用来直接表示用户兴趣时,对于一个固定用户是一定的;然而采用attention机制后,用户的兴趣向量不仅与浏览历史有关,而且也与商品广告的特征是密切相关的)

1.2 训练方法

在整个参数上直接采用L2正则化会带来很大的计算开销,本篇文章仅对于在小batch中那些稀疏特征的参数进行L2正则化

1.3 激活函数

在这里插入图片描述

本文采用了自适应ReLU激活函数,普通的ReLU函数,极其变种认为阶跃变化点是顶点,这意味着面对不同的输入这个变化点是不变的。作者认为这样并不好,需要一个一数据为驱动的阶跃点,于是提出了Dice激活函数。

其中,关于“进击的皮皮虾”在知乎的一篇博文中提出:

在这里插入图片描述

2. 论文重点

2.1 关于不定长样本变为定长样本问题

在这里插入图片描述

从图中可以看出主要的特征包括:用户特征、用户行为特征、广告特征、上下文特征。其中用户行为特征为多值离散特征,这就会导致每个用户的样本长度都是不同的,同时也需要对多样化的兴趣建模。解决方法:Embedding -> pooling + attention

解释:

用户购买过的good_id有多个,购买过的shop_id也有多个,而这也直接导致了每个用户的历史行为id长度是不同的。针对多值离散特征,为了得到一个固定长度的Embedding Vector表示,原来的做法是在Embedding Layer后面增加一个Pooling Layer。Pooling可以用sum或average。最终得到一个固定长度的Embedding Vector,是用户兴趣的一个抽象表示,常被称作User Representation。缺点是会损失一些信息。DIN使用Attention机制来解决这个问题。在DIN场景中,针对不同的候选广告需要自适应地调整User Representation。也就是说:在Embedding Layer -> Pooling Layer得到用户兴趣表示的时候,赋予不同的历史行为不同的权重,实现局部激活

2.2 DIN模型

由于经过Pooling层后会损失一定的信息,则提出了DIN模型,实际上是在Embedding层和Pooling层之间加入activation单元,这个思想来自attention机制,实际上也可以说在 Base Model上加入了attention机制,而这个与传统的attention机制不同的是权重Wi的大小是针对用户兴趣的。举个例子:假设用户的历史行为中包含90%的衣服和10%的电子产品,现在 给两个候选广告T-shirt和iPhone,那么对应于T-shirt激活单元的权重应该远大于对应于iPhone的激活单元。

本文尝试用LSTM以序列的方式建模用户历史行为数据。但是并没有提升。与NLP任务中受语法约束的文本不同,用户历史行为的序列可能包含多个同时存在的兴趣。 快速跳跃和突然结束这些兴趣会导致用户行为的序列数据看起来是噪声。

模型的目标:基于用户历史行为,充分挖掘用户兴趣和候选广告之间的关系。用户是否点击某个广告往往是基于他之前的部分兴趣,这是应用Attention机制的基础。Attention机制简单的理解就是对于不同的特征有不同的权重,这样某些特征就会主导这一次的预测,就好像模型对某些特征pay attention。但是,DIN中并不能直接用attention机制。因为对于不同的候选广告,用户兴趣表示(embedding vector)应该是不同的

这是代码及其注释的链接,谨供大家参考

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sentar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值