当前位置: 首页 > news >正文

2019_AutoInt

AutoInt:通过自注意神经网络进行自动特征交互学习

  • 创新点
  • 复现
  • 论文
    • 0摘要
    • 1介绍
    • 2相关工作
      • 2.1点击率预测
      • 2.2学习特征交互
      • 2.3注意力和残差网络
    • 3问题定义
    • 4自动特征交互学习
      • 4.1概述
      • 4.2输入层
      • 4.3嵌入层
      • 4.4交互层
      • 4.5输出层
    • 4.6训练
      • 4.7 AutoInt分析
    • 5实验
      • 5.1实验装置
      • 5.2定量结果(RQ 1)
      • 5.3分析(RQ 2)
      • 5.4可解释的建议(RQ3)
      • 5.5整合内隐互动(RQ4)
    • 6结论和今后的工作

创新点

复现

论文

0摘要

点击率(CTR)预测的目的是预测用户点击广告或项目的概率,其对于诸如在线广告和推荐系统的许多在线应用至关重要。该问题非常具有挑战性,因为(1)输入特征(例如,用户ID、用户年龄、项目ID、项目类别)通常是稀疏的和高维的,以及(2)有效的预测依赖于高阶组合特征(也称为,交叉特征),这对于领域专家手工制作是非常耗时的,并且不可能被枚举。因此,人们一直在努力寻找稀疏和高维原始特征及其有意义的组合的低维表示。在本文中,我们提出了一个有效的和高效的方法称为AutoInt自动学习输入功能的高阶功能的相互作用。我们提出的算法是非常普遍的,它可以适用于数值和分类输入功能。具体来说,我们将数值和分类特征映射到同一个低维空间。之后,提出了一种带有剩余连接的多头自注意神经网络,以显式地在低维空间中对特征交互进行建模。通过多层自注意神经网络的不同层次,可以对输入特征的不同顺序的特征组合进行建模。整个模型可以以端到端的方式有效地拟合大规模原始数据。在四个真实世界数据集上的实验结果表明,我们提出的方法不仅优于现有的最先进的预测方法,而且还提供了良好的可解释性。代码可从以下网址获得:https://github.com/DeepGraphLearning/RecommenderSystems。
CCS CONCEPTS
·信息系统→推荐系统; ·计算方法学→神经网络;学习潜在表示;
关键词
高阶特征交互、自注意、CTR预测、可解释推荐ACM参考格式:宋卫平、史晨、肖志平、段志坚、徐业文、张明和唐健。2019.AutoInt:通过自注意神经网络进行自动特征交互学习。第28届ACM信息与知识管理国际会议(CIKM '19),2019年11月3日至7日,中国北京。ACM,纽约,NY,美国,10页。https://doi.org/10.1145/3357384.3357925

1介绍

预测用户点击广告或项目的概率(也称为,点进率预测)对于诸如在线广告和推荐系统的许多应用是关键问题。预测的性能直接影响到业务提供商的最终收入。由于其重要性,它引起了学术界和工业界越来越多的兴趣。机器学习在点击率预测中一直扮演着关键角色,这通常被公式化为以用户配置文件和项目属性作为输入特征的监督学习。由于几个原因,这个问题非常具有挑战性。首先,输入特征是非常稀疏和高维的。在现实世界的应用程序中,相当大比例的用户的人口统计数据和项目的属性通常是离散的和/或分类的。为了使监督学习方法适用,这些特征首先被转换为一个独热编码向量,这可以很容易地产生具有数百万维度的特征。以著名的CTR预测数据Criteo 1为例,其特征维数约为3000万,稀疏度超过99.99%。由于这种稀疏和高维的输入特征,机器学习模型很容易过拟合。其次,如大量文献所示,高阶特征相互作用是演出成功的关键例如,推荐马里奥兄弟是合理的,一个著名的电子游戏,给大卫,一个十岁的男孩。在这种情况下,三阶组合特征<Gender=Male,Age=10,ProductCategory=VideoGame>对于预测非常有用。然而,找到这样有意义的高阶组合特征严重依赖于领域专家。此外,几乎不可能手工制作所有有意义的组合。有人可能会问,我们可以枚举所有可能的高阶特征,让机器学习模型选择有意义的特征。然而,枚举所有可能的高阶特征将指数地增加输入特征的维数和稀疏性,导致更严重的模型过拟合问题。因此,在社区中一直在寻找稀疏和高维输入特征的低维表示,同时对不同顺序的特征组合进行建模。例如,因式分解机(FM),它将联合收割机多项式回归模型与因式分解技术相结合,被开发用于对特征交互进行建模,并已被证明对各种任务有效。然而,由于多项式拟合时间的限制,它只能有效地建模低阶特征的相互作用和不切实际的捕捉高阶特征的相互作用。最近,已经提出了许多基于深度神经网络的工作来对高阶特征交互进行建模。具体来说,多层非线性神经网络通常用于捕获高阶特征交互。然而,这种方法有两个局限性。首先,全连接神经网络在学习乘法特征交互方面效率低下[4]。其次,由于这些模型以隐式方式学习特征交互,因此它们缺乏对哪些特征组合有意义的良好解释。因此,我们正在寻找一种方法,能够显式地对不同顺序的特征组合进行建模,将整个特征表示为低维空间,同时提供良好的模型可解释性。在本文中,我们提出了一种基于多头自注意机制的方法。我们提出的方法学习有效的低维表示的稀疏和高维输入功能,并适用于分类和/或数值输入功能。具体而言,首先将类别特征和数值特征嵌入到低维空间中,这降低了输入特征的维度,同时允许不同类型的特征通过向量算术(例如,求和和内积)。之后,我们提出了一种新的交互层,以促进不同功能之间的相互作用。在每个交互层中,每个特征都可以与所有其他特征交互,并且能够通过多头注意机制自动识别相关特征以形成有意义的高阶特征。此外,多头机制将特征投影到多个子空间中,因此它可以捕获不同子空间中的不同特征交互。这样的交互层对特征之间的一步交互进行建模。通过堆叠多个交互层,我们能够对不同顺序的特征交互进行建模。在实践中,剩余连接被添加到交互层,这允许组合不同顺序的特征组合。我们使用注意力机制来测量特征之间的相关性,这提供了良好的模型可解释性。总而言之,在本文中,我们做出了以下贡献:·我们建议研究显式学习高阶特征交互的问题,同时找到对问题具有良好解释性的模型。·提出了一种基于自关注神经网络的新方法,该方法能够自动学习高阶特征间的相互作用,有效地处理大规模高维稀疏数据。·我们对几个真实世界的数据集进行了广泛的实验。CTR预测任务的实验结果表明,我们提出的方法不仅优于现有的国家的最先进的预测方法,但也提供了良好的模型可解释性。我们的工作安排如下。第二节对相关工作进行了总结。第3节正式定义了我们的问题。第4节提出了学习特征交互的方法。在第5节中,我们给出了实验结果和详细的分析。在第六节中,我们对本文进行了总结,并指出了未来的工作.

2相关工作

我们的工作涉及三个方面:1)推荐系统和在线广告中的点击率预测,2)学习特征交互的技术,以及3)深度学习文献中的自注意机制和剩余网络。

