本发明专利技术公开了一种基于社区发现的社交网络好友推荐方法,属于数据挖掘、社交网络、等领域,解决现有个性化推荐中没有考虑社交网络特性的问题。本发明专利技术采集社交网络中用户历史数据,对用户的兴趣爱好建模,得到所有用户的偏好向量集合;根据用户偏好向量集合中表示用户的兴趣爱好偏好向量和表示用户的朋友关系偏好向量对用户聚类,找出社交网络中用户所在的兴趣爱好和朋友关系重叠社区;根据用户的兴趣爱好和用户的朋友关系重叠社区,得到目标用户的初始待推荐好友列表,并对得到的初始待推荐好友列表进行过滤和排序,得到最终的待推荐好友列表。本发明专利技术利用了用户的兴趣爱好和朋友关系进行好友推荐,更加适合社交网络。
【技术实现步骤摘要】
一种基于社区发现的社交网络好友推荐方法
一种基于社区发现的社交网络好友推荐方法,利用社交网络具有的典型复杂网络特性,找到社交网络中用户的兴趣爱好社区,利用用户的兴趣爱好和朋友关系进行好友推荐,提高个性化推荐的准确度和社交服务的用户体验,涉及数据挖掘、社交网络、个性化推荐等领域。
技术介绍
社交网络是典型的复杂网络,具有复杂网络的小世界特性(small-world)、无标度(scale-free)特性和社团结构特性。小世界特性指的是在网络规模很大的情况下,任意两个网络节点之间可以通过相对较小的步骤建立联系。社交网络不仅完全符合“六度分离”理论,而且具有较小的特征路径长度,符合复杂网络的小世界特性。无标度特性是指网络中的少数节点拥有大量的连接,而大部分节点只与很少的节点连接,无标度特性反应了用户聚集的集中性。在社交网络中新加入的用户更倾向于和活跃用户建立连接,比如用户加入Twitter时,首先关注自己喜欢的明星,随着网络规模的增加,类似明星这样的节点得到的连接越来越多。社团结构是指网络中所有的节点的联系是有规律的,一些节点的边连接非常紧密,成为规模网络中的一个密集子网。在社团内部,节点之间的联系非常紧密,而社团与社团之间的节点联系非常稀疏。个性化推荐技术主要包括:协同过滤、基于内容的过滤、基于知识的过滤和混合推荐。其中,应用最广泛的协同过滤又分为基于用户的协同过滤、基于项目的协同过滤,基于隐语义模型的协同过滤和基于图模型的协同过滤等。协同过滤的基本思想是通过用户的历史行为来预测目标用户最可能喜欢哪些物品或对哪些物品感兴趣。通过分析得到用户的兴趣爱好,在所有用户中找到与目标用户有相似兴趣的用户,综合这些相似用户对某一物品的行为(点击、评分等),预测目标用户对物品的喜好程度。不同的推荐算法根据不同的推荐策略进行推荐,每种算法都有自己的优势和缺点,适用于不同的应用场景。好友推荐是SNS社交网络的基础服务,现有的好友推荐大致可以分为两类:一类是基于用户的社交关系,包括“朋友的朋友”和共同好友的数量来进行推荐,比如Facebook上“Peopleyoumayknow”,就是通过推荐和自己没有朋友关系但是和自己的朋友有朋友关系的用户;还有基于共同朋友的数量,共同朋友越多,说明用户在现实生活中也可能认识,比如国内社交网站人人网,在推荐朋友时把共同好友数量越多的用户认为可能是同学。另外一类是基于用户的兴趣爱好,比如在Twitter上,会根据你关注的人找到和这些用户类型相同的用户,当登陆首页时,页面上的“WhotoFollow”就会出现用户推荐列表,认为用户也会对他们感兴趣。现有的社区发现算法通常仅仅利用社交网络的用户朋友关系网络拓扑图,而且找到的社区是非重叠社区。另外,现有的好友推荐方法常常只利用了用户的朋友关系,没有考虑用户的兴趣爱好或者没有考虑用户兴趣爱好的动态变化。
技术实现思路
本专利技术针对现有技术的不足之处提供一种基于社区发现的社交网络好友推荐方法,结合社交网络的社团结构特性,基于用户的兴趣爱好和用户的朋友关系寻找社交网络中的重叠社区,提高个性化推荐的准确度和社交服务的用户体验。为实现上述目的,本专利技术采用的技术方案为:一种基于社区发现的社交网络好友推荐方法,其特征在于,如下步骤:(1)采集社交网络中用户历史数据,对用户的兴趣爱好建模,得到每个用户的偏好向量集合,从而得到所有用户的偏好向量集合;(2)根据每个用户的偏好向量集合中表示用户的兴趣爱好偏好向量和表示用户的朋友关系偏好向量对用户聚类,找出社交网络中每个用户所在的兴趣爱好重叠社区和朋友关系重叠社区;(3)根据每个用户所在的兴趣爱好重叠社区和朋友关系重叠社区,得到目标用户的初始待推荐好友列表,并对得到的初始待推荐好友列表进行过滤和排序,得到最终的待推荐好友列表。作为优选,所述步骤(1)中,对用户的兴趣爱好建模的具体步骤如下:(11)对用户历史数据去噪,将不能明确表示用户的兴趣爱好的数据过滤掉,即删除用户共同行为量最大的数据部分;(12)对过滤后的数据进行归一化处理,并用布尔类型表示;(13)通过布尔类型量化用户对项目的喜欢程度,获得社交网络中每个用户的偏好向量集合。作为优选,所述步骤(2)中,找出社交网络中每个用户所在的兴趣爱好重叠社区和朋友关系重叠社区的具体步骤如下:(21)生成第一个社区,加入社区集合,从用户集合中随机选取一个用户,将选取的用户加入第一个社区,并删除用户集合中的该用户;(22)从用户集合中选择一个用户u,与社区集合C={c1,L,cm}中的每个社区进行计算,得到u和已存在的社区ci的凝聚度co,计算公式如下:其中,u为待判定用户,v为已存在社区中的用户,v∈ci,ci∈C,x为社区ci的用户数量,Tani(u,v)为用户u和用户v的Tanimoto相似度,Tani(u,v)计算公式如下:其中,pu代表用户u的兴趣爱好偏好向量或朋友关系偏好向量,pv代表用户v的兴趣爱好偏好向量或朋友关系偏好向量,pu∩pv、pu∪pv为用户u的偏好向量(兴趣爱好偏好向量或朋友关系偏好向量)和用户v的偏好向量(兴趣爱好偏好向量或朋友关系偏好向量)的与、或运算;(23)如果满足(为预先设定的阈值),则加入社区ci,即可以加入满足条件的多个社区,并从用户集合U中删除ui,如果不能加入任何一个已存在的社区,则生成新的社区Cm+1,C={c1,c2,L,cm,cm+1},并且u∈Cm+1,同时从用户集合U中删除u;(24)重复(22)、(23),直到用户集合为空时结束,得到最终的每个用户所在的兴趣爱好重叠社区和朋友关系重叠社区。作为优选,所述步骤(3)中,得到目标用户的初始待推荐好友列表,并对得到的初始待推荐好友列表进行过滤和排序的步骤如下:(31)根据CUPC算法,利用表示用户的兴趣爱好偏好向量找到社交网络中的用户的兴趣爱好社区CP,如果用户的兴趣爱好为重叠社区,则(32)根据CUPC算法,利用表示用户的朋友关系偏好向量找到社交网络中的朋友关系社区CF,如果用户的朋友关系为重叠社区,则(33)求目标用户v的待推荐好友列表,计算公式如下:Nv=CP(v)∩CF(v);(34)对待推荐好友列表中的用户排序,计算Nv中所有用户和目标用户v的距离。与现有技术相比,本专利技术的优点在于:A.在用户的兴趣爱好建模方法中,能够把社交网络中不同对象(音乐、文章、微博、用户等)的操作抽象为用户的兴趣爱好向量,不管是具体数值(电影评分),还是隐式的喜好程度(听歌次数),通过归一化都转化为布尔值来表示,能够适应不同操作对象和多样的数据类型。B.社交网络具有非常明显的社团结构特性,不管是用户的社交关系,还是用户的兴趣爱好,都呈现出高聚集性,基于用户的兴趣爱好的社区发现算法可以找到用户的朋友关系社区和兴趣爱好社区,考虑了用户的朋友关系社区和兴趣爱好社区为重叠社区。基于用户的兴趣爱好的社区发现算法中,阈值可以根据本领域人员的经验值,也可以通过模拟实验中的最优经验值设定初始值,然后根据得到的社区结果反馈调节,对零散的社区重新设定阈值,从而可将它们重新聚合。C.获得待推荐好友列表时,将同时属于朋友关系社区和兴趣爱好社区里的节点作为待选集,同时考虑了目标用户的好友关系和兴趣爱好,更加个性化。D本文档来自技高网...
【技术保护点】
一种基于社区发现的社交网络好友推荐方法,其特征在于,如下步骤:(1)采集社交网络中用户历史数据,对用户的兴趣爱好建模,得到每个用户的偏好向量集合,从而得到所有用户的偏好向量集合;(2)根据每个用户的偏好向量集合中表示用户的兴趣爱好偏好向量和表示用户的朋友关系偏好向量对用户聚类,找出社交网络中每个用户所在的兴趣爱好重叠社区和朋友关系重叠社区;(3)根据每个用户所在的兴趣爱好重叠社区和朋友关系重叠社区,得到目标用户的初始待推荐好友列表,并对得到的初始待推荐好友列表进行过滤和排序,得到最终的待推荐好友列表。
【技术特征摘要】
1.一种基于社区发现的社交网络好友推荐方法,其特征在于,如下步骤:(1)采集社交网络中用户历史数据,对用户的兴趣爱好建模,得到每个用户的偏好向量集合,从而得到所有用户的偏好向量集合;(2)根据每个用户的偏好向量集合中表示用户的兴趣爱好偏好向量和表示用户的朋友关系偏好向量对用户聚类,找出社交网络中每个用户所在的兴趣爱好重叠社区和朋友关系重叠社区;具体步骤如下:(21)生成第一个社区,加入社区集合,从用户集合中随机选取一个用户,将选取的用户加入第一个社区,并删除用户集合中的该用户;(22)从用户集合中选择一个用户u,与社区集合C={c1,…,cm}中的每个社区进行计算,得到u和已存在的社区ci的凝聚度co,计算公式如下:其中,u为待判定用户,v为已存在社区中的用户,v∈ci,ci∈C,x为社区ci的用户数量,Tani(u,v)为用户u和用户v的Tanimoto相似度,Tani(u,v)计算公式如下:其中,pu代表用户u的兴趣爱好偏好向量或朋友关系偏好向量,pv代表用户v的兴趣爱好偏好向量或朋友关系偏好向量,pu∩pv、pu∪pv为用户u的偏好向量和用户v的偏好向量的与、或运算;(23)如果满足则加入社区ci,即可以加入满足条件的多个社区,并从用户集合U中删除ui,如果不能加入任何一个已存在的社区,则生成新的社区Cm+1,C={c1,c2,…,cm,cm+1},并且u∈Cm+1,同时从用户集合U中删除u;(...
【专利技术属性】
技术研发人员:屈鸿,兰冰,冯旻昱,吴诗文,刘金凤,
申请(专利权)人:电子科技大学,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。