码迷,mamicode.com
首页 > 其他好文 > 详细

《AutoInt:基于Multi-Head Self-Attention构造高阶特征》

时间:2020-04-29 11:12:43      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:相关性   targe   nta   可见   影响   sha   tor   构造   embed   

 

AutoInt:基于Multi-Head Self-Attention构造高阶特征

一、Model

AutoInt 核心网络结构如下图所示,注意可以在旁边加个Deep部分来组合,这里先省略。

技术图片图1. AutoInt 核心网络结构

可以看到,一开始还是标准的嵌入层,不同点在于,对dense特征也进行embedding:每个dense Field 对应一个嵌入向量,乘以具体的dense特征值 作为其最终的emeddding。

Interacting Layer

Interacting层是AutoInt的核心,它使用经典的 Multi-head Self-Attention 来构造组合特征,即 key-value attention 的实现方式,具体结构如图2所示。

技术图片图2. key-value attention

对 Self-Attention 比较熟悉的读者,从上图基本可以 get 到 AutoInt 到底是怎么干的了。每个Attention head 都对应着三个转换矩阵: 技术图片 对于第 h 个 Attention head,当第 m 个嵌入向量 技术图片 作为query时,其对应输出 技术图片 为:

技术图片

上式中, 技术图片 是可选的相似度计算函数,文中简单地选择向量内积。注意,在每个Attention head中,每个嵌入向量 技术图片都有一次作为query的机会,从而学习到在这个head下的新表达 技术图片 。

如果对 Attention 比较陌生,可以从一种比较直白的方式,联系一下搜索场景:一个 query 过来,先根据该 query 和一系列候选物的key 计算相似度,然后根据相似度返回候选物的具体value。现在回过去看上面的计算公式,是不是挺make sense了。

对第m个嵌入 技术图片 ,作者简单拼接它在 技术图片 个Attention head的输出,然后引入标准的残差连接作为其最终输出 技术图片 : 技术图片

最终的预测输出为:

技术图片 其中 技术图片 , 技术图片 表示sigmoid函数。

文中采用logloss作为损失函数。另外,虽然这里只展示了单层 Interacting Layer,AutoInt 可以叠加多个这样的层,构造更高阶的组合特征。当然,也可以在旁边搭个Deep层一起合作。

Time Analysis

单层 Interacting 的AutoInt的时间复杂度为 技术图片 ,对比单层 MLP,假设神经元个数为N,时间复杂度为 技术图片 。通常 技术图片 的值比较小,因此时间效率不会太差。

二、Experiment

数据集 文中使用四个公开的数据集,其中Criteo、Avazu是标准的CTR数据集;KDD12用于预估点击数量,这里将非零点击样本作为正例;MovieLens-1M是rate=1-5的打分数据集,令rate>3为正例,rate<3为负例,并且删除rate=3的样本避免干扰。

技术图片

实验设置

  1. 数据预处理:对dense特征 技术图片 采用和Criteo比赛冠军同样的预处理,即 技术图片 ;过滤出现次数少于阈值thr的低频特征,统一设为<unkonw>,Criteo / Avazu / KDD12的thr分别设为10 / 5 / 10;
  2. 数据集以80%-10%-10%随机划分为训练集 / 验证集 / 测试集
  3. batch size=1024,嵌入维度 d=16,Adam优化器,对小数据集MoveLens使用dropout=0.5
  4. 对于AutoInt,转化维度 d’=32,3层Interacting,每层2个 Attention head
  5. DeepCross—4隐层+每层100 node,NFM—1隐层+200 node,CrossNet和CIN—3隐层

实验结果

实验1 ——单独模块的实验结果 CrossNet、CIN分别为Deep&Cross、xDeepFM的单独模块,另外,AutoInt与DeepCrossing都使用了残差设计,区别在于DeepCrossing使用普通的MLP,相比之下可见Interacting Layer的优势。

技术图片表1

实验2——性能对比

技术图片技术图片

实验3 ——残差设计、Interacting层数、嵌入维度d 对 AutoInt影响 从实验结果可见,残差提升很明显,Interacting层数不用太多,可在2-4之间。

技术图片技术图片

实验4——相关模型都加入Deep部分 AutoInt依然最优。值得关注的一点是,相比其他模型,AutoInt 加入 Deep后 的性能提升幅度是最小的,可见AutoInt的power。

技术图片

实验5——推荐结果的可解释性

文中将第一层的attention score看作两个field的相关性,在MovieLens中,取一个正样本,可视化结果如下图 a 所示,整个数据集的attention score平均结果如图 b 所示。作者框出了几个看起来很meaningful的高score组合,说明其良好的解释性。

技术图片

三、Discussion

  1. 论文通过 Multi-Head Self-Attention 机制构造高阶特征,虽然只是将已有知识迁移到CTR预估领域,但仍是非常好的创新。整体而言,AutoInt 实验效果显著,并且模型结构清晰,不是各种结构的随意堆砌,简洁清爽,容易follow,利于后续工作在此基础上进行扩展。
  2. 实验部分很丰富,但明显的不足之处是没有给出对比模型的调参细节,像是直接定的(囧),甚至一些对比模型的重要参数都没说明,例如CIN每层的vector个数。另外,解释性这个实验,好像只是“有选择性”的挑了一些好解释的,整体解释性依然是比较non-trival的。
编辑于 2019-08-17

 

《AutoInt:基于Multi-Head Self-Attention构造高阶特征》

标签:相关性   targe   nta   可见   影响   sha   tor   构造   embed   

原文地址:https://www.cnblogs.com/cx2016/p/12800394.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!