2.1点击率预测

预测点击率对许多互联网公司来说很重要,不同的公司已经开发了各种系统。例如,Google为推荐系统开发了Wide&Deep[8]学习系统,它结合了线性浅层模型和深层模型的优点。该系统在APP推荐方面取得了显著的成绩。这个问题在学术界也引起了很大的关注。例如,Shan等人。[31]提出了一种上下文感知的CTR预测方法,该方法对三向<user,ad,context>张量进行了因子分解。Oentaryo等人。[24]开发了层次重要性感知因子分解机来模拟广告的动态影响。

2.2学习特征交互

学习特征交互是一个基本问题,因此在文献中得到了广泛的研究。一个著名的例子是因子分解机(FM),它被提出来主要捕获一阶和二阶特征交互,并已被证明对推荐系统中的许多任务有效。之后,已经提出了因子分解机的不同变体。例如,场感知因子分解机(FFM)对来自不同领域的特征之间的细粒度交互进行建模。GBFM 和AFM考虑了不同二阶特征相互作用的重要性。然而,所有这些方法都集中在建模低阶特征交互。
有一些最近的作品,模型高阶功能的相互作用。例如,NFM 将深度神经网络堆叠在二阶特征交互的输出之上,以对高阶特征进行建模。类似地,PNN ,FNN ,DeepCrossing ,Wide&Deep 和DeepFM利用前馈神经网络来建模高阶特征交互。然而,所有这些方法都以隐式方式学习高阶特征交互,因此缺乏良好的模型可解释性。相反,有三种工作方式以明确的方式学习特征交互。首先,Deep&Cross和xDeepFM分别在位和矢量级别上获取特征的外积。虽然它们执行显式的特征交互,但解释哪些组合是有用的并不是微不足道的。其次,一些基于树的方法结合了基于嵌入的模型和基于树的模型的功能,但必须将训练过程分解为多个阶段。第三,HOFM 提出了高阶因子分解机的有效训练算法。然而,HOFM需要太多的参数,只有其低阶(通常小于5)的形式可以实际使用。与现有的工作不同,我们显式地以端到端的方式对特征与注意力机制的交互进行建模,并通过可视化来探测学习到的特征组合。

2.3注意力和残差网络

我们提出的模型利用了深度学习文献中的最新技术:注意力和残差网络。注意力首先在神经机器翻译的背景下提出,并已被证明在各种任务中是有效的,如问答,文本摘要和推荐系统。Vaswani等人进一步提出了多头自注意模型,以模拟机器翻译中单词之间的复杂依赖关系。残差网络在ImageNet竞赛中达到了最先进的性能。由于剩余连接可以简单地形式化为y = F(x)+ x,鼓励通过间隔层的梯度流,因此它成为训练非常深的神经网络的流行网络结构。

3问题定义

在这里插入图片描述
图1:我们提出的模型AutoInt的概述。嵌入层和交互层的细节分别如图2和图3所示。

我们首先正式定义点击率(CTR)预测的问题如下:
定义1(CTR令x ∈ Rn表示用户u的特征和项目v的特征的级联,其中分类特征用独热编码表示,并且n是级联特征的维数。点击率预测问题旨在根据特征向量x预测用户u点击项目v的概率。CTR预测的一个简单的解决方案是将x作为输入特征,并部署现成的分类器,如逻辑回归。然而,由于原始特征向量x非常稀疏且高维,因此模型很容易过拟合。因此,需要在低维连续空间中表示原始输入特征。此外,如现有文献所示,利用高阶组合特征来产生良好的预测性能是至关重要的具体来说,我们定义高阶组合特征如下:

定义2(p阶组合特征)给定输入特征向量x ∈ Rn,
p阶组合特征被定义为<(xi 1,.,xip),其中每个特征来自不同的字段,p是涉及的特征字段的数量,并且<$(·)是非加性组合函数,例如乘法[26]和外积[19,38]。例如,xi 1 × xi 2是涉及xi 1和xi 2的二阶组合特征。传统上,有意义的高阶组合特征由领域专家手工制作。然而,这是非常耗时的,并且很难推广到其他领域。此外,几乎不可能手工制作所有有意义的高阶特征。因此,我们的目标是开发一种方法,能够自动发现有意义的高阶组合特征,同时将所有这些特征映射到低维连续空间。形式上,我们将问题定义如下:

定义3(问题定义)给定用于点击率预测的输入特征向量x ∈ Rn,我们的目标是学习x的低维表示,它对高阶组合特征进行建模。

4自动特征交互学习

在本节中,我们首先给予所提出的方法AutoInt的概述,该方法可以自动学习用于CTR预测的特征交互。接下来,我们提出了一个全面的描述如何学习一个低维表示,模型高阶组合功能,而无需手动功能工程。

4.1概述

我们的方法的目标是将原始的稀疏和高维的特征向量映射到低维空间,同时对高阶特征的相互作用进行建模。如图1所示,我们提出的方法将稀疏特征向量x作为输入,然后是投影所有特征的嵌入层(i.e.、分类特征和数值特征)到同一低维空间中。接下来,我们将所有字段的嵌入馈送到一个新的交互层中,该交互层被实现为多头自注意神经网络。对于每个交互层,高阶特征通过注意力机制进行组合,不同类型的组合可以通过多头机制进行评估,该机制将特征映射到不同的子空间。通过堆叠多个相互作用的层,可以对不同顺序的组合特征进行建模。最终交互层的输出是输入特征的低维表示,其对高阶组合特征进行建模,并进一步用于通过S形函数估计点击率。接下来,我们介绍我们提出的方法的细节。
在这里插入图片描述
图2:输入和嵌入层的图示,其中分类字段和数值字段都由低维稠密向量表示。

4.2输入层

我们首先将用户的配置文件和项目的属性表示为一个稀疏向量,这是所有字段的串联。具体地说,其中M是总特征场的数目,并且Xi是第i个场的特征表示。如果第i个字段是分类的(例如,图2中的x1)。Xi是标量值,如果第i个字段是数值的(例如,图2中的xM)。在这里插入图片描述

4.3嵌入层

由于分类特征的特征表示是非常稀疏和高维的,因此常见的方法是将它们表示到低维空间中(例如,字嵌入)。具体来说,我们用一个低维向量来表示每个分类特征,即,在这里插入图片描述
其中Vi是域i的嵌入矩阵,Xi是独热向量。通常情况下,分类特征可以是多值的,即,Xi是一个多热向量。以电影观看预测为例,可以存在描述电影类型的特征字段Genre,并且它可以是多值的(例如,电影《泰坦尼克号》(Titanic)。为了与多值输入兼容,我们进一步修改等式2并将多值特征场表示为对应特征嵌入向量的平均值:在这里插入图片描述
其中q是样本对于第i个场具有的值的数量,并且Xi是该场的多热向量表示。为了允许分类特征和数值特征之间的相互作用,我们还在同一个低维特征空间中表示数值特征。具体来说,我们用数字表示特征作为
在这里插入图片描述
其中VM是字段m的嵌入向量,xm是标量值。通过这样做,嵌入层的输出将是多个嵌入向量的级联,如图2所示。

4.4交互层

一旦数值和分类特征存在于同一个低维空间中,我们就可以在空间中对高阶组合特征进行建模。关键问题是确定哪些特征应该组合起来形成有意义的高阶特征。传统上,这是由领域专家根据他们的知识创建有意义的组合来完成的。在本文中,我们用一种新的方法来解决这个问题,多头自注意机制[36]。多头自关注网络[36]最近在建模复杂关系方面取得了显着的表现。例如,它在机器翻译[36]和句子嵌入[20]中对任意单词依赖建模方面表现出优越性,并已成功应用于捕获图嵌入中的节点相似性[37]。在这里,我们扩展了这一最新技术,以模拟不同特征字段之间的相关性。具体来说,我们采用键值关注机制[22]来确定哪些特征组合是有意义的。以特征m为例,接下来我们解释如何识别涉及featurem的多个有意义的高阶特征。我们首先定义在特定注意力头部h下特征m和特征k之间的相关性如下:
在这里插入图片描述
其中,k(h)(·,·)是定义特征m和k之间的相似性的注意力函数。它可以被定义为神经网络或简单的内积,即,你…在这项工作中,我们使用内积由于其简单和有效性。等式5中的W(h)Query、W(h)Key ∈ Rd′×d是将原始嵌入空间Rd映射到新空间Rd′的变换矩阵。接下来,我们通过组合由系数α(h)m,k引导的所有相关特征来更新特征m在子空间h中的表示:
在这里插入图片描述
其中W(h)值∈ Rd′×d.由于k(h)m ∈ Rd′是特征m及其相关特征(在头部h下)的组合,因此它代表了通过我们的方法学习的新的组合特征。此外,一个特征也可能涉及不同的组合特征,我们通过使用多个头部来实现这一点,这些头部创建不同的子空间并分别学习不同的特征交互。我们收集在所有子空间中学习的组合特征,如下所示:其中,n是连接运算符,H是头的总数。为了保留先前学习的组合特征,包括原始个体(即,一阶)特征,我们在我们的网络中添加标准剩余连接。从形式上讲,其中WRes ∈ Rd′H×d是维度不匹配情况下的投影矩阵[12],ReLU(z)= max(0,z)是非线性激活函数。通过这样的交互层,每个特征em的表示将被更新为新的特征表示eRes m,这是高阶特征的表示。我们可以堆叠多个这样的层,将前一个交互层的输出作为下一个交互层的输入。通过这样做,我们可以对任意顺序的组合特征进行建模。
在这里插入图片描述
图3:交互层的架构。组合特征以注意力权重为条件,即,α(h)m。其中,n是连接运算符,H是头的总数。为了保留先前学习的组合特征,包括原始个体(即,一阶)特征,我们在我们的网络中添加标准剩余连接。从形式上讲,
其中WRes ∈ Rd′H×d是维度不匹配情况下的投影矩阵[12],ReLU(z)= max(0,z)是非线性激活函数。通过这样的交互层,每个特征em的表示将被更新为新的特征表示eRes m,这是高阶特征的表示。我们可以堆叠多个这样的层,将前一个交互层的输出作为下一个交互层的输入。通过这样做,我们可以对任意顺序的组合特征进行建模。

4.5输出层

交互层的输出是一组特征向量{eRes m }M m=1,其中包括由残差块保留的原始个体特征和通过多头自注意机制学习的组合特征。对于最终的CTR预测,我们简单地将所有这些连接起来,然后应用如下的非线性投影:
y = σ(wT(eRes 1-eRes 2-eRes M)+ B),(9)
其中w ∈ Rd′HM是线性组合连接特征的列投影向量,B是偏差,σ(x)= 1/(1+ e-x)将值转换为用户点击概率。

4.6训练

我们的损失函数是Log loss,定义如下:
在这里插入图片描述其中,yj和yyj分别是用户点击和估计的CTR的地面真值,j索引训练样本,并且N是训练样本的总数。在我们的模型中要学习的参数是{Vi,vm,W(h)Query,W(h)Key,W(h)Value,WRes,w,B},其通过使用梯度下降最小化总Logloss来更新。

4.7 AutoInt分析

任意阶组合特征建模。给定由方程5 - 8定义的特征交互算子,我们现在分析如何在我们提出的模型中对低阶和高阶组合特征进行建模。为了简单起见,让我们假设有四个特征字段(即,M=4)分别用x1、x2、x3和x4表示。在第一交互层中,每个单独的特征通过注意机制与任何其他特征交互(即,等式5),并且因此利用不同的相关权重来捕获诸如< ( x 1 , x 2 )、 < (x1,x2)、< x1x2)、<(x2,x3)和< ( x 3 , x 4 )的一组二阶特征组合,其中交互作用函数 < (x3,x4)的一组二阶特征组合,其中交互作用函数< x3x4)的一组二阶特征组合,其中交互作用函数<(·)的非加性(在定义2中)可以通过激活函数ReLU(·)的非线性来确保。理想情况下,涉及x1的组合特征可以被编码到第一特征字段eRes 1的更新表示中。由于可以为其他特征字段导出相同的内容,因此可以在第一交互层的输出中对所有二阶特征交互进行编码,其中注意力权重提取有用的特征组合。接下来,我们证明了高阶特征交互可以在第二交互层内建模。给定由第一交互层生成的第一特征场eRes 1的表示和第三特征场eRes 3的表示,涉及x1、x2和x3的三阶组合特征可以通过允许eRes 1参与eRes 3来建模,因为eRes 1包含交互作用< ( x 1 , x 2 ),而 e R e s 3 包含单独的特征 x 3 (来自残余连接)。此外,组合特征的最大阶数相对于交互层的数量呈指数增长。例如,四阶特征相互作用 < (x1,x2),而eRes 3包含单独的特征x3(来自残余连接)。此外,组合特征的最大阶数相对于交互层的数量呈指数增长。例如,四阶特征相互作用< x1x2),而eRes3包含单独的特征x3(来自残余连接)。此外,组合特征的最大阶数相对于交互层的数量呈指数增长。例如,四阶特征相互作用<(x1,x2,x3,x4)可以由分别包含二阶相互作用< ( x 1 , x 2 )和 < (x1,x2)和< x1x2)和<(x3,x4)的eRes 1和eRes 3的组合捕获。因此,几个交互层就足以对高阶特征交互进行建模。基于上述分析,我们可以看到AutoInt以分层的方式学习与注意力机制的特征交互,即,从低阶到高阶,所有低阶特征的相互作用都由残余连接承载。这是有前途和合理的,因为学习分层表示已被证明在使用深度神经网络的计算机视觉和语音处理中非常有效[3,18]。空间复杂性。嵌入层是基于神经网络的方法[11,19,32]中的共享组件,包含nd个参数,其中n是输入特征的稀疏表示的维度,d是嵌入大小。由于交互层包含以下权重矩阵:{W(h)Query,W(h)Key,W(h)Value,WRes},因此L层网络的参数个数为L×(3dd′+d′Hd),与特征域个数M无关。最后,在输出层中有d′HM + 1个参数。对于交互层,空间复杂度为O(Ldd′H).注意,H和d′通常很小(例如,在我们的实验中,H = 2和d′ = 32),这使得交互层的内存效率。时间复杂度。在每个交互层中,计算成本是两倍。首先,计算一个头部的注意力权重时间复杂度为O(Mdd′ + M2d′)。然后,在一个头部下形成组合特征也需要O(Mdd′ +M2d′)时间。因为我们有H个头,所以总共需要O(MHd′(M + d))时间。因此,它是有效的,因为H,d和d ′通常很小。我们在5.2节中提供了AutoInt的运行时间。

5实验

在本节中,我们将进一步评估我们提出的方法的有效性。我们的目标是回答以下问题:
RQ1我们提出的AutoInt在CTR预测问题上的表现如何?它对大规模稀疏和高维数据有效吗?
RQ2不同的模型配置有什么影响?
RQ3不同特性之间的依赖关系结构是什么?我们提出的模型可以解释吗?
RQ4集成隐式功能交互会进一步提高性能吗?
在回答这些问题之前,我们首先描述实验设置。

5.1实验装置

5.1.1数据集。我们使用了四个公开的真实世界数据集。数据集的统计总结见表1。Criteo 3这是一个CTR预测的基准数据集,它有4500万用户对显示广告的点击记录。它包含26个分类特征字段和13个数值特征字段。Avazu 4此数据集包含用户的移动的行为,包括用户是否点击了显示的移动的广告。它有23个功能字段,从用户/设备功能到广告属性。KDD 125该数据集由KDDCup 2012发布,最初旨在预测点击量。由于我们的工作重点是CTR预测而不是点击的确切数量,因此我们将此问题视为二元分类问题(1表示点击>0,0表示没有点击),这与FFM类似[16]。MovieLens-1 M6此数据集包含用户对电影的评分。在二值化过程中,我们将评分小于3的样本视为负样本,因为低评分表示用户不喜欢电影。我们将评级大于3的样本视为阳性样本,并删除中性样本,即,等级等于3。数据准备首先,我们删除不常见的特征(出现在低于阈值的实例中),并将其视为单个特征““,其中Criteo、Avazu和KDD 12数据集的阈值分别设置为{10,5,10}。其次,由于数值特征可能具有较大的方差并损害机器学习算法,因此如果z > 2,则通过将值z转换为lo <$2(z)来规范化数值,这是由Criteo竞赛7的赢家提出的。第三,我们随机选择所有样本的80%进行训练,并将其余样本随机分为大小相等的验证集和测试集。
在这里插入图片描述
5.1.2评价方法我们使用两个流行的指标来评估所有方法的性能。
ROC曲线下面积(AUC)测量CTR预测因子将随机选择的阳性项目分配给比随机选择的阴性项目更高分数的概率。较高的AUC表示较好的性能。Logloss由于所有模型都试图最小化等式10定义的Logloss,因此我们将其用作一个简单的度量。值得注意的是,在0.001水平下略高的AUC或较低的Logloss被认为对CTR预测任务有意义,这在现有工作中也已指出[8,11,38]。
5.1.3竞争模式。我们比较所提出的方法与三类以前的模型。(A)只使用单个特征的线性方法。(B)基于因式分解机的方法,考虑到二阶组合特征。©可以捕获高阶特征交互的技术。我们相应地将模型类与模型名称相关联。LR(A).LR仅对原始特征的线性组合进行建模。FM [26](B)。FM使用因子分解技术来模拟二阶特征交互。AFM [40](B)。原子力显微镜(AFM)是捕捉二阶特征相互作用的最先进的模型之一。该算法利用注意力机制来区分二阶组合特征的不同重要性,从而扩展了FM算法。[32]第三十二章:我的世界DeepCrossing利用具有剩余连接的深度全连接神经网络,以隐式方式学习非线性特征交互。NFM [13](C).NFM将深度神经网络堆叠在二阶特征交互层之上。高阶特征的相互作用被神经网络的非线性隐含地捕获。[38]第三十八章:我的世界交叉网络是Deep &Cross模型的核心,它在位的层次上取级联特征向量的外积来显式地对特征交互进行建模。CIN [19](C).压缩交互网络是xDeepFM模型的核心,它在矢量级上取堆叠特征矩阵的外积。HOFM [5](C).HOFM提出了有效的基于核的算法来训练高阶因式分解机。按照Blondel等人[5]和He和Chua [13]中的设置,我们使用公共实现构建了一个三阶因式分解机。我们将与CrossNet和CIN的完整模型进行比较,即,Deep&Cross和xDeepFM,在以后与普通DNN联合训练的设置下(即,第5.5节)。
5.1.4实施细则。所有方法都在TensorFlow中实现[1]。对于AutoInt和所有基线方法,我们根据经验将嵌入维度d设置为16,批量大小设置为1024。AutoInt有三个交互层,默认设置中隐藏单元的数量d′为32。在每个交互层中,注意头是2 8.为了防止过拟合,我们使用网格搜索从MovieLens-1M数据集的{0.1 - 0.9}中选择退出率[34],我们发现其他三个大数据集不需要退出。对于基线方法,我们使用一个大小为200的隐藏层,位于NFM的Bi-Interaction层之上,正如他们的论文所推荐的那样。对于CN和CIN,我们在AutoInt之后使用三个交互层。DeepCrossing有四个前馈层,隐藏单元的数量为100,因为它在使用三个神经层时表现不佳。一旦所有的网络结构是固定的,我们也适用于网格搜索基线方法的最佳超参数。最后,我们使用Adam [17]来优化所有基于深度神经网络的模型。
在这里插入图片描述
表2:不同算法的有效性比较。我们强调,我们提出的模型在四个数据集和两个指标上几乎优于所有基线。进一步分析见第5.2节。
在这里插入图片描述
图4:不同算法在运行时间方面的效率比较。“DC”和“CN”分别是DeepCrossing和CrossNet的简称。由于HOFM无法安装在KDD 12数据集的一个GPU卡上,因此额外的通信成本使其非常耗时。进一步分析见第5.2节。

