当前位置: 首页 > 专利查询>福州大学专利>正文

基于混合近邻消息传播的并行社区发现算法制造技术

技术编号:12398280 阅读:64 留言:0更新日期:2015-11-26 03:58
本发明专利技术涉及一种基于混合了局部与全局近邻消息传播和并行计算技术的社区发现算法。主要步骤:步骤S1:读取原始数据,获取网络节点及节点近邻信息;步骤S2:根据节点及近邻相似度信息进行并行相似度计算;步骤S3:初始化迭代次数iter=1,代表点集Sete=Φ;步骤S4:支持度消息的并行计算及更新;步骤S5:适选度消息的并行计算更新;步骤S6:代表点的并行计算,及Sete的更新;步骤S7:判断迭代停止条件,若条件不满足,则iter=iter+1,返回步骤S4;步骤S8:根据代表点信息输出社区结构。该算法应用于大规模社交网络中的社区发现,为Web2.0为特征的社交网络应用提供极具商业价值的社区、兴趣团体等信息。

【技术实现步骤摘要】

本专利技术涉及社交网络上的社区发现领域,特别是一种基于近邻传播和并行计算的 大规模社区发现算法。
技术介绍
随着以微博、QQ空间、豆瓣网、时光网等为代表的Web2.0社交网络(Social Network)在国内外的飞速发展,人们已经越来越习惯于通过在线互动方式、虚拟交流方式 实现社会关系的创建和维护,主要的形式包括在线聊天、团购、评论、购物等。在虚拟交流过 程中,人们逐渐根据不同的兴趣爱好、生活习惯、成长背景等聚集成不同的社区。对这些社 交网络上的社区的识别与跟踪,在理论上是对复杂网络聚类研究的发展与丰富,在实践上 对目前大量基于社交网络的商业应用(如在线点评、团购网、智慧公交等)也有很高的价 值。 现有的社区发现方法在静态社交网络中的社区发现方面已经取得一定成果,但仍 存在以下几个问题:首先,算法的时间与空间复杂度通常比较高,在处理大规模社交网络时 的时间开销和空间开销过高;其次,算法通常需要一次性读取整个网络,当网络规模较大 时,往往无法在单机上完成;最后,算法设计时通常只考虑串行步骤的执行,未引入并行计 算机制,可扩展性不强。 MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。它极大 地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map (映射)函数,用来把一组键值对映射成一组新的键值对, 指定并发的Reduce (归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
技术实现思路
有鉴于此,我们提出了一种同时复用网络中的近邻和全局信息的近邻传播算法。 在设计算法时就考虑到算法步骤的可并行性,采用MapReduce模型中的map算子和reduce 算子实现算法的所有步骤,从而使算法具备良好的扩展性、并发性。此外,借助多机集群,我 们设计的算法能够有效地对大规模社交网络进行处理。 本专利技术采用以下算法实现:该算法主要包括以下步骤:步骤Sl :读取原始数据,获 取网络节点及节点近邻信息;步骤S2 :根据节点及近邻相似度信息进行并行相似度计算; 步骤S3 :初始化迭代次数iter = 1,代表点集Setf3= Φ ;步骤S4 :支持度消息的并行计算 及更新;步骤S5 :适选度消息的并行计算更新;步骤S6 :代表点的并行计算,及SetJ勺更 新;步骤S7 :若Se%不是空集且相邻两次迭代的Sete包含的元素完全相同,则迭代停止条 件满足;否则,判断迭代次数iter是否到达最大迭代次数maxlter,若是,则迭代停止条件 满足,其它情况表示迭代停止条件不满足,若迭代停止条件不满足,则iter = iter+Ι,返回 步骤S4 ;步骤S8 :根据代表点信息输出社区结构。 在本专利技术一实施例中,所述步骤S2包括以下具体步骤:步骤S20 :将原始数据组织 成(i, NB(i))的形式,其中i表示节点,NB⑴节点的近邻集合;步骤S21 :map运算:输入 KEY=i,VALUE = NB(i)4liaKEY=(i,k),VALUE = NB(i),kSi^W^.^3*m2.rAH"r.A 运算:输入 KEY = (i,k),VALUE = (NB ⑴,NB (k)),根据公式 4算 i 和 k 的相似度 s(i,k),输出 KEY = i,VALUE = (k,s(i,k)),以及 KEY = k,VALUE = (i,s(i, k));步骤 S23 :map 运算:输入 KEY = i,VALUE = (k, s(i, k)),输出 KEY = i,VALUE =(k,s(i,k));步骤 S24:reduce 运算:输入 KEY = i,VALUE= 〇^,8(;[,10)集合,输出1^¥ =i,VALUE = (k,s(i,k))集合。 在本专利技术一实施例中,步骤S4包括以下步骤:步骤S40 :支持度消息的格式为 (i, r (i, k)),r (i, k)为节点i对其近邻k的支持度,将所述r (i, k)初始化为0 ;步骤S41 : map 运算:输入 KEY = i,VALUE = (k, s (i, k)),以及(k, a(i, k)),a(i, k)为适选度,根据公 式:r(i,k) - s(i,k)-maxk, s.t.k,#kn k, ENB(i) {a(i,k')+s(i,k')}计算 r(i,k),输出 KEY = i,VALUE= (k,r(i,k));步骤 S42:reduce 运算:输入 KEY = i,VALUE= (k,r(i,k))集 合,输出 KEY = i,VALUE = (k,r(i,k))集合。 在本专利技术一实施例中,步骤S5包括以下步骤:步骤S50 :适选度消息的格式为 (i, a(i, k)),a(i, k)表示节点k适合作为其近邻i代表的程度,将a(i, k)初始化为0 ; 步骤 S51 :map 运算:输入 KEY = i,VALUE = (k, r (i, k))集合,输出 KEY = k,VALUE = (i,r(i,k));步骤 S52:reduce 运算:输入 KEY = k,VALUE= (;[,1'(;[,10)集合,输出1^¥ =k,VALUE = (i,r (i,k))集合;步骤 S53 :map 运算:输入 KEY = k,VALUE = (i,r (i,k)) 集合,根据公i1计算a(i, k),输出KEY =i,VALUE = (k, a (i, k));步骤 S54 :reduce 运算:输入 KEY = i,VALUE = (k, a (i, k))集 合,输出 KEY = i,VALUE = (k,a(i,k))集合。 在本专利技术一实施例中,步骤S6包括以下步骤:步骤S61 :map运算:输入KEY = i, VALUE = (k,r(i,k))集合及(k,a(i,k))集合,输出 KEY = i,VALUE = (r(i,k),a(i,k)); 步骤362抑(11^运算:输入1^¥=;[,'\^1^=(1'(;[,10,3(;[,10)集合,根据公式6(;0 = argmaxks.t.kE NB(i) {r(i, k)+a(i, k) |r(i, k)+a(i, k)>0}计算 k = e(i),同时将 k 加入集合 Sete,,输出 KEY = i,VALUE = k。 在本专利技术一实施例中,步骤S8中的根据代表点信息输出社区结构的过程 为:根据代表点信息输出社区结构根据代表点集361^及e (i) = argmax ks. t.kE NBW {r(i, k)+a(i, k) |r(i, k)+a(i, k)>0}得到的每个节点i的代表点e(i),将代表点相同的节 点划分到同一个社区Ck,使从属于同一个社区(;的成员的代表点均指向同一个代表点k,再 输出生成的社区集合。 本专利技术的有益效果是将混合了局部与全局消息传播的近邻传播方法与基于 MapReduce模型的并行计算方法相结合,应用于大规模社交网络中的社区发现,从而能够为 当前日益蓬勃发展的Web2.0为特征的社交网络应用提供极具商业价值的社区、兴趣团体 等信息本文档来自技高网...

【技术保护点】
一种基于混合近邻消息传播的并行社区发现算法,其特征在于,包括以下步骤:步骤S1:读取原始数据,获取网络节点及节点近邻信息;步骤S2:根据节点及近邻相似度信息进行并行相似度计算;步骤S3:初始化迭代次数iter=1,代表点集Sete=Φ;步骤S4:支持度消息的并行计算及更新;步骤S5:适选度消息的并行计算更新;步骤S6:代表点的并行计算,及Sete的更新;步骤S7:若Sete不是空集且相邻两次迭代的Sete包含的元素完全相同,则迭代停止条件满足;否则,判断迭代次数iter是否到达最大迭代次数maxIter,若是,则迭代停止条件满足,其它情况表示迭代停止条件不满足,若迭代停止条件不满足,则iter=iter+1,返回步骤S4;步骤S8:根据代表点信息输出社区结构。

【技术特征摘要】

【专利技术属性】
技术研发人员:郭昆郭文忠陈羽中
申请(专利权)人:福州大学
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1