基于深度距离分解的推荐算法研究

2022-06-21 07:47钱梦薇
中文信息学报 2022年5期
关键词:特征向量物品矩阵

钱梦薇,过 弋,2,3

(1. 华东理工大学 信息科学与工程学院,上海 200237;2. 大数据流通与交易技术国家工程实验室 商业智能与可视化研究中心,上海 200436;3. 上海大数据与互联网受众工程技术研究中心,上海 200037)

0 引言

随着信息技术的不断发展,人们工作生活所需要的各种服务和产品基本都能在互联网上得到满足。随着这种趋势的不断演变,互联网所提供的服务和产品的种类也越来越多,这在给人们带来更多选择的同时,也增加了信息过载现象带来的问题。在信息过载时代,互联网用户很难从各种各样的产品和服务中做出选择[1]。在这种情况下,推荐系统应运而生,并随着人们的需求不断发展提升。

目前,推荐系统的实现方式可以大致分为两个途径,评分预测和物品排序。评分预测任务是要根据用户对不同物品的历史评分来预测用户对未产生过交互行为的物品的评分,将预测评分较高的物品推荐给用户。而物品排序则是根据用户与物品之间的历史交互行为,对每个用户可能感兴趣的物品进行排序,给用户推荐排序靠前的物品。鉴于评分预测任务不仅能给用户推荐其可能感兴趣的物品,也能让提供物品的电商平台更精准地了解不同物品在用户中的评分口碑,捕捉大众兴趣风向,以此提升平台服务质量。本文以准确预测用户评分为靶向,深入研究,在距离分解算法思路的启发下,结合深度学习能够良好捕捉数据非线性特征的长处,提出了一种基于深度神经网络的距离分解模型,在评分预测任务中,准确度优于传统推荐算法和前沿深度推荐算法。

由于矩阵分解的点积运算只通过用户和物品特征向量的长度和向量夹角来计算用户之间的相似度,不满足三角不等式,无法准确衡量不同用户之间的偏好关系。如图1(a)所示,根据Jaccard相似度计算,对于用户U1,U2,U3,用S表示相似度,存在s23>s12>s13,此时,对于用户U4,他与用户U1的相似度最高,理应也满足s42>s43,但实际上,s42

图1 矩阵分解特例

在Zhang等[2]提出的距离分解模型中,通过将矩阵分解转化为距离分解的方式,已经能够解决上述问题。距离值可通过相似度来获得,如式(1)所示。

Distance(u,i)=MaxSim-Sim(u,i)

(1)

用户u与物品i的距离值为最大相似度Max Sim与相似度Sim(u,i)的差值。在评分预测中,由于用户对物品的评分越高,表明用户对物品的兴趣度越高,即用户与物品的相似度越高,因此,用评分值来代替相似度,用最大评分值来代替最大相似度。

但距离分解与矩阵分解都是浅层线性模型,在对矩阵进行特征提取的时候,得到的特征向量往往表征能力不够强。因此,本文基于距离分解的思路,通过深度神经网络的多层感知器,将潜在的距离特征向量扩展到多层的神经网络中,最终具有非线性特征输出的距离特征向量,能够更有效地预测用户和物品之间的距离值,进而更准确地预测用户评分。鉴于传统机器学习多用于分类和聚类问题,本文算法非基于用户或基于物品的协同过滤,不涉及对用户和物品的聚类,因此考虑使用神经网络对距离特征向量进行训练。由于本文只依赖用户对物品的评分,不包含用户评论、用户和物品信息等文本数据,卷积神经网络无法使用,故采用无监督的深度学习来训练更能表征用户和物品的距离特征向量。

此外,为了验证本文模型的有效性和实用性,本文还结合了新冠疫情现状,基于人们在疫情环境下生活方式和关注热点的变化,设计了一个全新的应用场景。

本文的主要贡献如下: 将距离分解与深度学习相结合,将距离矩阵通过深度神经网络映射到一个低维空间,结合用户和物品的显式特征与训练得到的具有非线性特征的隐式距离特征,提高对用户和物品的距离特征向量的表征能力,同时也弥补了距离分解只用单一的线性模型对距离矩阵进行交互的不足。