5.2定量结果(RQ 1)

有效性评估
我们将10次不同运行的平均结果汇总到表2中。我们有以下观察结果:(1)FM和AFM,探索二阶特征相互作用,在所有数据集上始终大幅优于LR,这表明单个特征在CTR预测中是不够的。(2)一个有趣的观察是,一些模型捕捉高阶功能的相互作用的劣势。虽然DeepCrossing和NFM使用深度神经网络作为学习高阶特征交互的核心组件,它们并不能保证比FM和AFM更好。这可能归因于它们以隐式方式学习特征交互的事实。相反,CIN明确地做到了这一点,并且始终优于低阶模型。(3)HOFM在Criteo和MovieLens-1 M数据集上的表现明显优于FM,这表明建模三阶特征交互对预测性能有益。(4)AutoInt在四个真实数据集中的三个上实现了最佳性能的整体基线方法。在Avazu数据集上,CIN在AUC评估中的表现略好于AutoInt,但我们得到的Logloss较低。请注意,我们提出的AutoInt与DeepCrossing共享相同的结构,除了特征交互层,这表明使用注意力机制来学习显式组合特征至关重要。
模型效率评价
我们在图4中展示了不同算法在四个数据集上的运行时结果。不出所料,LR是最有效的算法,因为它的简单性。FM和NFM在运行时方面的表现类似,因为NFM只在二阶交互层的顶部堆叠了一个前馈隐藏层。在所有列出的方法中,CIN在所有基线中实现了最好的预测性能,但由于其复杂的交叉层而更加耗时。这可能会使其不切实际,工业场景。请注意,AutoInt是足够高效的,这与高效算法DeepCrossing和NFM相当。我们还比较了不同型号的尺寸(即,参数的数量)作为效率评估的另一标准。如表3所示,与基线模型中的最佳模型CIN相比,AutoInt中的参数数量要少得多。总而言之,我们提出的AutoInt在所有比较模型中实现了最佳性能。与最具竞争力的基准模型CIN相比,AutoInt需要更少的参数,并且在在线推理过程中更有效。
在这里插入图片描述
表3:不同算法在Criteo数据集模型大小方面的效率比较。“DC”和“CN”分别是DeepCrossing和CrossNet的简称。所计数的参数不包括嵌入层。
在这里插入图片描述
表4:比较有和没有残余连接的AutoInt性能的消融研究。AutoIntw/是完整的模型,而AutoIntw/o是没有残余连接的模型。

