APP下载

基于FGx_Deep算法的深度推荐

2020-11-17余梦梦孙自强

计算机工程与设计 2020年11期
关键词:网络结构向量神经网络

余梦梦,孙自强

(华东理工大学 化工过程先进控制和优化技术教育部重点实验室,上海 200237)

0 引 言

推荐系统中,特征工程是必不可少的组成部分。传统的推荐算法有:基于邻域的协同过滤推荐[1]、基于内容的推荐[2]以及SVD分解[3]等。但这些推荐算法主要依靠评分记录,未能充分挖掘用户喜好特征。Rendle提出因子分解机FM模型[4]对高阶特征建模,有效进行特征间组合。又伴随着神经网络模型在特征表示学习中展示出的强大能力,近年来众多研究学者利用神经网络来挖掘特征关系。直到Huifeng Guo提出DeepFM模型[5],有效结合因子分解机与神经网络在特征学习中的优点,并有效提取低阶组合特征与高阶组合特征。但DeepFM模型只基于原始特征组合,没有充分挖掘特征隐含信息。在此基础上,提出FG_DeepFM模型,利用特征生成卷积神经网络(FGCNN)[6],基于其网络结构的共享权重和池化机制生成新特征,并将原有特征及生成新特征进行特征拼接共同输入到DeepFM模型中。基于以上模型学习的是隐式的交互特征,并未考虑显式特征,本文引入极深因子分解机(xDeepFM)[7]模型,将其与FG_DeepFM模型融合,最终构建FGx_Deep模型,以显式和隐式方式自动学习低阶高阶特征,挖掘有效特征交互,提升系统推荐效果。

1 DeepFM算法原理

DeepFM模型有效结合因子分解机(FM)与深度神经网络在特征学习中的优点,将FM算法与DNN算法整合到一起,实现端到端预测。DeepFM模型中,FM组成部分负责提取组合低阶特征,DNN组成部分则采用全连接深度神经网络方式提取高阶特征,其总体网络结构设计如图1所示。

图1 DeepFM网络结构

由图1得,DeepFM模型的DNN和FM部分共享同样的输入,其预测结果可写为

(1)

其中,yFM是FM部分的输出,yDNN是DNN部分输出,则DeepFM模型具体设计原理如下所示。

1.1 特征嵌入

原始数据集一般呈多域类别形式,通常需进行one-hot编码,例如,某用户特征(性别=女性,身高=160,年龄=17),性别,身高,年龄属于域类别,编码后表示如下

图2 嵌入层结构

1.2 FM组成部分

FM算法是在线性回归模型基础上,引入特征交叉项,根据特征的隐向量做内积来表述特征间的相关性,如将特征xi和xj的组合用xixj表示,表达式为

(2)

(3)

其中,vi,vj分别是特征xi,特征xj的隐向量,vi,f是隐向量vi的第f元素。

则以FM算法为原理,DeepFM模型设计FM组成部分网络结构如图3所示。

由图3可知,FM组成部分模型输出是和(Addition)单元与内积(Inner product)单元总和,表达式如下

图3 FM组成部分网络结构

(4)

其中,和(Addition)单元 〈w,x〉 反映一阶特征提取特性,内积(Inner product)单元反映二阶特征提取特性。

1.3 DNN组成部分

DNN是前馈深度神经网络,在DeepFM模型中用于学习高阶特征组合。它与FM部分共享嵌入层,其网络结构如图4所示,由图4可得,嵌入层的输出向量表示如下

图4 DNN组成部分网络结构

α(0)=[e1,e2,…,en]

(5)

其中,ea是嵌入层的第a个域,n是域的数量,深度神经网络的前向传播过程如下

α(l+1)=σ(W(l)α(l)+b(l))

(6)

其中,l表示神经网络层的深度,σ是激活函数。α(l),W(l),b(l)分别表示神经网络l层的输出,模型权重和偏置。DeepFM模型的DNN结构,由原始特征输入,首先通过嵌入层生成密集的实值特征嵌入向量,接着经过隐藏层进行前向传播,最终,DNN部分的输出预测值为

(7)

其中,|H| 是隐藏层数量。

2 改进FG_DeepFM 模型

由于DeepFM模型只是基于原始特征进行提取低阶组合特征和高阶组合特征,未必能学习到有效特征间交互。在此基础上,本文提出FG_DeepFM模型,应用特征生成卷积神经网络(FGCNN),基于其网络结构的共享权重和池化机制生成新特征,并将原有特征及生成新特征进行特征拼接共同输入到DeepFM模型中,提高系统模型的鲁棒性。FG_DeepFM模型的框架如图5所示。

图5 FG_DeepFM模型框架

其中,FGCNN网络是基于CCPM网络模型改进的有效特征生成算法。CCPM网络首先对连续特征的嵌入矩阵进行二维卷积[8],再使用弹性池化机制,通过特征聚合和压缩表示,堆叠若干层后将其所得的特征矩阵作为多层感知机(MLP)输入,但该网络模型计算的是局部特征组合。针对这一现象,FGCNN使用重组层进行特征生成,有效缓解CCPM无法捕获全局组合特征问题。FGCNN网络结构如图6所示,网络模块原理介绍如下。