针对疫情下人们对热点话题的热切关注设计了新的应用场景,爬取了微博上与疫情相关的热搜话题,建模计算用户对不同话题的兴趣度,并用模型进行兴趣度预测,为用户推荐其兴趣度较高的热搜话题,有效证明了本文模型的实用性。

1 相关工作

推荐系统目前的主流算法主要包括传统推荐算法,如基于内容的过滤算法、协同过滤算法和混合算法,以及一些改进算法。这些算法也被广泛地实验在不同领域的公开数据集和实际项目数据集上,推荐效果均有所提升。

1.1 协同过滤

协同过滤算法使用大量的用户历史评分信息为当前用户提供推荐列表[3],找出与当前用户兴趣相似度较高的群体,用该群体的历史行为去预测当前用户可能偏好的东西。协同过滤算法主要分为两类,基于用户的协同过滤和基于物品的协同过滤[4-5]。

1.1.1 基于用户的协同过滤

基于用户的协同过滤主要思想是,通过找出相似用户喜欢的项目, 预测目标用户对目标物品的评分,根据评分对物品进行降序排列,最后给用户推荐评分靠前的物品。

Karabadji等[6]采用遗传算法为每个活跃用户选择最优的邻居子群,且排除了该用户可能认识的用户,在保证了用户对推荐物品的满意度的同时,也能给用户推荐一些新颖的物品。Zhang等[7]改进了传统基于用户的协同过滤算法没有为不同用户属性分配权重的问题,在数据集上学习了用户不同属性的权重,并对用户的打分进行了归一化处理,最终在推荐物品的准确性、覆盖范围和受欢迎程度上均取得了良好的效果。

1.1.2 基于物品的协同过滤

基于物品的协同过滤是一个以检测物品共现现象为基础的经典算法,即用户与物品A交互的同时也可能与物品B交互[8],它的一个经典案例是啤酒和纸尿裤往往会同时被客户购买。

Najafabadi等[9]在传统基于物品的协同过滤算法上,结合了基于图的物品关系模型,与PageRank类似,它将节点类型由网页变为物品,用序列充分挖掘物品间的先后关系,在超市和电影数据集上取得了优于传统算法的效果。Cuo等[10]从用户数据隐私保护的角度,对算法进行了改进,先对用户数据在客户端做一个数据扰动处理,再在服务器端通过差分隐私重新整合数据,以达到对用户隐私数据的双重保护作用。

协同过滤算法的优势在于,能够给用户推荐新奇的物品。但由于需要大量的历史数据,很多模型在冷启动和数据稀疏的情况下无法保持稳定的预测和推荐效果。

1.2 矩阵分解

矩阵分解作为推荐系统中的一个经典模型,它的主要思路是将用户对物品的评分矩阵,转换成两个新矩阵的点积,这两个新矩阵可以看作是用户和物品的特征矩阵。矩阵分解算法最早是在2006年Netflix比赛中被用来预测电影评分的[11]。

由于矩阵分解在评分预测上的优越表现,越来越多的专家学者研究并提出了相应的变种和改进算法,如SVD[12]、SVD++[13]、概率矩阵分解[14],算法预测评分的准确性也在不断提升。此外,王运等[15]为了解决数据稀疏问题,通过用户评分获得用户偏好特征,结合物品的外部数据计算物品的相似度,将用户偏好和物品相似度融入概率矩阵分解模型,丰富了训练数据携带的信息量,良好地提高了评分预测的效果。Teng等[16]将概率矩阵分解与深度学习结合,用学习到的用户潜在特征为用户生成更为可靠的推荐列表。Chen等[17]又在此基础上,通过不采样学习的方式,进一步提高了模型的效率。

以上这些文献中提出的模型虽然已经在用户推荐上获得了一定成效,但是仍然存在着数据稀疏的问题。一些算法尝试引入外部数据,在一定程度上增加了数据的信息量,但随着数据集的类别变化,需要重新获取相关外部数据,考虑到物品种类繁杂,外部数据匹配难度高,因此很难收集每个物品的详细信息,从而模型也很难体现出实际价值。为了提高模型的通用性,在不同场景下保持稳定的评分预测效果,本文模型从最经典的矩阵分解出发,只依赖用户的评分数据,将评分矩阵转换成距离矩阵,由于评分矩阵比较稀疏,转换后的距离矩阵反而会更稠密。再利用深度学习,进一步获得用户和物品的隐式特征,结合显式评分数据和隐式特征,最终提高模型预测评分的准确性。

2 基于深度距离分解模型的推荐

2.1 距离矩阵

记物品的评分矩阵为RM×N,其中M是用户的总数,N是物品的总数,元素Rij表示用户i对物品j的评分,将用户-物品的评分矩阵转化为用户-物品的距离矩阵D,作为算法的输入,Dij表示用户i与物品j之间的距离,则

Dij=Rmax-Rij

(2)

其中,Rmax表示用户对物品评分的上限值。用户对物品的评分值越高,用户与该物品之间的距离值就越小,当用户对物品的评分为Rmax时,距离值Dij为0;当用户未对物品评分时,评分值置为0,距离值Dij相应地置为最大值Rmax。

具体转化过程如图2所示。

图2 距离矩阵转换过程

2.2 距离分解

在一个k维的欧氏空间内,两个点u和i之间的距离D(u,i)可以表示为两个k维向量之间的距离,如式(3)所示。对于距离分解任务来说,距离的实际数值对应距离矩阵中的Dij,模型需要在这个k维的空间内找到用户的距离特征向量Pu和物品的距离特征向量Qi,使得两个维度相同的特征向量之间的距离值D(u,i)与实际距离值近似,而距离特征向量Pu和Qi通过深度学习得到

2.3 深度学习

将距离矩阵分别按行和按列输入两个全连接的深度神经网络中进行训练,得到距离特征向量Pu和Qi。网络模型如图3所示。

图3 深度神经网络模型结构图

以用户u的距离特征向量训练为例,记输入的向量为Yu*,输出向量为Pu,隐藏层为li,i=1,…,N-1,网络的层数为N,每层对应的权重矩阵为Wi,偏置项为bi,模型最终输出的隐式特征向量为Pu,则

l1=W1Yi*

(5)

li=f(Wi -1li -1+bi- 1),i=2,…,N-1

(6)

Pu=f(WNlN -1+bN)

(7)

其中,激活函数为ReLU,f(x)=max(0,x),网络输出的距离特征向量为

Pu=fUN(…fU3(WU2fU2(WU1Yu*))…)

(8)

(9)

其中,Yu*表示用户u的输入距离向量,Y*j表示物品j的输入距离向量。WU1和WI1分别是用户和物品深度网络第一层的权重矩阵,WU2和WI2分别为第二层的权重矩阵。fU2()和fI2()分别是用户和物品深度网络第二层的激活函数,fU3()和fI3()分别为第三层的激活函数,fUN和fIN则对应第N层的激活函数。

2.4 评分预测

考虑到不同用户的打分习惯不同,有的用户倾向于给高分,而有的倾向于给低分。类似地,不同的物品得到的评分也有一定偏差,有的物品得分偏高,有的物品得分偏低。因此,为了使预测的距离值更接近实际情况,在用户u与物品i的距离公式中加入三个偏置因子bu、bi和μ

(10)

其中,bu是用户u的偏置项,bi是物品i的偏置项。μ是全局偏置项,取所有距离的均值。

将式(1)和式(2)代入上式得

(11)

此时,损失函数可表示为

(12)

其中,Yui表示用户u和物品i之间的实际距离值,Y′表示预测距离值,cui为置信度,取

cui=1+α·g(Yui-Dmax/2)

(13)

以增大距离值偏大或偏小值的置信度。Dmax表示所有距离值中的最大值,α用来控制置信度的大小,在实验中,α取值为0.1。由于极限距离值(如1,5)比中间距离值(如2,3,4)更具有可信度,因此,用g(x)=|x|绝对值函数来增大极限距离值的置信度。