5.3分析(RQ 2)

为了进一步验证并深入了解所提出的模型,我们进行了消融研究,并比较了AutoInt的几个变体。5.3.1残余结构的影响。标准的AutoInt利用剩余连接,它可以执行所有学习到的组合特征,因此可以对非常高阶的组合进行建模。为了证明剩余单元的贡献,我们将它们从标准模型中分离出来,并保持其他结构不变。如表4所示,我们观察到,如果去除残余连接,所有数据集的性能都会下降。具体来说,完整模型在KDD 12和MovieLens-1 M数据上的表现远远优于变体,这表明在我们提出的方法中,残差连接对于建模高阶特征相互作用至关重要。5.3.2网络深度的影响我们的模型通过堆叠多个相互作用的层来学习高阶特征组合(在第4节中介绍)。因此,我们感兴趣的是性能如何改变w.r.t.相互作用层的数量,即,组合特征的顺序。注意,当没有交互层(即,层数等于零),我们的模型将原始个体特征的加权和作为输入,即,不考虑组合特征。结果总结见图5。我们可以看到,如果使用一个交互层,即,特征相互作用被考虑在内,性能显着增加两个数据集,显示组合特征是非常有用的预测。随着相互作用层的数量进一步增加,即,高阶组合特征被考虑在内,模型的性能进一步提高。当层数达到三层时,性能变得稳定,这表明添加极高阶特征对预测没有帮助。5.3.3不同尺寸的影响。接下来,我们研究w.r.t.参数d,它是嵌入层的输出维度。在KDD 12数据集上,我们可以看到,随着我们增加维度大小,性能不断提高,因为更大的模型用于预测。结果在MovieLens-1 M数据集上有所不同。当维数达到24时,性能开始下降。原因是这个数据集很小,当使用太多参数时,模型会过拟合。
在这里插入图片描述

5.4可解释的建议(RQ3)

一个好的推荐系统不仅能提供好的推荐,而且能提供好的解释性。因此,在这一部分中,我们将介绍AutoInt如何解释推荐结果。我们以MovieLens-1 M数据集为例。让我们看看我们的算法建议的推荐结果,即,用户喜欢一个项目。图7(a)显示了输入特征的不同字段之间的相关性,这些字段通过以下方式获得:注意力得分我们可以看到,AutoInt能够识别有意义的组合特征<Gender=Male,Age=[18-24],MovieGenre=Action&Triller>(即,红色虚线矩形)。这是非常合理的,因为年轻人很可能更喜欢动作片和惊悚片。我们还对数据中不同特征字段之间的相关性感兴趣。因此,我们根据整个数据中的平均注意力得分来衡量特征字段之间的相关性。图7(b)总结了不同领域之间的相关性。我们可以看到,<Gender,Genre>、<Age,Genre>、<RequestTime,ReleaseTime>和<Gender,Age,Genre>(即,实心绿色区域)是强相关的,这是该领域中推荐的可解释规则。
在这里插入图片描述
表5:整合隐式特征交互的结果。我们指出了每种方法背后的基本模型。最后两列是AUC和Logloss与相应基础模型相比的平均变化(“+“:增加,“-”:减少)。
在这里插入图片描述
(a)标签=1,预测CTR=0.89(b)总体特征交互图7:MovieLens-1 M上案例和全局级特征交互的注意力权重热图。轴表示特征字段<Gender,Age,Occupation,Zipcode,RequestTime,RealeaseTime,Genre>。我们在矩形中突出显示一些学习到的组合特征。

