一种基于用户组的多反馈协同过滤推荐方法与流程

文档序号:12465559阅读:360来源:国知局
一种基于用户组的多反馈协同过滤推荐方法与流程

本发明公开了一种基于用户组的多反馈协同过滤推荐方法,具体为根据用户多反馈按照聚类形成K个簇,在用户组里生成个性化推荐列表,涉及推荐系统领域及机器学习领域。



背景技术:

随着信息技术和互联网的快速发展,人们逐渐从信息匮乏的时代走进了信息过载的时代。为了解决信息过载问题,强大的搜索引擎应运而生,使得人们可以在海量的信息中找到自己想要的内容,与搜索引擎一样,推荐系统也可以帮助用户发现有用的信息,并且用户不再是被动的网页浏览者,而逐步成为了主动参与者。

近年来,推荐系统受到了越来越多的互联网巨头以及电商的青睐,尤其是个性化推荐技术的发展,对改善用户体验和提高服务质量起到了重要的作用。当前主要的推荐系统主要包括基于关联规则的推荐系统、基于内容的推荐系统、协同过滤系统以及混合推荐系统。基于关联规则的推荐以项目之间的关联规则为基础,通过数据挖掘发现项目之间的潜在关联以实施连带推荐,但是当数据量非常大的时候,此推荐算法的计算复杂度将会随之升高;基于内容的推荐系统首先提取推荐对象的内容特征,其次将产品特征与用户兴趣偏好匹配,将匹配度较高的产品向用户实施推荐,由于多媒体资源目前还没有有效的特征提取方法,因此基于内容的推荐系统会受推荐对象特征提取能力的限制;关于协同过滤推荐,首先找到与目标用户兴趣偏好相似的最近邻居集,然后根据这个最近邻居集对项目的评分来预测目标用户未评分项目的评分,选择预测评分最高的N个项目作为推荐结果反馈给用户,该推荐算法能够发现用户尚未发现且潜在的兴趣偏好,尽管如此,协同过滤推荐算法仍然面临着冷启动、稀疏性、精确性、扩展性等问题;混合推荐系统即通过组合不同的推荐策略,达到扬长避短的目的,从而产生更符合用户需求的推荐,可是混合推荐系统在实际应用中面临着许多困难,它需要解决不同推荐技术的难题进行有机推荐。

综上所述,随着用户和项目(物品)数量的急剧上升,传统的推荐系统面临着巨大的挑战,包括冷启动问题、评分矩阵稀疏性问题等,尤其是原始用户-项目评分矩阵较高的稀疏性严重的影响了推荐质量。与此同时,传统的推荐算法大都只考虑了评分这项单一因素,并未结合社交网络分析理论的知识,忽略了用户社交关系、项目关联属性以及一些上下文信息(地理位置、情感因素),这在一定程度上降低了推荐的准确度、新颖度和覆盖度。另外,用户在浏览或购买产品时,形成了用户和产品之间的链接关系,可以把这种链接关系看作是社交网络关系,再通过社交网络分析方法,考察节点之间(用户之间或者产品之间)的相关性,并依此进行推荐。



技术实现要素:

本发明旨在解决以上问题,针对传统协同过滤推荐算法采用单反馈用户-物品评分数据集,计算用户相似性。提出一种能够提高推荐系统准确度的基于用户组的多反馈协同过滤推荐方法,本发明的技术方案如下:

一种基于用户组的多反馈协同过滤推荐方法,其包括以下步骤:

步骤一:对用户-物品的互动数据进行预处理,使用余弦相似度计算用户间的距离;

步骤二:融合距离矩阵,使用K-Medoids算法分类并得到K个簇;

步骤三:在每个簇内单独运行BPR MF算法得到个性化排名,根据KNN算法生成top-N推荐。

进一步,在步骤一中,用户-物品互动数据作为算法的输入,如果同时考虑评分数据和标签数据,将会有两个矩阵输入。数据预处理包括以下3个步骤。

(1)用离散值(1,2,3,4,5)表示用户对项目的偏爱程度。

(2)数值表示用户浏览项目的次数

(3)布尔值(0或1)表示用户是否给项目打过标签。

进一步,在步骤二中,融合距离矩阵,包括以下步骤:

(1)通过计算用户间的兴趣距离,根据距离融合公式融合用户兴趣距离得到大小为|U|×|U|的距离矩阵。

(2)融合距离的公式:

其中Ni表示互动类型的数量,λ*表示平衡不同互动类型的权重系数,定义如下:

Nu和Nv分别表示用户u和用户v互动次数,Nuv表示用户u和v共同互动的次数。

进一步,在步骤二中,使用K-Medoids算法分类并得到k个簇,包括以下步骤:

(1)初始化,从N个数据集中随机选取K个数据作为中心点;

(2)将待聚类的数据点集中的点,指派到最近的中心点;

(3)进入迭代,知道聚类的质量满足制定的阈值,使总代价减少;

(4)对于每一个中心点o和非中心点p,执行如下计算步骤;

1.交换点o和p,重新计算交换后的该划分所生成的代价值;

2.如果本次交换造成代价增加,则取消交换。

进一步,在步骤三中,在每个簇内单独运行BPR MF算法过程如下:

(1)将用户对物品的评分(显式反馈“1”,隐式反馈“0”)处理为pair对集<i,j>其中i为评分为1的物品,j为评分为“0”的物品。假设用户有M个“1”的评分,N个“0”的评分,则该用户共有M×N个pair对。这样数据集就由三元组<u,i,j>表示,该三元组的物理含义为:相对于物品j,用户u更喜欢物品i。

