CN104899246B - 基于模糊机制用户评分邻域信息的协同过滤推荐方法 - Google Patents
基于模糊机制用户评分邻域信息的协同过滤推荐方法 Download PDFInfo
- Publication number
- CN104899246B CN104899246B CN201510170406.9A CN201510170406A CN104899246B CN 104899246 B CN104899246 B CN 104899246B CN 201510170406 A CN201510170406 A CN 201510170406A CN 104899246 B CN104899246 B CN 104899246B
- Authority
- CN
- China
- Prior art keywords
- user
- project
- scoring
- similarity
- score
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于模糊机制用户评分邻域信息的协同过滤推荐方法。其技术方案是:1.获取用户对项目的评分信息,创建评分矩阵;2.根据评分矩阵计算用户评分隶属度,根据项目上下文信息计算项目对相似度的贡献率;3.根据评分隶属度和相似度的贡献率,构建用户喜欢不喜欢相似度;4.对评分数目小的用户进行相似度值的缩减,构建用户Jnum相似度;5.根据用户喜欢不喜欢相似度和用户Jnum相似度,构建用户最终相似度;6.根据最终相似度,选取相似度值最高的前K个作为参考邻居用户,完成对目标用户的预测。实验仿真结果表明,本发明比传统协同过滤算法能得到更好的推荐质量,可用于向用户推荐感兴趣的项目。
Description
技术领域
本发明属于协同过滤推荐技术领域,具体涉及一种基于模糊机制的用户评分邻域信息来构建用户相似度的协同过滤推荐方法,可用于网络项目推荐。
背景技术
互联网技术的迅速发展加重了信息过载的问题,面对海量的数据用户很难发现自己感兴趣的内容。推荐系统在上世纪90年代首次被提出便得到了广泛的关注,该系统根据用户的历史行为信息,建立用户与项目,例如:产品、电影、音乐等之间得关系,找到用户感兴趣的项目并将其推荐给用户。近些年来推荐系统应用日益广泛,如电子商务,图书等多个方面。一些网站通过收集和分析用户的购买历史,预测用户感兴趣的商品并将其推荐给用户,从而提高了销售业务。
目前,已存在许多经典的推荐系统,协同过滤推荐算法是推荐系统中最早被提出并得到广泛应用的一种推荐算法。协同过滤推荐技术主要分为两大类:基于模型的协同过滤和基于内存的协同过滤。与传统的基于内容的推荐不同,协同过滤算法的核心思想是分析用户的兴趣,在用户群中找到与目标用户相似的邻居用户。通过分析这些邻居用户对某一物品的综合评价,最后形成该目标用户对此物品的喜好程度的预测,推荐形式有评分预测及Top-N推荐。
协同过滤推荐算法主要通过相似度来预测用户对项目的评分,相似度可进一步分为基于用户的相似度和基于项目的相似度,相似度的度量准确性直接关系整个推荐系统的推荐质量。与一般的推荐系统相比,协同过滤推荐系统具有两大优势:一是可以发现用户潜在的但用户自身尚未觉察的兴趣偏好;二是对推荐的对象没有特殊的要求,即可以处理电影、音乐等难以用文本结构化的表示对象。但是随着电子商务系统的规模的不断扩大,用户数目和项目的数据急剧增加,加剧了用户项目的评分数据的稀疏特性。在用户评分数据极端稀疏的情况下,难以找到用户间的共同评分项目,使得传统的相似性度量方法存在着一定的偶然性,计算得到的目标用户及项目的最近邻不准确甚至无法计算相似性,从而导致推荐系统的推荐质量下降。
发明内容
本发明的目的在于针对已有协同过滤推荐算法中的不足,提出一种基于模糊机制的用户评分上下文信息来构建用户的相似度,以有效的缓解用户数据稀疏带来的问题,提高推荐系统的质量。
本发明的技术方案是:运用模糊逻辑创建用户的评分隶属度函数,缓解尖锐的评分边界问题。通过项目的上下文信息,充分挖掘项目对用户相似度的贡献率。通过惩罚评分数目较小的用户的相似度,缓解评分数据的稀疏性带来的难以描述用户偏好问题。其实现步骤包括如下:
(1)从原始的用户-物品-评分-时间这四维数据中获取用户U对项目I的评分信息,创建用户对项目的评分矩阵Rn×p,其中n代表用户的数目,p代表项目的数目;
(2)根据用户的评分矩阵,确定任意两个用户a与用户b的相似度值sim(a,b):
(2a)运用软划分机制,分别构建用户u对项目i评分的喜欢隶属度Lu,i和用户u对项目i评分的不喜欢隶属度Du,i:
其中ru,i为用户u对项目i的评分,m为推荐系统用户评分的最小值,M为推荐系统用户评分的最大值,对于评分范围在1到5之间的数值,则m为1,M为5;
(2b)运用项目评分的上下文信息,分别构建项目i评分的喜欢贡献率因子Cli和项目i评分的不喜欢贡献率因子Cdi:
其中#Ui表示整体用户对项目i的评分人数;
(2c)运用如下改进的Jaccard函数Jnum(a,b),对评分数目小于平均项目数的用户进行相似度值的缩减:
其中
其中#Ia表示用户a对整体项目的评分数目,#Ib表示用户b对整体项目的评分数目,表示整体用户的平均项目数,Q3为用户评分数目的四分之三分位数;
(2d)构建任意两个用户a与b喜欢不喜欢的相似函数LD(a,b)如下:
其中
其中表示用户u对已经评价项目的评分平均值;
2e)结合改进的Jaccard函数Jnum(a,b)和喜欢不喜欢相似函数LD(a,b),构建任意两个用户a与b最终的相似度函数sim(a,b):
sim(a,b)=LD(a,b)·Jnun(a,b);
(3)根据步骤(2)所构建的任意两个用户a与b最终相似度函数sim(a,b),计算所有用户两两之间的相似度,选择与目标用户相似程度最高的k个邻居用户,根据所选的k个邻居的项目评分数据,对目标用户未评分项目进行评分预测;
(4)根据预测评分,对目标用户未评分项目进行分数值从大到小的排列,筛选出前N个项目即产生对用户的推荐项目,2≤N≤20。
本发明与现有的技术相比具有以下技术优势:
1)本发明通过模糊逻辑构建用户的评分隶属度函数,缓解了传统评分硬划分存在的尖锐边界问题。
2)本发明通过项目的上下文信息,充分挖掘整体用户对项目的偏好程度进而构建项目对相似度的贡献率,克服了项目的单一权值对相似度的构建带来的不准确性问题。
3)本发明通过改进的Jaccard相似函数,使评分数目较小的用户的相似度处以惩罚,提高了推荐的准确率。
附图说明
图1是本发明的实现流程图;
图2是本发明和其它对比方法的平均绝对误差随k个邻居用户数量变化的仿真结果图;
图3是本发明和其它对比方法的推荐覆盖率随k个邻居用户数量变化的仿真结果图;
图4是本发明和其它对比方法的推荐准确率随n个推荐项目数量变化的仿真结果图;
图5是本发明和其它对比方法的推荐召回率随n个推荐项目数量变化的仿真结果图。
具体实施方式
以下结合附图对本发明的具体实施作进一步的详细描述,本实例以用户对电影的推荐为例但不是用来限制本发明的范围,例如本发明可用于网页、商品的推荐等。
参照图1,本发明的实现步骤如下:
步骤1:创建用户项目评分矩阵。
从原始的用户-物品-评分-时间这四维数据中获取用户U对项目I的评分信息,创建用户评分矩阵Rn×p,其中n代表用户的数目,p代表项目的数目。
步骤2:计算任意两个用户的相似度。
2a)运用模糊软划分机制,分别构建用户u对项目i评分的喜欢隶属度Lu,i和用户u对项目i评分的不喜欢隶属度Du,i:
其中ru,i为用户u对项目i的评分,m为推荐系统用户评分的最小值,M为推荐系统用户评分的最大值,对于评分范围在1到5之间的数值,则m为1,M为5;
2b)运用项目评分的上下文信息,分别构建项目i评分的喜欢贡献率因子Cli和项目i评分的不喜欢贡献率因子Cdi:
其中#Ui表示整体用户对项目i的评分人数,项目i喜欢贡献率因子Cli取值范围0≤Cli≤1和不喜欢贡献率因子的Cdi取值范围0≤Cdi≤1;
2c)构建任意两个用户a与b喜欢不喜欢的相似函数LD(a,b):
其中
表示用户u对已经评价项目的评分平均值,q为两个用户a与b共同评分的项目数目;
2d)运用如下改进的Jaccard函数Jnum(a,b),对评分数目小于平均项目数的用户进行相似度值的缩减,缓解用户评分数目小带来的相似度不稳定性问题:
其中
其中#Ia表示用户a对整体项目的评分数目,#Ib表示用户b对整体项目的评分数目,表示整体用户的平均项目数,Q3为用户评分数目的四分之三分位数;
2e)结合改进的Jaccard函数Jnum(a,b)和喜欢不喜欢相似函数LD(a,b),构建任意两个用户a与b最终的相似度函数sim(a,b):
sim(a,b)=LD(a,b)·Jnun(a,b)。
步骤3:选择邻居用户,对目标用户进行预测。
3a)将目标用户与其他用户的相似度按照从大到小的顺序排列,取排列顺序中最前面的k个用户作为目标用户的邻居用户,k≥50;
3b)获取k个邻居用户后,通过下式对目标用户未评分的项目进行评分预测:
其中
其中,pu,i为目标用户u对未评分项目i的预测评分值,sim(u,n)为目标用户u与邻居用户n的相似度值,为用户n对已经评价项目的评分平均值,Ku为k个邻居用户集合,Hu,i为集合Ku中对项目i评分的邻居用户集合,n为Hu,i集合中的用户。
步骤4:根据预测评分,对目标用户未评分项目进行分数值从大到小的排列,筛选出前N个项目即产生对用户的推荐项目,2≤N≤20。
本发明的效果可以通过以下实例仿真结果进一步说明:
1.实验条件和环境设置
实验运行环境:CPU为Intel(R)Core(TM)i5@2.50GHz,内存为4GB,编译环境为MatlabR2014a。
2.实验数据与评价指标:
本发明选用Movielens推荐系统的一个电影数据集,数据包含943个用户对1682部电影的1000000条评分,每个用户至少对20部电影进行评分,评分为1到5的整数值。在本发明实验中将数据分为测试集和训练集两部分,给定数据集的80%用户评分数据作为训练集,剩余的20%作为测试数据。为提高实验的准确性和可靠性,采用交叉验证法,即每一个样本数据被用作训练数据,也被用作测试数据。
本发明选用常用的推荐效果评价指标,即平均绝对误差MAE、覆盖率COV、准确率PRE和召回率REC。MAE评价指标反映预测评分和真实评分的误差平均值,定义如下:
其中M代表测试项目集的大小,pi和qi分别代表用户预测评分和实际用户评分。
COV评价指标定义为目标用户的k近邻中至少有一个用户对未评分项目做了相应的评分。定义如下:
其中#C为系统的目标用户没评分但至少有一个邻居用户对该项目做了评分的数目,#D为系统用户未评分的项目数。
PRE评价指标描述前N个对应的项中用户喜欢的项目概率。定义如下:
其中N是对目标用户推荐项目的数量,Ntrue表示推荐的N个项目中正确推荐的个数。该值越大表示推荐的质量越高。
REC评价指标描述系统推荐给用户的项目,准确推荐的项目数占用户整体喜欢的项目数比例。
其中N是对目标用户推荐项目的数量,Nref表示与目标用户相关联的项目数。同样该值越大所对应的推荐质量越高。
3.实验内容与结果:
实验1,选用平均绝对误差MAE作评价指标,用本发明SFC和现有基于Pearson相关系数的协同过滤方法CPP、基于Cos相似度的协同过滤方法COS、基于结合Jaccard和MSD的相似度度量方法JMSD、基于奇异值的相似度度量方法SM、基于改进的PIP相似度度量方法NHSM进行电影推荐,其预测值与实际的评分的误差值如图2所示。
从图2的实验结果可以看出,本发明与其他的5种对比方法相比,其平均绝对误差得到了不同程度的降低,在不同的邻居用户范围内,本发明的误差值是最小的。
实验2,选用覆盖率COV作评价指标,用本发明SFC和现有基于Pearson相关系数的协同过滤方法CPP、基于Cos相似度的协同过滤方法COS、基于结合Jaccard和MSD的相似度度量方法JMSD、基于奇异值的相似度度量方法SM、基于改进的PIP相似度度量方法NHSM进行电影推荐,其预测评分与实际评分的覆盖率如图3所示。
从图3的实验结果可以看出,在不同的邻居用户范围内基于奇异值的相似度度量方法的覆盖率值最高,但本发明的覆盖率值与其他四种对比相似度度量方法相比,本发明的覆盖率值最高。
实验3,选用准确率PRE作评价指标,用本发明SFC和现有基于Pearson相关系数的协同过滤方法CPP、基于Cos相似度的协同过滤方法COS、基于结合Jaccard和MSD的相似度度量方法JMSD、基于奇异值的相似度度量方法SM、基于改进的PIP相似度度量方法NHSM进行电影推荐,其预测评分与实际的评分的准确率如图4所示。
从图4的实验结果可以看出,本发明与其他的5种对比方法相比,在不同的推荐项目长度范围内,本发明的准确率是最高的。
实验4,选用召回率REC作评价指标,用本发明SFC和现有基于Pearson相关系数的协同过滤方法CPP、基于Cos相似度的协同过滤方法COS、基于结合Jaccard和MSD的相似度度量方法JMSD、基于奇异值的相似度度量方法SM、基于改进的PIP相似度度量方法NHSM进行电影推荐,其预测评分与实际的评分的召回率如图5所示。
从图5的实验结果可以看出,本发明与其他的5种对比方法相比,在不同的推荐项目长度范围内,本发明的召回率是最高的。
Claims (2)
1.一种基于模糊机制用户评分邻域信息的协同过滤推荐方法,包括如下步骤:
(1)从原始的用户-物品-评分-时间这四维数据中获取用户U对项目I的评分信息,创建用户对项目的评分矩阵Rn×p,其中n代表用户的数目,p代表项目的数目;
(2)根据用户的评分矩阵,确定任意两个用户a与用户b的相似度值sim(a,b):
(2a)运用软划分机制,分别构建用户u对项目i评分的喜欢隶属度Lu,i和用户u对项目i评分的不喜欢隶属度Du,i:
其中ru,i为用户u对项目i的评分,m为推荐系统用户评分的最小值,M为推荐系统用户评分的最大值;
(2b)运用项目评分的上下文信息,分别构建项目i评分的喜欢贡献率因子Cli和项目i评分的不喜欢贡献率因子Cdi:
其中#Ui表示整体用户对项目i的评分人数;
(2c)运用如下改进的Jaccard函数Jnum(a,b),对评分数目小于平均项目数的用户进行相似度值的惩罚:
其中
其中#Ia表示用户a对整体项目的评分数目,#Ib表示用户b对整体项目的评分数目,表示整体用户的平均项目数,Q3为用户评分数目的四分之三分位数;
(2d)构建任意两个用户a与b喜欢不喜欢的相似函数LD(a,b)如下:
其中
其中ru表示用户u对已经评价项目的评分平均值;
2e)结合改进的Jaccard函数Jnum(a,b)和喜欢不喜欢相似函数LD(a,b),构建任意两个用户a与b最终的相似度函数sim(a,b):
sim(a,b)=LD(a,b)·Jnun(a,b);
(3)根据步骤(2)所构建的任意两个用户a与b最终相似度函数sim(a,b),计算所有用户两两之间的相似度,选择与目标用户相似程度最高的k个邻居用户,根据所选的k个邻居的项目评分数据,对目标用户未评分项目进行评分预测;
(4)根据预测评分,对目标用户未评分项目进行分数值从大到小的排列,筛选出前N个项目即产生对用户的推荐项目,2≤N≤20。
2.根据权利要求1中所述的方法,根据所述步骤(3)中根据所选的k个邻居的项目评分数据,对目标用户未评分项目进行评分预测,按如下步骤进行:
(3a)将目标用户与其他用户的相似度按照从大到小的顺序排列,取排列顺序中最前面的k个用户作为目标用户的邻居用户,k≥50;
(3b)获取k个邻居用户后,通过下式对目标用户未评分的项目进行评分预测:
其中
其中,pu,i为目标用户u对未评分项目i的预测评分值,sim(u,n)为目标用户u与邻居用户n的相似度值,为用户n对已经评价项目的评分平均值,Ku为k个邻居用户集合,Hu,i为集合Ku中对项目i评分的邻居用户集合,n为Hu,i集合中的用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510170406.9A CN104899246B (zh) | 2015-04-12 | 2015-04-12 | 基于模糊机制用户评分邻域信息的协同过滤推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510170406.9A CN104899246B (zh) | 2015-04-12 | 2015-04-12 | 基于模糊机制用户评分邻域信息的协同过滤推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104899246A CN104899246A (zh) | 2015-09-09 |
CN104899246B true CN104899246B (zh) | 2018-06-26 |
Family
ID=54031909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510170406.9A Active CN104899246B (zh) | 2015-04-12 | 2015-04-12 | 基于模糊机制用户评分邻域信息的协同过滤推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104899246B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488684A (zh) * | 2015-11-16 | 2016-04-13 | 孙宝文 | 交易系统中的推荐关系确定方法及装置 |
CN106157156A (zh) * | 2016-07-29 | 2016-11-23 | 电子科技大学 | 一种基于用户社区的协作推荐系统 |
CN106844433A (zh) * | 2016-11-30 | 2017-06-13 | 浪潮电子信息产业股份有限公司 | 基于用户数量调整系数的推荐方法 |
CN107122407B (zh) * | 2017-03-24 | 2020-05-12 | 首都师范大学 | 基于特征选择的多领域推荐方法 |
CN106991173A (zh) * | 2017-04-05 | 2017-07-28 | 合肥工业大学 | 基于用户偏好的协同过滤推荐方法 |
CN109087177B (zh) * | 2018-08-21 | 2021-05-25 | 北京京东尚科信息技术有限公司 | 向目标用户推荐商品的方法、装置及计算机可读存储介质 |
CN111353793A (zh) * | 2018-12-20 | 2020-06-30 | 中国移动通信集团天津有限公司 | Crm业务推荐方法及装置 |
CN110020917A (zh) * | 2019-03-15 | 2019-07-16 | 上海电机学院 | 一种基于协同过滤的在线理财产品推荐方法 |
CN110727867A (zh) * | 2019-10-12 | 2020-01-24 | 桂林电子科技大学 | 一种基于模糊机制的语义实体推荐方法 |
CN111581503A (zh) * | 2020-04-26 | 2020-08-25 | 中国工商银行股份有限公司 | 模糊k邻近的推荐方法和装置、电子设备以及存储介质 |
CN112819570B (zh) * | 2021-01-21 | 2023-09-26 | 东北大学 | 一种基于机器学习的商品智能搭配推荐方法 |
CN112818254B (zh) * | 2021-02-03 | 2022-06-14 | 广东牛牛智能科技有限公司 | 基于中智逻辑协同过滤的农民工个性化就业推荐方法及系统 |
CN113535790A (zh) * | 2021-07-19 | 2021-10-22 | 成都数之联科技有限公司 | 协同推荐优化方法、装置、电子设备和可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103257965A (zh) * | 2012-02-17 | 2013-08-21 | 腾讯科技(深圳)有限公司 | 社交网络系统中信息的处理方法及装置 |
CN103294721A (zh) * | 2012-03-02 | 2013-09-11 | 富泰华工业(深圳)有限公司 | 具有数据推荐功能的电子装置及方法 |
CN103559197A (zh) * | 2013-09-23 | 2014-02-05 | 浙江大学 | 基于上下文预过滤的实时音乐推荐方法 |
CN104077357A (zh) * | 2014-05-31 | 2014-10-01 | 浙江工商大学 | 基于用户的协同过滤组合推荐方法 |
CN104239496A (zh) * | 2014-09-10 | 2014-12-24 | 西安电子科技大学 | 一种结合模糊权重相似性度量和聚类协同过滤的方法 |
-
2015
- 2015-04-12 CN CN201510170406.9A patent/CN104899246B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103257965A (zh) * | 2012-02-17 | 2013-08-21 | 腾讯科技(深圳)有限公司 | 社交网络系统中信息的处理方法及装置 |
CN103294721A (zh) * | 2012-03-02 | 2013-09-11 | 富泰华工业(深圳)有限公司 | 具有数据推荐功能的电子装置及方法 |
CN103559197A (zh) * | 2013-09-23 | 2014-02-05 | 浙江大学 | 基于上下文预过滤的实时音乐推荐方法 |
CN104077357A (zh) * | 2014-05-31 | 2014-10-01 | 浙江工商大学 | 基于用户的协同过滤组合推荐方法 |
CN104239496A (zh) * | 2014-09-10 | 2014-12-24 | 西安电子科技大学 | 一种结合模糊权重相似性度量和聚类协同过滤的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104899246A (zh) | 2015-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104899246B (zh) | 基于模糊机制用户评分邻域信息的协同过滤推荐方法 | |
CN108959603B (zh) | 基于深度神经网络的个性化推荐系统及方法 | |
CN103412948B (zh) | 基于聚类的协同过滤的商品推荐方法及系统 | |
CN110532479A (zh) | 一种信息推荐方法、装置及设备 | |
CN105574216A (zh) | 基于概率模型和用户行为分析的个性化推荐方法、系统 | |
CN108550068A (zh) | 一种基于用户行为分析的个性化商品推荐方法及系统 | |
CN107220365A (zh) | 基于协同过滤与关联规则并行处理的精准推荐系统及方法 | |
CN103678635A (zh) | 基于标签有向图的网络音乐聚合推荐方法 | |
CN107833117A (zh) | 一种考虑标签信息的贝叶斯个性化排序推荐方法 | |
CN103886001A (zh) | 一种个性化商品推荐系统 | |
CN108334558A (zh) | 一种结合标签和时间因素的协同过滤推荐方法 | |
CN108665323A (zh) | 一种用于理财产品推荐系统的集成方法 | |
CN104462336A (zh) | 信息推送方法和装置 | |
CN108334592A (zh) | 一种基于内容与协同过滤相结合的个性化推荐方法 | |
CN103559622A (zh) | 基于特征的协同过滤推荐方法 | |
CN108446297B (zh) | 一种推荐方法及装置,电子设备 | |
CN108109058B (zh) | 一种融合人格特质和物品标签的单分类协同过滤方法 | |
KR20210047229A (ko) | 구매 우선순위와 상품 리뷰 감성분석을 반영한 상품 추천 시스템 및 방법 | |
CN107045700A (zh) | 基于流式用户行为分析的产品推送方法和装置 | |
CN107832338A (zh) | 一种识别核心产品词的方法和系统 | |
CN104657336A (zh) | 一种基于半余弦函数的个性化推荐算法 | |
CN108389113A (zh) | 一种协同过滤推荐方法和系统 | |
CN110399602A (zh) | 一种评测文本可靠性的方法和装置 | |
CN116805023B (zh) | 一种基于大语言模型的外卖推荐方法 | |
CN110968670B (zh) | 一种流行商品的属性获取方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |