CN103793476B - 基于网络社区的协同过滤推荐方法 - Google Patents

基于网络社区的协同过滤推荐方法 Download PDF

Info

Publication number
CN103793476B
CN103793476B CN201410007387.3A CN201410007387A CN103793476B CN 103793476 B CN103793476 B CN 103793476B CN 201410007387 A CN201410007387 A CN 201410007387A CN 103793476 B CN103793476 B CN 103793476B
Authority
CN
China
Prior art keywords
user
community
node
value
project
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.)
Expired - Fee Related
Application number
CN201410007387.3A
Other languages
English (en)
Other versions
CN103793476A (zh
Inventor
刘静
焦李成
刘辰龙
马文萍
马晶晶
李阳阳
朱虎明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201410007387.3A priority Critical patent/CN103793476B/zh
Publication of CN103793476A publication Critical patent/CN103793476A/zh
Application granted granted Critical
Publication of CN103793476B publication Critical patent/CN103793476B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking

Abstract

本发明公开了一种基于网络社区的协同过滤推荐方法,主要解决现有技术在获得用户之间相似度数据时存在稀疏性,造成推荐准确率低的问题。其实现步骤是:获取用户对待推荐项目的评分信息,并利用用户对待推荐项目的评分数据间接生成用户与用户之间的关系网络;计算用户之间的相似度;通过基于相似度的社区检测将用户关系网络划分成若干个用户社区;选取用户所在社区内相似度最大的k个用户组成近邻用户集合,根据近邻用户集合对目标用户未评分的项目进行预测评分;将评分预测值中最大的项目推荐给用户。仿真实验结果表明,本发明比传统协同过滤推荐方法能得到更好的推荐结果,可用于向用户推荐用户感兴趣的项目。

Description

基于网络社区的协同过滤推荐方法
技术领域
本发明涉及社会网络技术领域,具体涉及一种基于网络社区的协同过滤推荐方法。
背景技术
近些年,随着现实生活中计算机网络技术的出现和逐渐普及,个性化服务已成为一种新的信息服务模式,其中推荐技术是个性化服务中一个重要的组成部分。个性化推荐是指根据用户的兴趣爱好对用户信息进行收集、过滤、分类,找到用户感兴趣的项目或信息并将其推荐给用户的技术。个性化推荐应用日益广泛,应用领域涉及电子商务,网页,电影,图书,音乐等多个方面。如一些电子商务网站通过收集和分析用户的购买历史,预测用户可能感兴趣的商品并将其推荐给用户,从而提高了销售业务,又如搜索引擎通过分析用户浏览网页的历史行为,对网页进行分类和排序,进而向用户推荐更精准的信息等。
目前推荐技术主要分为基于内容的推荐技术和基于协同过滤的推荐技术两大类。传统基于内容的推荐方法通过收集项目的内容或属性信息等特征因素,依据用户信息与对应项目的匹配程度,推荐具有相似属性的项目而不考虑历史评分。基于协同过滤的推荐方法则通过收集用户的评分信息,计算出用户与用户之间的相似度,并通过获得原用户相似度较高的用户对项目的偏好,来预测原用户对项目的偏好。相比于基于内容的推荐技术,协同过滤技术无需获得对象的信息,可以在缺乏对象内容描述的情况下进行推荐。
协同过滤推荐技术广泛应用于推荐系统中,然而其同样存在数据稀疏性等问题。所谓数据稀疏性问题是指在一个推荐系统中,用户的数量通常远小于项目的数量,很多用户对项目的评价数据较少,造成了协同过滤技术对于数据的缺乏,最终影响推荐系统的准确性。
随着网络技术特别是Facebook、人人网等社交网站的兴起,社会网络逐渐成为复杂网络领域的研究热点。社会网络以个人为节点构成社会结构,人与人之间通过相互作用的关系联结起来。相互作用的关系包括友谊、利益关系、宗教信仰等等。根据大量的研究发现,在许多社会网络中都有一个典型的特征结构——社区结构,即一个复杂网络可以划分成若干社区。通常认为,一个明显的社区结构要求社区内的节点连接相对紧密,社区间的节点连接相对稀疏。同一社区内的点往往具有相似的性质,检测这些具有相似性质的社区可以提供重要信息,有助于理解和推测网络的结构和个体之间的关系。
通常一个社会网络可以建模为G=(V,E)模型,其中V表示一组节点或顶点,E表示一个链接的集合,称为边集,用于连接任意两个节点。传统的社区结构检测方法主要分为基于图分割的方法和基于层次聚类的方法。基于图分割的方法是将网络以图形形式划分成若干个子集,同时要求各子集间连接边尽可能少。然而这种方法通常对划分社区的个数有明确的限制。基于层次聚类的方法则是通过不同方法建立预定义启发规则,这类方法通常能够较快速的获得社区结构,但对于不同类型的网络划分结果差异较大。
发明内容
本次发明的目的在于针对上述已有技术的不足,提出一种基于相似度的社区检测方法,以有效解决数据稀疏性问题,提高推荐效率。
实现本发明目的,本发明的技术方案包括如下步骤:
1.一种基于网络社区的协同过滤推荐方法,包括如下步骤:
(1)获取用户对待推荐项目的评分信息,通过用户对待推荐项目的评分数据间接生成用户与用户之间的关系网络,其中任意两个用户共同评分的项目个数表示这两个用户之间的权值关系,这些用户之间的权值关系构成用户与用户的关系网络,用户对项目的评分信息用矩阵R(m,n)表示为:
其中m和n分别表示用户数和项目数,rij表示矩阵中第i行第j列的元素用户i对项目j的评分值;
(2)通过用户之间的关系网络,计算任意两个用户u和v之间的相似度s(u,v);
(3)将获得的用户与用户的关系网络划分成若干个用户社区:
(3a)将每个用户比作一个节点,获得用户网络的节点数n,随机生成Pop=50个初始个体,将每个个体用从1到n的一种随机排列表示为AP,即:
AP={v1,...vi,...vn},
其中vi表示第i个节点,i∈[1,n];
(3b)设AC表示社区集合,对每个个体的随机排列进行解码:
(3b1)设解码的最初时刻AC为空集合,即集合中社区的数量m为0,将随机排列AP的初始节点v1加入到一个新的空社区Cm+1中,并将此社区加入到社区集合AC中,此时m=m+1;
(3b2)定义T(Cj)表示第j个社区Cj的质量函数
其中表示第j个社区Cj的内部节点相似度之和,表示第j个社区Cj内部节点与外部节点相似度之和;
(3b3)将随机排列AP中的节点从第二个节点v2开始,依次判断是否加入到社区C1,…Cj,...,Cm中:
计算社区C1的质量函数值T(C1)和v2加入社区C1后的值T(C1∪v2),当满足T(C1∪v2)>T(C1)时,将节点v2加入到社区C1中并跳到下一个节点v3,否则判断节点v2是否加入到社区C2中,当满足T(C2∪v2)>T(C2)时,将节点v2加入到社区C2中并跳到下一个节点v3,否则判断节点v2是否加入到社区C3中,以此类推,直到节点v2加入到对应的社区中并跳到下一个节点v3
如果节点v2不能加入到AC的任意一个社区,则将节点v2加入到一个新的空社区Cm+1中并将此社区加入到社区集合AC中,跳到下一个节点v3,此时m=m+1;
根据上述规则将所有节点都划分到对应社区中,即将AP解码为AC={C1,…Cj,...,Cm};
(3c)生成新的个体的随机排列AP′:
(3c1)定义用于评价每个个体社区划分好坏的适应度函数fun(AC)为:
其中T(Cj)表示第j个社区Cj的质量函数,m表示社区的数量;
(3c2)按照适应度函数公式计算出每个个体的适应度函数值,选择出适应度函数值大小排名前10%的个体保留,其余90%的个体再随机生成新的个体的随机排列AP′;
(3d)获得用户关系网络的最终社区划分:
(3d1)对生成的新的排列个体AP′,采用步骤(3b)的方式解码,并计算解码后的个体的适应度值;
(3d2)将之前保留的10%个个体与新生成的个体重新放到一起,挑选出适应度值最大的前10%个个体,将其余90%的个体再重新生成新的排列个体;
(3d3)循环步骤(3d1)和(3d2)共10次,在最后一次循环后选出适应度函数值最高的个体,并将其对应的社区集合作为最后的社区划分集合:ACu={Cu1,…Cuj,…,Cum},其中m表示社区个数,Cuj表示第j个社区;
(4)将用户关系网络划分为社区后,对用户未评分的项目进行预测评分,得到未评分项目的评分预测值;
(5)将评分预测值中最大的项目推荐给用户。
本发明与现有的技术相比具有以下优点:
1.本发明通过在社区内寻找相似度较高的用户,获得了用户和用户之间的潜在关系,有效解决了传统协同过滤推荐中用户数据稀疏性问题,因为通常在一个社区内,用户具有相似的兴趣爱好,所以可以得到更多用户之间信任度较高关系数据。
2.本发明由于在社区检测中提出了基于相似度的社区质量函数和适应度函数,通过将随机排列解码为社区集合,并选出适应度函数最高的社区集合,能得到较好的网络社区划分。
3.本发明将网络社区检测技术与传统协同过滤推荐技术相结合,提高了推荐效率。
仿真实验结果表明,本发明提出的基于网络社团的协同过滤推荐方法比传统协同过滤推荐方法能得到更好的推荐结果。
附图说明
图1是本发明的实现总流程图;
图2是用户与项目关系的网络示意图;
图3是本发明对用户网络进行社区检测的子流程图;
图4是本发明关于用户对未评分项目进行预测评分的子流程图;
图5是用传统协同过滤方法与本发明方法对movielens数据集所得推荐效果评价指标MAE值的比较示意图;
图6是传统协同过滤方法与本发明方法对movielens数据集所得推荐效果评价指标RMSE值的比较示意图。
具体实施方式
为了对本发明进行清楚描述,本实例以用户对电影的推荐为例,但不构成对本发明的任何限制,本发明可以适用于所有的用户-项目推荐系统,例如用户对商品、网页的推荐等。
参照图1,本发明的实施步骤如下:
步骤1.获取用户对待推荐电影的评分信息。
1a)将用户对电影的评分信息用矩阵R(m,n)表示为:
其中m和n分别表示用户数和项目数,rij表示矩阵中第i行第j列的元素用户i对项目j的评分值,这里的项目指代电影,评分指用户对电影的打分,在其他情形项目还可指代商品、网页、图书等要推荐的内容,评分可以指代观看次数、浏览次数、购买记录等;
1b)通过用户对待推荐项目的评分数据间接生成用户与用户之间的关系网络,其中任意两个用户共同评分的项目个数表示这两个用户之间的权值关系,这些用户之间的权值关系构成用户与用户的关系网络,如图2所示。
图2给出了表示一个简单的用户对电影的评分结构,图2中较大的节点代表用户,较小的节点代表电影,边上权值表示用户对电影的评分,由图2可知,用户Ua和用户Ub共同评分了三个电影,因此他们之间的权值w(Ua,Ub)=3。
步骤2.通过用户之间的关系网络,计算任意两个用户u和v之间的相似度s(u,v)。
计算任意两个用户u和v之间的相似度s(u,v),有许多现有的计算公式,例如余弦相似度公式、Pearson相关系数公式、Jaccard指标公式等,余弦相似度计算公式如下所示:
式中Γ(u)表示用户u及与用户u相连接的用户集合,Γ(v)表示用户v及与用户v相连接的用户集合,x∈Γ(u)∩Γ(v)表示同时与用户u和用户v相连接的用户,w(u,x)表示用户u和用户x的权值,w(v,x)表示用户v和用户x的权值;
Pearson相关系数计算公式如下所示:
式中Γ(u)表示用户u及与用户u相连接的用户集合,Γ(v)表示用户v及与用户v相连接的用户集合,x∈Γ(u)∩Γ(v)表示同时与用户u和用户v相连接的用户,w(u,x)表示用户u和用户x的权值,w(v,x)表示用户v和用户x的权值,表示用户u与其他用户的权值的平均值,表示用户v与其他用户的权值的平均值;
Jaccard指标计算公式如下所示:
式中Nu表示与用户u连接的用户集合,Nv表示与用户v连接的用户集合。
相比于其他相似度公式,余弦相似度公式获得的相似度准确率较高,计算复杂度相对较低,应用也最为广泛,因此本发明选用余弦相似度公式,计算任意两个用户u和v之间的相似度s(u,v)。
步骤3.将获得的用户与用户的关系网络划分成若干个用户社区。
传统的网络社区检测方法主要包括基于图分割的方法和基于层次聚类的方法。基于图分割的方法的基本思想是将网络以图形形式划分成若干个子集,同时要求各子集间连接边尽可能少。主要方法包括谱聚类方法和Kernighan-Lin方法等,谱聚类方法主要采用二次型优化技术最小化预定义的“截”函数。“截”即指子网间的连接密度,当一个网络被划分为两个子网络时,具有最小“截”的划分被认为是最优的网络划分;Kernighan-Lin方法主要通过极小化社区之间连接数目与社区内连接数目之差,并将网络划分为两个大小已知的社区。
基于层次聚类的方法则是通过不同方法建立预定义启发规则获得社区结构。著名的方法包括基于边介数的GN分裂方法等。GN分裂方法的基本思想是不断移除网络中边介数最大的边从而将整个网络划分成若干个社区,其中边介数定义为网络中所有最短路径中经过该边的路径的数目占最短路径总数的比例。
与传统的社区检测方法相比,本发明应用的社区检测方法以相似度为基础,传统协同过滤推荐技术也应用了相似度技术,因此本发明采用的社区检测能够很好的与传统协同过滤推荐技术相结合。
参照图3,本步骤的实现如下:
(3a)将每个用户比作一个节点,获得用户网络的节点数n,随机生成Pop=50个初始个体,将每个个体用从1到n的一种随机排列表示为AP,即:
AP={v1,...vi,...vn},
其中vi表示第i个节点,i∈[1,n];
(3b)设AC表示社区集合,对每个个体的随机排列进行解码:
(3b1)设解码的最初时刻AC为空集合,即集合中社区的数量m为0,将随机排列AP的初始节点v1加入到一个新的空社区Cm+1中,并将此社区加入到社区集合AC中,此时m=m+1;
(3b2)定义T(Cj)表示第j个社区Cj的质量函数
其中表示第j个社区Cj的内部节点相似度之和,表示第j个社区Cj内部节点与外部节点相似度之和;
(3b3)将随机排列AP中的节点从第二个节点v2开始,依次判断是否加入到社区C1,…Cj,...,Cm中:
计算社区C1的质量函数值T(C1)和v2加入社区C1后的值T(C1∪v2),当满足T(C1∪v2)>T(C1)时,将节点v2加入到社区C1中并跳到下一个节点v3,否则判断节点v2是否加入到社区C2中,当满足T(C2∪v2)>T(C2)时,将节点v2加入到社区C2中并跳到下一个节点v3,否则判断节点v2是否加入到社区C3中,以此类推,直到节点v2加入到对应的社区中并跳到下一个节点v3
如果节点v2不能加入到AC的任意一个社区,则将节点v2加入到一个新的空社区Cm+1中并将此社区加入到社区集合AC中,跳到下一个节点v3,此时m=m+1;
根据上述规则将所有节点都划分到对应社区中,即将AP解码为AC={C1,…Cj,...,Cm};
(3c)生成新的个体的随机排列AP′:
(3c1)定义用于评价每个个体社区划分好坏的适应度函数fun(AC)为:
其中T(Cj)表示第j个社区Cj的质量函数,m表示社区的数量;
(3c2)按照适应度函数公式计算出每个个体的适应度函数值,选择出适应度函数值大小排名前10%的个体保留,其余90%的个体再随机生成新的个体的随机排列AP′;
(3d)获得用户关系网络的最终社区划分:
(3d1)对生成的新的排列个体AP′,采用步骤(3b)的方式解码,并计算解码后的个体的适应度值;
(3d2)将之前保留的10%个个体与新生成的个体重新放到一起,挑选出适应度值最大的前10%个个体,将其余90%的个体再重新生成新的排列个体;
(3d3)循环步骤(3d1)和(3d2)共10次,在最后一次循环后选出适应度函数值最高的个体,并将其对应的社区集合作为最后的社区划分集合:ACu={Cu1,…Cuj,…,Cum},其中m表示社区个数,Cuj表示第j个社区。
步骤4.将用户关系网络划分为社区后,对用户未评分的项目进行预测评分,得到未评分项目的评分预测值。
传统的协同过滤推荐步骤包括:获得目标用户对已评分项目的评分平均值;计算用户与其他用户的相似度;选取最近邻的k个相似度用户作为近邻用户域;通过用户的评分平均值和近邻用户域计算目标用户对未评分项目的评分预测值,并将预测值最大的项目推荐给用户。
传统协同过滤推荐用户之间的数据较为稀疏,并且仅仅与目标用户相似度较高的用户对项目的评分有时参考性也较低,而通常在一个社区内,用户具有相似的兴趣爱好,所以可以得到更多用户之间信任度较高关系数据,因此本发明通过在社区内获得目标用户的最近邻用户,能够提供推荐效率。
参照图4,本步骤的具体实现如下:
(4a)获得用户对已评分项目的评分平均值,
在用户对项目的评分矩阵R(m,n)中,计算用户u对已评分项目的评分平均值:其中n为总的项目数,s为已评分的项目数,元素ru,i表示用户u对项目i的评分值,ru,i=0表示用户u对项目i未评分;
(4b)根据步骤(2)获得的用户之间的相似度值s(u,v),选取用户u所在社区内相似度最大的k个用户组成集合Nk,集合中的用户用u'表示;
(4c)计算用户u对未评分项目ix的评分预测值
(4c1)计算用户集合Nk中用户u'对已评分项目的评分平均值
(4c2)对用户未评分的项目ix,根据用户u与u'的相似度s(u,u')和u'对已评分项目的评分平均值计算集合Nk内用户u'对ix的评分偏差
其中u'表示相似度集合Nk中的用户,s(u,u')表示用户u和u'的相似度值,表示用户u'对项目ix的评分值,表示用户u'对已评分项目的评分平均值;
(4c3)将用户u对已评分项目的评分平均值与集合Nk内用户u'对ix的评分偏差相加,得到用户u对未评分的项目ix的评分预测值为:
(4d)按照步骤(4c3)的公式,计算出所有用户对未评分项目的评分预测值。
步骤5.将评分预测值中最大的项目推荐给用户,即从所有评分预测值中选出最大预测值对应的电影,推荐给用户。
本发明的效果可以通过以下仿真实验进行验证:
1.实验运行环境和条件设置
实验运行的环境:CPU为Intel(R)Core(TM)i5@2.40GHz,内存为2GB,硬盘空间64GB,编译环境为Microsoft Visual Studio 2010,编译语言为C++。
2.实验内容和结果分析:
本发明选用Movielens电影推荐系统的一个经典数据集,数据包含943个用户对1682部电影的100000条评分信息,每个用户至少对20部电影评分,评分为从1到5的整数值。将数据集中的数据分成训练数据和测试数据两部分,给定数据集中80%的用户对电影的评分数据作为训练数据,去预测剩余20%用户对电影的评分值,并将预测得到的评分值与真实的评分值比较。
本发明选用常用的推荐效果评价指标,即平均绝对误差MAE和均方根误差RMSE作为推荐评价指标。其中MAE反应预测评分和真实评分的误差的平均值,定义如下:
其中N表示测试集大小,pi和qi分别代表用户预测评分和实际用户评分。
RMSE反应预测评分和真实评分的均方差值,定义如下:
其中N表示测试集大小,pi和qi分别代表用户预测评分和实际用户评分,MAE和RMSE值越高表示预测期望越低,反之值越低表示预测越准确。
本实验选用基于余弦相似度的传统协同过滤方法CFC和基于Pearson相关系数的传统协同过滤方法CFP与本发明进行误差比较,由于平均绝对误差MAE和RMSE都受到相似度用户数k的影响,故测试三种方法在不同k值时所得的MAE值和RMSE值,为便于比较,将三种方法在不同k值时所得的MAE值和RMSE值绘制成折线图,其中平均绝对误差MAE比较结果如图5,均方根误差RMSE的比较结果图6所示。
从图5和图6的实验结果可以看出,本发明与传统协同过滤推荐方法相比,其MAE值和RMSE值都得到了不同程度的降低,表明本发明通过将网络社区检测与协同过滤推荐技术相结合,有效地提高了系统推荐的精度。

