近几年,深度学习在人工智能、机器学习中取得了飞跃式的突破,特别是在语音识别和图像识别等领域[1-3]。其中,深度神经网络由于结构类似于生物神经网络,因此拥有高效、精准抽取信息深层隐含特征的能力和能够学习多层的抽象特征表示,且能够对跨域、多源、异质的内容信息进行学习等优势,可以一定程度上处理推荐系统稀疏性、新物品、可扩张性等问题,这为推荐系统解决固有问题带来了新的机遇。
本文提出了基于深度神经网络结合多用户-项目、协同过滤的推荐模型(MulTI-View-CollaboraTIve Filtering integraTIng Deep Neural Network,MV-CFiDNN)[4-6],基于深度神经网络理论,提取用户、项目信息的深层隐含特征并自学习、优化提取模型,最后结合多用户-项目、协同过滤(CollaboraTIve Filtering)提供广泛的个性化推荐。
1 深度神经网络推荐模型基于深度学习的推荐系统通过将用户和项目的各类原始数据信息提供给输入层,在隐含层通过神经网络学习模型进行用户、项目的隐特征学习及抽取,最后通过学习隐表示实现用户、项目推荐[7-8]。基于深度神经网络框架的两次自学习并结合协同过滤的CFiDNN框架如图1所示。CFiDNN框架两大核心为:候选生成网络融合协同过滤与排名网络结合协同过滤。
其中,候选集产生以用户在浏览历史记录中的提取特征作为输入信息,然后基于多源数据库检索到与用户相关的一个数据集,这一数据集就是候选集。这部分候选集通过协同过滤(CF)实现广泛个性化。再通过用户、项目的多类特征源学习计算相似性,实现最小排名集,最后基于协同过滤实现推荐。
1.1 候选集生成模块
对于候选集生成,首先,将用户浏览及搜索项目等历史记录信息映射为向量,然后对其求平均值获取定长表示;并且,输入用户地理信息特征值优化个性化推荐效果,二值性和连续性特征值通过归一化得到[0,1]范围。其次,把所有输入特征值拼接到同一个向量,并且把拼接后的向量输予激活函数处理。最后,通过神经网络训练输给Softmax进行分类,通过训练的特征与源项目进行相似度计算,获取相似度最高的N个项目作为候选模块中的候选集,图2为候选生成结构图。
基于生成的候选集协同过滤提供广泛的个性化,组合基于用户-项目相关度评价实现精准、实时、个性化推荐。
候选集生成部分是基于多源异构数据库中学习选择与用户相关度较高的项目,对于预测用户U,其浏览某一个信息的概率为:
其中,U是用户特征值,V表示多源异构数据库,vi表示数据库中第i个项目的特征值,U与vi向量拥有相等长度,它两通过点积在隐层全连接实现。
1.2 排序生成模块
排序生成结构与候选生成结构类似,区别在于排序生成是对候选生成集升级细致分类排序。与传统排序抽取特征值类似,神经网络排序也是通过拼接大量用户、项目相关特征值(文本ID、浏览时长等)。特征值的处理与候选生成类似,都基于向量化,区别在于排序生成网络最后通过加权逻辑回归训练,给前期产生的候选集再评分,评分较高的K个项目返回给用户或通过协同过滤实现个性化推荐[8-10]。图3为排序生成结构图。
设定部分Softmax分类过程:首先,对于候选生成集或排序生成列表的训练过程,通过对负样本类别采用实际类别计算将数量减小到数千;其次,在推荐阶段,不计Softmax归一化,将项目评分转化为点积空间的最近邻寻找或协同过滤根据相关度计算;最后,选取与用户U相关度最高的K项作为候选集或排序列表,然后通过协同过滤个性化推荐,把信息推荐给用户。
1.3 多用户—项目模型
基于多用户、多项目的多源异构特征结合两次深度神经网络学习,从而实现个性化推荐。其实现思想为:首先,将原始特征值向量化后映射为用户、项目两个通道;然后利用深度神经网络模型把用户、项目信息向量映射到一个隐空间;最后,通过评估相似度(如余弦相似度法)把隐空间的用户、项目进行相关度等排名、匹配,从而实现精准、个性化推荐。图4为多用户-项目DNN(Deep Neural Network)模型结构[11-12]。
在用户视角,利用其浏览历史、搜索(Search tokens)、位置信息、二值性(登录与否、性别)和连续性(年龄)、观看时长等作为源特征值输入xu,然后通过深度神经网络学习模型学习输出隐表示yu。在项目视角,利用项目的描述、标签、类型等作为源特征值输入xi,通过深度神经网络学习模型学习输出隐表示yi,其中模型拥有多个用户、项目,分别为m、N。用户视角DNN模型为fu(xu,wu),第i个项目视角DNN模型为fi(xi,wi)。若拥有M个样本{(xu,j,xa,j)},0≤j≤M,(xu,j,xa,j)是用户u与项目a的交互,利用用户、项目的拟合交互记录进行调参学习:
通过模型训练、学习之后获得的用户隐表示yu与项目隐表示yi,利用在隐空间中计算用户与项目的相关度、排名,选择相关度排序较高的k项目以及源数据库协同过滤实现精准、个性化推荐。
1.4 特征值向量化
特征值向量化是通过词组嵌入,将特制文本映射到w维空间向量。首先,把用户、项目所有相关联特征值分别合并,并对特征值量化为评分数据然后求其平均值,即对多源异构原始数据进行评分式数据处理及归一化。
(1)用户特征数据为:
1.5 全连接层
全连接层(隐层)输入数据为用户、项目源特征值向量化后的值,设隐含层共m个神经元,通过隐含层ReLU激活函数处理后,获得向量ui,就是用户useri隐特征值,同理,项目itemj的隐特征值向量为vj,计算过程如下:
1.6 矩阵分解
最后,利用Adam深度学习优化方式对预测与真实评分进行拟合[13],对于一些拥有评分的项目,使预测最大可能接近真实,由此学习推荐,对新物品实现个性化推荐(未评分项目预测真实评分无限接近预测值)。
2 实验仿真及分析
2.1 实验环境
算法性能分析的实验环境以Windows Server2012 R2 *** 作系统为实验支撑,相关配置为:Intel Xeon Silver 4116 CPU处理器,编程语言Python,128 GB内存,双GPU。编译环境在Anaconda的Jupyter Notebook中实现并采用MATLAB进行仿真。
2.2 数据集合
本文通过2个真实、实时数据集,对深度神经网络融合协同过滤推荐模型进行评估,数据集分别为Amazon Movies and TV(AMT)评论评分与Amazon Clothing(AC)视频评论、评分。数据包括用户ID、物品ID及用户评论、评分。评分值为1~5,值越大用户喜好度越高。同时,实验数据按需求进行训练集TrainSet与测验集TestSet划分,且二者没有交集。
2.3 评价标准
本文提出的深度神经网络融合协同过滤推荐模型通过用户与项目的各类历史记录中抽取隐特征,然后对特征值进行学习预判、排序。因此本文应用均方根误差(RMSE)作为评价此模型的指标,通过学习特征模型与真实特征计算偏差,并求平方,然后与预测数据量N做比值平方根,计算公式如下:
2.4 实验对比
实验通过3个有效模型进行比较,分别为Probabilistic Matrix Factorization(PMF)、LibMF和DNNMF。
2.5 执行时间对比分析
深度神经网络(DNN)推荐算法与传统协同过滤(CF)运行时间对比:实验处理数据为AMT、AC真实数据,大小为1.88 GB。深度神经网络输入节点为1 024个,隐含层18个,输出节点1 024个,Spark集群节点为3,比较深度神经网络训练与传统协同过滤处理数据集的耗时。实验结果如图5所示,其中user表示用户测试数据集耗时,item表示商品测试数据集耗时。显然,DNN执行效率更高。
2.6 实验结果与分析
实验在2个真实数据集下通过本文提出的MV-CFi-DNN模型进行计算评估,同时用RMSE来对模型进行评估预测,在相同实验环境与同一数据前提下,将MV-CFi-DNN与PMF、LibMF做比较分析。
参数设置为:用户、项目特征值权重分别为α=1,β=0.5,MV-CFiDNN模型学习率为lr=0.000 65,用户、项目隐特征正则化为λuser=λitem=λ,深度神经网络神经元数为1 026个。
为了将MV-CFiDNN模型与PMF、LibMF模型对比,把2个真实数据集随机分为80%的TrainSet与20%的TestSet,且两者没有交集,同时把TestSet中的20%数据集随机用于验证,用来调整模型参数。
从图6可知,通过在2个真实数据集中测试后,PMF、LibMF的RMSE值相差不大,但与MV-CFiDNN模型的RMSE值有一定差异,表明深度神经网络融合多用户-项目、协同过滤模型对于特征值抽取有很好效果。通过实验结果可以看出,本文提出的深度神经网络融合多用户-项目协同过滤模型(MV-CFiDNN)的RMSE值与PMF、LibMF模型比较,都有下降,说明MV-CFiDNN模型能够解决传统算法模型的稀疏性、新物品等问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)