CN109871479A - 一种基于用户项目类及评分可靠性的协同过滤方法 - Google Patents
一种基于用户项目类及评分可靠性的协同过滤方法 Download PDFInfo
- Publication number
- CN109871479A CN109871479A CN201910015213.4A CN201910015213A CN109871479A CN 109871479 A CN109871479 A CN 109871479A CN 201910015213 A CN201910015213 A CN 201910015213A CN 109871479 A CN109871479 A CN 109871479A
- Authority
- CN
- China
- Prior art keywords
- user
- project
- scoring
- items
- class
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000001914 filtration Methods 0.000 title claims abstract description 22
- 239000011159 matrix material Substances 0.000 claims abstract description 60
- 230000002776 aggregation Effects 0.000 claims description 3
- 238000004220 aggregation Methods 0.000 claims description 3
- 238000002474 experimental method Methods 0.000 description 12
- 238000012360 testing method Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 5
- 238000011160 research Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 239000006185 dispersion Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000009790 rate-determining step (RDS) Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于用户项目类及评分可靠性的协同过滤方法,该方法通过用户评分数据和项目信息构建用户评分矩阵和用户项目类特征矩阵,根据用户评分矩阵,加入共同评分惩罚因子计算用户评分相似度;根据用户项目特征类矩阵,通过访问项目特征类次数、项目特征类评分大于平均值数计算用户项目类偏好的相似度,在此基础上计算用户总相似度,然后通过建立最近邻居集合,在邻居评分可靠性的基础上,对未评分项目进行预测而产生推荐项目。本发明方法能够更加准确的获得用户的真实兴趣偏好,并针对指定用户个性化推荐,从而提高推荐系统的质量。
Description
技术领域
本发明涉及大数据挖掘推荐技术领域,具体涉及一种基于用户项目类及评分 可靠性的协同过滤方法。
背景技术
作为推荐系统的重要支撑方法,推荐方法是推荐系统的核心技术,因此就需 要研究如何提高推荐方法的准确度、提高用户体验。推荐方法得到了广泛的研究 及应用,如协同推荐、基于内容的推荐方法、基于关联规则的推荐算法、基于标 签的推荐算法等。目前,协同推荐方法是推荐系统中准确性较高、研究应用最成 功的推荐方法之一。协同过滤推荐方法是依据用户历史反馈行为数据,建立用户 个人的兴趣预测模型,依据历史兴趣偏好,预测指定用户对其未产生行为项目的 感兴趣程度,并依据兴趣度排序,为用户准确推荐其感兴趣的项目。协同过滤方 法研究应用较为广泛,主要有以下几类:
第一类,基于用户的协同过滤推荐方法
该方法首先通过用户历史评分数据,建立用户评分矩阵,再通过用户评分矩 阵建立用户兴趣模型,利用该模型计算用户之间兴趣相似度,然后依据相似度排 序,在众多用户群中寻找与指定用户兴趣最相似的邻居用户,最后综合相似邻居 对某一项目的评分信息,预测指定用户对其未产生行为项目的感兴趣程度,为用 户准确推荐其感兴趣的项目。
第二类:基于项目的协同过滤推荐方法
该方法首先通过用户历史评分反馈数据,建立用户评分矩阵,再通过用户评 分矩阵建立项目兴趣模型,利用该模型计算项目之间相似度,然后依据相似度排 序,在众多项目群中寻找与指定用户感兴趣项目最相似的邻居项目,最后综合相 似邻居的评分信息,预测指定用户对其未产生行为项目的感兴趣程度,为用户准 确推荐其感兴趣的项目。
以上协同过滤方法均是通过用户历史行为反馈信息建立兴趣模型,然后依据 相似度计算得到用户的兴趣,为指定用户推荐其感兴趣的项目。协同过滤虽然能 够为用户推荐其感兴趣的信息,但由于模型仅依靠用户评分数据,导致推荐准确 性不高。有学者提出基于用户项目类的协同过滤方法,但由于其仅从用户访问项 目类的次数来计算用户真实的兴趣偏好,推荐准确性较低。
综上所述,以上协同过滤算法存在的缺陷有1.计算用户项目类兴趣偏好只考 虑到其评分次数,未考虑到具体评分相对于评分标准的差值,用户项目类偏好分 析不全面。2.未考虑到邻居用户评分可靠性对评分预测准确性的影响。
发明内容
推荐方法对于推荐系统的准确性、推荐系统的用户体验至关重要,针对现有 推荐算法准确性不高、用户体验不佳以及用户兴趣计算模型考虑不全面等缺陷, 本发明提出来一种基于用户项目类及评分可靠性的协同过滤方法,在构建用户兴 趣模型时能考虑到用户项目类评分与评分标准的差值以及用户邻居评分可靠性。 能够更加准确的获得用户的真实兴趣偏好,并针对指定用户个性化推荐,从而提 高推荐系统的质量。
为了实现上述任务,本发明采用以下技术方案:
一种基于用户项目类及评分可靠性的协同过滤方法,包括以下步骤:
步骤1,挖掘并清洗用户行为数据,获取用户集合U、项目集合I以及所有 项目的特征类集合,计算用户集合U中任意用户Um和用户Un的兴趣总相似度:
步骤1.1,构建所有用户与所有项目的评分矩阵X,矩阵X中的元素xij表示 第i个用户ui对第j个项目的评分;
提取I中所有项目以及C中所有特征类构建项目的特征类矩阵Y,矩阵Y 中的元素Yij表示第i个项目是否属于第j个特征类;
依次提取评分矩阵X中的每一行,在该行中寻找用户所有评过分的项目, 综合项目特征类矩阵Y,将其合并映射为该用户评过分的所有项目,建立用户项 目特征类评分矩阵S;
步骤1.2,计算用户Um和用户Un的评分相似度:
上式中,P表示项目集合I中用户Um和用户Un共同访问过的项目的集合, rmj和rnj分别表示矩阵X中用户Um和用户Un对项目集合P中第p个项目ip的评 分,表示用户Um对P中所有项目的评分平均值,表示用户Un对P中所有 项目的评分平均值;
步骤1.3,统计用户Um和用户Un评分过的项目交集数Im∩In、用户Um和用 户Un评分的过的项目并集数Im∪In,按照公式2计算用户Um和用户Un的共同 评分权重因子Wmn:
步骤1.4,根据式3计算出用户Um和用户Un最终的评分相似度:
sSim(m,n)=sim(m,n)×Wmn 式3
步骤1.5,计算用户对特征类集合C中第t个特征类访问次数偏好:
其中,Fmt为用户Um对项目的特征类集合C中第t个特征类的访问次数,|Im| 为矩阵X中用户Um访问过的项目总数;
步骤1.6,计算出用户对特征类集合C中第t个特征类评分偏好程度:
其中,Nmt为用户Um的项目特征类评分矩阵S中用户Um在特征类i中评分 大于评分标准的平均值的项目的个数;
步骤1.7,计算用户对特征类集合C中第t个特征类的兴趣偏好:
Hmt=Xmt×Ymt 式6
步骤1.8,分别计算用户Um和用户Un对共同访问过的所有项目特征类的兴 趣偏好度,通过式7计算用户Um和用户Un之间的项目特征类兴趣偏好相似度:
上式中Q表示用户Um和用户Un共同访问过的特征类的集合,Hme和Hne分 别表示用户Um和用户Un对共同访问过的特征类集合Q中第e个特征类ce的兴 趣偏好,分别表示用户Um、用户Un对集合Q中所有特征类的兴趣偏 好的平均值;
步骤1.9,通过式8计算用户Um和用户Un的兴趣总相似度:
Sim(m,n)=α×hSim(m,n)+β×sSim(m,n) 式8
其中,α取值范围为0.1~0.9之间,α+β=1;
步骤2,对于用户Um,首先根据步骤1中的方法分别计算用户Um与用户集 合中任一用户的兴趣总相似度,选取与用户Um兴趣总相似度最高的前k个用户 组成用户Um的最近邻居集合N(m);
通过式9计算出用户Um的最近邻居集合N(m)中的第b个邻居用户Ub的评 分可靠性:
上式中O表示用户Um和用户Ub共同评过分的项目集合,rbl表示矩阵X中 用户Ub对项目集合O中第l个项目il的评分,表示用户Ub对O中项目的评 分平均值;
根据式10对用户Um没有评过分的项目ij计算预测评分Rj(m):
上式中,sim(m,b)为用户Um与用户Ub的兴趣总相似度,表示用户Um对 矩阵X中所有项目评分的平均值,N(m)表示用户Um最近邻居集合,Re(b)为邻 居用户Ub的评分可靠性,ij表示矩阵X中第j个用户Um没有评过分的项目,rbj表示矩阵X中用户Ub对项目ij的评分,表示矩阵X中用户Ub所有评过分的 项目的评分的平均值;
步骤3,对于待推荐用户Ud,确定用户Ud感兴趣的项目:
计算待推荐用户Ud所有未评分的项目的评分预测值Rj(d),并根据Rj(d)对项 目进行排序,并将预测评分排序靠前的项目作为感兴趣的项目推荐给指定待推荐 用户Ud。
进一步地,步骤1.9中参数α的最佳取值的确定方法为:
不断调节公式8中α的值,观察公式11中MAE的值,获得使评分预测误差MAE最小的α,该值为α最佳取值:
T表示在矩阵X中用户Um所有未评分项目的集合,ij为该集合中的一个项 目,z为用户Um所有未评分项目的数量,Rj(m)为对项目ij的预测评分,rj(m)为 用户Um对项目ij的真实评分。
本发明具有以下技术特点:
1.提高用户相似度准确性
本发明在计算用户兴趣相似度的过程中不仅考虑到用户项目评分相似度,并 且引入用户项目类兴趣偏好,然后在计算用户项目类兴趣偏好时不仅仅以用户项 目类访问次数为标准,还综合了用户项目类的具体偏好,即用户评分大于评分标 准代表其对该项目类感兴趣。
2.融合了评分可靠性
普通算法未考虑到邻居用户评分可靠性,而本方法引入可靠性因子,用户评 分越离散,可靠度越高,常用的衡量数据离散程度的指标有平均差、方差、标准 差、变异系数等。
本方法使用变异系数表示用户评分可靠性,由于前三个指标只考虑到数据的 绝对量,是一个有量纲的指标,不能完全代表数据的分布离散程度。而变异系数 采用标准差除以平均值的方法去除了不同数据之间量纲的影响,更方便各数据之 间离散程度的比较。
3.提高推荐准确度
本方法综合提高用户相似度准确性,优化最近邻居选择准确性,引入评分可 靠性因子,对指定待推荐用户的项目评分预测更加准确,准确推荐用户真正感兴 趣的项目,从而提高推荐系统准确性,优化用户体验。
附图说明
图1是推荐方法的总体流程图;
图2是本发明的详细方法流程图;
图3是用户Um的用户项目特征类矩阵映射过程;
图4是权重系数α与MAE的关系;
图5三种算法在不同邻居数目与MAE的关系。
具体实施方式
网站在电影推荐、新闻推荐等基于用于兴趣的推荐中,为了保证对用户历史 中用户真实兴趣偏好的准确挖掘、对用户相似度的准确计算以及保证精确筛选并 推荐给用户其真正感兴趣的项目,需要建立高准确度的用户兴趣相似度计算模型, 优化推荐方法。而大多推荐方法计算用户项目类兴趣偏好只考虑到其评分次数, 未考虑到具体评分相对于评分标准的差值,用户项目类偏好分析不全面;另外, 未考虑到邻居用户评分可靠性对评分预测准确性的影响。
针对现有推荐方法存在的推荐准确度较低以及用户体验差的现状,本发明提 出了一种基于用户项目类及评分可靠性的协同过滤方法,使得推荐系统能够准确 挖掘用户真实兴趣偏好,准确计算用户相似度以及保证精确筛选并推荐给用户其 真正感兴趣的项目。
一、方法的详细步骤
本发明方法产生推荐总体流程如图1所示,首先收集用户行为数据以及项目 行为数据,并将数据清洗后用矩阵表示,然后进行用户相似度计算,筛选最近邻 居后评分预测,最后产生推荐。
本发明提出了一种基于用户项目类及评分可靠性的协同过滤方法,该方法对 准确挖掘用户兴趣度,优化了相似度计算方法,同时对最近邻居进行了评分可靠 性惩罚,以此减小传统方法对用户真实兴趣的预测误差,从而为用户准确推荐其 感兴趣的项目。如图2所示,该方法包括以下步骤:
步骤1,挖取并清洗用户行为数据,获取用户集合U={U1,U2,U3,…Ua},项目 集合I={i1,i2,i3...ib}以及所有项目的特征类集合C={c1,c2,c3...cc}。首先计算得到用 户集合U中任意用户Um和用户Un的兴趣总相似度。
步骤1.1,获取用户行为数据集合,其中用户集合为U,项目集合为I,所有 项目的特征类集合为C;
首先提取所有用户集合U中所有用户和所有项目集合I中所有项目,如图3 所示,构建所有用户与所有项目的评分矩阵X,其中,a为用户数,b为项目数, c为特征类别数。在评分矩阵X中,xij(i=1,2,...a;j=1,2,...,b)为第i个用户ui对 第j个项目的评分,如第i个用户未对项目j评分,则X中对应的用户项目评分xij置为0。
以电影推荐为例,该步就是建立所有用户对所有电影的评分矩阵,如果用户 对某电影未评分则置为0。一个电影(项目)可能属于多种电影类型(特征类), 如既属于科幻片也属于战争片。
接下来提取I中所有项目以及C中所有特征类构建项目的特征类矩阵Y,其 中,b为项目数,c为项目的特征类别数,Yij(i=1,2,...b;j=1,2,...,c)表示第i个 项目是否属于第j个特征类,是则置为1,否则置为0。以电影推荐为例,某电 影既属于科幻片也属于战争片,该步就是建立所有电影对所有电影类别的矩阵, 电影属于该类别则置为1,否则置为0。
最后,通过评分矩阵X和项目的特征类矩阵Y建立每一个用户的项目特征 类评分矩阵S:
依次提取评分矩阵X中的每一行,在该行中寻找用户所有评过分的项目, 综合项目特征类矩阵Y,将其合并映射为该用户评过分的所有项目,建立用户项 目特征类评分矩阵S,映射规则如下:
X中第m(m=1,2,...,a)行数据xm1,xm2...,xmb即为用户Um对项目集合I中所有 项目的评分,也即用户的Um项目评分矩阵;Y矩阵为项目集合I中所有项目对 应的项目特征类矩阵。利用用户Um对项目集合I中每一个项目的评分依次替换 Y中对应项目行中的数据(即对应项目行中Yij的值为1的数据)得到用户Um项目特征类评分矩阵S,如图3中所示;然后删除Sm矩阵中用户Um未评过分的 项目所对应的行。以电影推荐为例,如用户Um看过电影A对其评分4,电影A 既属于科幻片又属于战争片中,则将矩阵Y中A的科幻片和战争片置为1,然后用4替换电影矩阵Y中A行中所有的1,该步就是建立用户Um对应的项目特 征类评分矩阵。
按照上述方法,可建立用户集合中每一个用户对应的项目特征类评分矩阵S。
步骤1.2,对于用户集合U中任意用户Um和用户Un,按照下式1计算用户 Um和用户Un的评分相似度:
上式中,P表示项目集合I中用户Um和用户Un共同访问过的项目的集合, rmj和rnj分别表示矩阵X中用户Um和用户Un对项目集合P中第p个项目ip的评 分,表示用户Um对P中所有项目的评分平均值,表示用户Un对P中所有 项目的评分平均值;
步骤1.3,如果两个用户之间共同评分的项目数很少,而根据Pearson相关系 数计算得到的评分相似度会相对偏高。为了解决这个问题,本方案引入用户的共 同评分权重因子:
统计用户Um和用户Un评分过的项目交集数Im∩In、用户Um和用户Un评分 的过的项目并集数Im∪In,按照公式2计算用户Um和用户Un的共同评分权重 因子Wmn:
步骤1.4,根据式3计算出用户Um和用户Un最终的评分相似度:
sSim(m,n)=sim(m,n)×Wmn 式3
步骤1.5,计算用户对特征类集合C中第t(t=1,2,...,c)个特征类ct访问次数 偏好:
以用户Um为例,根据步骤1.1,根据用户Um的项目特征类评分矩阵S,获 得用户Um对项目的特征类集合C中第t个特征类ct的访问次数;即矩阵S的第 t列中不为0的评分个数Fmt,统计矩阵X中用户Um访问过的项目总数|Im|,并 按式4计算用户Um对特征类集合C中特征类t的访问次数偏好Xmt:
步骤1.6,计算出用户对特征类集合C中第t个特征类ct评分偏好程度。
以用户Um为例,计算评分标准的平均值,如评分标准为1~5分,则评分标 准的平均值为(1+5)/2,然后统计用户Um的项目特征类评分矩阵S中用户Um在 特征类i中评分大于评分标准的平均值的项目的个数,即S中第t列中评分大于 评分标准的平均值的项目个数Nmt,然后通过式5计算出用户Um在特征类C中 第i个特征类的评分偏好程度Ymt:
步骤1.7,计算用户对特征类集合C中第t个特征类ct的兴趣偏好。
以用户Um为例,综合步骤1.5访问次数偏好和1.6评分偏好程度,计算用 户Um对集合C中第t个特征类的兴趣偏好:
Hmt=Xmt×Ymt 式6
步骤1.8,循环以上步骤分别计算用户Um和用户Un对共同访问过的所有项 目特征类的兴趣偏好度,通过式7计算用户Um和用户Un之间的项目特征类兴 趣偏好相似度:
上式中Q表示用户Um和用户Un共同访问过的特征类的集合,以电影为例, 表示用户共同看过的电影的类型。Hme和Hne分别表示用户Um和用户Un对共同 访问过的特征类集合Q中第e个特征类ce的兴趣偏好(通过步骤1.7计算), 分别表示用户Um、用户Un对集合Q中所有特征类的兴趣偏好的平均值。
步骤1.9,通过式8计算用户Um和用户Un的兴趣总相似度,对于最终的评 分相似度、项目特征类兴趣偏好相似度赋予不同的权重;其中α取值范围为 0.1~0.9之间,α+β=1:
Sim(m,n)=α×hSim(m,n)+β×sSim(m,n) 式8
步骤2,对于用户Um,首先根据步骤1中的方法分别计算用户Um与用户集 合中任一用户的兴趣总相似度,选取与用户Um兴趣总相似度最高的前k个用户 组成用户Um的最近邻居集合N(m);
步骤2.1,由于用户评分习惯差异,有的用户评分总体较低,有的用户则总 体偏高,需要引入邻居用户评分可靠性,变异系数采用标准差除以平均值的方法 去除了不同数据之间量纲的影响,更方便各数据之间离散程度的比较,通过式9 计算出用户Um的最近邻居集合N(m)中的第b个邻居用户Ub的评分可靠性:
上式中O表示用户Um和用户Ub共同评过分的项目集合,rbl表示矩阵X中 用户Ub对项目集合O中第l个项目il的评分,表示用户Ub对O中项目的评 分平均值;
通过上面的公式分别计算用户Um所有最近邻居的评分可靠性,通过所有邻 居的评分可靠性来计算预测评分。
根据式10对用户Um没有评过分的项目ij计算预测评分Rj(m):
上式中,表示用户Um对矩阵X中所有项目评分的平均值,N(m)表示用户 Um最近邻居集合,Ub为N(m)的中一个邻居,sim(m,b)为通过公式8计算的用户 Um与用户Ub的兴趣总相似度,Re(b)为邻居用户Ub的评分可靠性,ij表示矩阵X 中第j个用户Um没有评过分的项目,rbj表示矩阵X中用户Ub对项目ij的评分, 表示矩阵X中用户Ub所有评过分的项目的评分的平均值。
通过步骤2.1循环计算训练集中用户Um所有未评分的项目的评分预测值, 公式8中α其取值范围为0.1~0.9之间,不断调节公式8中α的值,观察公式11 中MAE的结果,获得使评分预测误差MAE最小的α,该值为α的最佳取值。
上式中,T表示在矩阵X中用户Um所有未评分项目的集合,ij为该集合中 的一个项目,z为用户Um所有未评分项目的数量,Rj(m)为对项目ij的预测评分, rj(m)为用户Um对项目ij的真实评分。通过选择一些用户Um真实评分过的项目 作为训练集,利用式10计算这些项目的预测评分,然后利用式11即可确定最优 参数α。
步骤3,对于待推荐用户Ud∈U,确定用户Ud感兴趣的项目:
首先使用步骤2中调节确定的最优参数α,根据步骤1计算用户Ud和其他 用户兴趣总相似度,然后按照步骤2筛选获得用户Ud的最近邻居集合N(d),并 计算用户Ud最近邻居的可靠性,最后通过公式10循环计算待推荐用户Ud所有 未评分的项目的评分预测值Rj(d),并根据Rj(d)对项目进行排序,并将预测评分 排序靠前的N(N>1)个项目作为感兴趣的项目推荐给指定待推荐用户Ud。
二、本方法中相关参数的确定
实验一:精确控制步骤一中参数α,其取值范围为0.1~0.9之间,改变α参 数的值,观察其对于预测评分准确性的影响,选取准确的α值,β的值使得评分 预测误差最小。
步骤1,仿真实验场景初始化
申请人利用真实电影数据集进行训练,本实验使用的数据是常用的由美国GroupLens研究团队收集的MovieLens数据集。本文选取的数据集有100000条 评分记录,其中涉及的用户有943个,电影有1682部。且每一位用户都参与交 互评分过电影至少20部,具体评分是1~5,评分越高表示越喜欢。此数据集包 括用户、电影的基本属性信息,电影的类型分为动作、冒险、动画等18种,每 一部电影可能属于一种或多种类型。这个数据集的数据稀疏度为:
表1电影评分稀疏程度
在本实验中,训练集是数据集的80%,剩余20%作为测试集。
步骤2,本实验先根据表2找到权重系数α的最优值。在每种控制参数α下 的取值下通过九次实验,每次实验记录在预测过程中公式11得到的MAE的值, 观察每种α下对于MAE值的影响。
表2权重系数α和β
步骤3,分析与处理实验数据
如图4所示,表示了用户预测评分与测试集中用户真实评分的误差MAE随 着权重系数α的改变而变化,如图4所示变化趋势,可以可知,当α=0.6时MAE 的值为最优。
三、对比试验
下面我们通过一组对比试验来验证本发明方法的性能以及相对于其他方法 的优势,实验主要对以下三种方法的性能进行比较:
(1)UBCF算法:传统的基于用户的协同过滤方法
(2)UPCF算法:该算法是基于用户项目属性偏好的协同过滤方法,该方法 用皮尔逊相关系数计算出用户评分相似度,然后用项目类评分平均分和用户总评 分平均分的比值表示用户项目属性偏好,最后综合计算用户总相似度。该方法只 考虑用户评分,未考虑到用户评分与评分标准差值,也未考虑到邻居用户评分可 靠性对评分预测准确性的影响。
(3)URCF算法:本发明的方法
实验主要从以下方面来证明本发明的优势:
1)评分预测算法的误差MAE
2)算法的准确率和召回率
仿真实验初始化:
申请人利用真实电影数据集进行训练,本实验使用的数据是常用的由美国GroupLens研究团队收集的MovieLens数据集。本文选取的数据集有100000条 评分记录,其中涉及的用户有943个,电影有1682部。且每一位用户都参与交 互评分过电影至少20部。数据分为训练集和测试集。
实验主要从评分预测准确度来进行评估算法准确度,它用于比较预测评分与 实际评分的差异大小。一般情况下用的评测指标有MAE(Mean Absolute Error, 平均绝对误差),MAE采用预测评分与实际评分的绝对值差异预测算法的误差, 如公式11所示,利用其中的MAE值来进行评估。
(1)评分预测算法的误差MAE
仿真实验过程:
在该实验中,通过在同一个数据集上做实验在不同的邻居数量下比较本发明 方法和UPCF的算法以及传统UBCF算法。记录对比两个算法评分预测准确度, 即预测评分与实际评分的绝对值差异预测算法的误差。
实验结果:
如图5,两个不同算法分别在不同邻居用户数量上实验的最终推荐效果。从 上图的结果分析,明显可知本文提出的算法从邻居个数为40起,推荐质量趋于 平缓;UPCF的算法是从邻居个数为30起,算法结果趋于平缓。但综合显示, 本文的算法在每个数据点上MAE的值都低于相对比的算法,即每个数据点上本 文提供的算法的推荐质量较高。因此,在计算用户偏好时引入特征评分并比较评 分高低确实能够进一步真实反应用户偏好,提高推荐系统的质量。
(2)算法的准确率和召回率
仿真实验过程:
在该实验中,通过在同一个数据集上做实验在不同的邻居数量下比较本发明方法和UPCF的算法以及传统UBCF算法。随着目标用户邻居个数的增加,本章算 法的推荐结果在准确率和召回率上的值都在提升,即推荐质量在不断提高。且当 邻居个数为50左右时数值达到稳定。为了更好的与其余算法进行比较,突出本 章算法的优势;本章在相同的实验环境下取k值为50对其余三个算法分别进 行实验。
实验结果:
如表3所示实验得到的推荐结果的准确率及召回率。从表3中可知,本发明 算法与传统协同过滤算法UBCF以及UPCF提出的算法相比,本发明算法在推 荐结果的准确率和召回率明显高于其他两个个算法,证明了本章算法推荐结果准 确性的优势。
表3几种算法准确率和召回率的比较
Claims (2)
1.一种基于用户项目类及评分可靠性的协同过滤方法,其特征在于,包括以下步骤:
步骤1,挖掘并清洗用户行为数据,获取用户集合U、项目集合I以及所有项目的特征类集合,计算用户集合U中任意用户Um和用户Un的兴趣总相似度:
步骤1.1,构建所有用户与所有项目的评分矩阵X,矩阵X中的元素xij表示第i个用户ui对第j个项目的评分;
提取I中所有项目以及C中所有特征类构建项目的特征类矩阵Y,矩阵Y中的元素Yij表示第i个项目是否属于第j个特征类;
依次提取评分矩阵X中的每一行,在该行中寻找用户所有评过分的项目,综合项目特征类矩阵Y,将其合并映射为该用户评过分的所有项目,建立用户项目特征类评分矩阵S;
步骤1.2,计算用户Um和用户Un的评分相似度:
上式中,P表示项目集合I中用户Um和用户Un共同访问过的项目的集合,rmj和rnj分别表示矩阵X中用户Um和用户Un对项目集合P中第p个项目ip的评分,表示用户Um对P中所有项目的评分平均值,表示用户Un对P中所有项目的评分平均值;
步骤1.3,统计用户Um和用户Un评分过的项目交集数Im∩In、用户Um和用户Un评分的过的项目并集数Im∪In,按照公式2计算用户Um和用户Un的共同评分权重因子Wmn:
步骤1.4,根据式3计算出用户Um和用户Un最终的评分相似度:
sSim(m,n)=sim(m,n)×Wmn 式3
步骤1.5,计算用户对特征类集合C中第t个特征类访问次数偏好:
其中,Fmt为用户Um对项目的特征类集合C中第t个特征类的访问次数,|Im|为矩阵X中用户Um访问过的项目总数;
步骤1.6,计算出用户对特征类集合C中第t个特征类评分偏好程度:
其中,Nmt为用户Um的项目特征类评分矩阵S中用户Um在特征类i中评分大于评分标准的平均值的项目的个数;
步骤1.7,计算用户对特征类集合C中第t个特征类的兴趣偏好:
Hmt=Xmt×Ymt 式6
步骤1.8,分别计算用户Um和用户Un对共同访问过的所有项目特征类的兴趣偏好度,通过式7计算用户Um和用户Un之间的项目特征类兴趣偏好相似度:
上式中Q表示用户Um和用户Un共同访问过的特征类的集合,Hme和Hne分别表示用户Um和用户Un对共同访问过的特征类集合Q中第e个特征类ce的兴趣偏好,分别表示用户Um、用户Un对集合Q中所有特征类的兴趣偏好的平均值;
步骤1.9,通过式8计算用户Um和用户Un的兴趣总相似度:
Sim(m,n)=α×hSim(m,n)+β×sSim(m,n) 式8
其中,α取值范围为0.1~0.9之间,α+β=1;
步骤2,对于用户Um,首先根据步骤1中的方法分别计算用户Um与用户集合中任一用户的兴趣总相似度,选取与用户Um兴趣总相似度最高的前k个用户组成用户Um的最近邻居集合N(m);
通过式9计算出用户Um的最近邻居集合N(m)中的第b个邻居用户Ub的评分可靠性:
上式中O表示用户Um和用户Ub共同评过分的项目集合,rbl表示矩阵X中用户Ub对项目集合O中第l个项目il的评分,表示用户Ub对O中项目的评分平均值;
根据式10对用户Um没有评过分的项目ij计算预测评分Rj(m):
上式中,sim(m,b)为用户Um与用户Ub的兴趣总相似度,表示用户Um对矩阵X中所有项目评分的平均值,N(m)表示用户Um最近邻居集合,Re(b)为邻居用户Ub的评分可靠性,ij表示矩阵X中第j个用户Um没有评过分的项目,rbj表示矩阵X中用户Ub对项目ij的评分,表示矩阵X中用户Ub所有评过分的项目的评分的平均值;
步骤3,对于待推荐用户Ud,确定用户Ud感兴趣的项目:
计算待推荐用户Ud所有未评分的项目的评分预测值Rj(d),并根据Rj(d)对项目进行排序,并将预测评分排序靠前的项目作为感兴趣的项目推荐给指定待推荐用户Ud。
2.如权利要求1所述的基于用户项目类及评分可靠性的协同过滤方法,其特征在于,步骤1.9中参数α的最佳取值的确定方法为:
不断调节公式8中α的值,观察公式11中MAE的值,获得使评分预测误差MAE最小的α,该值为α最佳取值:
T表示在矩阵X中用户Um所有未评分项目的集合,ij为该集合中的一个项目,z为用户Um所有未评分项目的数量,Rj(m)为对项目ij的预测评分,rj(m)为用户Um对项目ij的真实评分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910015213.4A CN109871479A (zh) | 2019-01-08 | 2019-01-08 | 一种基于用户项目类及评分可靠性的协同过滤方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910015213.4A CN109871479A (zh) | 2019-01-08 | 2019-01-08 | 一种基于用户项目类及评分可靠性的协同过滤方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109871479A true CN109871479A (zh) | 2019-06-11 |
Family
ID=66917433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910015213.4A Pending CN109871479A (zh) | 2019-01-08 | 2019-01-08 | 一种基于用户项目类及评分可靠性的协同过滤方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109871479A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947987A (zh) * | 2019-03-22 | 2019-06-28 | 江西理工大学 | 一种交叉协同过滤推荐方法 |
CN111079009A (zh) * | 2019-12-11 | 2020-04-28 | 中国地质大学(武汉) | 一种用于政务地图服务的用户兴趣检测方法及系统 |
CN112100483A (zh) * | 2020-08-07 | 2020-12-18 | 西安工程大学 | 一种融合用户兴趣权重的关联规则推荐方法 |
CN112364254A (zh) * | 2020-10-09 | 2021-02-12 | 天津大学 | 用户相似度改进的协同过滤推荐系统及方法 |
CN113011950A (zh) * | 2021-03-30 | 2021-06-22 | 吉林亿联银行股份有限公司 | 一种产品推荐方法及装置 |
CN115292302A (zh) * | 2022-10-08 | 2022-11-04 | 北京天健源达科技股份有限公司 | 数据质量分值的确定方法及系统 |
CN116560598A (zh) * | 2023-07-11 | 2023-08-08 | 北京普云特科技有限公司 | 一种基于数据交换的智能打印系统 |
CN117648497A (zh) * | 2024-01-29 | 2024-03-05 | 贵州大学 | 一种基于大数据实现用户信息智能采集方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132964A (zh) * | 2017-11-23 | 2018-06-08 | 西北大学 | 一种基于用户对项目类评分的协同过滤方法 |
-
2019
- 2019-01-08 CN CN201910015213.4A patent/CN109871479A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132964A (zh) * | 2017-11-23 | 2018-06-08 | 西北大学 | 一种基于用户对项目类评分的协同过滤方法 |
Non-Patent Citations (1)
Title |
---|
刘贞贞: "基于用户兴趣的推荐技术研究与应用", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947987B (zh) * | 2019-03-22 | 2022-10-25 | 江西理工大学 | 一种交叉协同过滤推荐方法 |
CN109947987A (zh) * | 2019-03-22 | 2019-06-28 | 江西理工大学 | 一种交叉协同过滤推荐方法 |
CN111079009B (zh) * | 2019-12-11 | 2023-05-26 | 中国地质大学(武汉) | 一种用于政务地图服务的用户兴趣检测方法及系统 |
CN111079009A (zh) * | 2019-12-11 | 2020-04-28 | 中国地质大学(武汉) | 一种用于政务地图服务的用户兴趣检测方法及系统 |
CN112100483A (zh) * | 2020-08-07 | 2020-12-18 | 西安工程大学 | 一种融合用户兴趣权重的关联规则推荐方法 |
CN112100483B (zh) * | 2020-08-07 | 2023-09-19 | 西安工程大学 | 一种融合用户兴趣权重的关联规则推荐方法 |
CN112364254A (zh) * | 2020-10-09 | 2021-02-12 | 天津大学 | 用户相似度改进的协同过滤推荐系统及方法 |
CN113011950A (zh) * | 2021-03-30 | 2021-06-22 | 吉林亿联银行股份有限公司 | 一种产品推荐方法及装置 |
CN115292302A (zh) * | 2022-10-08 | 2022-11-04 | 北京天健源达科技股份有限公司 | 数据质量分值的确定方法及系统 |
CN115292302B (zh) * | 2022-10-08 | 2023-02-17 | 北京天健源达科技股份有限公司 | 数据质量分值的确定方法及系统 |
CN116560598A (zh) * | 2023-07-11 | 2023-08-08 | 北京普云特科技有限公司 | 一种基于数据交换的智能打印系统 |
CN117648497A (zh) * | 2024-01-29 | 2024-03-05 | 贵州大学 | 一种基于大数据实现用户信息智能采集方法及系统 |
CN117648497B (zh) * | 2024-01-29 | 2024-04-30 | 贵州大学 | 一种基于大数据实现用户信息智能采集方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109871479A (zh) | 一种基于用户项目类及评分可靠性的协同过滤方法 | |
CN104731954B (zh) | 基于群透视音乐推荐方法与系统 | |
CN103377250B (zh) | 基于邻域的top‑k推荐方法 | |
CN106709037B (zh) | 一种基于异构信息网络的电影推荐方法 | |
CN107220365A (zh) | 基于协同过滤与关联规则并行处理的精准推荐系统及方法 | |
CN109241405A (zh) | 一种基于知识关联的学习资源协同过滤推荐方法及系统 | |
CN111444394A (zh) | 获取实体间关系表达的方法、系统和设备、广告召回系统 | |
CN109948066B (zh) | 一种基于异构信息网络的兴趣点推荐方法 | |
CN110532351B (zh) | 推荐词展示方法、装置、设备及计算机可读存储介质 | |
CN107256241B (zh) | 基于网格与差异替换改进多目标遗传算法的电影推荐方法 | |
CN107045506A (zh) | 评估指标获取方法及装置 | |
CN105608650A (zh) | 一种菜品搭配推荐方法及其系统 | |
CN105138653A (zh) | 一种基于典型度和难度的题目推荐方法及其推荐装置 | |
CN108132964B (zh) | 一种基于用户对项目类评分的协同过滤方法 | |
CN104778237A (zh) | 一种基于关键用户的个性化推荐方法和系统 | |
CN107391670A (zh) | 一种融合协同过滤和用户属性过滤的混合推荐方法 | |
CN109840833A (zh) | 贝叶斯协同过滤推荐方法 | |
CN106789338B (zh) | 一种在动态大规模社交网络中发现关键人物的方法 | |
CN109977299A (zh) | 一种融合项目热度和专家系数的推荐算法 | |
CN105843876A (zh) | 多媒体资源的质量评估方法和装置 | |
CN107688647A (zh) | 一种基于协同过滤的学习复习题库推荐方法 | |
CN117708222A (zh) | 面向客户细分的关联规则挖掘方法 | |
CN102411577A (zh) | 一种用于基于标杆对推广关键词进行分析的方法与设备 | |
US8122056B2 (en) | Interactive aggregation of data on a scatter plot | |
CN114757712A (zh) | 选址的推荐方法、装置、电子设备和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190611 |