首页> 中国专利> 基于聚类群组发现的推荐系统及方法、个性化推荐系统

基于聚类群组发现的推荐系统及方法、个性化推荐系统

摘要

本发明属于个性化推荐技术领域,公开了一种基于聚类群组发现的推荐系统及方法、个性化推荐系统,根据在线系统对用户操作行为数据的采集,提取出用户‑项目矩阵;实现将整个用户‑项目数据集分割成多个内部关联性很强的分组,通过欧几里得等相似度计算方法和聚类算法的结合;在分组内直接使用协同过滤算法得出推荐结果。本发明在直接使用推荐算法之前进行数据预处理,利用模糊聚类将数据分组,并整合在每个分组中的预测评分得出最终的推荐结果。在保证整个推荐系统正常运行的情况下,通过模糊聚类群组发现的数据预处理方法让推荐算法可以直接作用在关联性很强的单组数据而不必作用在全部数据,提高了推荐系统在面对海量数据的扩展性和精确度。

著录项

  • 公开/公告号CN107944485A

    专利类型发明专利

  • 公开/公告日2018-04-20

    原文格式PDF

  • 申请/专利权人 西安电子科技大学;

    申请/专利号CN201711148721.7

  • 发明设计人 裴庆祺;王伟;

    申请日2017-11-17

  • 分类号

  • 代理机构西安长和专利代理有限公司;

  • 代理人黄伟洪

  • 地址 710071 陕西省西安市太白南路2号西安电子科技大学

  • 入库时间 2023-06-19 05:05:07

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-03-06

    授权

    授权

  • 2018-05-15

    实质审查的生效 IPC(主分类):G06K9/62 申请日:20171117

    实质审查的生效

  • 2018-04-20

    公开

    公开

说明书

技术领域

本发明属于个性化推荐技术领域,尤其涉及一种基于聚类群组发现的推荐系统及方法、个性化推荐系统。

背景技术

近年来,随着互联网的快速发展,信息爆炸已成为常态,尤其是推荐系统还包含对隐式用户行为数据的处理,并对每个用户进行有针对性的个性化推荐,对服务端处理数据的能力要求越来越高,提升很多个性化系统的扩展性得到了广泛的关注。针对目前个性化推荐系统面对海量数据时出现了计算效率低下、系统扩展性不足的问题,所以在面对海量数据时保证推荐系统的可扩展性是目前研究的热点问题。数据预处理分组技术以其较高的学术价值和巨大的应用潜力,得到了学者的广大关注。现有的协同过滤算法大都是在整个系统的所有用户、所用项目上的应用,将所用用户行为信息直接作为协同过滤算法的输入。在用户数量和项目数量迎来爆炸式增长的今天,将海量数据直接作为协同过滤算法的输入会带来算法在数据处理方面的压力,由此导致推荐系统的处理效率低下。本发明用聚类分组方法对所有用户、项目划分,将相似度程度比较高的用户或项目分组,每个分组可以直接作为协同过滤算法的输入,在保证推荐准确性的同时,由于每个群组内的数据量远远小于整个用户、项目数据量,所以系统的扩展性和可用性也带来提升。

综上所述,现有技术存在的问题是:目前个性化推荐系统面对海量数据时出现了计算效率低下、系统扩展性不足。

发明内容

针对现有技术存在的问题,本发明提供了一种基于聚类群组发现的推荐系统及方法、个性化推荐系统。

本发明是这样实现的,一种基于聚类群组发现的推荐方法,所述基于聚类群组发现的推荐方法根据在线系统对用户操作行为数据的采集,提取出用户-项目矩阵;实现将整个用户-项目数据集分割成多个内部关联性很强的分组,通过欧几里得等相似度计算方法和聚类算法的结合;在分组内直接使用协同过滤算法得出推荐结果。

进一步,所述基于聚类群组发现的推荐方法包括以下步骤:

步骤一,对已有的用户行为评分,将用户事件按照按照关联性具体量化评分,根据最高分用0~1的小数表示;

步骤二,发现用户-项目群组;

步骤三,利用用户-项目群组结合协同过滤算法实现推荐。

进一步,所述步骤二具体包括:

(1)用户i和用户j共同评分的项目集合为Iij,Ii和Ij分别表示用户i和用户j评分的集合,用户的相似度userSim(i,j)表示为:

其中Ri,c表示用户i对项目c的评分,分别表示用户i和用户j对项目的平均评分;项目之间的相似度与用户相似度的计算方法类似,表示为:

(2)构造一个图G,每个用户和项目都是一个顶点,用户与项目之间边权值用归一化的用户-项目评分矩阵S来表示:

S=(Drow)-1/2T(Dcol)-1/2

其中T是用户-项目评分矩阵,Drow和Dcol均为对角矩阵,构建图G的邻接矩阵W:

其中Q为用户之间的相似度矩阵,R为物品之间的相似度矩阵,S为用户评分的归一化矩阵;

(3)求出矩阵最小的k个特征值和对应的特征向量,其中为:

其中,I为n+m阶的单位矩阵;

求出后求出其最小的k个特征值以及对应的特征向量,并利用特征向量组成矩阵M;

(4)使用分块矩阵P来表示聚类结果,由用户隶属度矩阵和项目隶属度矩阵组成,Pij的大小表示第i个用户或项目属于第j个群组的权重大小。

进一步,所述(4)具体包括:

1)采用密度函数法来确定初始点,样本点xi处的密度函数为:

其中,n为用户数,m为项目数;

2)在每次的迭代过程中,对聚类中心的密度在前一轮迭代的基础上进行调整:

对聚类算法的传入值更新:

3)目标函数的值在两个迭代中小于阈值ε,ε选取为e-5;对于P的每一行,仅有k个最大的元素被保留,且每一行的和为1;

进一步,所述步骤三具体包括:

(1)群组看成原始用户-项目的子矩阵,不做任何修改直接作为协同过滤算法的输入并直接得到单组的预测评分;

(2)合并从所有群组中得到的预测结果,通过用户对项目在群组中预测评分并结合相应的隶属度来预测用户的最终评分;Fij是用户i对项目j的最后的预测评分;当i和j不属于任何群组时,Fij=0;预测评分为各个群组预测评分的加权平均:

其中prob表示用户i和项目j属于群组k的隶属度;

得到用户对所有项目的评分,取前N个最大的评分生成Top-N推荐结果。

本发明的另一目的在于提供一种所述基于聚类群组发现的推荐方法的基于聚类群组发现的推荐系统,所述基于聚类群组发现的推荐系统包括:户行为处理模块、发现用户-项目群组模块、推荐模块。

进一步,所述用户行为处理模块包括:

用户操作评分单元,用于对已有的用户行为评分;

所述发现用户-项目群组模块包括:

度量相似度单元,用于计算用户相似度;

构造用户-项目图及其邻接矩阵单元,用于构造用户-项目图及用户-项目评分矩阵;

获取特征值特征向量单元,用于得出矩阵最小的k个特征值和对应的特征向量;

聚类获取群组单元;用于获取用户或项目群组的权重大小;

所述推荐模块包括:

单组内获取推荐结果单元,用于把原始用户-项目的子矩阵直接作为协同过滤算法的输入并直接得到单组的预测评分;

合并单组结果获取推荐结果单元,用于合并从所有群组中得到的预测结果,通过用户对项目在群组中预测评分并结合相应的隶属度来预测用户的最终评分。

进一步,所述聚类获取群组单元包括:

获取合适初始点单元,用于采用密度函数法来确定初始点;

迭代单元设置单元,用于对聚类中心的密度在前一轮迭代的基础上进行调整;

设置阈值迭代单元,用于设置目标函数在两个迭代中小于阈值。

本发明的另一目的在于提供一种利用所述基于聚类群组发现的推荐方法的个性化推荐系统。

