HRS-DC:基于深度学习的混合推荐模型

2020-07-17 08:20刘振鹏尹文召王文胜孙静薇
计算机工程与应用 2020年14期
关键词:卷积向量矩阵

刘振鹏,尹文召 ,王文胜,孙静薇

1.河北大学 电子信息工程学院,河北 保定 071002

2.河北大学 信息技术中心,河北 保定 071002

1 引言

当下互联网信息快速传播,用户能够通过搜索关键字来获取相关信息,然而推荐信息也在逐步踏入生活之中,在电子商务、新闻推荐,以及如今流行的短视频社交领域,用户多数通过平台推荐来获取信息。但是信息的种类、数量不仅巨大而且还在不断的增长,如何将信息精确的推荐给用户,个性化推荐系统[1]就被应用于这些平台之中。

协同过滤推荐算法[2-3]是推荐系统中常用的算法,根据用户与项目之间的交互数据,例如浏览、收藏、加购、购买等行为,作为用户-项目的隐式反馈,或者以评分方式进行交互。利用这些交互数据计算用户(项目)之间的相似度来进行推荐。当评分数据稀疏时,推荐性能就会下降,而且当面临新用户或者新项目需要推荐时,由于没有历史交互数据,无法进行准确的推荐,遭遇冷启动问题[4-5]。基于内容的推荐算法需要人为的根据项目的内容信息去标记其特征,并根据特征推荐给相关爱好的用户,虽然不会遭遇项目冷启动问题,但在扩展性方面十分有限。

协同过滤推荐算法中最受欢迎的有基于矩阵分解(MF)的推荐算法,MF通过用户喜好矩阵和项目特征矩阵作内积去重构用户-项目的评分矩阵,但是仅靠内积是无法精确逼近用户项目的交互关系,而且这样浅层的结构也无法挖掘用户以及项目深层的特征[6]。

近些年,深度学习快速发展,一些常用的深度学习模型(DNN、CNN、RNN、AE等)[7-10]在计算机视觉、图像处理、自然语言处理等领域都得到了广泛的应用。相对而言,在推荐系统中利用深度学习技术[11-14]来加强对推荐项目内容的分析,挖掘出更深层的隐性特征,也是相关研究领域的一种趋势,需要更多相应高效的模型。

协同主题回归模型(CTR)[15]通过利用文本信息将基于主题模型(LDA)[16]模型与概率矩阵分解模型(PMF)[17]模型进行融合,提升了推荐系统的准确率。但是,CTR从文本信息中提取隐性特征,当文本信息稀疏的时候,文本隐性信息的表达就会出现偏差。卷积矩阵分解(ConvMF)[18]通过CNN与PMF模型相结合,模型能够很好地提取文本内容方面的特征,但是并不能很好地做到对于ID类特征的提取。协同过滤深度学习(CDL)[19]是通过利用辅助信息进行推荐的模型,它主要是将栈式降噪自动编码器(SDAE)[20]整合到PMF中,从而在评分预测方向上,做出更准确的精度,但它需要手动地调节神经网络中的每个参数,而且,这些集成模型基于词袋模型,也不注意词的顺序以及文本的上下文信息,导致对于文档信息的理解的准确性下降,影响推荐效果。

针对上述问题,本文提出一种基于深度学习的混合推荐模型(HRS-DC),通过使用专门处理相应数据类型的神经网络模型从辅助信息中提取用户和项目的隐性特征并通过非线性结构拟合它们之间的交互关系,做出更精准的预测。利用深度神经网络学习用户辅助信息和项目辅助信息中的ID类特征,得到用户隐性向量和项目隐性向量,利用卷积神经网络提取出项目辅助信息中文本类的隐性向量,将得到的项目隐性向量连接为完整的项目隐性向量,再将用户隐向量、项目隐向量作为输入进行神经协同过滤,得出最佳模型。在数据集MovieLens和amazon上的实验结果表明,较CTR、PMF、CDL、ConvMF相比该模型在预测准确性上提高了1%~27%,也在一定程度上缓解了冷启动问题。

2 相关内容

2.1 矩阵分解

矩阵因子分解模型[21]利用因式分解得出新的评分矩阵R,这两个隐因子矩阵U、V也代表着用户隐含信息和项目隐含信息。如公式(1)所示:

将预测评分矩阵R与真实评分矩阵rating相比较,通常对于这两个矩阵不能达到相等的精确程度,要做的是最小化它们之间的差距,这就变成了一个最优化问题。通过优化损失函数来找到u和v中合适的参数,损失函数的优化公式如下所示:

其中,rij∈{1,2,3,4,5}为评分矩阵rating中用户i对物品 j的真实评分,D为用户i对项目 j评过分的集合,uik∈U为用户i的k维隐向量,即为用户偏好矩阵,矩阵中数值代表着用户对k个属性的爱好程度,vkj∈V为项目 j的k维项目隐向量,即为项目属性矩阵,矩阵中数值表示项目中所含k个属性成分的强弱。将这两个矩阵作内积即为用户—项目评分矩阵R,在公式(2)中添加正则化项来避免过拟合,其中λ和γ为正则化系数。

传统的求解方法是矩阵分解,为每个user和item找到一个隐向量,并利用线性乘积来估计隐向量在低维空间的复杂交互关系,导致对用户和物品之间精确的关系的约束。增加隐式空间向量的维度k虽然能解决该问题,但是这会影响到模型的泛化能力,产生过拟合现象,面对稀疏的评分数据时,MF的推荐效果也会变差。

2.2 基于深度神经网络的矩阵分解模型

融合MF与神经网络的模型神经协同过滤(NCF)利用非线性的结构来模拟用户和项目的关系,通过隐式反馈来预测用户对项目的评分,利用神经网络进行高阶建模,来提高协同过滤的性能[22-23]。但协同过滤的核心仍然是MF,并未进行深入的挖掘用户和项目各自的深层特征。本文提出利用深度表示学习体系结构来获得用户和项目的深层隐性特征。

基于CNN的模型偏向于相邻特征之间的交互,基于RNN的模型更适合于具有顺序依赖关系的点击数据,而基于DNN的模型适于挖掘数据的深层特征,神经网络模型(DeepFM)融合了因子分解机(FM)和DNN,将低阶特征FM与高阶特征DNN交互建模,进行点击预测,提高预估的准确性[24]。基于上述模型,本文提出一种基于DNN的矩阵分解模型,将用户和项目的辅助信息经过预处理转化为密集的矩阵,再将矩阵表示经过多层隐藏层,再经过全连接层得到隐因子向量的输出,然后将得到的隐因子模型U、V作为输入,将其作内积得矩阵R,如图1所示。

图1 基于DNN的混合推荐模型网络架构图

图中第一层为输入层,神经元个数为z个,数据的输入维度也为z维,第二层为嵌入层,将输入的数据映射为k维数据,再接下来为n层隐藏层,图中用Li(i∈[1,n])表示,每层的数据维度也不相同,这是为了能更好地发挥模型非线性特性。

用户ui(i=1,2,…,m)对项目vj(j=1,2,…,n)的评分为rij,嵌入层将用户的信息映射为m×k的矩阵,用户的特征向量表示经过嵌入矩阵后变为xu_i,项目的信息数据则变为n×k的矩阵,项目的特征向量表示经过嵌入矩阵后变为yv_j。对于映射关系,将ID以及各类显性特征先变为顺序列表,ID本身即为有序列表,而像用户职业之类的,假设用户职业有n类,则将这些类别用[1,2,…,n]代替,再建立一个索引矩阵,索引大小为n×k,其内容数据服从为随机均匀分布,职业也将通过嵌入层被索引表示。

用户信息矩阵经过嵌入层映射变为xu_i,进入隐藏层学习训练,输出如下所示:

其中,Li为第i层的输出向量,fi为第i层的激活函数,常用的激活函数有sigmod、tanh和relu,在此选用的是relu函数。wi为第i层的权重向量,bi为第i层的偏置向量。同理,项目信息也进行同样处理。

经过深层次的隐藏层学习训练后用户信息变为更加抽象、稠密的向量,再经过全连接层输出为矩阵U,类似用户信息数据的处理,项目信息数据输出为矩阵V,对矩阵U、V作内积得预测评分矩阵R。

2.3 基于CNN的特征提取模型

CNN在文本信息特征提取方面有着其独特的优势,对于项目辅助信息中的字段类型的特征,利用卷积神经网络学习出其隐性特征。网络来自于文献[25]的底层架构,在CNN之前添加嵌入层,将文本信息映射为相应的数值,再进行训练,框架如图2所示。

图2 基于卷积神经网络的框架

嵌入层能将原始文本转换成密集数字矩阵,而这个矩阵作为输入,再经过卷积层、池化层、全连接层。首先,将文档中的单词进行序列化,利用单词嵌入模型将单词初始化为向量,文本信息D∈Rk×n即表示为:

其中,n为单词的个数,也表示文档的长度,在嵌入层进行转化过后每个单词的维度变为k维。在卷积层对嵌入矩阵上做卷积,一个文本卷积后的特征,卷积公式如下所示:

卷积特征与卷积核是相对应的,本文利用多组卷积核获取整个文本的卷积特征。由于l并非固定数值,卷积过后会得到长度不一的特征向量,阻碍特征的转化,池化层通过对卷积层获取的多组上下文特征向量进行max-pooling池化,进行特征长度的固定,选取其中最大的特征。

将池化层的输出传递给全连接层,输出文档的隐因子特征向量,公式如下所示:

3 基于深度学习的混合推荐模型

在本文中,提出一种基于深度学习的混合推荐模型(HRS-DC),深入挖掘用户项目辅助信息中的深层特征,再利用改进的NCF强大的表示性学习性能,拟合非线性交互关系,得出最佳模型。

用户信息一般无文本描述类信息,字段类特征可以将其转化为ID类特征,将用户辅助信息输入DNN之前,首先经过嵌入层,在嵌入层中将原始稀疏特征转换成稠密的数字向量,成为一种对应关系,初始特征作为在嵌入层的映射,再经过隐藏层的学习训练,得到输出向量,即用户隐因子特征向量。同样,项目特征中含有文本类特征,项目类特征中的ID类特征同处理用户特征一样,经过DNN网络训练的得出隐因子向量,对于文本类特征,则利用CNN进行训练提取,本文通过CNN从项目文本特征中提取项目隐性特征,与DNN输出向量连接后作为项目隐因子向量,输入改进的NCF网络,将提取到隐性特征进行非线性拟合,通过迭代训练,优化模型参数,得出最佳模型,输出预测评分,根据评分的高低,进行top-k推荐,HRS-DC框架如图3所示。子向量的维度要一致,而且训练的所用的网络层数也一致,这也是为了确保隐因子特征的所含的意义相同。

图3 基于神经网络的混合推荐模型

从辅助信息中深度挖掘隐性特征,提取隐因子向量,为了使得预测更加准确,将隐因子向量进行神经协同过滤,进行改进高阶非线性模型多层感知机(MLP++)以及改进浅层模型广义矩阵分解(GMF++)两种模型的对比,两者均利用了用户和项目的隐性特征向量。

在GMF++中,对于用户和项目的隐形特征向量作内积,再经过神经网络全连接层,输出预测评分。其计算公式表示如下:

式中,⋅表示相对应的向量元素相乘,aout为激活函数,h为输出层的权值,ru,i为预测得分。在本文中,aout可以是一个非线性激活函数,h可以从训练数据中学习,因此它比MF具有更强的学习能力。

