DIN 模型的应用场景是阿里最典型的电商广告推荐, DIN 模型本质上是一个点击率预估模型。

Base Model

下图是 DIN 的基础模型 Base Model。我们可以看到,Base Model 是一个典型的 Embedding MLP 的结构。它的输入特征有用户属性特征(User Proflie Features)、用户行为特征(User Behaviors)、候选广告特征(Candidate Ad)和场景特征(Context Features)。

这里我们重点关注用户的行为特征和候选广告特征,也就是图中彩色的部分。
我们可以清楚地看到,用户行为特征是由一系列用户购买过的商品组成的,也就是图上的 Goods 1 到 Goods N,而每个商品又包含了三个子特征,也就是图中的三个彩色点,其中红色代表商品 ID,蓝色是商铺 ID,粉色是商品类别 ID。同时,候选广告特征也包含了这三个 ID 型的子特征,因为这里的候选广告也是一个阿里平台上的商品。
阿里的 Base Model 把三个 ID 转换成了对应的 Embedding。由于用户的行为序列是一组商品的序列,这个序列可长可短,为了把这一组商品的 Embedding 处理成一个长度固定的 Embedding ,阿里使用 SUM Pooling 层直接把这些商品的 Embedding 叠加起来,然后再把叠加后的 Embedding 跟其他所有特征的连接结果输入 MLP。

DIN模型结构

这个时候问题来了,SUM Pooling 的 Embedding 叠加操作其实是把所有历史行为一视同仁,没有任何重点地加起来,这其实并不符合我们购物的习惯。阿里正是在 Base Model 的基础上,把注意力机制应用在了用户的历史行为序列的处理上,从而形成了 DIN 模型。我们可以从下面的 DIN 模型架构图中看到,与 Base Model 相比,DIN 为每个用户的历史购买商品加上了一个激活单元(Activation Unit),这个激活单元生成了一个权重,这个权重就是用户对这个历史商品的注意力得分,权重的大小对应用户注意力的高低。

这个所谓的激活单元,到底是怎么计算出最后的注意力权重的呢?一起来看看图右上角激活单元的详细结构。
它的输入是当前这个历史行为商品的 Embedding(q),以及候选广告商品的 Embedding§。我们把[q,p,q-p,qp]concat起来形成一个向量,再输入给激活单元的 MLP 层,最终会生成一个注意力权重,这就是激活单元的结构。简单来说,激活单元就相当于一个小的深度学习模型,它利用两个商品的 Embedding,生成了代表它们关联程度的注意力权重。
注意,激活单元的输入实际上包括了丰富的信息,涵盖了加减乘三种,包括了线性和非线性,低阶和高阶,是attention效果的一个关键点。concat后进行全连接操作,相当于进行了加; q-p表示了两者的差异信息; q
p可以理解为对两者进行了特征交叉,具有高阶性。

DIN训练方式

1、mini-batch正则化

我们可以注意到,DIN使用了非常多的ID类型特征。业界基于id特征训练的模型,容易出现过拟合问题。为了防止模型过拟合,通常采用正则化的方式。然而,传统的正则化方法,如L2和L1正则化,直接应用于具有稀疏输入和数亿个参数的训练网络是不现实的。以L2正则化为例。在基于SGD的无正则化优化方法的场景中,只需更新每个小批量中出现的非零稀疏特征的参数。然而,当添加L2正则化时,它需要计算每个小批的整个参数的l2范数,这导致了极其繁重的计算,并且是不可接受的,因为参数扩展到数亿。为了减少计算量,提升训练速度,论文提出基于mini-batch的正则化。该方法的思路是只对batch中出现的非0值sparse特征对应的参数进行正则化。

2、Dice激活函数

深度学习的训练过程需要经过多层网络的叠加,每一层参数的更新会导致该层预测输出的数据分布发生改变(当验证数据与训练数据不满足独立同分布时,会导致该层输出的数据分布变化非常剧烈),后几层神经网络的数据分布变化会尤为剧烈,若激活函数使用ReLu、PReLu等,当数据分布集中在x轴的负半轴,落入激活函数的饱和区,则参数更新缓慢甚至不会更新,产生梯度消失的问题。
目前的解决办法:
1.可以使用BN层将上层网络输出的数据分布移到x轴的正半轴,移到梯度变化较快的地方
2.那么可以不可以移动激活函数,让它适应上层网络输出的数据分布?基于上述思想,Dice激活函数诞生了!
思路1:将激活函数移动到每次输入的数据所分布的区域
思路2:将激活函数的拐点变得更加平滑

