现在的位置: 首页 > 综合 > 正文

基于社区划分和用户相似度的好友推荐

2013年04月18日 ⁄ 综合 ⁄ 共 7872字 ⁄ 字号 评论关闭

社交型网络(SNS, Social Networking Services)以六度分割理论[1]为基础,构建好友圈并通过“好友的好友”来无限扩张人脉。社交网络在近几年获得了空前的发展,像国内的校内网,开心网已经聚集了几千万的用户。SNS 特别之处在于维护朋友关系,增进友谊,并拓展交际圈,以用户之间的黏性来保持用户和SNS 的黏性。用户虽然也可以设置过滤条件搜索得到符合特定条件的用户群组,但是由于庞大的用户基数,在通常情况下搜索得出的用户群组其中大部分对特定用户来说都是冗余的,而不是将与特定用户熟悉的可能成为好友的用户搜索出来,不能给用户拓展社交圈带来方便。而为用户拓展社交圈正是大型社交网络吸引用户,保证网络活力的基本功能。对此,本文提出一种基于社区划分和用户相似度的好友推荐方法,从大量的用户群体中为特定用户寻找可能性高的潜在好友并推荐给用户。
  现在大部分推荐的文章着眼于基于相同或相似的用户兴趣向用户推荐物品,主要有内容过滤和协作过滤[2]两种方法。内容过滤基于用户描述的兴趣和用户行为建立用户兴趣模型,然后与目标项目做相似度分析得出推荐结果。协作过滤的基本思想是根据用户的项目评分得出和目标用户有相似兴趣的邻居用户,再利用邻居用户对目标项目的评分产生推荐。由于本文中推荐给用户的是用户的好友,与物品是截然不同的两种类型,所以以上的好友推荐并不适合。
  就此,文献[3]提出了按照好友之间的互动次数衡量两者的亲密度,互动次数越多也就说明了两者之间关系越好,如果两个用户同时对第三个用户亲密度都高则说明他们都与第三个用户有很好的关系,这样他们就可能建立起新的好友关系。但是虚拟社交网络中的互动次数并不能完全正确的反应两者之间的关系,如两个用户因为做某件事情产生的交互较多但在现实世界中他俩可能并不熟,再者有的用户性格活跃产生的交互也多但这并不能说明他与别人关系都亲密。文献[4]中的用户之间的互动并不仅仅局限于好友,而是根据任意两个用户之间通过手机交互次数来进行推荐,根据用户交互来推荐的缺陷如上所述。文献[56]按照用户关注的blog 或用户去过的地方分析出用户的兴趣模型,由模型得出用户兴趣的相似度而发现潜在好友。仅仅从用户的爱好角度出发而忽略了在好友推荐中非常重要的用户之间的关系。文献[7]提出按照用户关系先建立完全子图,子图满足任何两个用户中都是具有好友关系的,接着子图之间按照共同用户数进行合并得出的图中必然有用户之间还未建立好友关系从而产生推荐。虽然利用了用户之间的关系,但没有与对推荐列表中的每一个用户成为好友关系的可能性进行量化,所以对推荐列表中的所有用户的推荐力度是相同的,并没有按照成为好友的可能性大小的不同而有不同的推荐力度。文献[8]根据用户的长相来推荐,虽然适用于婚恋类的社交网络,但是局限性太大,在大部分的社交网络中并不能产生有效的推荐。
  综合以上方法的优缺点,本文提出了一种基于社区划分和用户相似度的好友推荐方法。
  该方法首先按照人与人之间的关系建模为一个无向无权图,图中的节点表示用户,边表示用户之间已经建立的好友关系。再将由所有用户关系构成的社会网络图划分成一个个的子簇,满足簇内的用户之间联系紧密,而簇间的用户联系稀疏的特点。在簇内按照用户社会关系即建立的好友关系得出两两用户之间的相似度,按照得出的相似度的数值来产生推荐。上述方法主要用于用户数量庞大的社交网络中,相似度来量化两个用户之间的熟悉程度以及成为好友的可能性。一般来说,用户只有可能与社交网络中很少的一部分用户成为好友,而且与用户成为好友可能性最大的都来自用户所在的社交圈,与其他大部分社交圈中的用户成为好友的概率比较低。所以,用社区划分的方法得出用户所处的社交圈,再为社交圈中的用户计算两两之间的相似度,不仅降低了时间复杂度也提高了推荐结果的准确性。
  
  1 基于社区划分和用户相似度的好友推荐方法
  
  本文将大型社交网络中为用户推荐好友的方法分为两步:首先,将整个社交网络划分成一个个的子网络,每一个子网都是一个社交圈,从中发现用户所在的子网也就是用户所处的社交圈;再在这个子网中计算用户与其他子网成员的相似度,以此来衡量他们之间成为好友的熟悉程度以及成为好友的可能性,选出相似度高的推荐给用户。具体的方法介绍如下所示。
  
  1.1 社区划分
  社交网络(social network service)即社交性网络服务,帮助人们建立社会性的互联网服务。此类网络主要分为两种:一种是具有实时性的如婚恋类网站百合网,世纪佳缘等,此类网站并不能反映用户真实的社交关系但具有某种特定的功能,用户在某个特定的时间段内会频繁用到,但过了这个时间段后便不会再使用如结婚后的用户将不会再登录婚恋网站,此类网站功能定位的特殊性,并不具有共性,本文在此的适用性不强。另一种是持久性的如Facebook,校内网,开心网等,用户首先根据自己在现实世界中的社会关系建立自己的社交关系网,然后再利用社交网络的特点来扩张关系网。此类网站中用户填写的信息一般是真实可用的,建立的关系网也是强连接的,用户之间具有很大的黏性,因此用户和此类社交网站的黏性也得到了保证,用户不断地登录以维护和发展自己的关系网,在今后的学习,工作和生活中可借助在虚拟网络中建立的关系网来为自己提供帮助。此类网站具有普遍性和通用性,本文的好友推荐方法主要适用于此类型的社交网络。
  最近几年来,社交网络得到了飞速的发展,用户数量急剧的膨胀的起来,像校内网,开心网聚集了几千万的用户。对于每一个具体的用户,他往往只关心与自己的社交圈比较接近的一些用户并与之交朋友,而不是要认识这个社交网络的所有人。图一中顶点表示用户,边表示两用户之间的好友关系,可以看出它非常清晰的分成了两个社区,用户B 一般想与用户ACE 建立起好友关系,而对用户GH 等建立好友关系的兴趣并不大。所以向B 推荐GH 等得到的效果并不好,而向B 推荐ACE 可能会得到B 积极的回应。并且由于社交网络中用户数目太过庞大,针对某一个特定的用户社交网络中的绝大多数都是不会成为好友的,在整个社交网络中寻找潜在好友是不必要的。
  一般情况下,用户倾向于与同一个社交圈中的成为好友,所以需要将社交网划分为一个个子社区,子社区中的用户联系都是比较紧密的,由此而形成的关系网络比较稳定。按照“物以类聚,人以群分”的思想,在子社区中尚未建立好友关系的两用户之间存在着某个共同的特征。他们或在现实生活中是认识的,只是还没有来得及建立关系。如B 是新注册的用户而C 并不知道B 已经注册了,所以两个人之间的关系一直未建立起来。即使是现实生活中不认识的两个人,他们在同一个社交圈子中,有很多共同的好友,通过好友之间的交流或共同参加过某个活动,相互之间也并不是完全陌生的,如B E 会相互了解有成为朋友的意愿,将E 推荐给B 是合理的。而一般来说,在不同的子社区中的两个用户他们的社交圈是不同的,生活中没有交集,两人之间是陌生的,推荐给对方的意义并不大。
  社区网络可以建模为无向无权图G=VE),其中V 表示社区网络中的用户集合,E表示用户之间已经建立的好友关系集合,然后利用社区划分的方法得出子社区。目前关于社区划分的算法有很多:G-N算法,MFC算法,谱聚类法,KL 算法,CPM算法, Label Propagation算法[9-14]等。考虑到社区网络的规模庞大,用户数量多,本文采用时间复杂度较低的LabelPropagation 算法。它的基本思想是首先为每一个节点分配唯一的一个标签后随机更改某一个节点的标签以此来打破平衡,根据邻居节点的标签来更改自己的标签。如图2 所示,左半边的标签c 的邻居节点中标签b 的节点数比标签a 的节点数多,所以c 的标签更新为 b。当每一个节点的标签是它的邻居节点集合中占最多数的标签时,停止算法,否则继续更新标签直到满足条件为止。最后具有相同标签的节点集合组成子社区。
  在划分出的结果中,子社区内的联系紧密,社区间的联系稀疏。每一个社区就是一个社交圈,在相同的社交圈的用户认识的可能性比较大或者通过社交网络建立起好友关系的意愿比较强烈。他们之间具有大量共同的朋友,符合通过“朋友的朋友”来扩展自己的交际圈的思想。而不同的社交圈中的用户一般是不认识的。在好友推荐的过程中,在划分的子社区里面寻找潜在的好友不仅缩小了范围,提高了效率,也增加了推荐的准确率。

 