MLP++将用户和项目的隐因子向量串联起来,通过多层神经网络学习用户-项目关系。MLP++和GMF++使用相同的方法从辅助信息中提取用户和项目特征。然而,MLP++在神经协同过滤模块中采用了不同的学习策略。MLP++与GMF++处理用户和项目隐因子向量的方式不同,将学习到的用户隐因子向量ui和项目隐因子向量vj串联起来,在协同过滤模块中采用多层感知器学习高阶用户-项目关系。MLP++的协同过滤方面定义如下:

用户信息经过DNN提取出隐因子特征向量的过程和第2章相关内容部分相似;项目隐因子部分,将项目中的ID类与文本类特征经过相应神经网络提取项目隐因子特征向量V进行连接,在连接之时为了确保隐因

Wx和bx表示权重、偏差,ax表示X层的激活函数,[]表示向量的连接,不同于NCF中的MLP使用多层感知器来学习用户-物品关系,但它只依赖于隐式反馈。MLP++使用CNN和DNN从辅助信息中提取用户和物品特征,从而能够了解到一个用户和物品之间的关系。

本文采用代价函数为逐点损失类型的优化函数,在模型优化时,为了防止训练出现过拟合现象,同时提高模型的泛化能力,使用L2正则化项,Ue和Ie分别为嵌入层的用户项目的索引值,W和B为各层神经网络的权值和偏差,Ii,j为用户i对项目 j评过分,则其表示为1,否则为0。

神经协同过滤过程输出预测评分ru,i。考虑到隐式反馈的特点,将1视为与物品相关的用户,将0视为与物品无相关的用户,神经协同过滤模块的激活函数选用relu函数。对于ui和vj,使用Adam优化器去求得最优解。η是学习率,设置为0.000 3,更新方式如下所示:

给定U和V,可以根据反向传播算法。通过交替更新变量,可以找到L的局部最优值。

4 实验与结果分析

4.1 实验设置

操作系统为ubuntu14.04,Intel Core i5处理器和4 GB RAM;编程环境为python2.7,深度学习计算框架为TensorFlow 1.4。

4.2 数据处理

4.2.1 数据集

实验使用的是MovieLens-1M、MovieLens-10M、amazon数据集。数据集的信息如表1所示。

表1 ML-1M、ML-10M、amazon数据信息表

4.2.2 数据预处理

模型输入层的数据为用户和项目的辅助信息,模型输出层为用户-项目的预测评分。用户数据分别有用户ID、性别、年龄、职业类型。项目数据分别有项目ID、电影名和电影类型以及基于本文所需要用到的电影描述信息,从网络电影资料库去匹配(IBDM)。对于文本信息,本文进行3个步骤,设置文档长度最长为300,去除停用词典里停用的词,从TF-IDF值中选前8 000单词构成词典,对于数值信息,删除评分信息少于3个的用户以及缺少文本描述信息的项目。

4.3 实验评价指标

本文采用均方根误差作为实验指标,它能够作为直接而且准确的指标,反映出模型的预测值与真实值之间的偏差,能够体现出整个网络模型的准确性,通过计算预测评分与实际评分之间的偏差度量预测的准确性,差值越小则预测的质量越高,T表示为测试集中所有用户i对项目j已评过分的集合。

4.4 对比实验

为了验证本文所提HRS-DC模型的推荐性能,与以下几种先进的模型进行了对比实验。

(1)PMF[17]:概率矩阵分解模型,仅通过用户-项目的评分数据进行协同过滤推荐。

(2)CTR[15]:协同主题回归模型,是一种新的推荐模型,将协同过滤(PMF)和主题建模(LDA)结合,通过使用评分和文档信息来进行推荐。

(3)CDL[14]:协同深度学习模型,通过使用栈式降噪自动编码器分析文档来提高评分预测的准确性。

(4)ConvMF[18]:卷积矩阵分解模型,将卷积神经网络与矩阵分解模型相结合进行推荐。

