基于历史行为与高低阶特征的点击率预估模型

2023-05-29 10:19凯,沈
软件导刊 2023年5期
关键词:物品注意力向量

王 凯,沈 艳

(成都信息工程大学 计算机学院,四川 成都 610025)

0 引言

推荐系统可在信息过载的情况下为用户快速高效地推荐想要的信息。点击率(Click Through Rate,CTR)预估是推荐系统的重要组成部分,其是基于用户信息、物品信息和其他信息预测用户对指定目标物品产生点击或不点击的行为。通常情况下,CTR 预估模型基于传统机器学习算法构建,以逻辑回归[1]和因子分解机(Factorization Machine,FM)[2]为代表,在数据稀疏和用户冷启动的情况下,模型很难学习到有用的信息并作出预测,极大地影响了预测准确性,而且在面对非结构化数据,如图像、视频等时也不能从中提取特征信息。近年来,深度学习技术广泛应用于各个行业,作为广告、搜索、推荐业务核心的 CTR 预估模型也借助深度学习技术获得了质的提升。

1 相关研究

CTR 预估模型要处理的特征信息包括用户特征、待预测物品特征、上下文特征和用户的历史行为4 类特征数据,这4 类特征的提取会极大地影响预测准确性。与传统机器学习模型相比,基于深度学习的CTR 预估模型可在数据稀疏的情况下挖掘出复杂的特征信息,并根据实际业务进行结构调整,从而更加符合现实推荐场景[3]。例如,文献[4]提出的Deep Crossing 模型采用Embedding+MLP(Multilayer Perceptron)结构,使用多层神经网络对特征进行深度交叉,加强了特征提取能力;文献[5]提出Wide & Deep Learning 模型,其结合线性模型的记忆能力和 深度神经网络模型的泛化能力,提升了模型整体性能,并成功应用至 Google Play 的APP 推荐业务;文献[6]分别提出Deep-FM 模型,结合了推荐系统的FM 和深度神经网络中的特征学习能力,相比于Wide&Deep Learning 模型,DeepFM 模型只需要原始特征,不需要特征工程;文献[7]在DeepFM 的基础上利用分层注意力机制处理来自不同层次的特征,在使用神经网络提取高阶特征的同时提取低阶特征模块,然而并没有引入用户的历史行为特征;文献[8]使用注意力机制捕获待预测的目标物品与用户历史行为之间的联系,文献[9]则考虑到历史行为背后的时序信息,使用门循环神经网络(Gated Recurrent Units,GRU)对用户历史行为进行特征提取,但忽视了历史行为内部之间的联系,从而造成历史行为特征提取能力不足,同时也没有考虑低阶特征的构建;文献[10]首先使用自注意力机制处理历史行为特征,在此基础上采用卷积神经网络进一步提取特征,虽然加强了高阶特征提取能力,但没有构建低阶特征;文献[11]在DeepFM 的基础上增加了一个高阶显示特征交叉模块,以弥补FM 只能进行二阶特征组合的不足,但其没有考虑不同特征对预测结果的影响,也忽略了用户的历史行为;文献[12]提出AFM 模型,即在FM 模型的预测层与特征交叉层之间加入注意力网络,通过该网络计算出每个特征的权重并利用Softmax 函数进行加权求和得到最终特征向量;文献[13]首次将Transformer[14]引入到推荐模型中,基于用户历史进行推荐,但没有提取其他特征;文献[15]利用Transformer 提取用户历史行为特征,同时将其他特征与历史行为特征进行组合后预测;文献[16]在提取用户历史行为信息的基础上将用户特征、上下文特征等特征纳入进来,并且使用注意力计算不同特征对预测结果的影响程度;文献[17]将用户序列分为长期和短期行为,使用Transformer 提取长短期行为特征,在最后一层融合两种特征进行预测;文献[18]认为Transformer 的复杂结构在推荐领域中会带来过拟合的风险,因此对Transformer 进行改进,使用滤波算法代替Transformer 中的多头注意力层,提升了序列推荐性能,但忽视了低阶特征对预测的贡献。