1.2 用户相似度
  相似度已经在很多领域有了应用,如:Google 网站排名,协作过滤等等。Google 利用相似度得出的值会为网站标识“重要性/等级”,从而提升搜索质量。协作过滤会利用用户对多种事物的评价大多数是评分来计算两个用户之间的相似度,然后再推荐用户可能喜欢的事物。推荐好友也需要利用用户之间的相似度来产生推荐列表来提高推荐的精度。在相同社区中的用户虽然组成了一个社交圈,但是社交圈中人与人之间也是有亲疏关系的存在。比如即使是在同一个社交圈中,但是双方的共同好友数目是不一样的,从而造成了双方成为好友的可能性是不同的。如图1 中的A D 之间的共同好友数目只有一个共同的好友C,而D F 之间有三个共同的好友BECA D 想要了解和认识对方只能通过C,而D F 则有三个消息源和通道来了解和认识对方。显而易见的,D F 成为好友的可能性要比D A 成为好友的可能性要大。所以要通过用户的相似度,得出用户之间的亲疏关系,据此来产生推荐。
  1.2.1 属性选择
  用户相似度的计算,应该选取合适的用户属性,通常考虑的如:年龄,性别,家乡,高中,大学等等个人信息,这些信息在电子商务领域用于推荐商品能发挥巨大的作用。如根据性别来推荐适合的产品,给女性推荐化妆品,男性推荐手表。根据年龄段,给老年人推荐保健品,给未成年人推荐游戏等等。大量的实践已经证明了根据个人信息推荐物品是行之有效的。但是在推荐好友方面,个人信息的作用就不会体现的非常明显,因为仅仅根据以上的个人属性并不能很好的把每个人的特征表现出来,将个体与其他个体区分开来。这些属性描述的个体过于广泛,根据这些属性产生的推荐好友的结果不具有实用性。如:我们可以根据年龄段给老年人推荐保健品,但我们不能因为两个用户都是老年人而认为两者之间相互熟识是潜在的好友。所以用户的个人属性不能用于推荐好友的相似度计算中。
  在现实生活中,两人之间如果是好友关系,通常情况下都会与对方的部分好友存在好友关系。一般情况下,仅仅是两个人之间存在关系,而与对方的好友没有任何联系的情况是很少的。如果与对方的大量好友都有好友关系,则两人之间就会有很大的可能性是好友关系。
  好友关系可以将每个人的特征表现出来,将个体与其他个体区分开来。是否与对方的好友存在联系,与对方的哪些好友有联系是衡量两个用户之间是否存在好友关系的重要标准。所以,根据好友之间的关系得出的相似度是可以作为推荐好友的依据。对此本文由以下定义:
  定义.关系相似度:在由以用户构建的社交网络为基础而抽象出来的无向无权图中,由图中的结点的关系以及图的拓扑结构得出的两点之间的相似度。此相似度从用户之间的人际关系网的角度出发来考虑两用户的相似性。
  1.2.2 关系相似度
  相似度的计算有很多的方法,基本上都是针对的某一个特定的领域,像Google 网站排名的PageRank,协作过滤中的皮尔斯相关系数等。在基于连接的相似度计算中,simrank[15]在描述网络中各个节点之间的相似度方面非常合适。
  SimRank 是计算图中任意两个结点之间相似度的一种方法,它的基本思想是:2 个结点是相似的,如果与它们关联的结点相似。如果图中两点之间存在连接,表示两个结点有关联。
  Simrank 相似度根据关联关系迭代得出。在好友推荐方面,由用户之间的好友关系构成用户关系图,经过上一步社区划分之后,会出现多个子社区。在子社区中计算两两用户之间的相似度,按照相似度从高到低,为用户推荐好友。如图3 所示,假设是经过社区划分后的一个子社区形成的关系图,现在为用户B推荐好友。在用户DE ,按照与B 的相似度从高到低推荐给B
  初始值情况下:相同用户相似度为1,不同用户相似度为0。再利用公式1 迭代多次后,相似度会收敛到一个固定的值。
  表格演示了关系相似度的计算过程,并得出了图3 中各点之间的关系相似度。对于用户B 来说S(B,D)= 0.396S(B,E)=0.227S(B,D)大于S(B,E)说明B D 认识的可能性要大于B E 认识的可能性,推荐过程中会先推荐B 再推荐E。由也可以看出B D 通过A 就能关联上,而B E 需要先通过A 再通过D 才能关联上。计算的相似度结果与现实生活中的经验是一致的,反映了此相似度作为推荐好友的依据的可行性。
  
  2 实验
  为验证所提方法的有效性并保证实验的真实性,本文从校内网上采集1000 个用户的基本资料和这1000 个用户之间已经建立起来的好友关系,总共有22583 个关系。在这些关系的基础上,构建一张关系图,先利用社区划分中的Label Propagation 算法将这1000 个用户组成的社会关系网络划分为19 个子社区。
  在经过社区划分后,需要计算社区内两两用户相似度。根据前文描述的相似度计算的方法,本文编制了java 程序进行模拟实验,运行平台为双核3.0GHZ/2G 内存/Window XP 操作系统,运行环境是jdk1.6eclipse3.4 mysql5.1
  给出了相似度计算耗费时间与用户数目的关系图,从图中可以看出经过社区划分后在小社区内计算相似度可大幅度的减少所耗费时间,提高性能。
  
  3 结论
  
  本文给出了一种在大型社交网络中基于社区划分和用户相似度的方法来发现网络中潜在的好友。在现实生活中,好友通常在同一个社交圈中并且他们的好友也存在好友关系。按照这种思想,本文发现的潜在好友与用户在现实生活中的好友关系通常是吻合的,这种推荐的准确率也会比较高。通过实验也验证了本文提出方法的可行性和有效性。

  
  [参考文献] (References)
  