5.5整合内隐互动(RQ4)

前馈神经网络能够对隐式特征交互进行建模,并已被广泛集成到现有的CTR预测方法中[8,11,19]。为了研究集成隐式特征交互是否进一步提高性能,我们通过联合训练将联合收割机AutoInt与两层前馈神经网络结合起来。我们将联合模型命名为AutoInt+,并将其与以下算法进行比较:
· Wide&Deep [8].Wide&Deep集成了逻辑回归和前馈神经网络的输出。· DeepFM [11].DeepFM结合了可训练二阶因子分解机器和前馈神经网络,具有共享的嵌入层。· Deep&Cross [38].Deep&Cross是CrossNet的扩展,集成了前馈神经网络。
· xDeepFM [19].xDeepFM是CIN的扩展,集成了前馈神经网络。
表5显示了联合训练模型的平均结果(超过10次运行)。我们有以下观察结果:1)通过在所有数据集上与前馈神经网络进行联合训练,我们的方法的性能得到了提高。这表明,整合隐式特征交互确实提高了我们提出的模型的预测能力。然而,从最后两列可以看出,与其他模型相比,性能提高的幅度相当小,这表明我们的单个模型AutoInt非常强大。2)在集成了隐式特征交互后,AutoInt+的性能优于所有竞争方法,并在使用的CTR预测数据集上实现了新的最先进性能。

6结论和今后的工作

在这项工作中,我们提出了一种新的CTR预测模型的基础上自我注意力机制,它可以自动学习高阶特征的相互作用,在一个明确的方式。我们方法的关键是新引入的交互层,它允许每个特征与其他特征交互,并通过学习确定相关性。在四个真实数据集上的实验结果证明了该模型的有效性和效率。此外,我们通过可视化学习的组合特征提供了良好的模型可解释性。当与前馈神经网络捕获的隐式特征交互相结合时,与以前的最先进方法相比,我们实现了更好的离线AUC和Logloss分数。对于未来的工作,我们有兴趣将上下文信息纳入我们的方法,并提高其性能的在线推荐系统。此外,我们还计划扩展AutoInt用于一般的机器学习任务,如回归,分类和排名。

相关文章:

2019_AutoInt

AutoInt&#xff1a;通过自注意神经网络进行自动特征交互学习 创新点复现论文0摘要1介绍2相关工作2.1点击率预测2.2学习特征交互2.3注意力和残差网络 3问题定义4自动特征交互学习4.1概述4.2输入层4.3嵌入层4.4交互层4.5输出层 4.6训练4.7 AutoInt分析 5实验5.1实验装置5.2定量结…...

HAL库 Systick定时器 基于STM32F103EZT6 野火霸道,可做参考

目录 1.时钟选择(这里选择高速外部时钟) ​编辑 2.调试模式和时基源选择: 3.LED的GPIO配置 这里用板子的红灯PB5 4.工程配置 5.1ms的systick中断实现led闪烁 源码: 6.修改systick的中断频率 7.systick定时原理 SysTick 定时器的工作原理 中断触发机制 HAL_SYSTICK_Co…...

使用 Postman 进行 API 测试:从入门到精通

使用 Postman 进行 API 测试&#xff1a;从入门到精通 使用 Postman 进行 API 测试&#xff1a;从入门到精通一、什么是 API 测试&#xff1f;二、Postman 简介三、环境搭建四、API 测试流程1. 收集 API 文档2. 发送基本请求示例&#xff1a;发送 GET 请求示例代码&#xff08;…...

K8s 分布式存储后端(K8s Distributed Storage Backend)

K8s 分布式存储后端 在 K8s 中实现分布式存储后端对于管理跨集群的持久数据、确保高可用性、可扩展性和可靠性至关重要。在 K8s 环境中&#xff0c;应用程序通常被容器化并跨多个节点部署。虽然 K8s 可以有效处理无状态应用程序&#xff0c;但有状态应用程序需要持久存储来维护…...

基于docker搭建Kafka集群,使用KRaft方式搭建,摒弃Zookeeper

KAFKA基于docker使用KRaft进行集群搭建 环境&#xff1a;已成功搭建kafka服务 可点击链接跳转至安装kafka-3.8.0版本 并启用SASL认证 教程 使用基于Zookeeper方式搭建集群教程 kafka-3.8.0版本 并启用SASL认证 教程 搭建kafka-ui可视化工具 192.168.2.91 192.168.2.92 192…...

Centos7 安装 RabbitMQ与Erlang

1、下载erlang和rabbitmq wget https://github.com/rabbitmq/erlang-rpm/releases/download/v23.3.4.5/erlang-23.3.4.5-1.el7.x86_64.rpmwget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.16/rabbitmq-server-3.9.16-1.el7.noarch.rpm2、安装erlang…...

mybatis-plus的分页查询简单使用

引入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.5</version></dependency>在yml中配置启动mybatis-plus插件 mybatis-plus:configuration:#…...

剑指 Offer II 014. 字符串中的变位词

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20014.%20%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%B8%AD%E7%9A%84%E5%8F%98%E4%BD%8D%E8%AF%8D/README.md 剑指 Offer II 014. 字符串中的变位词 题目描述 给定两个字符…...

富唯智能复合机器人拓展工业新维度

富唯智能复合机器人是富唯智能倾力打造的一款集高度自动化、智能化和多功能性于一体的机器人。它融合了机械、电子、计算机、传感器等多个领域的前沿技术&#xff0c;通过精密的算法和控制系统&#xff0c;实现了对复杂生产环境的快速适应和高效作业。 富唯智能复合机器人的特点…...