Claims (3)

1.一种基于网络社区的协同过滤推荐方法,包括如下步骤:
(1)获取用户对待推荐项目的评分信息,通过用户对待推荐项目的评分数据间接生成用户与用户之间的关系网络,其中任意两个用户共同评分的项目个数表示这两个用户之间的权值关系,这些用户之间的权值关系构成用户与用户的关系网络,用户对项目的评分信息用矩阵R(m,n)表示为:
R ( m , n ) = r 11 , r 12 ... , r 1 j ... , r 1 n ... ... r i 1 , r i 2 ... , r i j ... , r i n ... ... r m 1 , r m 2 ... , r m j ... , r m n ,
其中m和n分别表示用户数和项目数,rij表示矩阵中第i行第j列的元素用户i对项目j的评分值;
(2)通过用户之间的关系网络,计算任意两个用户u和v之间的相似度s(u,v);
(3)将获得的用户与用户的关系网络划分成若干个用户社区:
(3a)将每个用户比作一个节点,获得用户网络的节点数n,随机生成Pop=50个初始个体,将每个个体用从1到n的一种随机排列表示为AP,即:
AP={v1,...vi,...vn},
其中vi表示第i个节点,i∈[1,n];
(3b)设AC表示社区集合,对每个个体的随机排列进行解码:
(3b1)设解码的最初时刻AC为空集合,即集合中社区的数量m为0,将随机排列AP的初始节点v1加入到一个新的空社区Cm+1中,并将此社区加入到社区集合AC中,此时m=m+1;
(3b2)定义T(Cj)表示第j个社区Cj的质量函数
T ( C j ) = S i n C j S i n C j + S o u t C j ,
其中表示第j个社区Cj的内部节点相似度之和,表示第j个社区Cj内部节点与外部节点相似度之和;
(3b3)将随机排列AP中的节点从第二个节点v2开始,依次判断是否加入到社区C1,…Cj,...,Cm中:
计算社区C1的质量函数值T(C1)和v2加入社区C1后的值T(C1∪v2),当满足T(C1∪v2)>T(C1)时,将节点v2加入到社区C1中并跳到下一个节点v3,否则判断节点v2是否加入到社区C2中,当满足T(C2∪v2)>T(C2)时,将节点v2加入到社区C2中并跳到下一个节点v3,否则判断节点v2是否加入到社区C3中,以此类推,直到节点v2加入到对应的社区中并跳到下一个节点v3
如果节点v2不能加入到AC的任意一个社区,则将节点v2加入到一个新的空社区Cm+1中并将此社区加入到社区集合AC中,跳到下一个节点v3,此时m=m+1;
根据上述规则将所有节点都划分到对应社区中,即将AP解码为AC={C1,…Cj,...,Cm};
(3c)生成新的个体的随机排列AP′:
(3c1)定义用于评价每个个体社区划分好坏的适应度函数fun(AC)为:
f u n ( A C ) = Σ j = 1 m T ( C j ) / m ,
其中T(Cj)表示第j个社区Cj的质量函数,m表示社区的数量;
(3c2)按照适应度函数公式计算出每个个体的适应度函数值,选择出适应度函数值大小排名前10%的个体保留,其余90%的个体再随机生成新的个体的随机排列AP′;
(3d)获得用户关系网络的最终社区划分:
(3d1)对生成的新的排列个体AP′,采用步骤(3b)的方式解码,并计算解码后的个体的适应度值;
(3d2)将之前保留的10%个个体与新生成的个体重新放到一起,挑选出适应度值最大的前10%个个体,将其余90%的个体再重新生成新的排列个体;
(3d3)循环步骤(3d1)和(3d2)共10次,在最后一次循环后选出适应度函数值最高的个体,并将其对应的社区集合作为最后的社区划分集合:ACu={Cu1,…Cuj,…,Cum},其中m表示社区个数,Cuj表示第j个社区;
(4)将用户关系网络划分为社区后,对用户未评分的项目进行预测评分,得到未评分项目的评分预测值;
(5)将评分预测值中最大的项目推荐给用户。
2.根据权利要求1所述的方法,其中步骤(2)所述的计算任意两个用户u和v之间的相似度s(u,v),通过如下公式进行:
s ( u , v ) = Σ x ∈ Γ ( u ) ∩ Γ ( v ) w ( u , x ) · w ( v , x ) Σ x ∈ Γ ( u ) w 2 ( u , x ) · Σ x ∈ Γ ( v ) w 2 ( v , x )
式中Γ(u)表示用户u及与用户u相连接的用户集合,Γ(v)表示用户v及与用户v相连接的用户集合,x∈Γ(u)∩Γ(v)表示同时与用户u和用户v相连接的用户,w(u,x)表示用户u和用户x的权值,w(v,x)表示用户v和用户x的权值。
3.根据权利要求1所述的方法,其中步骤(4)所述的对用户未评分的项目进行预测评分,按照如下步骤进行:
(4a)获得用户对已评分项目的评分平均值,
在用户对项目的评分矩阵R(m,n)中,计算用户u对已评分项目的评分平均值:其中n为总的项目数,s为已评分的项目数,元素ru,i表示用户u对项目i的评分值,ru,i=0表示用户u对项目i未评分;
(4b)根据步骤(2)获得的用户之间的相似度值s(u,v),选取用户u所在社区内相似度最大的k个用户组成集合Nk,集合中的用户用u'表示;
(4c)按照下面公式计算用户u对未评分的项目ix的评分预测值为:
r ^ u , i x = r ‾ u + Σ u ′ ∈ N k s ( u , u ′ ) ( r u ′ , i x - r ‾ u ′ ) Σ u ′ ∈ N k s ( u , u ′ ) ,
其中表示用户u对已评分项目的评分平均值,u'表示相似度集合Nk中的用户,s(u,u')表示用户u和u'的相似度值,表示用户u'对项目ix的评分值,表示用户u'对已评分项目的评分平均值;
(4d)按照步骤(4c)的公式,计算出所有用户对未评分项目的评分预测值。
CN201410007387.3A 2014-01-08 2014-01-08 基于网络社区的协同过滤推荐方法 Expired - Fee Related CN103793476B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410007387.3A CN103793476B (zh) 2014-01-08 2014-01-08 基于网络社区的协同过滤推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410007387.3A CN103793476B (zh) 2014-01-08 2014-01-08 基于网络社区的协同过滤推荐方法