本发明在直接使用推荐算法之前进行数据预处理,利用模糊聚类将数据分组,并整合在每个分组中的预测评分得出最终的推荐结果。在保证整个推荐系统正常运行的情况下,通过模糊聚类群组发现的数据预处理方法让推荐算法可以直接作用在关联性很强的单组数据而不必作用在全部数据,提高了推荐系统在面对海量数据的扩展性和精确度。

传统的协同过滤系统根据目标用户的爱好找到一组与目标用户兴趣相似的用户集合,进而找到这个集合中用户喜好的项目推荐给用户。本发明的前提是如果用户有相似的行为就会有相似的爱好,但事实情况是用户的喜好一般只集中在某个领域,所以在本发明的方案中提出了在群组发现的基础上使用协同过滤算法,每个群组中的用户或项目均有较高的相似度;群组发现的优势是提前找出相似度较高的群体,提高推荐准确度,并且因为不需要在整个用户项目数据集上进行推荐,也提高了系统的扩展性。

其中群组发现的最后一步是由聚类得到,聚类用于将具有相同爱好的用户或者相似特征的项目进行分类。在一般聚类算法的模型中,一个用户或项目只能属于一个群组,但事实情况是一个用户可以对多类的项目感兴趣,所以每个用户是可以属于多个群组的,比如一个用户喜欢看多种主题的电影,每个电影可以属于多个分组(比如古装喜剧片就同时有古装和喜剧两个属性),本发明使用模糊聚类C-means聚类算法可以让每个用户和项目属于多个分组,计算用户在各个群组里对项目的偏好并最终结合用户、项目在群组中的隶属度得出最红结果。

附图说明

图1是本发明实施例提供的基于聚类群组发现的推荐系统结构示意图;

图中:1、户行为处理模块;1-1、用户操作评分单元;2、发现用户-项目群组模块;2-1、度量相似度单元;2-2、构造用户-项目图及其邻接矩阵单元;2-3、获取特征值特征向量单元;2-4、聚类获取群组单元;2-4-1、获取合适初始点单元;2-4-2、迭代单元设置单元;2-4-3、设置阈值迭代单元;3、推荐模块;3-1、单组内获取推荐结果单元;3-2、合并单组结果获取推荐结果单元。

图2是本发明实施例提供的基于聚类群组发现的推荐方法流程图。

图3是本发明实施例提供的基于聚类群组发现的推荐方法实现流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明保证传统推荐系统可用性的同时,结合群组发现、相似性计算、聚类算法等技术缓解了推荐系统的扩展性问题。

下面结合附图对本发明的应用原理作详细的描述。

如图1所示,本发明实施例提供的基于聚类群组发现的推荐系统包括:用户行为处理模块1、发现用户-项目群组模块2、推荐模块3。

用户行为处理模块1包括:

用户操作评分单元1-1,用于对已有的用户行为评分。

发现用户-项目群组模块2包括:

度量相似度单元2-1,用于计算用户相似度;

构造用户-项目图及其邻接矩阵单元2-2,用于构造用户-项目图及用户-项目评分矩阵;

获取特征值特征向量单元2-3,用于得出矩阵最小的k个特征值和对应的特征向量;

聚类获取群组单元2-4;用于获取用户或项目群组的权重大小;

聚类获取群组单元2-4包括:

获取合适初始点单元2-4-1,用于采用密度函数法来确定初始点;

迭代单元设置单元2-4-2,用于对聚类中心的密度在前一轮迭代的基础上进行调整;

设置阈值迭代单元,2-4-3,用于设置目标函数在两个迭代中小于阈值;

推荐模块3包括:

单组内获取推荐结果单元3-1,用于把原始用户-项目的子矩阵直接作为协同过滤算法的输入并直接得到单组的预测评分;

合并单组结果获取推荐结果单元3-2,用于合并从所有群组中得到的预测结果,通过用户对项目在群组中预测评分并结合相应的隶属度来预测用户的最终评分。

