文章编号:2095-6835(2023)17-0018-04
结合改进用户聚类与LFM模型的协同过滤推荐算法
顾明星1,张梦甜2
(1.昆山市未成年人素质教育校外实践基地,江苏昆山215300;2.昆山市千灯中心小学校,江苏昆山215300)
摘要:针对协同过滤算法推荐准确性低的缺点,提出了一种混合推荐算法。首先在协同过滤算法中,增加3个影响因子改进评分相似度,并预测用户第一评分;其次在AP(Affinity Progagation)聚类算法中,将阻尼系数由静态取值改进为动态取值以提高聚类效果,利用改进AP算法将目标用户聚类到恰当的簇,并利用LFM(Latent Factor Model,隐语义)模型预测用户第二评分;最后将2次评分线性加权,得到最终预测评分并对项目进行推荐。实验表明,所提算法能有效改善推荐精度。
关键词:协同过滤推荐;AP聚类;隐语义模型;线性加权
中图分类号:TP311文献标志码:A DOI:10.15913/jki.kjycx.2023.17.005
随着互联网的快速发展,信息量呈爆炸式增长,人类进入了“信息过载”时代[1],解决信息过载最有效的方
法是搜索引擎和推荐算法[2]。传统协同过滤算法主要是寻与目标用户有相似品味的用户,然后将相似用户喜欢的项目推荐给目标用户[3]。但是随着用户、物品数量增加,数据稀疏性问题使得传统协同过滤推荐算法在实际应用中面临推荐准确性较低的问题[4]。
为了提高推荐算法准确性,众多相关学者从多个角度出发,对协同过滤算法进行优化。例如文献[5]从用户相似性度量和评分预测2个方面进行了修正,首先在相似度计算中引入用户评分均值差,其次在预测评分时引入用户评分均值,从而降低因用户评分尺度不同对推荐结果造成的影响。文献[6]提出将K-means 与隐语义模型相结合的推荐算法,首先利用K-means 算法对用户进行聚类得到目标用户所在的集合,其次重新构建评分矩阵,在新矩阵中利用隐语义模型预测用户评分。文献[7]提出了一种改进的LFM矩阵分解推荐算法,通过在批量学习方法中引入冲量和中间动量并结合增量学习,提高了推荐算法的精度和寻优速率。文献[8]提出了一种线性加权的推荐算法,为了降低用户兴趣随时间变化的影响,引入TimeRBM模型预测评分;同时,利用ItemAC算法对项目属性聚类、相同簇内的项目属性值加权进行预测评分,最后将2次评分融合得到最终评分。
上述改进算法能有效提高传统协同过滤算法的推荐质量,但未能充分利用已有数据信息。因此本文提出了一种混合推荐算法,在传统协同过滤推荐算法的基础上,挖掘影响评分相似度的多个因素来提高计算的精度,再利用用户属性信息进一步改善预测效果。算法的核心思想如下:①利用改进相似度公式的协同过滤算法预测目标用户对未评分项目的评分;②将改进的AP聚类算法与隐语义模型相结合预测目标用
户对未评分项目的评分;③将前2步所得的预测评分进行合理的线性加权,为目标用户推荐前N个评分较高的项目。
1相关工作
1.1改进相似度的协同过滤算法(I_CF*)
协同过滤推荐算法的步骤是:先利用已有数据,构建用户-项目评分矩阵,然后计算用户之间相似度并选取近邻集,最终进行评分预测并按照Top-N原则向用户推荐[9]。算法流程如图1所示。
图1协同过滤算法流程图
本文构建的用户-项目评分矩阵C mn,U ser:{u1,u2,…,u m}为具有m个用户的集合;I tem:{i1,i2,…,i n}为具有n个项目的集合;c ij为用户i对项目j的实际评分,若未评分,则c ij记为0。矩阵C mn如下所示:
正则化改进算法
mn
m
m
m
n
n
c
c
c
c
c
c
c
c
c
c
c
c
3
2
1
2
23
22
21
1
13
12
11
传统算法常用余弦相似性计算项目之间的相似度,余弦相似性将m个用户对项目i和项目j的评分视作2个n维向量,物品i和j的相似度则为2个向量的夹角余弦值[10],如下所示:
计算项目之
间的相似度
构建用户项
目评分矩阵
Top-N推荐
预测评分
∑∑∑∈∈∈⨯
⨯=
ser
ser
ser
22
cos
sim U u uj
U u ui
U u uj
ui
c
c
c c
j i ),((1)
式中:U ser 为所有用户集合;c ui 和c uj 分别为u 对i 和j 的实际评分的数值。
余弦相似性只是简单根据用户评分数值计算物品相似度,未考虑以下3个因素:①评分网站对用户打分的影响。例如有些网站的页面布局规整美观,用户更愿意打高分;而有些网站的页面布局差,用户更愿意打低分。②项目本身属性的影响。例如在电影评分项目中,电影质量较差的得分低,电影质量高的得
分高。③用户自身打分习惯的影响。有些用户较宽容,普遍评分较高;有些则严格,普遍评分较低。
为了降低上述3种情况对项目相似度计算的影响,本文将对余弦相似性公式添加μ、b i 、b u 这3个影响因子,改进公式如下所示:
∈∈∈*
------------=
ij
ij
ij
U u u j uj U u u i ui U u u j uj u i ui
b b
c b b c b b c b b c j i 2
2
sim )
()
()
)((),(μμμμ(2)
式中:U ij 为共同给i 和j 评分的用户集;μ为所有样本的平均分的数值,体现第一种影响因素;b i 为i 的平均分的数值,体现第二种影响因素;b u 为用户u 的评分均分的数值,体现第三种影响因素。
根据改进的余弦相似性,目标用户u 对项目i 的评分预测评分如下所示:
∑∑∈*
∈*
-⨯
+
=i
i
G j G j i uj i i u j i c c j i r p )
,((),(,sim sim (3)
式中:p u ,i 为u 对i 的预测评分的数值;G i 为i 的最近邻项目集合;i c 为项目i 的平均分的数值。1.2
改进的AP 聚类算法(AP*)
AP 聚类算法是一种基于数据点间“信息传递”的聚类算法[11]。首先,算法计算每一个数据点之间的相似度,构造相似度矩阵S ;然后,根据相似度矩阵更新吸引度矩阵R 和归属度矩阵A ;最后,利用阻尼系数λ对矩阵R 和矩阵A 进行收敛直至最大迭代次数(一般取1000)或聚类中心连续多次迭代不再发生改变(一般取50次连续迭代)时终止计算[12]。
吸引度矩阵R 的更新公式如下所示:
{}{}⎪⎩
⎪⎨⎧=-≠+-=≠≠+)
(),(),()(),(),(),(),(k i j i S k i S k i j i R j i A k i S k i R k j t t k
j t  max  max 1(4)
式中:R t +1(i ,k )为下一次迭代中点i 和点k 的吸引
度值;S (i ,k )为点i 和点k 的相似度值;A t (i ,j )
为当前迭代中点i 和点j 的归属度值;R t (i ,j )为当前迭代中点i 和点j 的吸引度值。
归属度矩阵A 的更新公式如下所示:
{}{}⎪⎪⎩
⎪⎪⎨⎧≠≠⎥⎥⎦⎤⎢⎢⎣⎡+=∑
≠+≠+++k j t k i j t t t k i k j R k i k j R k k R k i A )(),(,)(),(,),(,),(,  0max  0max 0min 1111
(5)式中:A t +1(i ,k )为下一次迭代中点i 和点k 的归属度值;R t +1(j ,k )为下一次迭代中点j 和点k 的吸引度值。
根据阻尼系数λ对矩阵R 和矩阵A 进行收敛,公式如下所示:
R t +1(i ,k )=λ×R t +1(i ,k )+(1-λ)×R t (i ,k )(6)A t +1(i ,k )=λ×A t +1(i ,k )+(1-λ)×A t (i ,k )(7)式中:R t (i ,k )为当前迭代点i 和k 的吸引度值;A t (i ,k )为当前迭代中点i 和k 的归属度值。
原始AP 聚类算法中,在利用阻尼系数λ对矩阵R 和矩阵A 进行收敛的时候,若λ过大,会使原始算法收
敛速度过慢,降低算法效率;反之λ过小则容易出现算法的震荡,聚类难以收敛。因此,本文对λ的取值进行如下改进。
定义聚类增量率a ug 为每次聚类数量增长的变化程度,公式如下所示:
2ter 1
ter 1
ter ter ug -----=
i i i i I I I I a ,
,,,(8)
式中:I ter ,i 、I ter ,i -1和I ter ,i -2分别为本次、前一次和前2次簇的数量。
定义震荡频数e :当a ug >1时,表示当前聚类的增量变大,算法出现震荡。设定算法每迭代l 次后,计算a ug >1的次数e ,记作震荡频数。
为了避免由于震荡次数过多而导致的算法无法快速收敛的情况出现,在算法每迭代次时,对阻尼系数进行一次更新,公式如下所示:
λ′=λ+∂e
(9)
式中:λ′为更新后的阻尼系数;λ为当前的阻尼系数;∂
为λ的增长幅度,本文设置为0.01。
输入:用户-用户属性矩阵Q ,阻尼系数λ=0.6,吸引度矩阵R 和归属度矩阵A ,迭代次数m =0,最大迭代次数t =1000。
输出:F 个聚类。
在矩阵Q 中利用余弦相似性计算每个用户之间的相似度,得到用户相似度矩阵S ;初始吸引度矩阵A 和归属度矩阵R 为0矩阵;根据式(4)、式(5)更
新矩阵R 和A ;根据式(6)、式(7)对矩阵R 和A 进行收敛,m =m +1;if m =50
then ;根据式(8)统计
震荡频数e ;根据式(9)更新阻尼系数λ;l=0;until 达到最大迭代次数或聚类中心连续多次迭代不再发生改变;得到F 个用户-用户属性簇并输出。1.3
LFM 矩阵分解模型
LFM 矩阵分解模型[13]本质是利用矩阵分解的方式得到用户与隐含用户特征、物品特征之间的关系,将用户评分矩阵C mn 分解为用户隐特征矩阵P mf 与项目隐特征矩阵Z nf ,并且两矩阵乘积会尽可能拟合现有评分数据,从而实现对未评分项目的预测。LFM 模型通过式(10)预测用户u 对项目i 的评分。
∑===f
a if uf T
i
u ui Z P Z P c
1
ˆ(10)式中:P u 为矩阵P 中用户u 所在行;Z i 为矩阵Z 中项目i 所在行。
最后优化损失函数得到P 、Z 矩阵:
∑∑
∈=∈++⎪⎪⎭
⎝⎛-=
-=
Train 2
2
1
Train
Loss                  ),(),()()(i u i u f
a if uf ui i u ui ui
Z P Z P c c ˆc θ(11)
式中:)(2
2
i u Z P +θ为正则化项,用于缓解算法的
过拟合现象。
2结合改进用户聚类与LFM 模型的推荐算法(I_ALFM)
针对传统Item_CF 算法推荐准确性较低的现象,本文提出了一种结合协同过滤与用户属性聚类的混合推荐算法(I_ALFM )。算法从以下方面进行了改进:首先,算法利用I_CF*预测目标用户对未评分项目的评分;然后,在用户-属性矩阵中利用AP*对用户进行聚类获得目标用户所在簇,并在所在簇内使用LFM 预测目标用户对未评分项目的评分;最后,将2次评分结果进行线性加权,将加权后的评分值作为目标用户对未评分项目的预测得分。评分线性加权公式如下所示:
[][]
()()()(),(i I i i I i i u p ∈-**∈-+=LFM AP CF I βα(12)
本文算法步骤如下:①利用用户-项目评分信息和用户-属性信息构建用户-项目评分矩阵C 、用户-属性矩阵Q ;②在C 中,利用I_CF*算法对目标用户未评分的项目进行预测,得到第一预测得分;③在Q 中,利用AP*算法对用户进行聚类,得到目标用户所在簇s ,将簇s 映射至矩阵Q 中,得到簇s 对应的用户-项目评分矩阵Q′;④在矩阵Q′中利用LFM 模型对项目进行预测,得到目标用户对未评分项目的第二预测评分;⑤利用式(12),将第一和第二预测评分进行线性加权得到第三预测评分;⑥根据第三预测评分,将预测评分最高的N 个项目推荐给用户。
具体流程如图2所示。
图2I_ALFM 算法流程图
3实验结果及对比分析
3.1
数据集和评价指标
本文采用的是由GroupLens 提供的ml-100k 数据集[14]。数据集包含用户与电影共10万条评分记录,以及用户属性信息。本文将80%的数据作为训练样本、20%的数据作为测试样本。
部分用户-项目评分数据如表1所示。
表1用户-项目评分数据用户ID
电影ID 评分时间戳
19624338812509492237718788871162984744884182806287
3275
875333916
用户-用户属性数据(部分)如表2所示。原始数据集中,性别列男性用M 表示,女性用F 表示,因聚类需要,将M 替换为1,F 替换为0。
表2用户-用户属性矩阵数据
用户ID
年龄性别职业ID 1241202530143231214
24
1
20
本文采用平均绝对误差作为实验的评价指标。平
利用I_CF*预测目标用户u 未评分项目的得分目标用户u
计算相似度,确定近邻数K 得到s 的用户-项目评分矩阵
得到u 所在簇s
u 未评分项目集的预测得分:AP_LFM (C ′ua ,C ′ub …C ′ux )
利用IFM*预测u 未评分
项目的得分u 未评分项目集的预测得分:I_CF*(C ua ,C ub …C ux )
将预测评分最高的Top-N 个项目推荐给u
2个预测评分线性加权
利用AP*算法簇k
簇1
簇2
用户-用户属性矩阵
用户-项目评分矩阵
均绝对误差是计算数据中已有的评分和实验预测的评分之差来衡量算法的准确性,其值越小,则算法性能越好,公式如下所示:
Train
Train
MAE ∑∈-=
),(i u ui ui
c
ˆc
I 3.2
实验结果及分析
实验1:用户属性特征聚类。实验选取性别、年龄和职业作为用户特征进行聚类,共划分为10个聚类,结果如图3所示。
聚类图3聚类结果
实验2:选取最优加权因子。分别取α=0.1,0.2,…,0.9,计算平均绝对误差来确定α和β的最优值。实验将I_ALFM 算法重复运行10次,取10次实验结果的平均值作为不同α值对应的平均绝对误差值,实验结果如图4所示。
图4权值α对算法平均绝对误差值的影响
由图4可知,当α=0.4时,平均绝对误差值为最小,表明此时算法的预测效果达到最优,故本文的最优线性加权因子为α=0.4,β=0.6。
实验3:算法对比实验。为了验证I_ALFM 算法在推荐准确性方面的优势,与基于项目的协同过滤推荐算法(I_CF ),隐语义模型推荐算法(LFM )以及结合AP 与LFM 模型的推荐算法(AP_LFM )进行对
比实验,结果如图5所示。
由图5可知,当最近邻数k >30时,算法的平均绝对误差值基本上趋于稳定,且在实验范围内的近邻数目下,I_ALFM 算法的平均绝对误差值要低于其他对比算法。当最近邻数为30~50时,本文算法相比于I_CF ,LFM 和AP_LFM 算法,分别降低了3.6%、2.2%和1.6%。
图5不同近邻数下各个算法的平均绝对误差值比较
4结束语
针对传统协同过滤算法推荐质量不足问题,提出了一种混合推荐算法I_ALFM ,算法通过线性加权的方式,将协同过滤算法、AP 聚类和隐语义模型的算法相结合。在协同过滤算法中,本文对余弦相似度公式添加3个影响因子,提高了相似度计算的准确性;在AP 聚类算法中,定义聚类增量率和震荡频数,根据震荡频数的变化动态地获取阻尼系数,提高了收敛效率。实验表明,所提的混合推荐算法能够挖掘隐含数据信息,提高推荐质量。
参考文献:
[1]
袁煦聪.基于长尾理论的物品协同过滤推荐算法研究[D].淮南:安徽理工大学,2017.
[2]翁小兰,王志坚.协同过滤推荐算法研究进展[J].计算机工
程与应用,2018,54(1):25-31.
[3]RAFAILIDIS D ,NANOPOULOS    A.Modeling users
preference dynamics and side information in recommender
systems [J].IEEE trans on systems man and cybernetics:systems ,2016,46(6):782-792.[4]
SHI YLARSON M ,HANJALIC A.Collaborative filtering beyond the user-item matrix :a surver of the state of the art and furture
challenges[J].ACM
computing
surveys
(CSUR ),2014,47(1):1-45.
[5]
李昆仑,万品哲,张德智.基于改进用户相似性度量和评分预测的协同过滤推荐算法[J].小型微型计算机系统,
(下转第24页)
权重α
最近邻数k
AP_LFM
份报采用中国气象局下发的全国强降水和雷暴大风指导产品作为基础预报产品,在此之上进行新疆区域范围裁剪及质控,再进行压缩编码后生成。
3.3调度管理
3.3.1系统运行流程调度
分别在01:00—01:30、07:00—07:30、13:00—13:30、19:00—19:30这4个时间段每分钟并行执行资料及产品归纳入库、产品加工处理、强对流产品压缩编码、最终产品推送4个子程序。
3.3.2双备份报生成调度
基础备份报调度:每日17:00执行次日的强对流模板压缩编码、最终备份报推送2个子程序。
订正备份报调度:分别在00:00—01:30、06:30—07:30、12:30—13:30、18:30—19:30这4个时间段每分钟并行执行中国气象局下发的全国强降水和雷暴大风指导产品归纳入库、产品加工处理、强对流产品压缩编码、最终订正备份报推送4个子程序。
3.4产品监控及信息可视化
为方便管理人员对产品状态有直观的了解,配合Django框架快速开发了新疆智能网格强对流竞赛产品监控模块。该模块实现一个简单的单页面应用,模块的查询接口采用RESTful架构开发,遵循RESTful API 规范。用户在模块网页前端选取日期和起报时等接口参数,点击查询后,访问URL接口调用后端的监控服务逻辑,将结果以JSON的格式返回至前端渲染,管理人员可以清晰看到每次产品生成、推送的状态和数量,及时发现问题的所在。4结束语
基于新疆智能网格强对流短时预报产品的集约化系统对新疆智能网格强对流短时预报产品的定时汇总、
处理、上传、监控等流程进行了统一的管理,各环节有序衔接。系统自投入使用以来,整体运行高效稳定,确保了竞赛产品完整准时地上传中国气象局。目前系统在功能完整性方面还存在不足,例如Web监控应用的后端逻辑尚未接入产品就位时间和系统报错日志等信息。后期还需要继续在产品监控和故障告警等功能方面进行完善和升级,为新疆智能网格强对流短时预报产品的集约化管理提供更好的支撑作用。
参考文献:
[1]郑波,李湘,何文春,等.基于CIMISS全国精细化格点
预报业务数据环境系统设计与实现[J].气象科技,2018,
46(4):670-677.
[2]李有华,卢小风,陈剑飞,等.基于智能网格产品的广西
行业气象服务集约化系统的设计与实现[J].气象研究与应
用,2019,40(4):59-62.
[3]李雪丁,曾银东,陈金瑞,等.福建省智能网格海洋预报
业务系统实现与应用[J].海洋预报,2021,38(1):10-17.
[4]李显风,张玮,李芬,等.基于WebGIS的实况网格产品
应用分析平台及关键技术[J].气象科技,2020,48(2):
185-194.
————————
作者简介:肖俊安(1995—),男,四川广汉人,本科,助理工程师,从事气象系统开发和数据挖掘工作。
(编辑:张超)
————————————————————————————————————————————————(上接第21页)
2018,39(3):567-571.
[6]范玉强,龙慧云,吴云.K-means算法在隐语义模型中
的应用[J].计算机与数字工程,2016,44(4):572-574,609.
[7]陈晔,刘志强.基于LFM矩阵分解的推荐算法优化研究[J].
计算机工程与应用,2019,55(2):116-120,167. [8]杜丹琪,周凤.基于TimeRBM和项目属性聚类的混合协
同过滤算法[J].计算机应用研究,2018,35(2):349-353.
[9]李嵩,李书琴,刘斌.改进的协同过滤算法及其并行化实
现[J].计算机工程与设计,2018,39(12):3853-3859. [10]于金明,孟军,吴秋峰.基于改进相似性度量的项目协同
过滤推荐算法[J].计算机应用,2017,37(5):1387-1391,1406.
[11]JIANG Y,LIAO Y,YU G.Affinity propagation clustering
using path based similarity[J].Algorithms,2016,9(3):
46-58.
[12]甘月松,陈秀宏,陈晓晖.一种AP算法的改进:M-AP聚
类算法[J].计算机科学,2015,42(1):232-235,267. [13]王升升,赵海燕,陈庆奎,等.个性化推荐中的隐语义模
型[J].小型微型计算机系统,2016,37(5):881-889. [14]HAPER F M,KONSTAN J A.The movielens datasets:history
and contert[J].ACM trans on interactive intelligent system,
2016,5(4):1-19.
————————
作者简介:顾明星(1994—),男,江苏昆山人,硕士研究生,研究方向为数据挖掘。张梦甜(1995—),女,江苏昆山人,硕士研究生,研究方向为数据挖掘、人工智能。
(编辑:严丽琴)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。