一种基于相似性和相似性可信度的协同过滤推荐算法及装置转让专利

申请号 : CN201810671400.3

文献号 : CN108959184B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林泓任硕卢瑶瑶李冉石义龙

申请人 : 武汉理工大学

摘要 :

本发明提出了一种基于相似性和相似性可信度的协同过滤推荐算法及装置,该算法在概率矩阵分解模型的基础上,通过相似性关系约束潜在特征向量的夹角余弦,并通过相似性可信度影响约束权重。由于相似性可信度的约束,该算法有效减弱了评分稀疏性问题对相似性关系的影响,强化了模型对重要相似性关系的学习能力,从而缓解了评分稀疏性问题。相关实验表明该算法的推荐效果明显优于当前其它同类算法。接下来的工作就是将此算法运用于实际的推荐系统中,弥补传统推荐系统在实际应用中的数据稀疏性问题及其带来的推荐效果不佳的问题。

权利要求 :

1.一种基于相似性和相似性可信度的协同过滤推荐算法,其特征在于,包括步骤1,建立用户‑项目评分矩阵R,用户‑项目评分矩阵R包括若干元素Ru,i,Ru,i表示用户u对项目i的评分,u=1,2,..N,i=1,2,3,..M,N表示推荐系统中的用户数量,M表示推荐系统中的项目数量;

R R

步骤2,建立评分指示矩阵I ,评分指示矩阵I 包括若干元素 表示用户i对项目j是否进行过评分,若是,则 若否,则步骤3,通过余弦相似性计算用户相似度矩阵D,用户相似度矩阵D包括若干元素Du,p,Du,p表示用户u和用户p之间的相似性,其中,I表示用户u和p共同评价过的项目集合, 表示用户u对所有已评价项目的平均评分, 表示用户p对所有已评价项目的平均评分;

步骤4,通过余弦相似性计算项目相似度矩阵S,相似度矩阵S包括若干元素Si,j,Si,j表示项目i与项目j之间的相似性,其中,P表示同时评价过项目i和j的用户集

合, 表示项目i的平均评分, 表示项目j的平均评分;

D D

步骤5,建立用户共同评分项数量矩阵C ,用户共同评分项数量矩阵C包括若干元素表示用户u和用户p共同评价过的项目的数量, 其中Ru和Rp分别表示用户u和用户p的评价过的项目的集合;

S S

步骤6,建立项目共同评分项数量矩阵C,项目共同评分项数量矩阵C包括若干元素表示同时评价过项目i和项目j的用户的数量, 其中Ri和Rj分别表示评价过项目i和项目j的用户集合;

D S

步骤7,将用户共同评分项矩阵C和项目共同评分项矩阵C代入映射函数ω(c),得到用D D S S户相似性可信度矩阵W=ω(C),和项目相似性可信度矩阵W=ω(C),其中 为用户u和用户p对应的相似性可信度, 为项目i和项目j对应的相似性可信度;

映射函数ω(c)为

C(θ)和C(β)分别为用户(或项目)的共同评分项数量的频率分布直方图的θ和β下侧分位点,0<θ<β<1;

步骤8,建立损失函数

其中,λU和λV为PMF中的正则化参数,λD和λS为相似性正则化参数,g(x)=1/(1+exp(‑x)),U和V分别表示用户因子矩阵和项目因子矩阵,Uu和Up分别表示用户u和用户p对应的用户因子向量,Vi和Vj分别表示项目i和项目j对应项目因子向量,cos(X,Y)为余弦函数;

通过最小化损失函数E,得到用户因子矩阵U和项目因子矩阵V,然后通过公式来预测用户u对项目i的未知评分。

2.一种基于相似性和相似性可信度的协同过滤推荐装置,其特征在于,包括R矩阵建立模块:用于建立用户‑项目评分矩阵R、评分指示矩阵I 、用户相似度矩阵D、项D S目相似度矩阵S、用户共同评分项数量矩阵C以及项目共同评分项数量矩阵C 、用户相似性D D S S可信度矩阵W=ω(C),和项目相似性可信度矩阵W=ω(C);

未知评分进行预测模块:基于损失函数,对未知评分进行预测,其中,损失函数基于以下公式:其中,λU和λV为PMF中的正则化参数,λD和λS为相似性正则化参数,g(x)=1/(1+exp(‑x)),U和V分别表示用户因子矩阵和项目因子矩阵,Uu和Up分别表示用户u和用户p对应的用户因子向量,Vi和Vj分别表示项目i和项目j对应项目因子向量;

通过最小化损失函数E,得到用户因子矩阵U和项目因子矩阵V,然后通过公式对未知评分进行预测;

矩阵建立模块建立矩阵的具体方法包括:

建立单元一:建立用户‑项目评分矩阵R,用户‑项目评分矩阵R包括若干元素Ru,i,Ru,i表示用户u对项目i的评分,u=1,2,..N,i=1,2,3,..M,N表示推荐系统中的用户数量,M表示推荐系统中的项目数量;

R R

建立单元二:建立评分指示矩阵I ,评分指示矩阵I包括若干元素 表示用户i对项目j是否进行过评分,若是,则 若否,则建立单元三:通过余弦相似性计算用户相似度矩阵D,用户相似度矩阵D包括若干元素Du,p,Du,p表示用户u和用户p之间的相似性,其中,I表示用户u和p共同评价过的项目集合, 表示用户u对所有已评价项目的平均评分, 表示用户p对所有已评价项目的平均评分;

建立单元四:通过余弦相似性计算项目相似度矩阵S,相似度矩阵S包括若干元素Si,j,Si,j表示项目i与项目j之间的相似性,其中,P表示同时评价过项目i和j的用户集合, 表示项目i的平均评分, 表示项目j的平均评分;

D D

建立单元五:建立用户共同评分项数量矩阵C,用户共同评分项数量矩阵C包括若干元素 表示用户u和用户p共同评价过的项目的数量, 其中Ru和Rp分别表示用户u和用户p的评价过的项目的集合;

S S

建立单元六:建立项目共同评分项数量矩阵C,项目共同评分项数量矩阵C包括若干元素 表示同时评价过项目i和项目j的用户的数量, 其中Ri和Rj分别表示评价过项目i和项目j的用户集合;

D S

建立单元七:将用户共同评分项矩阵C和项目共同评分项矩阵C代入映射函数ω(c),D D S S得到用户相似性可信度矩阵W=ω(C),和项目相似性可信度矩阵W=ω(C),映射函数ω(c)为C(θ)和C(β)分别为用户(或项目)的共同评分项数量的频率分布直方图的θ和β下侧分位点,0<θ<β<1。

说明书 :

一种基于相似性和相似性可信度的协同过滤推荐算法及装置

技术领域

[0001] 本发明涉及推荐算法领域,主要对概率矩阵分解模型(Probabilistic Matrix Factorization,PMF)进行改进,以缓解数据稀松性问题,提高推荐效果,具体涉及一种基于相似性和相似性可信度的协同过滤推荐算法及装置。

背景技术

[0002] 推荐系统通过收集用户的历史评分、交互(浏览、收藏、“点赞”,“踩”等交互行为)、用户肖像(年龄、职业、性别等)、社交网络和上下文(时间、位置、活动状态、周围人员等)等数据,对用户的历史兴趣及偏好进行分析,挖掘出用户喜欢的项目(视频、音频、书籍、菜品、Web服务等信息),然后主动地将相关信息推荐给用户,满足用户的个性化需求。推荐算法是推荐系统的核心,很大程度上决定了推荐系统的性能。目前主要的推荐算法包括基于内容的推荐、基于知识的推荐、基于关联规则的推荐、协同过滤推荐和组合推荐等。其中协同过滤是目前应用最广泛且最成功的推荐技术。
[0003] 基于邻域的协同过滤推荐算法是应用最早的协同过滤推荐技术,代表性算法为基于用户的协同过滤推荐和基于项目的协同过滤推荐。然而随着用户规模和项目数量的快速增长,基于邻域的协同过滤推荐算法的计算量大规模增大,同时产生了严重的评分数据稀疏性问题,即评分稀疏性问题。为了处理可扩展性和评分稀疏性问题,一些研究学者提出采用基于矩阵分解模型的推荐算法。矩阵分解模型假定“用户—项目”评分矩阵可以被分解为低维的潜在特征矩阵的乘积,其中潜在特征用于表示用户偏好或项目特征,如在电影推荐中,这些特征可能为喜剧、悬疑剧、爱情剧因素等。多次国际性比赛和大量研究都验证了矩阵分解模型具有抗数据稀疏性、易编程、较低的时空复杂度、较高的推荐精度和良好的可扩展性等优点。
[0004] 相对于基于邻域的协同过滤推荐算法,矩阵分解模型有效缓解了评分稀疏性问题,但该问题还没有得到完全解决。为了进一步缓解评分稀疏性问题,本发明在深入研究PMF的基础上,提出了一种基于相似性和相似性可信度的协同过滤推荐算法(SSRCF),该算法在PMF的基础上,通过相似性关系约束潜在特征向量的夹角余弦,并通过相似性可信度影响约束权重。由于相似性可信度的约束,该算法有效减弱了评分稀疏性问题对相似性关系的影响,强化了模型对重要相似性关系的学习能力,从而缓解了评分稀疏性问题,提高了推荐效果。相关实验也表明,该算法能进一步缓解评分稀松性问题,提高推荐效果。