如图2所示,本发明实施例提供的基于聚类群组发现的推荐方法包括以下步骤:

S201:根据在线系统对用户操作行为数据的采集,提取出用户-项目矩阵;

S202:实现将整个用户-项目数据集分割成多个内部关联性很强的分组,通过欧几里得等相似度计算方法和聚类算法的结合;

S203:在分组内直接使用协同过滤算法得出推荐结果,实现整个推荐系统在海量数据情况下扩展性的提升。

下面结合具体实施例对本发明的应用原理作进一步的描述。

如图3所示,本发明实施例提供的基于聚类群组发现的推荐方法包括以下步骤:

1、用户行为处理

(1)用户操作评分,对已有的用户行为评分,将已完成、收藏、搜索、点击等用户事件按照按照关联性具体量化评分,并根据最高分将其用0~1的小数表示。

2、发现用户-项目群组

(1)度量相似度。

用户与用户、项目与项目之间的相似度计算比较类似,均采用改进的CosineSimilarity来计算。用户i和用户j共同评分的项目集合为Iij,Ii和Ij分别表示用户i和用户j评分的集合,所以用户的相似度userSim(i,j)可以表示为:

其中Ri,c表示用户i对项目c的评分,分别表示用户i和用户j对项目的平均评分。项目之间的相似度与用户相似度的计算方法类似,可表示为:

(2)构造用户-项目图及其邻接矩阵;

构造一个图G,每个用户和项目都是一个顶点,用户与用户之间、项目与项目之间以及用户与项目之间都可以存在边,用户与用户之间边的权值为用户相似度,项目与项目之间边权值为项目相似度,这两个相似度在步骤一中已完成计算。用户与项目之间边权值可以用归一化的用户-项目评分矩阵S来表示:

S=(Drow)-1/2T(Dcol)-1/2

其中T是用户-项目评分矩阵,Drow和Dcol均为对角矩阵。在此基础上可以构建图G的邻接矩阵W:

其中Q为用户之间的相似度矩阵,R为物品之间的相似度矩阵,S为用户评分的归一化矩阵。

(3)获取特征值特征向量。

目标是求出矩阵最小的k个特征值和对应的特征向量,其中为:

其中,I为n+m阶的单位矩阵。

求出后求出其最小的k个特征值以及对应的特征向量,并利用特征向量组成矩阵M;

(4)聚类获取群组;

最终使用分块矩阵P来表示聚类结果,由用户隶属度矩阵和项目隶属度矩阵组成,Pij的大小表示第i个用户或项目属于第j个群组的权重大小;

1)获取合适初始点,一般比较合适的聚类中心出现在样本点比较密集的地方,在此采用密度函数法来确定初始点,样本点xi处的密度函数为:

其中,n为用户数,m为项目数;

2)迭代单元设置。在每次的迭代过程中,需要对聚类中心的密度在前一轮迭代的基础上进行调整:

除了更新迭代中心外,还需要对聚类算法的传入值更新:

3)设置阈值进行迭代。如果目标函数的值在两个迭代中小于阈值ε,参考近期国内外文献,此处ε选取为e-5。对于这样的P的每一行,仅有k个最大的元素被保留,且每一行的和为1;

3、利用用户-项目群组结合协同过滤算法实现推荐

(1)在单组内获取推荐结果,上述群组可以看成原始用户-项目的子矩阵,所以可以不做任何修改直接作为协同过滤算法的输入并直接得到单组的预测评分;

(2)合并单组结果并获取推荐结果,为了得到准确的推荐结果,需要合并从所有群组中得到的预测结果,通过用户对项目在群组中预测评分并结合相应的隶属度来预测用户的最终评分;Fij是用户i对项目j的最后的预测评分。当i和j不属于任何群组时,Fij=0;最终的预测评分为各个群组预测评分的加权平均:

其中prob表示用户i和项目j属于群组k的隶属度;

得到用户对所有项目的评分,取前N个最大的评分生成Top-N推荐结果。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号