论文部分内容阅读
近年来,社交网络(SocialNetwork Services,SNS)作为一种新颖的,实用的,便捷的交友模式,依赖其真实性,稳定性等特点越来越受到用户的青睐。随着社会的发展和科技的进步,大量标志性的社交网站如雨后春笋般迅速发展起来,互联网上的信息呈爆炸式增长,人们进入富信息穷知识的时代。社交网站拥有庞大的用户群,为了更好地帮助用户维护好友关系,结识新朋友,拓展自己的社交范围,必须要过滤掉大量冗余信息,在这样背景下,好友推荐技术应运而生。虽然很多学者在好友推荐这方面做了很多研究,但最终结果都不是非常完美。通过对真实社交网站数据观察,我们发现部分用户会逐步形成一种小团体结构即社会网络中的一种社区现象或者可以理解为用户的真实社交圈。现实生活中我们大多活跃在这些圈子中,好友的来源也大多在其中,因此本文将社区划分技术融合到好友推荐算法中。论文第一部分介绍社区发现的研究的现状。重叠社区划分技术现在还处于初级阶段,目前划分结果比较好的算法有COPRA算法。本文针对COPRA算法所具有的随机性强,划分规模不可控制的问题提出了基于中心点的COPRA算法。该算法分两步进行,第一步是基于用户影响力的中心点选择过程,第二步是把中心点作为种子节点执行COPRA算法过程。在设计查找中心点算法中,对用户节点在社交网络中的影响力进行计算,根据携带不同标签的节点的UIV(User Influence Value)值来预选出代表不用社区的中心节点。把这些中心节点作为种子节点会解决原始算法随机性较强的问题,算法进一步在节点游走过程中对节点选择加以控制,减弱了原始算法划分结果规模不可控问题。第二部分是对协同过滤推荐算法的研究,引入社区发现技术之后降低了数据规模,该过程引入用户—标签属性关联强度概念,修正了用户—项目矩阵。随后采用改进的相似度计算方法确定目标用户近邻集,选出前K个用户作为目标用户的潜在好友进行推荐。最后本文采用Java语言对算法进行了具体实现,并在karate、dolphin和新浪微博的好友数据上进行了测试,实验结果表明,从评价标准上来看,本文的算法在社区发现和好友推荐方面都要优于现有的算法。