【大数据技术】搭建完全分布式高可用大数据集群(Scala+Spark)

搭建完全分布式高可用大数据集群(Scala+Spark) scala-2.13.16.tgzspark-3.5.4-bin-without-hadoop.tgz注:请在阅读本篇文章前,将以上资源下载下来。 写在前面 本文主要介绍搭建完全分布式高可用集群Spark的详细步骤。 注意: 统一约定将软件安装包存放于虚拟机的/softwa…...

solidity高阶 -- 调用接口合约

在区块链开发中&#xff0c;Solidity 是一种广泛使用的智能合约编程语言&#xff0c;而接口合约&#xff08;Interface&#xff09;是 Solidity 中一个非常重要的概念。它为智能合约之间的交互提供了一种标准化的方式&#xff0c;使得合约之间的调用更加灵活、安全且易于管理。…...

若依框架使用(低级)

克隆源码 浏览器搜索若依&#xff0c;选择 RuoYi-Vue RuoYi-Vue RuoYi-Vue 重要的事情说三遍&#xff0c;进入gitee 下面这个页面&#xff08;注意红色框起来的部分&#xff09; 进入Gitee进行下载 我下载的是最新的springboot3 下载好后我们可以选择一个文件夹&#xff0…...

找不到 MSVCP120.dll

msvcr120.dll msvcr120.dll 是 Microsoft Visual C Redistributable 的一部分&#xff0c;属于 Visual Studio 2013&#xff08;VC 12.0&#xff09;的运行时组件。它的重要性取决于你运行的应用程序是否需要它。 重要性 依赖库&#xff1a;如果某个程序是用 Visual Studio 2…...

AI软件栈:LLVM分析(三)

LLVM IR 文章目录 CFG线性IR 主要采用CFG与线性IR组合描述 CFG *关键在于基本块&#xff08;Basic Block&#xff09;的定义 线性IR *关键来自于SSA&#xff0c;单静态赋值...

openwebui入门

1 简介 ‌Open WebUI‌&#xff08;网址是openwebui.com&#xff09;是一个高度可扩展、功能强大且用户友好的自托管Web用户界面&#xff0c;专为完全离线操作设计&#xff0c;编程语言是python。它支持对接Ollama和OpenAI兼容的API的大模型。‌ Open WebUI‌在架构上是一种中…...

Spark--如何理解RDD

1、概念 rdd是对数据集的逻辑表示&#xff0c;本身并不存储数据&#xff0c;只是封装了计算逻辑&#xff0c;并构建执行计划&#xff0c;通过保存血缘关系来记录rdd的执行过程和历史&#xff08;当一个rdd需要重算时&#xff0c;系统会根据血缘关系追溯到最初的数据源&#xff…...

CTFSHOW-WEB入门-PHP特性89-100

题目&#xff1a;web 89 题目&#xff1a;解题思路&#xff1a;这道题目涉及了两个函数&#xff1a;preg_match&#xff08;&#xff09;和intval&#xff08;&#xff09;简要介绍一下两个函数 preg_match&#xff08;&#xff09;用于对字符串进行正则表达式的匹配&#xff0…...

[250204] Mistral Small 3:小巧、快速、强大 | asdf 0.16.0 发布:Golang 重写带来性能飞跃

目录 Mistral AI 发布开源模型 Mistral Small 3&#xff1a;小巧、快速、强大asdf 0.16.0 版本发布&#xff1a;Golang 重写带来性能飞跃&#xff01; Mistral AI 发布开源模型 Mistral Small 3&#xff1a;小巧、快速、强大 法国人工智能初创公司 Mistral AI 发布了最新的开源…...

PySpark学习笔记5-SparkSQL

sparkSql的数据抽象有两种。 一类是data set适用于java和Scala 一类是data frame适用于java&#xff0c;Scala&#xff0c;python 将r d d转换为data frame #方式一 df spark.createDataFrame(rdd,schema[name,age]) #方式二 schema Structtype(). add(id,integertype(),nu…...

windows版的docker如何使用宿主机的GPU

windows版的docker使用宿主机的GPU的命令 命令如下 docker run -it --nethost --gpus all --name 容器名 -e NVIDIA_DRIVER_CAPABILITIEScompute,utility -e NVIDIA_VISIBLE_DEVICESall 镜像名效果 (transformer) rootdocker-desktop:/# python Python 3.9.0 (default, Nov 15 …...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...

Kafka主题运维全指南:从基础配置到故障处理

#作者&#xff1a;张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1&#xff1a;主题删除失败。常见错误2&#xff1a;__consumer_offsets占用太多的磁盘。 主题日常管理 …...

实战三:开发网页端界面完成黑白视频转为彩色视频

​一、需求描述 设计一个简单的视频上色应用&#xff0c;用户可以通过网页界面上传黑白视频&#xff0c;系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观&#xff0c;不需要了解技术细节。 效果图 ​二、实现思路 总体思路&#xff1a; 用户通过Gradio界面上…...

数据结构:递归的种类(Types of Recursion)

目录 尾递归&#xff08;Tail Recursion&#xff09; 什么是 Loop&#xff08;循环&#xff09;&#xff1f; 复杂度分析 头递归&#xff08;Head Recursion&#xff09; 树形递归&#xff08;Tree Recursion&#xff09; 线性递归&#xff08;Linear Recursion&#xff09;…...

Linux 下 DMA 内存映射浅析

序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存&#xff0c;但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程&#xff0c;可以参考这篇文章&#xff0c;我觉得写的非常…...