Publications (2)

Publication Number Publication Date
CN103793476A CN103793476A (zh) 2014-05-14
CN103793476B true CN103793476B (zh) 2017-02-15

Family

ID=50669142

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410007387.3A Expired - Fee Related CN103793476B (zh) 2014-01-08 2014-01-08 基于网络社区的协同过滤推荐方法

Country Status (1)

Country Link
CN (1) CN103793476B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239390B (zh) * 2014-06-11 2017-12-29 杭州联汇科技股份有限公司 一种基于改进型协同过滤算法的音频推荐方法
CN104850579B (zh) * 2015-03-20 2018-02-02 南京邮电大学 社交网络中基于评分和特征相似的餐饮推荐算法
CN105117443B (zh) * 2015-08-12 2018-07-20 华南理工大学 一种基于多关系网络的推荐算法
CN105512242B (zh) * 2015-11-30 2018-09-21 浙江工业大学 一种基于社会网络结构的并行推荐方法
CN105718551A (zh) * 2016-01-19 2016-06-29 浙江工业大学 一种基于Hadoop的社会化推荐方法
CN105654267A (zh) * 2016-03-01 2016-06-08 淮阴工学院 一种基于谱聚类的冷链物流配载智能推荐方法
CN106126549A (zh) * 2016-06-16 2016-11-16 传化公路港物流有限公司 一种基于概率矩阵分解的社区信任推荐方法及其系统
CN106708953A (zh) * 2016-11-28 2017-05-24 西安电子科技大学 基于离散粒子群优化的局部社区检测协同过滤推荐方法
CN106909634B (zh) * 2017-02-09 2020-04-28 江苏睿泰数字传媒有限公司 基于条件的多媒体影像评论数据挖掘与处理方法及系统
CN108538039A (zh) * 2017-03-06 2018-09-14 宁夏隆基宁光仪表股份有限公司 一种用电数据采集方法
CN107748801B (zh) * 2017-11-16 2022-04-29 北京百度网讯科技有限公司 新闻推荐方法、装置、终端设备及计算机可读存储介质
CN108920647B (zh) * 2018-07-03 2021-06-18 安徽工业大学 基于谱聚类的低秩矩阵填充top-n推荐方法
CN109636529B (zh) * 2018-12-14 2022-04-12 苏州大学 一种商品推荐方法、装置和计算机可读存储介质
CN109918562B (zh) * 2019-01-18 2022-10-18 重庆邮电大学 一种基于用户社区和评分联合社区的推荐方法
CN109933726B (zh) * 2019-03-22 2022-04-12 江西理工大学 基于用户平均加权兴趣向量聚类的协同过滤电影推荐方法
CN111291904B (zh) * 2020-02-06 2023-04-18 腾讯科技(深圳)有限公司 偏好预测方法、装置及计算机设备
CN111400471B (zh) * 2020-03-13 2022-09-27 江苏满运软件科技有限公司 问题推荐方法、系统、电子设备和存储介质
CN113011471A (zh) * 2021-02-26 2021-06-22 山东英信计算机技术有限公司 一种社交群体的划分方法、划分系统及相关装置
CN113806612B (zh) * 2021-09-28 2024-01-02 浙江工商大学 一种基于索引在用户电影网络中探测关键社区的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101287082A (zh) * 2008-05-16 2008-10-15 华东师范大学 一种引入节目热门度权重的协作过滤推荐方法
CN101753573A (zh) * 2009-12-25 2010-06-23 山东大学 一种基于协同过滤的rss信息推荐方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101287082A (zh) * 2008-05-16 2008-10-15 华东师范大学 一种引入节目热门度权重的协作过滤推荐方法
CN101753573A (zh) * 2009-12-25 2010-06-23 山东大学 一种基于协同过滤的rss信息推荐方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Separated and Overlapping Community Detection in Complex Networks using Multiobjective Evolutionary Algorithms;Jing Liu等;《IEEE Congress on Evolutionary Computation》;20100731;全文 *
一种压缩稀疏用户评分矩阵的协同过滤算法;侯翠琴等;《西安电子科技大学学报(自然科学版)》;20090830;第36卷(第4期);全文 *
基于快速社区检测的协同过滤推荐算法;蒋盛益等;《广西大学学报(自然科学版)》;20131231;第38卷(第6期);全文 *