为克服现有模型对用户历史行为特征能力提取不足、忽视低阶特征构建、不同特征缺乏有效融合的问题,本文提出一种CTR 预估模型TDFA(TransDeepFM-Attention-Based)。该模型使用Transformer 网络对历史行为序列进行特征提取,考虑到历史行为中每个项目与预测目标的关联程度,使用注意力机制计算历史中每个行为与预测目标的相关性,并通过加权求和得到用户的历史行为特征;然后将用户历史行为特征与其他特征输入多层神经网络获取高阶特征,同时采用FM 模块获取低阶特征;最终在以上基础上通过添加全局注意力层计算得到高、低阶特征权重值,获取CTR 预估值。TDFA 模型综合考虑了用户历史行为和高低阶特征信息,并且使用注意力机制有效融合高低阶特征,提升了预测准确性。

2 TDFA模型

2.1 CTR预估问题定义

CTR 预估模型的输入数据可分为4 类,即用户信息User_profile、待预测物品信息Item_info、上下文信息Context和用户历史行为序列User_history。用户信息指人口属性描述,如年龄、性别、职业等;物品信息包括id、类别等;上下文信息指环境特征,如时间、天气、节日等;用户历史行为则是一个由物品信息构成的序列。CTR 预估问题可定义为:

通过输入4 类特征输出预测值,并将物品的预测值排序后取top-k 个物品作为该用户的推荐列表。

2.2 模型结构

本文提出的TDFA 模型结构如图1 所示,分为5 层结构。第一层为输入层,第二层为嵌入层;第三层为特征提取层,该层分为高阶特征部分和低阶特征部分,其中高阶特征部分包含Transformer 网络、局部注意力层、拼接层和全连接层,低阶特征为FM 模块;两部分得到的输出在第4层全局注意力层结合后输入到第5层的输出层中进行CTR预测。

2.2.1 输入层

模型的输入数据由用户社会属性、上下文信息、目标物品信息和用户历史行为数据组成,这4 部分数据又分为数值型数据和类别型数据两类。采用one-hot 或multi-hot编码将数据转换为向量[18]。以用户属性数据为例,用户属性数据包含年龄、性别、职业等特征域,每个特征域用一个向量v*表示,则用户特征可表示为:

Fig.1 Overall structure of the TDFA model图1 TDFA模型整体结构

例如性别特征中男女为类别型数据,采用one-hot 编码将男编码为[1,0]、女编码为[0,1]。如果特征v*为数值型数据,如年龄,则将其离散化处理成类别型数据,然后转换为one-hot 向量,在输入层分别可以得到用户特征向量Vuser,目标物品向量Vtarget_item,上下文特征Vcontext和用户历史行为序列Vhistory_item=[vh1,vh2,vh3,…,vhn],其中vhn表示该用户点击(观看、购买等交互行为)过的物品向量。

2.2.2 嵌入层

One-hot 编码的特点是向量长度为该特征域下所有特征的数目。以特征域职业为例,如果职业分为老师、医生、程序员、公务员和其他人员5 类,那么one-hot 向量即为五维,对应特征位标1,其余位置标为0。因此,通过输入层进行one-hot 编码处理得到的特征向量的主要问题是向量维度过大,特征数据高度稀疏,这将造成模型欠拟合。嵌入层的作用就是将高维稀疏的特征向量转换为低维稠密的嵌入向量,其转换规则为:

式中,v*为one-hot 或multi-one 向量,M*为嵌入层为该特征学习到的一个权重矩阵M*∈Rn×d。通过嵌入矩阵M*的转换,n维向量v*转换为d维的嵌入向量e*,d<<n。例如特征域下有老师、医生、程序员3 类,嵌入向量维度为2维,假设特征为老师,one-hot 处理后得到[1,0,0],经过嵌入层转换为[0.3,0.7],如图2所示。

因此,由输入层得到的4 类特征Vuser、Vtarget_item、Vcontext、Vhistory_item经过嵌入层后可表示为:

Fig.2 Example of embedding vector图2 嵌入向量举例

2.2.3 特征提取层

