基于改进降噪自动编码器的点击率预测①

2021-06-28 06:28王洪波王富豪李亚峰
计算机系统应用 2021年6期
关键词:点击率编码器卷积

刘 勐,王洪波,2,3,王富豪,李亚峰

1(复旦大学 工程与应用技术研究院,上海200433)

2(复旦大学 上海智能机器人工程技术研究中心,上海 200433)

3(复旦大学 智能机器人教育部研究中心,上海 200433)

信息爆炸与大数据技术的普及,促进了个性化推荐技术的快速发展[1].作为广告推荐系统一项重要任务,点击率预测(CTR)对于许多互联网公司来说都是必不可少的.例如,YouTube 每天的视频播放时间已超过10 亿小时.其推荐系统需要根据用户需求、兴趣等,通过推荐算法通过从海量数据中高效准确的预测用户感兴趣项目,并将结果以个性化列表的形式推荐给用户[2].

用户与项目数据的特征通常是离散和稀疏的,因此CTR 预测任务的关键挑战是如何有效学习特征之间的交互来建模这种数据.过去,已有许多学者提出相关算法来解决此问题,如逻辑回归(LR)[3]、基于树的模型[4]、贝叶斯模型[5]、基于张量的模型[6]和基于因子分解的模型[7,8]等.这些模型通过学习成对特征之间的低阶交互提高特征表示能力,但同时会带来了与任务无关的特征交互组合.近年来,依靠强大特征表示能力,深度学习在计算机视觉[9,10]和自然语言处理[11,12]等许多领域开始大放光彩.最近几年深度学习模型也开始逐步在推荐领域得到应用,例如基于神经网络的因子分解模型(FNN)[13],基于注意力机制的因式化机模型(AFM)[14],Wide &Deep[15],DeepFM[16]等.当前绝大多数解决点击率预测问题的深度学习算法大致分为3 个步骤.首先,利用嵌入表示模型将用户和项目高维稀疏特征映射为低维稠密向量.然后,对得到的嵌入向量使用内积、外积或者哈达玛积等运算获得特征交叉表示.最后,基于隐向量使用多层感知器(MLP)预测用户对于项目的评分或者偏好.

在实际应用中,由于相当大比例的用户和项目属性通常是离散和稀疏的,CTR 模型会使用嵌入操作来处理输入数据.但是,常见的嵌入表示模型在处理数据集出现频率较低的样本时,很难学习到合适的特征表征,在系统冷启动时性能表现较差.MLP 在深度学习模型中起到了基于bit-wise 层级的特征交互和非线性变换的作用,但在vector-wise 层次的特征交互上表现较差.同时,随着MLP 的深度和宽度的增加,在增加学习能力的同时也增加了参数量和过拟合的风险.

基于上述问题,本文提出了一种基于改进降噪自动编码器(DAE)[17]的点击率预测模型ADVAE (ADditional Variational AutoEncoder).该方法通过添加噪声来生成嵌入信息来学习稀疏和高维输入特征的稠密低维表示,提高了模型在bit-wise和vector-wise 层次的特征交互能力,改善由于数据稀疏性引起的特征不平衡问题.同时,ADVAE 模块使得模型即使在数据样本特征稀疏甚至缺失情况下,也可以产生有效的嵌入表示,有效缓解了推荐系统中常见的冷启动问题.同时,该模型的ADVAE模块可以针对不同任务动态地应用于到其他模型,具有很强的灵活性.

1 点击率预测

点击率预测利用用户与项目之间的二元关系,基于用户历史行为记录或者相似性关系帮助发现用户可能感兴趣的项目,对用户的点击行为进行预测.

1.1 点击率预测模型

点击率预测模型主要包含传统模型和深度学习模型两种,其中传统的推荐方法主要分为以下3 种[18]:基于内容的推荐(content-based recommendtion)[19]、协同过滤推荐(collabortive filtering recommendation)[20]和混合推荐(hybrid recommendation)[21],深度学习通过组合低阶特征形成稠密的高阶语义信息,从而自动发现数据的分布式特征表示,解决了传统机器学习手工设计特征的问题.常见的深度学习模型除了包含上述3 种传统方法外还有基于社交网络[22]、场景感知[23]等方法的推荐模型.

1.2 卷积神经网络

卷积神经网络在推荐系统中有着较为广泛的应用,主要用于从图像、文本、音频等信息中提取数据的隐藏特征.相比较多层感知机,卷积神经网络使用权重共享结构降低模型复杂度,有着更好的泛化能力.

在目前的CTR 模型中,ConvNCF[24]模型应用CNN 来改进NCF,NCF 使用外积而不是点积来建模用户-项目交互模式.此外,CCPM[25]使用对齐方式对相邻字段执行卷积,学习多个卷积层的相邻特征间的依存关系.FGCNN[26]使用卷积层来代替传统的交互方式,使用多层卷积生成新的嵌入向量.上述卷积神经网络均在点击率预测任务上取得了不错表现,但是忽略了特征嵌入和交互的关系.