注意力机制在推荐模型中的应用——DIN相关推荐

  1. 注意力机制在推荐模型中的应用——AFM、DIN、DIEN

    "注意力机制"来源于人类最自然的选择性注意的习惯.最典型的例子是用户在浏览网页时,会选择性地注意页面的特定区域,忽视其他区域.正是基于这样的现象,在建模过程中考虑注意力机制对预测结 ...

  2. 自适应注意力机制在Image Caption中的应用

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  3. 注意力机制原理及其模型发展和应用

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 Attention机制在近几年来在图像,自然语言处理等领域中都取得 ...

  4. 可视化神经机器翻译模型(基于注意力机制的Seq2seq模型)

    可视化神经机器翻译模型(基于注意力机制的Seq2seq模型)   序列到序列模型是深度学习模型,在机器翻译.文本摘要和图像字幕等任务中取得了很大的成功.谷歌翻译在2016年底开始在生产中使用这样的模型 ...

  5. 注意力机制在NLP问题中的介绍与调查-论文翻译

    基本是机器翻译,也进行了基本的人工矫正,凑活看吧 原论文:<An Introductory Survey on Attention Mechanisms in NLP Problems> ...

  6. seq2seq模型_具有注意力机制的seq2seq模型

    在本文中,你将了解: 为什么我们需要seq2seq模型的注意力机制? Bahdanua的注意力机制是如何运作的? Luong的注意力机制是如何运作的? 什么是局部和全局注意力? Bahdanua和Lu ...

  7. 详解自注意力机制及其在LSTM中的应用

    详解自注意力机制及其在LSTM中的应用 注意力机制(Attention Mechanism)最早出现在上世纪90年代,应用于计算机视觉领域.2014年,谷歌Mnih V等人[1] 在图像分类中将注意力 ...

  8. 5、注意力机制和Transformer模型

    1.人类的视觉注意力 从注意力模型的命名方式看,很明显其借鉴了人类的注意力机制,因此,我们首先简单介绍人类视觉的选择性注意力机制. 视觉注意力机制是人类视觉所特有的大脑信号处理机制.人类视觉通过快速扫 ...

  9. transformer中attention计算方式_Transformer在推荐模型中的应用总结

    最近基于transformer的一些NLP模型很火(比如BERT,GPT-2等),因此将transformer模型引入到推荐算法中是近期的一个潮流.transformer比起传统的LSTM.GRU等模 ...

最新文章

  1. 32岁程序员面试被拒:比又穷又忙更可怕的,是2020年你还不懂...
  2. 手机端实现6位短信验证码input输入框效果(样式及代码方法)
  3. java多线程之生产者和消费者问题
  4. win7变成xp风格了怎么改回_微软看了会沉默,把 Windows 10 变成经典 98 风格
  5. ci框架 乱码 mysql_mysql容器乱码问题
  6. Linux系统编程38:多线程之什么是线程同步以及条件变量函数
  7. eclipse clean和build作用
  8. 图论:柯尼斯堡桥问题、艾科西亚游戏
  9. Scrapy爬虫报错AttributeError: ‘NoneType‘ object has no attribute ‘write‘
  10. mybatis关联查询之一对多,多对一,以及多对多
  11. Swift基础语法学习-4.Bool类型
  12. Hutool - 身份证验证及其信息解读封装
  13. 输入一个二阶矩阵并计算主对角线元素的和 C语言
  14. jQuery实现二级下拉菜单
  15. 移动游戏机和PC已合并游戏的奇点
  16. Online Patching
  17. postgres/pgadmin的使用
  18. 小程序开发之页面布局
  19. python读图命令与效率汇总
  20. 广州电信宽带的四大优势

热门文章

  1. nodejs+express+Vue 古诗词在线学习网站
  2. 中国疏水喷雾市场趋势报告、技术动态创新及市场预测
  3. react 全选_react实现全选、取消全选和个别选择
  4. 微信小程序点单左右联动的效果实现
  5. 简单的抽卡模拟器1.0
  6. 深更半夜的夜班是非常难熬的夜班
  7. Google Earth常用功能详解
  8. 聚类算法--近邻聚类算法(C++实现)
  9. 单体架构迁移到微服务,8个关键的思考、实践和经验
  10. 万字长文讲解编码知识,看这文就够了!