基于注意力交叉的点击率预测算法
2021-12-14杜博亚杨卫东
杜博亚 杨卫东
(复旦大学计算机科学与技术系 上海 201203)
0 引 言
点击率(CTR)预测在推荐系统中至关重要。用户在电商页面上点击推荐的商品,意味着推荐信息与用户偏好和需求之间存在一定的相关性。利用这种相关性数据建立点击率预测模型,如果直接使用原始商品特征和用户行为特征,往往难以奏效。因此,数据科学家通常会花费大量精力研究和实施面向推荐算法的特征工程,以期得到最佳点击率预估模型,其中一种主要手段即为特征组合的方法[1]。组合特征也称交叉特征,例如:一个三维组合特征“AND(组织=复旦,性别=男,研究方向=机器学习)”的值为1,即表示用户所属组织为复旦,性别为男且研究方向为机器学习方向。
传统的特征组合方法主要有三个缺点。首先,由于高效组合特征往往依赖于具体业务场景,数据科学家需要花费大量时间从产品数据中探索特征的潜在组成模式,然后才能提取出有意义的交叉特征,因此获取高质量的组合特征需要很高的人力成本;其次,在现实点击率预估场景中,原始特征经过编码后往往可以达到上亿维度,这使得手动特征组合变得不可行;最后,人工特征工程难以挖掘出隐藏的交叉特征,限制了推荐系统的个性化程度。因此,利用模型自动提取出高效的组合特征是一项十分有意义的工作。
对于特征组合方式,其中FM[2]将每个特征i映射到一个隐因子向量Vi=[vi1,vi2,…,viD],组合特征通过隐因子两两内积进行交叉:f(2)(i,j)=
上述模型都使用DNN来学习高阶特征交互。然而,由于DNN模型是以隐式方式提取高阶组合特征,目前并未有理论证明其表征特征对应组合阶数。此外,DNN学习到的非线性组合特征的含义难以解释。因此,本文提出一种基于注意力机制的显式特征交叉模型,实现Bit-wise级别的特征交叉,利用Attention机制对组合特征进行赋权,消除了暴力组合方式带来冗余特征的影响。本文方法基于Deep & Cross Network(DCN)[8],但传统的DCN只能通过交叉网络进行暴力显式特征组合,不能区分各组合特征的重要性,这些特征中不仅包含了有效交叉特征,也同时涵盖了大量冗余特征,其限制了最终的点击率预估模型表现。
本文设计一种全新的Attention Cross Network(ACN)用于各阶显式特征自动筛选,ACN实现了自动提取指定阶Bit-wise级显式特征组合。同时,该网络巧妙地运用了矩阵映射,使得模型空间复杂度随网络深度线性增长,大大降低了模型上线的负担。然而,受限于ACN网络参数规模的限制,保留了DNN用于隐式高阶特征组合作为模型补充,整个模型以并行网络结构组织。本文模型不再需要人工特征工程,可自动实现特征组合、抽取,完成端到端模型训练。
1 注意力交叉网络结构
DACN整体网络一共由五部分组成,分别为输入层、嵌入层、Attention Cross Network、DNN和输出层,其整体网络结构如图1所示。
图1 DACN模型结构
图1中,稀疏特征经过嵌入层映射为Embedding,然后与稠密特征进行堆叠,分别传给ACN、DNN用于显式特征、隐式特征提取,将提取特征传送给输出神经元完成点击率预估。
1.1 嵌入层和堆叠层
网络结构的输入特征主要包含数值型特征和类别型特征,而在实际的CTR预估场景中,输入主要是类别型特征,如“国家=中国”。这类特征通常需要进行One-hot编码,如“[0,1,0]”,当对ID类特征进行One-hot编码时,往往会造成嵌入空间的向量维度过大。
为了降低编码导致的特征稀疏性,使用嵌入层将稀疏类特征转换为向量空间的稠密向量(通常称为嵌入向量):
xembed,i=Wembed,ixi
(1)
式中:xembed,i是嵌入向量;xi是第i类的二进制输入;Wembed,i∈Rne×nv是将与网络中的其他参数一起进行优化的嵌入矩阵;ne和nv分别是输入维度和嵌入向量维度。映射逻辑如图2所示。
图2 嵌入层网络结构
最后,将嵌入向量以及归一化的稠密特征xdense堆叠到一个向量中:
(2)
将堆叠后的向量x0传入ACN网络进行显式特征提取,传入DNN进行隐式特征提取,完成CTR预估。
1.2 注意力交叉网络
本文的注意力交叉网络核心思想是利用交叉网络完成Bit-wise级特征高阶交叉,利用注意力机制完成显式特征提取。其主体架构如图3所示。
图3 注意力交叉网络结构
注意力交叉网络主要包含输入层、交叉层、注意力层和输出层。其中,输入层完成从稀疏特征到稠密特征的嵌入,交叉层完成指定阶显式特征交叉,注意力层完成组合特征赋权。三者联立完成特征自动组合、交叉和筛选,最后传递给输出神经元进行点击率预测。
1.2.1交叉层
交叉层旨在以一种高效的方式进行显式特征组合。其中,每一层的神经元数量都相同且等于输入向量x0的维度,每一层都符合式(3),其中函数f拟合的是指定阶显式特征组合。
(3)
式中:Xl,Xl+1∈Rd是列向量,分别表示来自第l层和第l+1层交叉层输出;Wl,Bl∈Rd是第l层的权重和偏差。图4给出了一个交叉层的计算操作示例。
图4 交叉层网络结构
从图4中矩阵和向量运算不难发现,其输入、输出结果始终保持长度为d,保证了交叉网络单层空间复杂度为O(d)。同时,交叉网络的参数规模也限制了模型的显式特征表达能力。为了捕获高度非线性的交互特征,需要引入并行的DNN网络。
1.2.2注意力层
注意力机制的核心思想为:当把不同的部分压缩在一起的时候,让不同部分的贡献程度不一样。ACN通过在交叉层后接一个单隐层全连接神经网络来学习组合特征权重,从而实现特征自动提取。
对于注意力权重,ACN采用一个Attention network来学习组合特征权重,Attention network采用单隐层的全连接神经网络,激活函数使用ReLU,网络大小用注意力因子表示。注意力网络的输入是完成指定阶特征交叉之后的d维向量,输出是组合特征对应的注意力得分。最后,使用Softmax对得到的注意力分数进行规范化,其计算公式逻辑如下:
(4)
(5)
式中:W∈Rt×d,b∈Rt,h∈Rt是模型参数。注意力分数通过Softmax进行标准化,用于加速参数学习。注意力层输出是d维矢向量,对应各阶特征系数。
因此,ACN网络的输出计算式如下:
(6)
(7)
式中:ai是注意力权重,表示不同组合特征对最终预测函数的贡献程度。不难看出,对于交叉网络的显式组合特征,通过注意力机制实现组合项的动态加权,更高效地利用了组合特征,并消除了冗余特征对点击率预测模型的影响。
1.3 多层感知机
注意力交叉网络的参数规模限制了模型显式特征提取能力,为了获得高阶非线性的组合特征,本文并行引入了多层感知机,其网络结构如图5所示。
图5 多层感知机结构
该网络是一个全连接前馈神经网络,各层计算逻辑如下:
Hl+1=f(WlHl+Bl)
(8)
式中:Hl+1表示隐藏层;f(·)是ReLU函数,通过全连接方式进行网络构建,用于隐式高阶特征提取。
1.4 输出层
输出层将注意力交叉网络和多层感知机的输出传给标准Logits层,进行点击率预估,点击率预估公式为:
(9)
式中:XL1∈Rd,HL2∈Rm分别是ACN和DNN的输出;Wlogits∈R(d+m)是输出层的权重向量;σ=1/(1+exp(-x))。损失函数为带正则项的对数损失函数:
(10)
式中:pi为点击率预估模型输出;yi为样本对应标签;N为训练样本数;λ为L2正则项系数。通过对数损失函数进行误差反传直至收敛,完成模型训练。
2 注意力交叉网络分析
本节在理论层面对ACN做有效性分析,论述其进行显式特征交互的理论依据,并对ACN网络的空间复杂度进行分析。
2.1 多项式近似
根据Weierstrass逼近定理[9],在特定平滑假设下任意函数都可以被一个多项式以任意的精度逼近,因此可以从多项式近似的角度分析交叉网络。对于d元n阶多项式,其表达式如下:
(11)
多项式参数量为O(dn),而ACN只需要O(d)参数量就可以生成同阶多项式中出现的所有交叉项。
(12)
然而,正是受限于ACN的参数规模,其模型特征表征能力受限,为了提取高阶非线性组合特征,本文并行引入了DNN。
2.2 因子分解机泛化
ACN本质是对FM模型的进一步推广,从特征显式二阶交互到高阶交互。
2.3 空间复杂度
对于ACN,假设Lc表示ACN层数,d表示输入向量x0的维度,Attention网络隐层神经元数量为m,则l层的交叉网络组成了x1,x2,…,xd在l+1阶的所有特征组合,对应ACN的参数数目为(d×Lc+d×m)×2。
对于交叉网络,每一层的参数向量W和b都是d维,所以交叉层参数数量为d×Lc×2,而注意力网络为单隐层全连接神经网络,输入输出均是长度为d的向量,对应参数数量为d×m×2。
ACN网络空间复杂度是输入维度d的线性函数,所以相比于DNN,ACN引入的复杂度微不足道,这样就保证了整体网络DACN的复杂度和DNN同属一个数量级。
3 实 验
3.1 实验设置
3.1.1实验数据集
在以下两个数据集上评估DACN的有效性和效率。
(1) Criteo数据集[10]。Criteo数据集包含4 500万用户的点击记录,共13个连续特征和26个分类特征。为方便训练,从中随机抽取2 000万条数据集分为两部分,其中90%用于训练,其余10%用于测试。
(2) MovieLens数据集[11]。MovieLens数据包含13万用户对2万多部电影的评分记录,共21个特征,约2 000万条评分数据。为了使其适用于CTR预测场景,本文将其转换为二分类数据集,电影的原始用户评分是从0到5的离散值,本文将标有4和5的样本标记为正,其余标记为负样本。
根据用户ID从中随机选取13万用户,将数据划分为训练和测试数据集,随机抽取10万用户作为训练集(约1 447万个样本),其余3万用户作为测试集(约502万个样本),则任务是根据用户历史行为来预测该用户是否会对指定电影评分高于3(正标签)。
3.1.2评估指标
使用AUC(ROC曲线下的面积)和Logloss(交叉熵)两个指标进行模型评估,这两个指标从不同层面评估了模型的表现。
(1) AUC。AUC衡量模型对正负样本的排序能力,表示随机从样本中抽取一对正负样本,其中正样本比负样本排名要高的概率。此外,AUC对样本类别是否均衡并不敏感。(2) Logloss。Logloss衡量各样本预测值与真实值之差。广告系统往往更依赖Logloss,因为需要使用预测的概率来估算排序策略的收益(通常将其调整为CTR×出价)。
3.1.3对比模型
实验将DACN与LR(Logistic Regression)[12]、DNN、FM(Factorization Machines)[2]、Wide & Deep[1]、DCN(Deep & Cross Network)[8]和DeepFM[7]进行对比。
如前文所述,这些模型与DACN高度相关,是目前主流且经过工业界验证的点击率预估模型。因DACN旨在通过模型提取特征组合,为控制变量,本文将不对原始特征进行任何人工特征工程。
3.1.4参数设置
1) DACN模型参数设置。本文在TensorFlow上实现DACN。对稠密型特征使用对数变换进行数据标准化;对类别型特征,将特征嵌入到长度为6×dimension1/4的稠密向量中;使用Adam[13]优化器,采用Mini-batch随机梯度下降,其中Batch大小设置为512,DNN网络设置Batch normalization[14]。
2) 对比模型参数设置。对于对比模型,遵循PNN[6]中针对FNN和PNN的参数设置。其中,DNN模块设置了Dropout为0.5,网络结构设置为400- 400- 400,优化算法采用基于Adam的Mini-batch梯度下降,激活函数统一使用ReLU,FM的嵌入维度设置为10,模型其余部分设置与DACN一致。
3.2 实验对比
3.2.1单模型表现对比
各单模型在两公开数据集表现如表1所示。对比模型中,FM显式度量2阶特征交互,DNN建模隐式高阶特征交互,Cross Network建模显式高阶特征交互,而ACN建模显式高阶特征交互并自带特征筛选。
实验表明,本文所提的ACN始终优于其他对比模型。一方面,对于实际的数据集,稀疏特征上的高阶交互是必要的,这一点从DNN、Cross Network和ACN在上述两个数据集上均明显优于FM得到证明;另一方面,ACN是最佳的个体模型,验证了ACN在建模显式高阶特征交互方面的有效性。
3.2.2集成模型表现对比
DACN将ACN和DNN集成到端到端网络结构中。其中ACN用于显式组合特征提取及筛选,DNN用于隐式组合特征提取,通过两者并行联立,以期最大程度地进行特征表征。比较了DACN与目前主流CTR预估模型在两公开数据集上的表现,结果如表2所示。
表2 集成网络结果对比
续表2
可以看出,LR比所有其他模型都差,这表明基于因子分解的模型对于建模稀疏类交互特征至关重要;而Wide&Deep、DCN和DeepFM则明显优于DNN,表明DNN隐式特征提取能力比较受限,通常需要借助人工特征工程弥补特征组合能力不足的短板。其次,DACN相比于DCN指标提升明显。前文已从理论角度论证了DACN相较DCN的优势,通过添加Attention网络结构实现各指定阶组合特征筛选,提升重要组合特征权重,消除冗余特征影响。实验结果证明,该结构可有效地实现特征筛选,对整体模型表现具有较大提升。
最后,本文所提的DACN网络在两个公开数据集上均实现了最佳性能,这表明将显式和隐式高阶特征联立,对原始特征表征更充分。同时,实验结果也验证了使用ACN进行指定阶显式特征组合对最终模型表现具有很大提升,从侧面验证了该结构的合理性。
3.2.3网络参数数量对比
考虑到ACN引入的额外参数,在Criteo数据集上对ACN、CrossNet及DNN进行了对比,比较各模型实现最佳对数损失阈值所需的最少参数数量,因为各模型嵌入矩阵参数数量相等,在参数数量计算中省略了嵌入层中的参数数量,实验结果如表3所示。
表3 相同对数损失对应最少参数量
从实验结果不难看出,ACN和Cross Network的存储效率比DNN高出近一个数量级,主要原因是共有的特征交叉结构实现以线性空间复杂度完成指定阶特征交互。
此外,ACN与Cross Network参数量都属同一数量级,ACN引入的Attention网络只包含一个隐层,所需参数数量可近似忽略,但对模型点击率预测精度具有较大提升。
4 结 语
识别有效的特征组合已成为目前主流点击率预测模型成功的关键,现有方法往往借助暴力枚举或隐式DNN提取进行特征组合,其中掺杂了大量无用、冗余特征,限制了点击率预测模型的表现。本文提出的注意力交叉网络DACN可以同时进行显示特征交叉和隐式特征提取,其Attention结构自动依据特征重要性完成特征筛选,有效地降低了冗余特征带来的影响。实验结果表明,就模型准确性和参数使用量而言,DACN都优于目前主流点击率预测模型。
未来将进一步探索注意力交叉网络作为显式特征交叉模块在其他领域的使用效果。此外,当前DACN的显式特征组合粒度较粗,如何在保证模型空间复杂度随网络层数线性增长的前提下进一步挖掘细粒度组合特征将作为研究工作的下一个目标。