1.3 降噪自动编码器

自编码器(Auto Encoder,AE)[27]通过一个编码器和一个解码器来重构输入数据,学习数据的隐层表示.但是如果仅仅通过最小化输入输出的误差来对模型训练,自编码器常会学到一个恒等函数.为解决这个问题,降噪自编码器[17]通过在自动编码器的输入数据中加入噪声得到,这样降噪自编码器在重构输入数据时,就被迫去除这种噪声来学习到更加鲁棒的输入数据的表达,降噪自编码器通过这种方式提升了泛化能力以及在稀疏数据下的表现.

2 ADVAE

考虑到数据的稀疏性和不平衡性,本文提出了一种改进的降噪自动编码器ADVAE.如图1所示,该模型通过特征嵌入和特征交互合并为统一操作动态获取嵌入向量的方式提高在点击率预测任务上的表现,主要包括普通Embedding模块、ADVAE Embedding 模块、低阶特征交叉模块以及高阶特征交叉模块.其中,ADVAE 模块解决了特征稀疏嵌入的问题,生成的特征可以与原始特征嵌入向量融合,为其他分类模型灵活地提供更为丰富的特征输入,是该模型的关键部分.

图1 ADVAE 网络结构图

2.1 输入层与嵌入层

大多数点击率模型的数据输入采用one-hot 的形式,使用嵌入操作将高维稀疏数据映射为低维特征向量.假设user与item 的输入数据表示为:

其中,si表示在第i个域的输入数据的one-hot 表示,f表示输入数据域的总数,在不同的数据集上会有所变化.在域i(1≤i≤f)中,嵌入操作后的向量表示为ei∈ℜf×D,其中D是嵌入向量的维度.因此,每个输入可以表示为矩阵E=(e1;e2;e3;···;ef),其中E∈ℜf×D.

2.2 随机噪声

在受模型复杂度、训练集数据量以及数据噪音等问题的影响下,通过编码器得到的初始模型往往存在过拟合的风险.在本文中,输入数据的部分使用噪声替代,这种加入同源随机噪声的方式一定程度上减轻了训练数据与测试数据的差异性,可以提高模型的有效性和鲁棒性,增加模型的泛化能力.其中,对于每个噪声向量ei∈ℜ1×D使用高斯分布进行随机初始化,并将普通Embedding 模块得到的向量与噪声向量拼接作为ADVAE 模块卷积操作的输入.

其中,concat表示矩阵级联,E∈ℜf×D是嵌入层的输出,N∈ℜ(D−f)×D是噪声矩阵.

2.3 ADVAE 模块

如图2所示,ADAVE 模块主要包含3 个卷积层和3 个转置卷积层.卷积操作不仅可以学习到pair-wise层次的特征交互,而且学习到多个域之间的交互.在对隐向量进行上采样的过程中,转置卷积的引入,一方面还原原始特征信息,另一方面过滤掉了原始特征中对任务不相关特征,使得模型更关注于与任务相关的特征,上采样过程中相关特征则会被赋予更大的权重,起到了数据特征在位置维度上的注意力机制作用.同时,ADAVE 模块进行的全局特征交互是bit-wise 层次的,而不仅是pair-wise 层次的.此外,添加噪声输入可以克服嵌入向量稀疏和数据不平衡的缺点,同时,这些额外的噪声即可以捕获内部关系,也可以生成有利于交互的新向量.

图2 ADVAE 模块

编码器由三层卷积层构成,每经过一层卷积层,卷积核的宽度减少一倍,编码器的输入为嵌入向量与噪声向量组成的特征矩阵E′∈ℜ1×D×D,卷积输出为X0=ℜC×N×N.在卷积层最后使用两层全连接网络得到隐向量的均值和方差,计算过程如下所示.

其中,Xo表示输入,Wm和Wl是两层全连接网络的权重矩阵,bm和bl是偏差,φ是激活函数,则隐变量Z~(µ,diag(σ))∈ℜN×N.

解码器使用与编码器同数量的转置卷积层,通过对隐变量的上采样还原原始特征矩阵.同时,在编码器部分加入了一个判别器,帮助提高ADVAE 对点击率预测任务的特征学习.

2.4 损失函数

该模型的损失函数共由4 部分组成,分别是编码器重构损失LM,判别器的分类交叉熵损失LB、MLP 分类器的交叉熵损失LC以及编码器隐变量的KL 损失KL,其中:

降噪自动编码器一种具有降噪功能的特征提取器,目的是将一个包含噪声的输入数据转化为一个干净的数据输出.在损失函数中,重构损失和编码器隐变量的KL损失保证了ADVAE 模型尽可能在引入噪声条件下仍能还原出原始数据的输入分布.其中,重构损失使用均方误差损失,以误差的平方和作为损失,其函数易于求导,保证模型对原始数据的生成能力;KL损失函数通过计算KL散度估计两个分布的相似度,对编码后隐变量进行优化,保证模型的编码能力.