(1)Transformer 网络。在CTR 预估领域中,用户的兴趣隐藏在该用户的历史行为中且用户的历史行为是一个时间序列,序列中的每个物品代表了该用户的购买或观看行为。例如在电商网站的购买行为中,某用户购买键盘后,那么该用户接下来购买鼠标、内存条的概率明显大于购买其他类型商品的概率,对这样的序列信息进行挖掘可以使模型学习到用户从购买某物品到购买另一物品背后隐藏的动机,使系统推荐更加准确。Transformer 网络起源于机器翻译领域,可以学习到单词与单词之间互相包含的联系。将Transformer 引入推荐系统,可以加强对用户历史行为特征的提取能力。本文中Transformer 网络由位置编码、多头自注意力、残差&层归一化和一维卷积网络(Conv1D)组成,结构由图3所示。

不同于循环神经网络的顺序输入,Transformer 是并行处理输入信息的,这就导致Transformer 丢弃了序列中的顺序信息,因此本文采用时间表示序列前后顺序,将时间差分桶化后作为特征同样转换为Embedding 向量,拼接到用户的历史序列中,表示为:

Fig.3 Transformer structure图3 Transformer结构

式中,eh表示物品向量,et表示时间向量,将eh与et拼接后得到带有时间信息的向量eht。

注意力的计算公式为:

式中,Q表示查询向量,K表示关键字向量,V表示值向量。Q、K、V的计算过程如下:将用户历史行为Eh通过线性投影得到对应的权重矩阵WQ、WK、WV,则查询向量Q=EhWQ,K=EhWK,V=EhWV。缩放因子d表示输入向量的维度。

多头注意力机制是将权重矩阵WQ、WK、WV按照头数(head)分为x套,这样对于Eh就有x套Q、K、V向量,每套参数各自进行式(6)的注意力计算,共计算x次,最后将x次的计算结果进行拼接。多头注意力的计算公式为:

式中,(1≤i≤x)表示第套参数,WO为可学习的参数矩阵。多头注意层的输出采用s表示。

层归一化操作有利于稳定和加速神经网络;残差网络的核心思想是通过加入一个残差连接将原始低阶的特征输入到高阶,能保留原始序列特征。残差和层归一化表示为:

式中,正则化(Dropout)用于缓解神经网络过拟合问题。

多头注意力网络是对输入特征数据进行线性变换。为增强模型的非线性变换能力,将多头注意力层的输出送入两层一维卷积网络(Conv1D),同时添加残差和层归一化,公式为:

式中,W1、b1和W2、b2分别为两层卷积网络的权重系数和偏置项。

至此,用户历史行为序列Eh经过Transformer 网络后转换为Fh=[t1,t2,t3,…,tn]。

(2)局部注意力层。在推荐场景中,并不是用户历史序列中的每个项目都与待推荐的项目有关,注意力机制可以基于待推荐的目标物品为历史序列中的每个物品分配一个权重。通过一个全连接层计算出Fh每个历史项目的初始权重,使用Softmax 函数进行处理得到最终权重值,计算过程如图4所示。

Fig.4 Final weight calculation process图4 最终权重计算过程

首先将目标项目与历史序列Fh中的每个项目通过式(11)进行拼接:

将式(11)的结果送入全连接层,使用PReLU 激活函数进行处理,表示为:

式中,Wt和bt分别为权重系数和偏置项。然后使用Softmax 函数对式(12)结果进行处理,表示为:

最后对用户历史序列进行加权求和,得到最终用户历史特征向量H,表示为:

(3)拼接层。在该层中将用户特征euser、目标物品特征etarget_item、上下文特征econtext与经过Transformer 和局部注意力层得到的用户历史特征H进行拼接,表示为:

(4)全连接层。通过全连接层对特征向量中的各个维度进行充分交叉组合,挖掘出更多非线性特征和复杂的交叉特征信息,使模型具有更强的表达能力。堆叠多个全连接层的计算公式为:

式中,yl为第l层的输出,yl-1为第l-1 层的输出,Wl为该层的全连接层权重系数矩阵,bl为该层的偏置向量。全连接层共k层,每层均使用PreLU 激活函数,最终经过全连接层的输出表示为ydnn。

(5)FM。FM 用于解决二阶特征交叉问题,本文模型包含一阶线性特征部分和二阶特征交叉部分,表示为:

具体来说,FM 为每个特征都学习到了一个隐向量v,在进行特征交叉时使用两个特征对应的隐向量内积作为交叉特征的权重。DeepFM 模型中的FM 部分与deep 部分共享特征的嵌入层,即将式(17)中的vi·vj替换为对应特征的嵌入向量点积ei·ej,表示为:

2.2.4 全局注意力层

目前已经得到通过多个全连接层输出的高阶特征向量ydnn,以及通过FM 模块得到的一阶线性特征和二阶交叉特征的组合特征向量yfm。Wide&Deep 和DeepFM 模型已经证明了融合高低阶特征可以提高模型的预测准确度,但是DeepFM 模型同等看待两个子模块,而高阶特征和低阶特征对预测的影响程度是不同的。为此,本文添加注意力层为两种特征赋予权重,以衡量在预测不同目标物品时高低阶特征影响的重要程度。将ydnn和yfm送入全连接层,使用tanh 激活函数计算出每个分量的注意力得分α1、α2,然后使用Softmax 函数进行处理,最后将两个输入分量进行加权融合得到全局特征Y,计算公式如下:

2.2.5 输出层

Sigmoid 函数的值域在0~1 之间,与CTR 的物理意义相符合。全局特征Y仍然是特征向量,只使用一个神经元。没有激活函数的全连接层(Dense)将Y转换为一个标量Y'(见式(22)),然后输入到Sigmoid 函数中,得到模型对于目标物品预测的CTR(见式(23))。

2.3 模型训练的损失函数

损失函数表示真实值与预测值的差距,模型训练的目标是最小化损失函数值。本文模型训练采用推荐系统和CTR 预估模型常用的对数似然函数,表示为:

式中,y∈{0,1},表示真实标签值,在本次实验的训练样本中,标签1 表示点击,0 表示未点击;y'∈(0,1),表示模型预测的CTR 值。

3 实验方法与结果分析

3.1 实验环境

本次实验编程语言使用Python3.8 和Tensorflow2.2 框架,在操作系统为Windows10、内存16G、显卡型号为GTX 1050Ti的计算机上进行实验。

3.2 数据集和评估指标

亚马逊产品数据集包含亚马逊各类商品数据,有19万个用户、6 万个商品、800 多个类别。选取该数据集下的电子数据子集,分为reviews_Electronics 和meta_Electronics两个文件,其中reviews_Electronics 记录了用户的评价信息,包括评论者id、商品id、产品评级等信息,meta_Electronics 记录了商品信息,包括商品id、类别等信息。用户的所有行为都是有顺序的,可以通过前k-1 个商品的点击情况预测用户是否会点击第k个商品。在本次实验中,为了得到更多特征,对用户的点击时间进行处理后得到月份、季节等上下文特征。Electronics 数据集只有用户的点击数据,为引入负样本,将某用户点击过的物品从全部物品集中剔除后,随机选取与用户点击过的物品数量相等的物品作为负样本,使数据集正负样本比例达到1∶1。经过处理之后得到239.48 万条训练集、41.91 万条验证集和17.96 万条测试集。

Movielens-1M 是一个广泛应用于推荐模型训练的数据集,包含6 040 个用户对3 883 部电影共100 万条评分记录,评分范围为1~5。为适应CTR 预估问题,将4 分及以上划分为正样本,4 分以下划为负样本。与Electronics 数据集一样,将前k-1 个观影记录作为历史序列,用于预测第k个电影的CTR。处理之后得到69.59 万条训练数、20.88 万条验证数据和8.95万条测试数据。

淘宝用户行为数据集是阿里巴巴提供的一个淘宝用户行为数据集,包含2017 年11 月25 日-12 月3 日有行为的约100万随机用户的所有行为,包括点击、购买、加购、喜欢,本实验仅使用点击行为。受计算资源限制,本文仅选取id前10万用户的点击记录。经过处理后得到1 227.74万条训练数据、368.3万条验证数据和157.85万条测试数据。

数据集总体统计信息如表1所示。

Table 1 Dataset overall statistics information表 1 数据集总体统计信息

使用AUC(Area Under Roc Curve)[19]和LogLoss(交叉熵损失)[20]两个指标评估模型性能,其中AUC 为CTR 预估模型的常用评价指标,其值为处于ROC 曲线(Receiver Operating Characteristic Curve)下方面积的大小,AUC 值越大表示模型性能越佳;LogLoss 表示真实值与预测值之间的差距,其值越小表示模型预测性能越佳。

3.3 参数设置