图6 FGCNN网络

2.1 卷积层

(8)

(9)

2.2 池化层

第i池化层的池化结果为 (i+1) 卷积层输入:Ei+1=Si

(10)

2.3 重组层

Fi=tanh(Si·WFi+BFi)

(11)

F=(F1,F2,…,Fnc)

(12)

3 xDeepFM模型

DeepFM模型和FG_DeepFM模型虽然能学习低阶和高阶组合特征,但只针对于元素级隐式特征。因此,针对以上现状提出极深因子分解机(xDeepFM)模型,同时以显式和隐式的方式自动学习高阶特征,且其特征交互在向量级,还兼具记忆与泛化的学习能力,其模型整体结构如图7所示。

图7 xDeepFM模型

由图7可知,xDeepFM模型是压缩交互网络(CIN)神经模型和DNN结构组合,CIN模型中,将输入原特征和神经网络隐层分别组织成一个矩阵,记为X0和Xk,CIN中每一层神经元都是根据前一层的隐层向量以及原特征向量推算而来,其计算公式如下

(13)

(14)

(15)

第k层的第h映射表示为

(16)

xDeepFM模型输出为

(17)

4 FGx_Deep深度推荐模型

本文在原有DeepFM基础上,利用FGCNN网络结构生成新特征,构建FG_DeepFM深度模型。并且考虑到DeepFM和FG_DeepFM模型只能有效提取隐式特征交互,根据模型融合思路,本文将FG_DeepFM模型和基于提取显式向量级特征交互的xDeepFM模型加权融合,提出FGx_Deep模型。最后通过评价指标来判断模型预测性能,整体模型预测流程如图8所示。

图8 FGx_Deep模型算法流程

5 实验研究

本节中通过实验验证改进模型的性能。所有实验均在CPU上使用Intel(R) Core (TM) i5-4200H四核处理器,通过使用基于Tensorflow模型的Python 3.6编程语言进行实现。

5.1 实验数据

本文采用美国Minnesota大学GroupLens项目研究组提供的MovieLens数据集[9]对算法进行评估。该数据集包含1000名用户信息,1700部电影信息,以及100 000条用户对电影评分交互数据,其中每个用户至少有20条评分记录,评分范围为1分(讨厌)~5分(非常喜欢)。MovieLens 数据集的统计数据见表1。

表1 MovieLens数据集统计数据分布

本文数据预处理中,以用户ID、电影ID、用户特征,18种不同电影类型进行one-hot编码,构造数据输入模型的特征序列,预测目标值是用户对电影评分,每条输入数据特征格式如下所示

“输入特征1”→
[35 10 14 1 19 622 1 0 0 … 0 1]
“输入特征2”→
[40 75 37 0 3 243 0 0 1 … 1 1]
“输入特征3”→
[765 60 25 1 13 297 1 1 0 … 0 0]

上述输入特征数据中,分别是用户ID、电影ID、用户年龄、用户性别、用户职业、用户邮编,后18列代表18种不同类型电影,0表示不具有电影该类型属性,1则表示具有该电影类型属性。

5.2 评价指标

本文选用均方根误差RMSE和平均绝对误差MAE对模型预测评分进行评价,当RMSE和MAE越小,表明模型对于真实值拟合的偏差越小,则模型的推荐效果越好,具体公式定义如下

(18)

(19)

此外,现今推荐系统领域中,大部分以Top-N推荐形式出现,通过推荐列表是否满足用户需求来评价模型效果。本文假设当用户对项目评分大于等于4分时,则认为该用户对此项目感兴趣。模型会根据用户对项目的预测评分,为用户推荐预测得分最高的前N个项目。本文使用精准率(precision)、召回率(recall)和F值3个指标,来度量模型的推荐效果,其值越高说明该模型推荐能力越强,表示如下

(20)

(21)

(22)

其中,U表示用户集合,R(u) 表示Top-N推荐列表中用户u感兴趣的项目数量,T(u) 表示测试集中用户u感兴趣的所有项目数量。

5.3 参数设置

本文按80%和20%比例随机划分原数据集,以70%作训练集,10%作验证集,20%作测试集进行实验。其中,利用测试集评价模型的最终效果,利用验证集获取模型的超参数。本文的FGx_Deep推荐模型是基于FG_DeepFM模型和xDeepFM模型的加权融合,加权系数设置为[0.5,0.5],模型训练过程中,以均方根误差作为误差损失函数,采用Adam算法进行优化训练30次(epochs),为防止过拟合,提高模型泛化能力,设置丢弃率dropout=0.5。并设置原始特征嵌入向量维度k=15,则FG_DeepFM模型和xDeepFM模型其余参数设置如下:

在FG_DeepFM推荐模型中,FGCNN网络设置4个卷积层、池化层和重组层,其卷积核宽度依次设置为[6,8,10,12],池化宽度设置为[2,2,2,2],重组层映射设置为[3,3,3,3],DeepFM模型的FM网络结构中原始特征线性学习权重为0.0001,特征嵌入向量学习权重为0.0005,DeepFM的DNN网络结构设定两层隐藏层,神经元设置为[128,128],DNN网络的L2正则项系数设置为0.000 15,DNN网络的调节学习率为0.0001。

在xDeepFM推荐模型中,CIN网络结构设置两层CIN层,每层神经元个数设置为100,CIN网络的L2正则项系数设置为0.0001,CIN网络的调节学习率为0.0001。DNN网络结构设定两层隐藏层,神经元设置为[128,128],DNN网络的L2正则项系数设置为0.0001,DNN网络的调节学习率为0.0005。

在实验过程中发现FGx_Deep模型推荐效果与原始特征嵌入向量维度相关,分别取不同嵌入维度,进行实验,实验结果见表2。从表2可以看出,当嵌入维度为15维的情况下,平均绝对值误差(MAE)和均方根误差(RMSE)值最低,本文提出的算法的推荐效果有所改善,实验结果如下。

表2 嵌入向量维度对模型推荐效果影响

5.4 模型比较和分析

将本文提出的FGx_Deep算法、FG_DeepFM算法与UCF、ICF、SVD、SVD++[10]、DeepFM算法、xDeepFM算法和AFM算法[11]进行比较分析。为了验证FGx_Deep算法与同类算法的性能比较,本文在实验过程中选取深度推荐算法的特征嵌入维度为15维,具体实验结果如下所示。

5.4.1 评分预测推荐

从表3数据中可以看出,本文所提FGx_Deep算法的RMSE和MAE值最低,预测评分精度最高,其推荐效果最优。实验1~实验4方法属于传统的推荐算法,相比之下,FGx_Deep推荐模型能更精准实现评分预测,泛化能力更强,与UCF算法和ICF算法相比,RMSE指标降低了近11%,MAE指标降低了近9%,与SVD算法和SVD++算法相比,RMSE指标降低了近4%,MAE指标降低了近2%。

表3 模型评分预测对比

实验5~实验8方法属于深度推荐算法,相比之下,FGx_Deep模型融合xDeepFM模型和FG_DeepFM模型有效信息,充分挖掘输入显式和隐式特征,其评分预测推荐效果相较于其它深度推荐模型均有进一步提升,RMSE和MAE指标明显降低。分析结果表明本文提出的FGx_Deep算法的评分预测推荐效果是几种方法中最优的。

5.4.2 Top-N推荐

取推荐列表长度N为10,从表4数据中可以看出,Top-N推荐中,相比于其它算法,本文所提FGx_Deep算法的召回率、精准率和F值指标均有明显提升,推荐效果最优。

表4 模型Top-N推荐对比

实验1~实验4方法属于传统的推荐算法,在Top-N推荐中,FGx_Deep推荐模型包含用户和物品有效特征信息,泛化能力更强。与UCF算法和ICF算法相比,召回率指标分别提高了近8%和13%,精准率指标分别提高了近6%和1%,F值提高了近9%和17%,与SVD算法和SVD++算法相比,召回率指标分别提高了近10%和9%,精准率指标分别提高了近3%和4%,F值提高了近12%和11%。

实验5~实验8方法属于深度推荐算法,相比之下,FGx_Deep模型融合xDeepFM模型和FG_DeepFM模型有效信息,充分挖掘输入显式和隐式特征,其召回率、精准率和F值相较于其它深度推荐模型均有进一步提升。分析结果表明Top-N推荐中,本文提出的FGx_Deep算法的推荐能力是几种方法中最强的。

6 结束语

本文首先构建FG_DeepFM模型,利用FGCNN网络生成新特征,并与原始特征拼接输入到深度DeepFM模型中,又考虑到显式的特征交互,将FG_DeepFM模型与xDeepFM模型融合,提出FGx_Deep深度推荐模型。通过设计实验,表明本文提出FGx_Deep模型充分利用特征信息,共同挖掘隐式和显式的特征交互,低阶特征和高阶特征组合,较于其它模型,FGx_Deep模型在评分预测推荐和Top-N推荐中模型推荐效果均进一步提升。同时,本文还分析原始特征嵌入向量维度对深度推荐模型效果的影响,设定合适的特征嵌入向量维度大小有助于提高模型的推荐效果。

猜你喜欢

网络结构向量神经网络
向量的分解
聚焦“向量与三角”创新题
神经网络抑制无线通信干扰探究
基于神经网络的中小学生情感分析
基于广义混合图的弱节点对等覆盖网络结构
体系作战信息流转超网络结构优化
向量垂直在解析几何中的应用
基于神经网络的拉矫机控制模型建立
基于互信息的贝叶斯网络结构学习
复杂网络结构比对算法研究进展