基于注意力机制的兴趣网络点击率预估模型

2021-01-15 07:17许王昊肖秦琨
计算机工程 2021年1期
关键词:高阶预估注意力

许王昊,肖秦琨

(西安工业大学电子信息工程学院,西安 710021)

0 概述

在按次计费(Cost-Per-Click,CPC)广告系统[1]中,广告按有效价格(eCPM)进行排名[2],该价格是出价与点击率(Click-Through Rate,CTR)的乘积,而CTR 需要通过系统来预估。CTR 预估模型在广告系统中发挥着至关重要的作用[3],其准确度直接影响最终广告受益,因此,CTR 预估模型受到研究人员的广泛关注[4]。

CTR 预估模型是一个典型的二分类模型,结果分为点击和不点击[5]。目前,业界应用最广泛的CTR 预估模型是逻辑回归(Logistic Regression,LR)。LR 的优点是模型结构简单、容易进行大规模线上高并发处理[6],但是,由于线性模型更适合表示低阶特征,对高阶特征(非线性特征)进行表示时存在不足,从而限制了LR 预测性能的提升。为此,Google 提出Wide&Deep 模型[7],华为诺亚方舟实验室提出DeepFM 模型[8]等,这些模型都是基于embedding 和多层感知机(MLP)而设计[9],它们首先将大规模稀疏输入特征映射到低维embedding向量中,然后以逐组方式转换为固定长度的向量,最后将向量连接在一起输入到多层感知机[10]中,提取用户感兴趣的非线性特征。与常用的LR 模型[11]相比,这些深度学习模型可以大幅减少特征工程工作,并提高模型的高阶表示能力[12]。但是,embedding&MLP 模型只能表现有限维度的用户兴趣,无法表示用户的多样化兴趣[13]。例如,在访问电子商务站点时,用户可能同时对不同种类的商品感兴趣。当涉及点击率预测任务时,通常会从用户行为数据中捕获用户兴趣[14]。embedding&MLP 方法通过将用户行为的embedding 向量转换为固定长度的向量来学习特定用户的所有兴趣表示,固定长度向量位于所有用户的代表向量所在的欧氏空间中[15],此时,用户的不同兴趣被压缩为固定长度的向量,这限制了embedding&MLP方法的表达能力。为了使兴趣的表示具有足够的能力来表达用户的不同兴趣,需要扩展固定长度向量的维数。但是,这会大幅提高学习参数的数量,提升有限参数下过拟合的风险[16],还会增加计算和存储负担,这是实时在线系统所无法接受的。

在预测候选广告时,不必将某个用户的所有多样化兴趣压缩到相同的向量中,因为只有部分用户的兴趣会影响其点击或不点击行为。为了在该情况下进行预测[17],本文基于注意力机制构建一种兴趣网络点击率预估模型ADIN。ADIN 模型引入局部激活单元,通过软搜索历史行为的相关部分来关注相关用户的兴趣。此时,用户兴趣的表示向量随广告的不同而变化,提高了模型在有限维度下的表示能力,使得ADIN 能够更好地量化用户的不同兴趣。ADIN 还引入注意力机制,注意力机制借鉴了人类视觉的处理方式,将注意力集中于关键区域,其本质是从诸多信息中选择对任务起关键作用的信息,从而降低任务的复杂度。在ADIN 模型中,通过注意力机制将历史行为与当下行为相结合,从而更好地预估用户的实时兴趣,提高模型的预测能力。

1 CTR 预估模型

相比于传统的机器学习模型,深度学习模型在CTR 预估中表现出了较大潜力。CTR 预估模型中使用的样本数量和特征维度越来越大,为了更好地提取特征之间的关系以提升模型性能,研究人员对模型的结构设计进行了研究。为了避免语义建模中的维数爆炸问题,一些自然语言处理模型和CTR 预估模型在输入层和神经网络层之间加入一个embedding 层,用于降低特征维数[18]。假设特征数为n,每个embedding 向量的维度为D,特征的embedding向量v可以写成一个矩阵,如式(1)所示:

LS-PLM[19]模型和FM[20]模型可以看作具有一个隐藏层的一类网络,它们首先在稀疏输入上使用embedding层,然后对目标拟合施加专门设计的转换函数,旨在捕获特征之间的组合关系。PLM 结合聚类和分类的思想[21],即将特征空间进行分片或分区间,每个分片就是一个聚类,每个聚类对应一个单独的线性模型LR,此处的聚类是软聚类,即每个样本可以属于多个分片。最后,计算出每个分片的CTR,按属于各个分片的概率进行加权平均,通过分片线性拟合达到非线性的效果。在高维稀疏数据下,假设一个二分类数据集为其中,yt∈{0,1},xt∈ℝd。LS-PLM 模型为:

其中,m表示分片数,其为人工设定的超参数,{u1,u2,…,um,w1,w2,…,wm}∈ℝd×2m表示模型参数,由训练得到。FM 模型在二维特征下定义为:

其中,模型参数w0∈ℝ,wi∈ℝn,V∈ℝn×k,<·,·>表示大小为k的2 个向量的点积:

其中,vi表示k个因子中的第i个变量表示定义因子维度的超参数。

在深度学习模型中,Deep Crossing[22]和Wide&Deep通过用复杂的MLP 网络代替或扩展LS-PLM 和FM,从而大幅提升了模型的性能。PNN[23]通过在embedding层之后加入一个product层来提取高阶特征。DeepFM[8]在Wide&Deep[7]中将分解机改进为“wide”模块,无需进行功能设计。总体而言,这些方法遵循相似的模型结构,即包括embedding 层和MLP 的组合,其中,embedding 层用于学习稀疏特征的密集表示,MLP 用于自动学习特征的组合关系。

注意力机制源自神经机器翻译(NMT)领域[24]。NMT 对所有注释进行加权求和以获得预期的注释,其仅关注与生成下一个目标单词有关的信息。与NMT相似,Deep-Intent使用RNN[25]对文本进行建模,然后学习一个全局隐藏向量来关注每个查询中的关键字。结果表明,注意力机制的使用有利于提取查询或广告的主要特征。ADIN 模型设计了一个局部激活单元来软搜索相关的用户行为,并通过加权和池化获取针对给定广告的用户兴趣的自适应表示。

2 ADIN 模型

2.1 特征表示

工业点击率预测任务中的数据大多采用多组类别的形式[26],例如,[weekday=Monday,gender=Male,visited_cate_ids={Keyboard,Mouse},ad_cate_id=Computer],通常将这种数据转换为高维稀疏二进制特征,编码后的特征为[64,18,32]。数学上将第i个特征组的向量编码为,Ki表示特征组i的维数,即特征组i包含了Ki唯一的ID。ti[j]是ti的第j个元素,ti[j]∈当k=1 时向量ti即one-hot编码,k>1时向量ti即multi-hot编码,此时一组用户行为特征可以表示为,其中,M表示特征组的数量,表示整个特征空间的维度。此时,上述具有4 组特征的实例可以表示为:

表1 截取自阿里巴巴数据集中的部分特征,其中主要分为用户生理特征、用户行为特征、广告特征和上下文特征4 个类别,除了用户行为特征使用multi-hot 编码,其余均使用one-hot 编码。

表1 阿里巴巴展示广告数据集部分统计结果Table 1 Some statistical results of Alibaba display advertising dataset

2.2 embedding 层

由于ADIN 模型的输入是高维二进制向量,因此加入embedding 层将其转换为低维密集表示。对于ti的第i个特征组,令表示第i个embedding 字典,其中是一个D维的embedding 向量,embedding 操作通过查表简化计算。当ti是第j个元素ti[j]=1 的one-hot 向量时,embedding层将其转换为一个单个embedding 向量当ti是ti[j]=1 且j∈{i1,i2,…,ik}的multi-hot 向量时,ti的embedding 表示形式是一个embedding 向量列表:

2.3 池化层和拼接层

不同用户的行为特征数量不同,因此,multi-hot行为特征向量ti=1 的数量会因实例而异,从而导致相应的embedding 向量列表的长度可变。由于全连接层网络只能处理固定长度的输入[27],通常需要通过池化层来转换embedding 向量的列表以获得固定长度的向量,如下:

池化层最常用的算法是求和与平均[28],其将每个元素的求和与平均运算应用于embedding 向量列表。池化层和embedding 层均以逐组的方式运行,将原始的稀疏特征映射到多个固定长度的向量中,然后拼接层将所有的向量连接在一起以获得该实例的整体表示向量。

2.4 多层感知机层与损失函数

多层感知机层给定级联的密集表示向量,可以使用全连接层自动学习特征的组合,从而更好地提取特征。

ADIN 模型中使用的目标函数是负对数似然函数[29],如下:

其中,S表示大小为N的训练集,x表示网络的输入,y∈{0,1}表示训练集的标签,p(x)表示Softmax 层之后网络的输出,即样本被点击的预测概率。

2.5 局部激活单元

ADIN 模型将局部激活单元应用于用户行为特征提取,将其作为加权和池化来执行,以自适应地计算给定广告A下的用户表示vU:

其中,{e1,e2,…,eH}表示长度为H的用户U的行为特征的embedding 向量列表,vA表示广告A的embedding 向量。此时,vU(A)随不同广告而变化。a(·)是一个前馈网络,其输出作为激活权重。除了2 个输入embedding向量,a(·)将其余embedding 向量按权重进行乘积相加并输入后续网络。