发明内容

[0005] 基于相似性和相似性可信度的协同过滤推荐算法,包括:
[0006] 一种基于相似性和相似性可信度的协同过滤推荐算法,其特征在于,包括[0007] 步骤1,建立用户‑项目评分矩阵R,用户‑项目评分矩阵R包括若干元素Ru,i,Ru,i表示用户u对项目i的评分,u=1,2,..N,i=1,2,3,..M,N表示推荐系统中的用户数量,M表示推荐系统中的项目数量;R R
[0008] 步骤2,建立评分指示矩阵I ,评分指示矩阵I包括若干元素 表示用户i对项目j是否进行过评分,若是,则 若否,则
[0009] 步骤3,通过余弦相似性计算用户相似度矩阵D,用户相似度矩阵D包括若干元素Dup,Dup表示用户u和用户p之间的相似性,
[0010]
[0011] 其中,I表示用户u和p共同评价过的项目集合, 表示用户u对所有已评价项目的平均评分, 表示用户p对所有已评价项目的平均评分;
[0012] 步骤4,通过余弦相似性计算项目相似度矩阵S,相似度矩阵S包括若干元素Si,j,Si,j表示项目i与项目j之间的相似性,
[0013] 其中,P表示同时评价过项目i和j的用户集合, 表示项目i的平均评分, 表示项目j的平均评分;
[0014] 步骤5,建立用户共同评分项数量矩阵CD,用户共同评分项数量矩阵CD包括若干元素 表示用户u和用户p共同评价过的项目的数量, 其中Ru和Rp分别表示用户u和用户p的评价过的项目的集合;
[0015] 步骤6,建立项目共同评分项数量矩阵CS,项目共同评分项数量矩阵CS包括若干元素 表示同时评价过项目i和项目j的用户的数量, 其中Ri和Rj分别表示评价过项目i和项目j的用户集合;
[0016] 步骤7,将用户共同评分项矩阵CD和项目共同评分项矩阵CS代入映射函数ω(c),得D D S S到用户相似性可信度矩阵W =ω(C),和项目相似性可信度矩阵W =ω(C),其中 为用户u和用户p对应的相似性可信度, 为项目i和项目j对应的相似性可信度;
[0017] 映射函数ω(c)为
[0018]
[0019] C(θ)和C(β)分别为用户(或项目)的共同评分项数量的频率分布直方图的θ和β下侧分位点,0<θ<β<1;
[0020] 步骤8,建立损失函数
[0021]
[0022] 其中,λU和λV为PMF中的正则化参数,λD和λS为相似性正则化参数,g(x)=1/(1+exp(‑x)),U和V分别表示用户因子矩阵和项目因子矩阵,Uu和Up分别表示用户u和用户p对应的用户因子向量,Vi和Vj分别表示项目i和项目j对应项目因子向量,cos(X,Y)为余弦函数;
[0023] 通过最小化损失函数E,得到用户因子矩阵U和项目因子矩阵V,然后通过公式来预测用户u对项目i的未知评分。
[0024] 一种基于相似性和相似性可信度的协同过滤推荐装置,其特征在于,包括[0025] 矩阵建立模块:用于建立用户‑项目评分矩阵R、评分指示矩阵IR、用户相似度矩阵D SD、项目相似度矩阵S、用户共同评分项数量矩阵C以及项目共同评分项数量矩阵C、用户相D D S S
似性可信度矩阵W=ω(C),和项目相似性可信度矩阵W=ω(C);
[0026] 未知评分进行预测模块:基于损失函数,对未知评分进行预测,其中,损失函数基于以下公式:
[0027]
[0028] 其中,λU和λV为PMF中的正则化参数,λD和λS为相似性正则化参数,g(x)=1/(1+exp(‑x)),U和V分别表示用户因子矩阵和项目因子矩阵,Uu和Up分别表示用户u和用户p对应的用户因子向量,Vi和Vj分别表示项目i和项目j对应项目因子向量;
[0029] 通过最小化损失函数E,得到用户因子矩阵U和项目因子矩阵V,然后通过公式对未知评分进行预测。
[0030] 在上述的一种基于相似性和相似性可信度的协同过滤推荐装置,矩阵建立模块建立矩阵的具体方法包括:
[0031] 建立单元一:建立用户‑项目评分矩阵R,用户‑项目评分矩阵R包括若干元素Ru,i,Ru,i表示用户u对项目i的评分,u=1,2,..N,i=1,2,3,..M,N表示推荐系统中的用户数量,M表示推荐系统中的项目数量;R R
[0032] 建立单元二:建立评分指示矩阵I ,评分指示矩阵I包括若干元素 表示用户i对项目j是否进行过评分,若是,则 若否,则
[0033] 建立单元三:通过余弦相似性计算用户相似度矩阵D,用户相似度矩阵D包括若干元素Du,p,Du,p表示用户u和用户p之间的相似性,
[0034]
[0035] 其中,I表示用户u和p共同评价过的项目集合, 表示用户u对所有已评价项目的平均评分, 表示用户p对所有已评价项目的平均评分;
[0036] 建立单元四:通过余弦相似性计算项目相似度矩阵S,相似度矩阵S包括若干元素Si,j,Si,j表示项目i与项目j之间的相似性,
[0037]
[0038] 其中,P表示同时评价过项目i和j的用户集合, 表示项目i的平均评分, 表示项目j的平均评分;
[0039] 建立单元五:建立用户共同评分项数量矩阵CD,用户共同评分项数量矩阵CD包括若干元素 表示用户u和用户p共同评价过的项目的数量, 其中Ru和Rp分别表示用户u和用户p的评价过的项目的集合;
[0040] 建立单元六:建立项目共同评分项数量矩阵CS,项目共同评分项数量矩阵CS包括若干元素 表示同时评价过项目i和项目j的用户的数量, 其中Ri和Rj分别表示评价过项目i和项目j的用户集合;
[0041] 建立单元七:将用户共同评分项矩阵CD和项目共同评分项矩阵CS代入映射函数ωD D S S(c),得到用户相似性可信度矩阵W=ω(C),和项目相似性可信度矩阵W=ω(C),[0042] 映射函数ω(c)为
[0043]
[0044] C(θ)和C(β)分别为用户(或项目)的共同评分项数量的频率分布直方图的θ和β下侧分位点,0<θ<β<1。
[0045] 因此,在推荐效果(Precision、Recall、F1‑measure和RMSE)方面,本发明与如下算法作了对比分析:
[0046] (1)ItemKNN:常规的基于项目的协同过滤推荐算法。
[0047] (2)UserKNN:常规的基于用户的协同过滤推荐算法。
[0048] (3)PMF:经典的概率矩阵分解模型。
[0049] (4)RMF:一种融合相似性信息的推荐模型,该模型通过正则项约束方式来融合用户和项目相似性,具有较高的推荐质量。
[0050] (5)SBMF:一种基于相似性的矩阵分解模型,该推模型首先通过相似性关系确定用户簇和项目簇,然后通过簇信息提高推荐质量。
[0051] 本发明具有如下有点:该发明在概率矩阵分解模型的基础上,通过相似性关系约束潜在特征向量的夹角余弦,并通过相似性可信度影响约束权重。由于相似性可信度的约束,该发明有效减弱了评分稀疏性问题对相似性关系的影响,强化了模型对重要相似性关系的学习能力,从而缓解了评分稀疏性问题,提高了推荐效果。在Movielens数据集上的实验表明本发明显著提高了推荐效果,实验结果如图4所示。