[1] Milgram S. The Small World Problem [J]. Psychology Today , 1967, 67(1): 60-67.
  
[2] J.Bobadilla, F.Serradill, A.Hernando, et al. Collaborative filtering adapted to recommender systems ofe-learning [J]. Knowledge-Based Systems, 2009, 22(4): 261-265.
  [3] Shuchuan Lo, Chingching Lin. WMR
A Graph-based Algorithm for Friend Recommendation [C]. the 2006IEEE/WIC/ACM International Conference on Web Intelligence, Hong Kong, 2006:121-128.
  
[4] Chin A. Finding Cohesive Subgroups and Relevant Members in the Nokia Friend View Mobile SocialNetwork [C]. the 2009 International Conference on Computational Science and Engineering, Canada,2009:278-283.
  
[5] Shen Dou, Sun Jian-tao, Yang Qiang, et al. Latent Friend Mining from Blog Data [C]. the Sixth InternationalConference on Data Mining, Hong Kong, 2006:552-561.
  [6] Zheng Yu, Chen Yu-kun, Xie Xing et al. GeoLife2.0: A Location-Based Social Networking Service [C].Proceedings of the 2009 Tenth International Conference on Mobile Data Management: Systems, Services andMiddleware, Taipei, 2009:357-358.

[7] Bacon K, Dewan P. Towards Automatic Recommendation of Friend Lists[C]. Collaborative Computing:Networking, Applications and Worksharing, 2009:1-5.
  [8] Wu Zhi-peng, Jiang Shu-qiang, Huang Qing-ming. Friend Recommendation According to Appearances onPhotos [C]. the seventeen ACM international conference on Multimedia, China, 2009:987-988.
  [9] Girvan M, Newman MEJ. Community structure in social and biological networks [J]. Proc.of the NationalAcademy of Sciences, 2002, 9(12): 7821-7826.
  [10] Gary William Flake, C.Lee Giles, Steve Lawrence. Self-Organization and identification of Web communities[J]. IEEE Computer, 2002, 35(3):66-71.
  [11] Wu F, Huberman BAFinding communities in linear time: A physics approach [J]. European PhysicalJournal,2004, 38(2): 331-338
  [12] Newman MEJ. Detecting community structure in networks[J]. European Physical Journal, 2004, 38(2):321-330
  [13] Alla GDerenyi IFarkas I et al.Uncovering the overlapping community structures of complex networks innature and society[J]. Nature, 2005, 435(7043) : 814-818
  [14] Raghavan U N, Albert R, Kumara S. Near linear time algorithm to detect community structures in large-scalenetworks[J]. Physical Review E, 2007, 76(3): 036106
  [15] Jeh G, Widom J. SimRank: a measure of structural-context similarity[C]. the 8th ACM SIGKDD InternationalConference on Knowledge Discovery and Data Mining, Canada, 2002: 538-543


 

抱歉!评论已关闭.