(2)极大化如下目标其中θ为所求模型,具体包括用户隐含因子矩阵P,及表达物品的隐含因子矩阵Q。

(3)使用随机梯度下降法学习BPR,使得BPR-OPT达到最优。

进一步,在步骤三中根据KNN算法生成top-N推荐过程如下:

(1)计算用户u和v之间的相似度

(2)计算用户u对物品i的兴趣

其中S(u,K)用户u最接近的K个用户,N(i)表示对物品i有过行为的用户集。

附图说明

图1为参照本发明的一种实施方式的一种基于用户组的多反馈协同过滤推荐方法流程图;

图2为本发明原始数据预处理流程图;

图3为本发明提出的融合用户距离生成大小为|U|×|U|用户-用户距离矩阵;

图4为本发明一个优选实例的聚类结果图;

具体实施方式

下面结合附图给出一个非限定的实施例对本发明作进一步的阐述。这些描述只是示例的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。

如图1所示为本发明的实例方法流程图,包括:用户-项目互动数据集、计算用户间的兴趣距离、融合用户兴趣距离生成距离矩阵、使用K-Medoids算法生成K个簇、在每个簇内运行BPR MF算法、生成个性推荐列表。

本发明的实例主要包括如下3个步骤:

步骤一:对用户-物品的互动数据进行预处理,使用余弦相似度计算用户间的距离;

步骤二:融合距离矩阵,使用K-Medoids算法分类并得到k个簇;

步骤三:在每个簇内单独运行BPR MF算法得到个性化排名,再根据KNN算法生成Top-N推荐。

上述步骤一:对用户-物品的互动数据进行预处理及用户间距离计算照图2所示,具体可以分以下几个步骤。

(1)从存储数据集文件中读入每一行原始记录数据,取出用户ID(UserID)、项目ID(ItemID)和评分值(Value),将某一用户评价过的所有物品及评分都集中在一条记录中,形成键/值对(K/V结构)的形式。输出结果以UserID作为键,<ItemID,Value>数组为值,形式为(UserID,<ItemID,Value>)。

(2)收集所有项目的被评分记录,以便与接下来项目评分偏差的计算。这个阶段的数据输入为(UserID,List of rated items),将该数据拆成为以ItemID为键,<UserID,Value>为值的对,最后输出(ItemID,list of users and ratings)。

(3)计算用户间的不相似度,收集用户-项目互动数据集,采用余弦向量计算。

上述步骤二:融合距离矩阵,使用K-Medoids算法分类并得到k个簇参照

图3所示,具体可以分为如下几个步骤。

(1)通过计算用户间的兴趣距离,根据距离融合公式融合用户兴趣距离得到大小为|U|×|U|的距离矩阵。

(2)根据公式(1)融合用户距离矩阵。

使用K-Medoids算法分类并得到k个簇,聚类结果参照图4所示,具体可以分为如下10个步骤:

1.输入待聚类点集,以及参数k、maxIterations、parallism;

2.同k-means算法一样,随机选择初始中心点集合;

3.启动parallism个线程,用来将非中心点指派给最近的中心点;

4.开始执行迭代,使得聚类结果对应的划分的SAD值最小:

5.将非中心点,基于Round-Robin策略,分配给多个线程,并行指派:将非中心点指派给距离其最近的中心点;

6.将多个线程指派的局部结果进行合并,得到一个全局的指派结果;

7.根据指派结果计算SAD值:如果是第一次进行指派,直接计算其SAD值,保存在previousSAD变量中,该变量保存的是最小的SAD值,第一次初始化第一次指派结果计算得到的SAD值;如果不是第一次进行指派,也计算SAD值,将SAD值保存在变量currentSAD中,继续执行步骤8;

8.随机选择一个非中心点;

9.创建一个ClusterHolder对象,该对象保存了该轮迭代指派结果,根据随机选择的非中心点修改ClusterHolder对象中的结果,将随机选择非中心点和对应的中心点进行交换,为下一轮指派过程准备数据;

10.最后,判断是否达到指定的最大迭代次数,如果达到则终止计算,处理最终聚类结果,否则执行下一轮迭代计算,转步骤5。

计算SAD的公式如下所示:

上述步骤三:在每个簇内单独运行BPR MF算法得到个性化排名,具体可

以分为如下几个步骤:

(1)将用户对物品的评分(显式反馈“1”,隐式反馈“0”)处理为pair对集合<i,j>

其中i为评分为1的物品,j为评分为0的物品。假设用户有M个“1”的评分,N个“0”的评分,则该用户共有M×N个pair对。

(2)极大化如下目标其中θ为所求模型,具体包括隐含因子矩阵P,及表达物品的隐含因子矩阵Q。

1 p(i>uj|θ)=δ(xu,i-xu,j)

3 xu,i=pu·qj

基于上述假设,优化目标进一步展开得到

求解上述最小化问题,分别针对pu,qi,qj求偏导如下:

偏导即为梯度下降方向,模型迭代求解的公式如下:

其中α为学习速率。

本发明的有益效果在于:融合了多种用户的反馈数据,包括用户的显性反馈,如评分数据,还包括用户的隐性反馈,如用户浏览数据等。相比与传统的协同过滤推荐算法只考虑到了单一的用户反馈,本文的推荐算法能够更好的缓解数据稀疏性问题,并采用基于学习的贝叶斯个性化推荐算法,通过梯度下降来学习BPR,能够很好的提高推荐系统的准确度,提高系统性能。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1