最后,再将距离通过式(1)的逆过程转化为用户对物品的评分。为了防止过拟合,在预测距离值时,从k维的特征向量Pu和Qi中随机丢弃一部分维度,如式(14)所示。

(14)

在上式中,随机丢弃了第2维的特征值,在每一轮的训练中,都会按一定的丢弃率丢弃某些维度的特征值,以避免过拟合现象。

3 实验与分析

3.1 实验设计

本文实验有三个主要步骤: 数据准备、模型训练、评分预测及结果评估。具体流程如图4所示。下面首先详细介绍实验数据集的具体信息和预处理过程,再用本文模型和对比实验模型对数据集进行评分预测,对结果进行对比分析,最后对模型的关键参数进一步考量,分析不同参数对模型预测结果的影响。

图4 实验流程图

3.2 实验数据

本文实验采用了三个公开数据集和一个从微博爬取的数据集。三个公开数据集分别是MovieLens 100K、MovieLens 1M和Amazon数据集中的子数据集Jazz。为了验证模型的实用性和社会价值,本文结合新型冠状病毒突然在全球范围内突然爆发,使人们的生活进入隔离状态,只能依靠各大社交平台获取信息的现状,选取了用户群体较大、话题热度较高的新浪微博作为数据来源。考虑到微博话题的时效性,历史话题的时间跨度不宜太大,因此爬取了从2020年4月6日到2020年4月12日,微博热搜话题榜上与疫情相关的23个话题下用户的所有微博,共一万余条,基于用户在部分话题上的参与度来预测该用户可能对其他话题产生的兴趣度。用户i对话题j的兴趣度的计算如式(15)所示。

(15)

其中,N表示用户i在话题j下发表的微博总数,Nmax表示在话题j下发表微博总数最多的用户发表的微博总数。

四个数据集的用户数量、物品数量、评分数量,以及数据集的稀疏度如表1所示。其中,需要指出,MovieLens-100K(简写为ML-100K)、MovieLens-1M(简写为ML-1M)和Amazon-Jazz数据集的评分范围为0~5,式(1)中的Rmax需设置为5。微博兴趣度的取值范围为0~1,Rmax需设置为1。

表1 数据集详细统计信息

3.3 评价指标

针对推荐系统的评分预测任务,均方根误差(RMSE)和平均绝对误差(MAE)是常用的评价指标,计算如式(16)、式(17)所示。

其中,N表示测试集中评分的数量,Rui表示用户u对物品i实际的评分,R′ui表示模型预测的评分。

3.4 对比实验

本文选择了以下五个基线模型,其中包括了经典的矩阵分解推荐算法,以及一些最新的改进算法。具体如下:

MF(Matrix Factorization): 最经典,也是最基本的矩阵分解算法。

DMFN(Deep Matrix Factorization Network)[18]: 其将深度学习应用到矩阵分解中,用多层感知器将潜在特征向量扩展到多层的神经网络。

NRR(Neural Rating Regression)[19]: 其用神经网络回归来获取用户和物品之间的交互关系。

U-AutoRec(User-bsed AutoRec)[20]: 其设计了一个基于用户的自动编码器,将已有的用户评分投射到一个低维度的潜在空间,然后在输出空间中重构该用户的评分矩阵,从而预测出丢失的评分。

MetricF(Metric Factorization)[2]: 该算法将传统矩阵分解算法对具体评分值进行分解的思路,转变为对距离矩阵的分解,为每个用户和物品在低维空间内生成一个点,以此计算用户与物品之间的距离。

本文模型与所有对比模型在四个数据集上的训练集和测试集均按9∶1划分,即从总数据集中随机抽取90%的数据作为训练集,10%的数据作为测试集。且在四个数据集上,用于训练距离特征向量的深度神经网络层数均设置为1层。

各模型的实验结果具体数值如表2所示,表中加粗的数据表示在该数据集下该模型的预测结果最优。

表2 不同模型的评分预测实验结果对比

可以看到,本文的模型在所有数据集上均表现出了优越的评分预测能力,具有一定的通用性。对比模型中的MetricF和DMFN算法次优于本文模型,MetricF算法是将距离作为特征的推荐算法,它的评分预测结果优于其他将评分值作为特征的算法,说明了将评分值转换为距离值有助于缓解数据稀疏问题,解决矩阵分解不满足三角不等式的缺点,通过预测的距离值获取的评分值比直接预测评分值的准确率更高。而DMFN和U-AutoRec都是基于深度学习的推荐算法,其实验结果说明了深度学习能够学习到隐藏于数据中的复杂的非线性特征。

在ML-1M这样的大数据集上,模型也保持了稳定的评分预测准确性。Amazon-Jazz数据集极为稀疏,以至于U-AutoRec模型出现了无法收敛的现象,但本文模型的预测误差依然低于对比模型,表现出了较强的稳定性。特别是在爬取的微博数据集上,模型能够有效预测用户对不同疫情相关热搜话题的兴趣度,有助于为用户及时推荐其感兴趣的话题,帮助用户及时获取疫情下最关心的消息动态。

3.5 参数实验

为了探究模型中的重要参数对评分预测结果的影响,本文进一步在ML-100K数据集上,对模型的激活函数、特征维度、丢弃率、学习率四个关键参数进行了深入实验。

3.5.1 激活函数

对神经网络的激活函数实验了relu、relu6、sigmoid、tanh和softplus的效果。其中,relu是线性整流函数;relu6将relu的最大值限制在6;sigmoid是S型函数;tanh是双曲函数;softplus是relu的平滑函数。

实验结果如表3所示,从表中可以看出,relu6和softplus的实验效果相对较好,其中,softplus效果最优,说明relu6和softplus能够弥补tanh和sigmoid函数两端饱和的缺点,同时解决relu函数输入小于0时,输出为0的问题。

表3 不同激活函数实验结果对比

3.5.2 特征维度

对特征维度的维数分别取8、16、32、64、128层进行实验,实验结果如表4所示。

表4 不同特征维度实验结果对比

显然,模型的效果在特征维度为64层时达到最优。从8维增加到64维时,预测误差在逐渐减小,当增加到128维时,误差上升,开始出现过拟合现象。

3.5.3 丢弃率

对模型的丢弃率从0.01~0.15,按一定梯度实验了不同丢弃率对实验结果的影响,实验结果如表5所示。

表5 不同特征维度实验结果对比

显然,模型的效果在丢弃率为0.9时达到最优,且在丢弃率小于0.85时,模型无法收敛。当丢弃率取0.01,接近0时,实验误差陡增,说明一定的丢弃率能够避免过拟合现象。

3.5.4 学习率

对模型的学习率进行实验研究时,发现学习率对最终结果的影响不太大,学习率主要影响收敛速度。实验结果如表6所示。

表6 不同学习率实验结果对比

可以看到,学习率越小,收敛速度越快,但却很难收敛到最优结果。综合来看,当学习率为0.05时,效果最好。

4 总结

在推荐系统的用户评分预测任务中,为了缓解数据稀疏问题,同时解决矩阵分解模型不满足三角不等式的矛盾,本文基于距离分解模型,并结合深度神经网络,通过用户的显式评分数据训练生成具有线性和非线性特征的距离特征向量,增强了模型对数据中隐藏的特征信息的学习能力,最终在MovieLens数据集和Amazon数据集上表现出了良好的用户评分预测准确性和稳定性。另外,本文基于新型冠状病毒对人们生活产生的影响,从人们关注度较高的微博热搜话题入手,用模型预测了用户对不同疫情热搜话题的兴趣度,从而实现为用户推荐其更感兴趣的话题,帮助用户第一时间了解话题最新动态,良好地体现了模型的实用性和时效性。

在未来的研究工作中,我们将考虑如何降低模型的计算复杂度,使模型在更大的数据集上减少运行时间,节约计算资源。另一方面,网络模型的结构也可以进一步优化改进,以提升网络生成的隐式特征的表征能力。

猜你喜欢
特征向量物品矩阵
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
称物品
克罗内克积的特征向量
“双十一”,你抢到了想要的物品吗?
谁动了凡·高的物品
三个高阶微分方程的解法研究
多项式理论在矩阵求逆中的应用
矩阵
矩阵
矩阵