模型在对点击结果预测上使用了两部分的损失,一是使用解码器多层级特征作为预测判别器的输入的分类损失LB,二是模型使用原始数据以及生成数据作为输入构造的MLP 分类器的损失Lc,两部分损失均使用交叉熵损失函数,由于具有非常强的概率分布表征能力,交叉熵损失函数常用于分类任务.

3 实验分析

本文在公开数据集Ctriteo、Avazu和Movielen-20M 上分别在点击率预测效果以及系统冷启动性能两个方面与现有模型进行了对比实验,详细说明如表1.参与对照实验的CTR 模型包括仅使用初始化特征的线性方法LR、考虑二阶特征交互的分解机方法(FM、FFM)以及高阶交互的深度学习模型(DCN、Wide &Deep、AFM、Autoint、xDeepFM、FibiNet).

表1 数据集说明

3.1 实验设置

本文的实验基于PyTorch 框架实现,在3 个数据集上,模型的训练参数如表2所示,其中超参数 λ1=1、λ2=0.1、λ3=0.5、λ4=1.所有对照模型与ADVAE 方法均使用相同的MLP 训练参数.

表2 模型训练参数

本文选取AUC和LogLoss 值作为模型性能评估指标,AUC 值通过计算ROC 曲线下的面积得到,LogLoss通过计算预测结果与标签的交叉熵得到.

3.2 点击率预测实验

表3反映了各个模型在Ctriteo、Avazu和Movielen-20M 数据集上的性能表现.可以看出,AVDAE 在各个数据集上的表现均优于现有模型.在实验中,我们发现使用多层感知器(MLP)往往会导致过度拟合,如图3所示对于Wide &Deep,xDeepFM和DNN 之类的几种模型,通过使用多层感知器(MLP)训练约4 个epoch时的准确率开始下降.但是,在使用ADVAE 模块后时,在Criteo 数据集上训练10 个epoch 以及Avazu 数据集上训练8 个epoch 之后,准确率仍有所提高,实验结果说明,这种动态嵌入方式极大地减轻了MLP 的过度拟合的问题.

图3 准确率变化曲线

表3 点击率预测实验模型性能表现

3.3 冷启动实验

冷启动在推荐系统中表示该系统积累数据量较少,无法为新用户提供个性化推荐的问题,是推荐系统的一个难题.

在冷启动实验中,本文通过将输入特征的值置零来屏蔽一定数量的属性去模拟冷启动情况.其中,K值表示特定属性被屏蔽的概率.如表4所示,K值分别设置为20%、40%和60%.可以得到,在K值等于20%、40%、60%的冷启动条件下,ADVAE 方法优于所有现有模型.特别是在K值等于20%、40%的情况下,与AutoInt和xDeepFM 相比,ADVAE 性能有较明显的提升.

表4 冷启动实验模型性能表现

在Criteo和Avazu 数据集这两个数据集中存在缺失值,xDeepFM、AutoInt 等算法更关注于数据嵌入后的特征交互,但没有注意之前的嵌入操作是否合理.而ADVAE 模型通过引入噪声生成特征去动态修复原始嵌入,使得模型在处理数据缺失问题时更加鲁棒.

结果表明,在系统冷启动情况下,ADVAE 模型仍可以找出最合适的预测结果.

4 结论与展望

本文提出了一种基于改进降噪编码器的点击率预测模型,通过引入噪声数据生成新的嵌入特征来学习特征嵌入与特征交互的关系,然后分别进行低阶和高阶的特征交互来预测用户点击行为.本文和常见点击率预测模型,如线性回归(LR)、FFM、xDeepFM 等,进行了比较.实验结果表明,本文提出的点击率预测算法在AUC、LogLoss 等指标上显著优于现有模型,同时,在数据稀疏及系统冷启动条件下,仍有较好的性能表现,有效缓解过拟合现象.

本文提出的模型主要应用于当前互联网点击率预测任务,其中ADVAE 模块可以动态应用到各类点击率预测模型中,具有很强的灵活性.但是在实际应用中,实际场景对算法的实时性要求较高.所以,如何在保证算法预测性能的同时降低模型复杂度是本文后续研究的重要工作之一.

猜你喜欢
点击率编码器卷积
基于全卷积神经网络的猪背膘厚快速准确测定
基于ResNet18特征编码器的水稻病虫害图像描述生成
基于图像处理与卷积神经网络的零件识别
基于深度卷积网络与空洞卷积融合的人群计数
基于特征工程的视频点击率预测算法
基于TMS320F28335的绝对式光电编码器驱动设计
《江南STYLE》为何这么火