4.5 实验结果分析

从数据集MovieLens-1M中,随机抽取3种不同比例的数据作为训练集和测试集,结果如表所列。设置隐因子的维度为80,神经协同过滤模块选用GMF++模型。在3种不同比例训练集的训练效果下,本文算法均优于3种对比算法;在训练集从40%、60%、80%的情况下,算法效果一直在提升,也说明本文算法在使用了更多的辅助信息进行训练后能产生更好的预测评分效果。

由表2得知,在MovieLens-1M训练集所占比例越大时,用于训练的数据越多,模型得到的预测结果最佳,基于此,将数据集均随机分为80%的训练集,10%的验证集,10%的测试集。在ML-1M中,实验还在改进的NCF的网络层数、隐因子的维度等参数方面进行寻求最佳模型的对比,如图4所示。

表2 模型在ML-1M训练集中不同比例的结果(RMSE)

图4 隐因子的不同维度的对比图

不同的隐因子的维度也代表着不同的特征向量,为了寻求最佳的隐因子维度,进行了多种测试,分别设置[16,32,64,128]这4种不同的维度,实验表明从16增至64的过程中,随着训练周期的增加预测的准确性在逐步提高,当维度为128时,准确性下降,这也表明了并不是维度越高模型的效果越好。

如图5所示,通过进行GMF++和MLP++两种模型的对比,从实验结果中可以看出,GMF++的预测准确度要高于MLP++的准确度,随着MLP++隐藏层层数的增加,其准确性也在提高,MLP++还有很大的提升空间。

图5 GMF与MLP对比图

为了验证本文算法的有效性,将本文算法与概率矩阵分解算法(PMF)、协同过滤主题回归算法(CTR)、协同过滤深度学习算法(CDL)、卷积矩阵分解算法(ConvMF)在共同数据集MoiveLens-1M、MoiveLens-10M、amazon下进行对比验证,如表3所示。

表3 实验模型对比表(RMSE)

本文算法中通过比较,在MovieLens-1M数据集中,HRS-DC相对于PMF提高了5.7%,相对于CTR提高了5.7%,相对于CDL提高了4.7%,相对于ConvMF提高了1%;在MovieLens-10M数据集中,HRS-DC相对于其他模型提高了0.7%~5.4%;在amazon数据集中,相对于其他模型相对于其他模型提高了1%~27.4%,显然,当数据量增大后,预测评分的准确性更高,在如今海量数据的规模下,准确性也会越来越高,当然模型还有很大的改进空间。不仅限于文本辅助信息,还可以扩展到其他类型的辅助信息。在以后的工作中,会尝试加入更多的辅助信息,比如知识本体和图像。通过将更有代表性的辅助信息结合到推荐系统中,希望能够进一步提高推荐精度。

5 结束语

本文提出了一种基于深度学习的个性化推荐模型,实验结果表明,相比传统方法,本文算法的预测准确性有所提高,利用DNN和CNN训练项目辅助信息,并得出隐因子特征矩阵,在本文算法中,输入神经网络的数据没有原始评分矩阵,而是利用用户和项目的辅助特征信息,所以可以根据新用户或新项目的特征给予推荐,一定程度上解决了预测评分准确性差,以及冷启动问题。从实验结果可以看出,将深度学习模型应用于推荐系统是一个值得探寻的方向。本文在数据预处理和模型超参数调节上花费了较长的时间,还有待改进,今后的工作还可以考虑用其他深度学习模型来做推荐。随着深度学习技术的发展,深度学习在解决稀疏性以及冷启动过程中一定会成为推荐系统领域中一项非常重要的技术手段。

猜你喜欢
卷积向量矩阵
向量的分解
基于3D-Winograd的快速卷积算法设计及FPGA实现
聚焦“向量与三角”创新题
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
初等行变换与初等列变换并用求逆矩阵
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
矩阵