Also Published As

Publication number Publication date
CN103793476A (zh) 2014-05-14

Similar Documents

Publication Publication Date Title
CN103793476B (zh) 基于网络社区的协同过滤推荐方法
Fayazi et al. Uncovering crowdsourced manipulation of online reviews
CN103514304B (zh) 一种项目推荐方法和装置
CN103514255B (zh) 一种基于项目层次类别的协同过滤推荐方法
CN108920527A (zh) 一种基于知识图谱的个性化推荐方法
CN106708953A (zh) 基于离散粒子群优化的局部社区检测协同过滤推荐方法
CN101694652A (zh) 一种基于极速神经网络的网络资源个性化推荐方法
CN108920503A (zh) 一种基于社交网络信任度的微视频个性化推荐算法
CN106802956A (zh) 一种基于加权异构信息网络的电影推荐方法
CN104899246A (zh) 基于模糊机制用户评分邻域信息的协同过滤推荐方法
CN107145527A (zh) 对齐异构社交网络中基于元路径的链路预测方法
CN104239496B (zh) 一种结合模糊权重相似性度量和聚类协同过滤的方法
Bin et al. Collaborative filtering recommendation algorithm based on multi-relationship social network
CN106326367A (zh) 基于wnbi和rsvd混合协同推荐算法
CN107577710A (zh) 基于异构信息网络的推荐方法及装置
CN104503973A (zh) 一种基于奇异值分解与分类器融合推荐的方法
CN105069072A (zh) 基于情感分析的混合用户评分信息推荐方法及其推荐装置
Zheng et al. Deviation-based contextual SLIM recommenders
CN104298787A (zh) 一种基于融合策略的个性化推荐方法及装置
Nguyen et al. Do you trust to get trust? A study of trust reciprocity behaviors and reciprocal trust prediction
CN105678590A (zh) 一种面向社交网络基于云模型的topN推荐方法
CN113255895A (zh) 基于图神经网络表示学习的结构图对齐方法和多图联合数据挖掘方法
Agarwal et al. A social identity approach to identify familiar strangers in a social network
McNamara et al. Predicting high impact academic papers using citation network features
CN101986301B (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170215

Termination date: 20220108

CF01 Termination of patent right due to non-payment of annual fee