附图说明

[0052] 图1是本发明的逻辑架构图。
[0053] 图2a是本发明中正则化参数对RMSE的影响示意图。
[0054] 图2b是本发明中正则化参数对Precision的影响示意图。
[0055] 图2c是本发明中正则化参数对Recall的影响示意图。
[0056] 图2d是本发明中正则化参数对F1‑measure的影响示意图。
[0057] 图3是本发明的评分稀疏性影响对比示意图。
[0058] 图4是本发明与现有的相关推荐算法的对比表。
[0059] 图5是本发明的实验数据集元信息表。

具体实施方式

[0060] 一、首先介绍本发明的方法原理,本发明主要包括:
[0061] 步骤1,建立用户‑项目评分矩阵R,用户‑项目评分矩阵R包括若干元素Ru,i,Ru,i表示用户u对项目i的评分,u=1,2,..N,i=1,2,3,..M,N表示推荐系统中的用户数量,M表示推荐系统中的项目数量;R R
[0062] 步骤2,建立评分指示矩阵I ,评分指示矩阵I包括若干元素 表示用户i对项目j是否进行过评分,若是,则 若否,则
[0063] 步骤3,通过余弦相似性计算用户相似度矩阵D,用户相似度矩阵D包括若干元素Du,p,Du,p表示用户u和用户p之间的相似性,
[0064]
[0065] 其中,I表示用户u和p共同评价过的项目集合, 表示用户u对所有已评价项目的平均评分, 表示用户p对所有已评价项目的平均评分;
[0066] 步骤4,通过余弦相似性计算项目相似度矩阵S,相似度矩阵S包括若干元素Si,j,Sij表示项目i与项目j之间的相似性,
[0067]
[0068] 其中,P表示同时评价过项目i和j的用户集合, 表示项目i的平均评分, 表示项目j的平均评分;
[0069] 步骤5,建立用户共同评分项数量矩阵CD,用户共同评分项数量矩阵CD包括若干元素 表示用户u和用户p共同评价过的项目的数量, 其中Ru和Rp分别表示用户u和用户p的评价过的项目的集合;
[0070] 步骤6,建立项目共同评分项数量矩阵CS,项目共同评分项数量矩阵CS包括若干元素 表示同时评价过项目i和项目j的用户的数量, 其中Ri和Rj分别表示评价过项目i和项目j的用户集合;
[0071] 步骤7,将用户共同评分项矩阵CD和项目共同评分项矩阵CS代入映射函数ω(c),得D D S S到用户相似性可信度矩阵W=ω(C),和项目相似性可信度矩阵W=ω(C),其中 为用户u和用户p对应的相似性可信度, 为项目i和项目j对应的相似性可信度;
[0072] 映射函数ω(c)为
[0073]
[0074] C(θ)和C(β)分别为用户(或项目)的共同评分项数量的频率分布直方图的θ和β下侧分位点,0<θ<β<1;
[0075] 步骤8,建立损失函数
[0076]
[0077] 其中,λU和λV为PMF中的正则化参数,λD和λS为相似性正则化参数,g(x)=1/(1+exp(‑x)),U和V分别表示用户因子矩阵和项目因子矩阵,Uu和Up分别表示用户u和用户p对应的用户因子向量,Vi和Vj分别表示项目i和项目j对应项目因子向量,cos(X,Y)为余弦函数;
[0078] 通过最小化损失函数E,得到用户因子矩阵U和项目因子矩阵V,然后通过公式来预测用户u对项目i的未知评分。
[0079] 二、下面结合具体案例对本发明的方法进行具体阐述。
[0080] 本发明是基于java环境开发,JDK版本为jdk1.7.0_79,运行环境为Ubuntu 14.04.4(64bit)。
[0081] 为了丰富实验数据集,本发明设计了专门的实验对研究内容进行验证。本发明还从MovieLens网站上下载了开放的MovieLens‑1M数据集,其包含943个用户对1682部电影的100000条评分数据。对这该数据集的相关描述如图5所示。
[0082] 在对本发明与其它5种经典方法进行对比的实验中,我们采用了5‑fold交叉验证的方法,并从集合{0.0005,0.001,0.005,0.01,0.05,0.1,0.2,0.4,0.8,1.2}中选择相似性正则化参数λD和λS,通过交叉验证确定的最佳参数设置为θ=0.1、β=0.4、λD=λS=0.05,特征维度设置为10和20(即L=10和L=20)。我们选用随机梯度下降算法作为求最优解的方法,初始学习速率为α=0.1,每次迭代的学习速率按0.99倍衰减,最大迭代次数为200。
[0083] 在本发明所提算法中,模型参数λU和λV在抗过拟合方面起着重要的作用。本发明设计了一组实验来专门探究模型参数的λU和λV的影响,在该实验中,我们让λU=λV=λ,然后λ的值从集合{0.0005,0.001,0.005,0.01,0.05,0.1,0.2,0.4,0.8,1.2}选择,除此之外,参数α、β以及L都设为最佳值。图2展示了模型参数λU和λV对该算法的影响。
[0084] 为了验证本发明所提算法在缓解评分稀疏性问题方面的优势,本发明设计了评分稀疏性影响对比实验,通过控制评分数据集的选择比例,对PMF、RMF、SBMF和SSRCF算法(本发明所提算法)的评分稀疏性影响进行探索。该实验设置的选择比例的取值集合为{50%,55%,60%,...,100%},潜在特征向量维数l设为10。图3展示了各类算法的稀疏性问题影响对比。
[0085] 本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。