TDFA 模型参数如表2 所示,其中dim 表示Embedding向量维度大小,在{16,32,64,128}中选择;seq_len 表示用户历史序列长度,超过此长度截取,不足时添加0 来补充,在{20,50,100}中选择;lr 为学习率,dropout 为丢弃率,mlp_shape 为全连接层的层数和每层包含的神经元个数;Transformer 中的head_num 和blocks 分别表示多头注意力的头数和Transformer 堆叠的次数。为防止过拟合,采用L2正则化。在3 种数据集上进行实验时采用统一参数设置。

Table 2 Experimental parameter settings of TDFA model表 2 TDFA模型实验参数设置

3.4 实验结果与分析

为了评估TDFA 模型的性能,采用DNN[4]、DeepFM[6]、DIN[8]、DIEN[9]、MIAN[16]模型与之进行比较。同时,为了验证Transformer 在序列建模中的优越性,设计与传统序列网络循环神经网络RNN、长短期记忆人工神经网络LSTM、GRU 的比较实验,即采用RNN 替换Transformer 部分并将模型命名为RDFA,采用LSTM 替换Transformer 命名为LDFA,采用GRU 替换Transformer 命名为GDFA。实验结果见表3—表5 所示。可以看出,TDFA 模型在3 个数据集上的AUC 和Logloss 指标均优于其他模型。在Electronics 数据集上,与DeepFM、DIN、DIEN、MIAN 模型相比,TDFA 模型的AUC 平均提升了1.16%,Logloss 平均降低了5.4%;在Movielens-1M 数据集上,TDFA 模型的AUC 平均提升了1.51%,Logloss 平均降低了3.51%;在淘宝数据集上,TDFA模型的AUC 平均提升了1.10%,Logloss 平均降低了3.73%。此外,使用RNN、GRU 和LSTM 代替Transformer 时,模型性能下降明显,证明了Transformer 在序列行为上强大的表征能力,优于传统循环网络。

Table 3 Performance of each model on the Electronics dataset表3 各模型在Electronics数据集上的表现

Table 4 Performance of each model on the Movielens-1m dataset表4 各模型在Movielens-1m数据集上的表现

Table 5 Performance of each model on Taobao dataset表5 各模型在淘宝数据集上的表现

为了证明TDFA 模型关键部分设计的有效性,分别采用去除全局注意力层、去除FM 模块、去除Transformer 模块等方式在3 个数据集上进行消融实验,结果如表6 所示。可以看出,在去掉全局注意力层时,AUC 指标分别下降0.52%、1.08%、0.11%,这是由于高低阶特征对预测结果的影响程度是不一样的,使用注意力机制为两种特征分配权重可有效融合两种特征,提升模型的预测精度;在去掉FM模块时,AUC 分别下降1.26%、1.58%、1.48%,这是由于经过多层神经网络处理的特征消解了原始特征中的有效信息,弱化了模型的记忆能力,使用FM 模块获取低阶特征信息可以作为深度模型的有效补充,提升预测准确度;在去掉Transfomer 模块时,AUC 指标下降比较明显,分别下降了3.21%、2.71%、4.43%,这是由于如果去除了Transformer,即摒弃了用户历史行为这一重要特征信息,会明显降低模型性能。以上实验证明了模型各个关键部件对预测的有效性。

Table 6 Ablation experiment results表6 消融实验结果

4 结语

针对以往推荐模型中对用户历史行为特征提取能力不足、忽略低阶特征交叉的问题,本文提出TDFA 模型。该模型首先使用自注意力方法获取用户历史行为之间的关系;然后将历史行为与预测目标进行关联得到用户历史行为特征,将用户历史行为特征与其他特征一起送入多层神经网络得到高阶特征,同时增加FM 模块提取低阶特征,添加全局注意力为高低阶特征分配权重;最后在3 个公开数据集上证明了TDFA 模型的优越性。后续计划将用户历史行为区分为长期和短期行为分别进行研究,同时加强用户历史行为的特征提取能力或增加子模块提取更多特征交叉信息,以获得更加精准的推荐模型。

猜你喜欢
物品注意力向量
称物品
向量的分解
让注意力“飞”回来
聚焦“向量与三角”创新题
“双十一”,你抢到了想要的物品吗?
谁动了凡·高的物品
“扬眼”APP:让注意力“变现”
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线