2.6 注意力机制

注意力机制对用户行为特征通过使用相似度函数比对计算得到权重s(xi,q):

其中,xi表示输入第i个用户的特征,q表示第i个用户的兴趣向量。将得到的权重s(xi,q)进行归一化处理[30]操作得到注意力分布ai:

将得到的ai值与对应区域加权求和得到最后的attention:

ADIN 模型中的注意力机制算法包括4 个步骤:

步骤1选择一个用户行为特征向量作为注意力信号。

步骤2对输入的序列进行编码,计算出注意力分布。

步骤3计算注意力的加权平均,根据相似度将其转换成注意力权重。

步骤4根据权重对输入的序列进行加权融合得到向量并作为输入序列的聚合特征。

2.7 自适应激活函数

ADIN 模型采用了当前流行的PReLU 激活函数,如下:

此处f(s)也可写为:

其中,s表示激活函数f(·)的输入,p(s)=I(s>0)控制f(s)在f(s)=s和f(s)=αs之间切换。此外,在ADIN模型中还加入了自适应激活函数Dice,如下:

其中,E[s]和Var[s]分别表示每个小批量输入的均值和方差,ε是一个常数,本文实验中取10-8。

本文ADIN 模型结构如图1 所示。

图1 ADIN 模型结构Fig.1 ADIN model structure

3 实验及评估

为了评估本文ADIN模型的预估性能,基于Amazon、MovieLens和Alibaba 3个公开数据集进行对比实验。

3.1 数据集与实验设置

Amazon 数据集包含了亚马逊的产品评论和元数据,常被作为基准数据集来训练模型[31]。如表2 所示,本文使用Amazon数据集中的Electronics子数据集,其包含192403个用户,63001个商品,801个类别和1689188个样本。该子数据集中用户行为丰富,每个用户和商品评论均超过5 条,包含了goods_id、cate_id、user reviewed goods_id_list 和cate_id_list 等特征。假设一个用户的所有行为是(b1,b2,…,bk,…,bn),模型的任务是通过使用前k个商品来预测第k+1 个商品。实验中对于所有模型均采用SGD 作为优化器,其中,学习率从1 开始,衰减率设置为0.1,最小批量设置为32。

表2 3 个公开数据集统计信息Table 2 Statistical information of three public datasets

MovieLens数据集[32]包含138 493个用户,27 278部电影,21 个类别和20 000 263 个样本,包括movie_id、movie_cate_id、user rated movie_id_list 和movie_cate_list等特征。为了使其适合CTR 预估任务,实验中将该数据集转换为二进制分类数据集。电影的原始评分是从0~5 的连续值,实验中将评分为4 和5 的样本标记为正样本,其余样本标记为负样本。根据用户ID 将数据集分为训练集和测试集,在所有138 493 个用户中,100 000 个用户划分为训练集(14 469 238 个样本),其余38 493 个用户划分为测试集(5 531 025 个样本)。模型的任务即根据历史行为来预测用户对电影的评分是否高于3 分(正标记)。实验中优化器、学习率和最小批量设置与Amazon 数据集相同。

本文实验还采用Alibaba 在线展示广告系统公开数据集[33],由于其数据量过于庞大,因此采用随机连续的两周样本作为训练集,后续一天的样本作为测试集。训练集约有20 亿个样本,测试集约有1.4 亿个样本,随机抽取1%的样本用于模型训练。对于所有深层模型,所有16 组特征的embedding 向量维度均为12,多层感知机的层数设置为192×200×80×2,最小批量设置为100,使用Adam 优化器。学习率从0.001 开始,衰减率设置为0.9。

3.2 对比模型

本文实验选择5 种具有代表性的CTR 预估模型与ADIN 模型进行对比。对比模型具体如下:

1)LR 模型,其是在使用深度学习进行CTR 预测任务之前被广泛使用的浅层模型,优势是模型简单、训练速度快,本次实验中将其作为弱基准模型。

2)embedding 与多层感知机模型(embedding&MLP),其是多数使用深度学习进行CTR 预估的基础。

3)Wide&Deep 模型,在实际中被广泛使用,其由两部分组成,Wide 模型处理手动设计的跨产品特征,Deep 模型自动提取特征之间的非线性关系。Wide&Deep 模型基本等价于embedding 与多层感知机模型。

4)PNN模型,其通过在embedding 层后引入product 层以捕获高阶特征。

5)DeepFM 模型,其在Wide&Deep 的基础上将Wide 模型改为因子分解机。

3.3 评价指标

实验采用LogLoss和AUC作为评价指标。用式(6)作为LogLoss 的计算公式以评估模型的准确度,通过对所有预期CTR 的广告进行排序来评价模型的性能。实验引入用户加权AUC 的变体,通过用户平均AUC 来衡量模型的优劣[34]。AUC 计算公式如下:

本次报告以伊利股份财务指标的分析为主要内容,先介绍了伊利股份公司的情况,然后结合企业经济效益指标体系以及乳制品行业和上市公司自身的特点,以2012年-2016年为分析的时间区间,将伊利股份纵向的财务分析指标分为偿债能力、盈利能力、营运能力和发展能力四个方面,先进行单项指标的分析评价,再进行财务趋势分析和财务综合分析。

其中,n表示用户数,#impressioni和AUCi分别表示第i个用户的权重和AUC 指标。

3.4 结果分析

本文依次在3 个公开数据集中评估6 种模型的预测性能,在Amazon 数据集中比较不同的激活函数、超参数设置和网络层数等对各模型性能的影响。

3.4.1 预测效果比较

表3 所示为3 个公开数据集中不同模型的预测效果,从中可以看出:

1)学习高阶特征可以提高模型的预测性能。将LR 和其他模型进行比较,LR 是唯一一个没有学习高阶特征的模型。在3 个公开数据集上,ADIN 模型的AUC 指标分别比LR 模型提高了1.55%、4.56%和0.45%,LogLoss 指标分别比LR 模型降低了0.72%、0.50%和0.37%。

2)同时学习高阶特征和低阶特征的模型预测效果明显优于仅学习高阶特征或低阶特征的模型。DeepFM 和ADIN 模型同时提取高阶特征和低阶特征,AUC 指标和LogLoss 指标明显优于其余4 种只学习低阶或高阶特征的模型。与只学习高阶特征的PNN相比,ADIN 模型在3 个数据集上的AUC指标分别提高了1.31%、1.65%和0.13%,LogLoss 指标分别降低了0.38%、0.21%和0.22%。

表3 6 种模型在3 个公开数据集上的预测效果比较Table 3 Comparison of prediction effects of six models on three public datasets

3.4.2 激活函数比较

本文研究Amazon 数据集上不同激活函数对5 种模型的影响,结果如图2 所示。与Sigmoid 激活函数相比,ReLU 和Tanh 更适合深层模型。从图2 可以看出,除了PNN以外,所有模型的ReLU均优于Tanh。在PNN模型上,ReLU 可能导致了数据稀疏问题。

图2 不同激活函数下AUC 和LogLoss 指标比较Fig.2 Comparison of AUC and LogLoss indices under different activation functions

将ReLU、Tanh 与ADIN 模型使用的PReLU/Dice激活函数进行对比。从图3 可以看出,PReLU/Dice 激活函数在ADIN 模型上相对ReLU 具有明显优势,这与ADIN 的局部激活和注意力机制结构有很大关系。

图3 ADIN 模型采用不同激活函数的结果比较Fig.3 Comparison of the results of ADIN model with different activation functions

3.4.3 神经元数比较

当其余条件不变时,增加每层网络的神经元数会提升网络复杂性。从图4 可以看出,增加每层神经元数不一定能提高模型性能,当每层神经元数从300 增加到800 时,ADIN 模型性能保持稳定,PNN 模型的性能会降低,当神经元过多、模型过于复杂时,PNN 会出现过拟合问题。本文ADIN 模型考虑到模型复杂度提升会带来过多的消耗,通常将每层神经元的数量设置为80~200 范围内。

图4 不同神经元数对AUC 和LogLoss 的影响Fig.4 The effect of different number of neurons on AUC and LogLoss

3.4.4 隐层层数比较

从图5 可以看出,适当增加隐层层数可以提高模型性能,但当隐层层数持续增加时,会在一定程度上导致过拟合问题,使得模型性能降低。因此,在ADIN 模型中,隐层层数通常设置为2 层或3 层。

图5 不同隐层层数对AUC 和LogLoss 的影响Fig.5 The effect of different hidden layers on AUC and LogLoss

4 结束语

本文构建一种网络点击率预估模型ADIN,该模型引入注意力机制和局部激活单元,无需任何预训练,同时学习高阶特征和低阶特征,此外,通过引入embedding 层来避免特征工程。在3 个公开数据集上进行实验,结果表明,ADIN 模型的预估性能优于LR、PNN 等模型。目前,强化学习在阿里巴巴和京东等互联网公司已经被广泛使用,因此,在ADIN 模型的局部激活单元中引入强化学习以提升模型性能将是下一步的研究方向。

猜你喜欢
高阶预估注意力
美国银行下调今明两年基本金属价格预估
让注意力“飞”回来
有限图上高阶Yamabe型方程的非平凡解
高阶各向异性Cahn-Hilliard-Navier-Stokes系统的弱解
滚动轴承寿命高阶计算与应用
一类完整Coriolis力作用下的高阶非线性Schrödinger方程的推导
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
史密斯预估控制在排焦控制中的应用