基于隐语义模型推荐算法的优化*

2023-01-06 05:40:02黄树成
计算机与数字工程 2022年10期
关键词:动量覆盖率物品

孔 欢 黄树成

(江苏科技大学计算机学院 镇江 212100)

1 引言

随着大数据时代的来临,人们已经很难从这些海量的数据中找到自己感兴趣的,这样就出现了“信息过载(Information Overload)”问题[1],导致信息利用率降低。推荐系统的出现让人们从“大数据”中看到了“曙光”。然而对于个性化推荐系统的核心,推荐算法的研究一直是国内外的研究热点。2006年10月,美国Netfilx公司举行了一场100万美元的算法竞赛,竞赛的要求将RMSE降低到0.8572或更低。这极大地推动了推荐算法的发展。

目前推荐算法中基于协同过滤的推荐应用极其广泛,协同过滤主要包括基于记忆的推荐和基于模型的推荐,基于记忆的推荐是通过计算物品之间的相似性为用户推荐相似度较高的物品,而基于模型的推荐是通过分析用户的历史行为数据生成相应的推荐模型。本文将通过融合用户的情感因素和物品的热门程度对传统的LFM算法进行改进,提出了一种基于动量的学习算法(MO-B-LFM)并通过实验验证了算法的优越性。

2 推荐算法简述

2.1 协同过滤推荐算法

Goldberg等最早在文献[2]中提出了“协同过滤(Collaborative Filtering,CF)”这一词,Tapestry是文献[2]中提出来的第一个基于协同过滤的推荐系统,该系统是电子文档过滤系统,根据用户评价过的文档给其他用户推荐适合自己的文档。

基于用户的协同过滤旨在找到兴趣相似的用户,把他们归结成为一类群体。并且以此为前提,分析得出目标用户的最近邻居(最相似的若干用户)对某个项目的评分进而预测出目标用户对该项目的评分[3]。其中相似度可以通过Pearson、欧几里德距离等去计算,由于欧几里得距离计算相似度很有局限性,通常采用Pearson进行计算。用户i和j的相似度记为sim(i,j),其计算公式为[4]

基于模型的协同过滤通常采用数据分析,机器学习等方式,比如聚类算法,决策树以及贝叶斯分类。该算法对用户的行为数据进行建模训练,最终使用该模型为用户提供较为合理的推荐[5]。Bereese等在文献[6]提出了一个基于概率的算法,其公式如下:

矩阵分解(Matrix Factorization,MF)是常见的基于模型的协同过滤算法。其中Shanideng等在文献[7]中提出的潜在因子模型(Latent Factor Model,LFM)是本文主要研究的算法,该算法曾在Netfilx举办的推荐算法竞赛中夺冠。

2.2 其他推荐算法

文献[8]提出了基于内容的推荐算法,该模型通过分析一个用户-物品表来为用户做相应的推荐。基于内容推荐的思想是通过机器学习的方式将用户有过行为的物品动态的添加到用户-物品表中,并对其进行分析。

文献[9]中提出了一种混合推荐算法,该算法思想通过吸取其他算法的优点来弥补自身的不足,其中最常见的就是基于协同过滤和基于内容推荐相结合,称其为基于内容的协同过滤(Content-Based Collaborative Filtering)。

3 LFM算法简述与改进

3.1 LFM算法简述

假设Ru×i是用户user对物品item的评分矩阵,LFM算法就是找到两个矩阵Pu×k,Qk×i使得P·Q≈R。称P,Q分别为user和item的特征矩阵,其中k是隐类的特征维度。最后计算出用户对每个物品item的预测评分,计算公式如下:

下面是LFM的目标函数,其中rui为用户user对物品item的真实评分:

求解上式最优化问题可以使用交替最小二乘法(Alternating Least Square,ALS)[10]和梯度下降法,由于最小二乘法计算复杂这里使用随机梯度下降法(Stochastic Gradient Descent,SGD)。每次迭代单独更新参数和其中α为学习率:

式(6)、(7)带入式(5)得:

该算法很重要的影响的因素是P,Q初始值的选择,一般选取P,Q初始为全0或1的矩阵和随机数矩阵。大量实验证明,P,Q取随机值时模型推荐效果更佳,本次实验在随机值的基础上除以。

3.2 算法改进分析

上述算法没有考虑到用户的偏好,也没有考虑到物品的冷门程度。假设用户A偏向于打分很低,即使自己很喜欢的物品也只会给个中等分数,而用户B偏向于打分很高,每个物品都给了较高的分数,LFM对于这种用户的推荐的准确率就会降低。同样的,假定物品X属于热门产品,大多数用户都对该物品有过行为,而物品Y属于冷门产品,为极少数用户所知。可能该物品某个用户非常喜欢,但是没有为该用户进行推荐,导致覆盖率很低。

本文首先计算出所有评分的平均分μ,初始化用户和物品的偏置矩阵bu,bi。给出改进后的评分公式:

从而得到目标函数:

使用式(12)、(13)反复迭代训练出bu,bi。

以上训练方法训练时间过长,本文在更新P,Q前分别加入了用户动量M以及物品动量N,其中M表示上一次更新时P的梯度的下降程度,N表示上一次更新时Q的梯度的下降程度,β为每次能够接受的下降的程度。通过动量M,N的添加能够让上一次梯度较大的地方下降的更快。同时梯度趋近与0的过程更加平缓,并且防止了过拟合和欠拟合的现象。通过实验证明准确率和召回率有了明显的提升,并且覆盖率提升了近原来的两倍。下面是算法的执行过程:

上述介绍的算法训练出的模型,其在测试集的准确率以及召回率有了明显的提升,由于将用户的偏好和物品的偏好也加入了训练,所以其在覆盖率上更有了成倍的增长。

4 实验分析

本文采用了控制变量法来对本文的算法进行验证,主要有两组实验。第一组实验使用加入用户偏好和物品偏好的算法(B-LFM)与传统的LFM算法进行对比,其验证了将用户偏好和物品偏好带入训练会大大的提高推荐的覆盖率。第二组实验使用加入动量并融合用户和物品的情感因素的算法(MO-B-LFM)与B-LFM进行对比,其验证了加入梯度下降动量训练模型不仅能够加快训练速度,在准确率上相比LFM算法有了明显提升,在覆盖率上相比B-LFM也有了可见的增长。下面介绍实验的具体内容。

4.1 数据集的选取

实验使用了MovieLens数据集[11],这是由GroupLens项目组创办的一个包含大、中、小规模的推荐系统数据集[12~13]。其中小规模数据100k包含了1000个用户对1700部电影的10000条评分记录;中规模数据1M包含了6000个用户对4000部电影的1000000个评分;大规模数据10M包含了72000个用户对10000部电影的10000000个评分和100000个标签。实验使用了中、小规模两个数据集对实验数据按照8:2划分训练集与测试集并且保证了每个用户都至少有20个评分数据。

4.2 实验评测标准

评价一个推荐算法的性能一般使用平均绝对误差(MAE)[14]和均方根误差(RMSE)[11]两种,但是推荐系统关注的是推荐的TopN中的准确率以及召回率,对于实际应用还应考虑其覆盖率。

文献[15]给出了准确率、召回率以及覆盖率的定义。对于用户u推荐的N个物品组成的集合记作R(u),用户u在测试集上喜欢的物品组成的集合记作T(u)[16]。

4.3 实验分析

实验环境是Windows 10操作系统,i7-9500H处理器,内存24GB的CPU,使用的语言是Python,其版本是Python 3.7,编程工具使用了PyCharm。下面是实验中用于比较的算法。

算法1:传统LFM算法

算法2:B-LFM算法:在传统LFM算法基础上添加了用户偏好和物品偏好参与训练,其中bu,bi初始值为零矩阵。

算法3:MO-B-LFM算法:在算法2的基础上添加用户动量M和物品动量N,令β=0.65,M,N初始值为零矩阵。

采用两组实验进行对比,分别是算法1和算法2对比,以及算法2和算法3对比。

4.3.1 不同K值对实验的影响

LFM算法执行的时间与隐类K有着直接的联系,并且K值的选取也会影响算法的性能。实验固定α=0.02,λ=0.01正负样本比例为1∶1分别研究K值取50,100,200,300,400的情况下推荐算法的准确率,召回率以及覆盖率,以求出最佳的K值。通过图1表明,当K=200时召回率和覆盖率都是最高,故以下实验均基于K=200进行。

图1 不同K值下算法的准确率和召回率

4.3.2 算法1与算法2对比试验

以上通过实验证明K值为200时算法性能最优,以下均使用K=200进行试验,B-LFM初始化bu,bi均为零矩阵。本文仅研究N取5,10,15,20,25时的情况,因为N值取得过大,对于一个推荐系统就毫无意义。下图是不同N值情况下算法的覆盖率对比。实验结果如图2所示,从图可以看出,在N取何值时,B-LFM算法的覆盖率都遥遥领先于LFM算法,由此说明加入情感因素训练模型能极大地提高算法的覆盖率。

图2 不同N值下算法的覆盖率

4.3.3 算法2与算法3对比试验

以上通过实验证明加入情境因素进行训练可以极大提高算法的覆盖率。下面研究在用户动量和物品动量的加持下算法MO-B-LFM的准确率以及召回率。通过图3可知MO-B-LFM算法在准确率和召回率都比B-LFM算法要高,进而证明了加入动量矩阵能够有效地提升算法的性能。

图3 BLFM与MO-B-LFM算法性能对比

5 结语

本文通过分析LFM算法的不足,融合了用户和物品的情感因素,这不仅仅增加了算法准确率和召回率,还极大地提升了算法的覆盖率,使得冷门物品也能被推荐给更多的用户,这样就不会让某个物品出现“饿死”现象。通过加入动量参与模型的训练,不仅能够缩短训练所需时间,也能够大大提升算法的准确率和召回率。

猜你喜欢
动量覆盖率物品
动量守恒定律在三个物体系中的应用
高中数理化(2024年8期)2024-04-24 05:21:33
民政部等16部门:到2025年村级综合服务设施覆盖率超80%
今日农业(2022年15期)2022-09-20 06:54:16
称物品
我国全面实施种业振兴行动 农作物良种覆盖率超过96%
今日农业(2021年21期)2021-11-26 05:07:00
“双十一”,你抢到了想要的物品吗?
应用动量守恒定律解题之秘诀
动量相关知识的理解和应用
谁动了凡·高的物品
基于喷丸随机模型的表面覆盖率计算方法
找物品