社区发现CommunityDetection算法讲述.docx

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
社区发现CommunityDetection算法讲述

社区发现(Community Detection)算法?社区发现(Community Detection)算法用来发现网络中的社区结构,也可以视为一种广义的聚类算法。以下是我的一个 PPT 报告,分享给大家。? ? ? ? 从上述定义可以看出:社区是一个比较含糊的概念,只给出了一个定性的刻画。另外需要注意的是,社区是一个子图,包含顶点和边。? ? ? ? 下面我们以新浪微博用户对应的网络图为例,来介绍相应的社区发现算法。? ? ? ? 这里在相互关注的用户之间建立连接关系,主要是为了简化模型,此时对应的图为无向图。当然,我们也可以采用单向关注来建边,此时将对应有向图。? ? ? ??这个定义看起来很拗口,但通过层层推导,可以得到如下(4.2)的数学表达式。定义中的随机网络也称为Null Model,其构造方法为:? ? ? ? the null model used has so far been a random graph with the same number of nodes, the same number of edges and the same degree distribution as in the original graph, but with links among nodes randomly placed.? ? ? ?注意,(4.2) 是针对无向图的,因此这里的 m 表示无向边的条数,即若节点 i 和节点 j 有边相连,则节点 (i, j) 对 m 只贡献一条边。? ? ? ? 标签传播算法(LPA)的做法比较简单:第一步: 为所有节点指定一个唯一的标签;第二步: 逐轮刷新所有节点的标签,直到达到收敛要求为止。对于每一轮刷新,节点标签刷新的规则如下:? ? ? ? 对于某一个节点,考察其所有邻居节点的标签,并进行统计,将出现个数最多的那个标签赋给当前节点。当个数最多的标签不唯一时,随机选一个。注:算法中的记号 N_n^k 表示节点 n 的邻居中标签为 k 的所有节点构成的集合。??? ? ??SLPA 中引入了?Listener?和?Speaker?两个比较形象的概念,你可以这么来理解:在刷新节点标签的过程中,任意选取一个节点作为 listener,则其所有邻居节点就是它的 speaker 了,speaker 通常不止一个,一大群 speaker 在七嘴八舌时,listener 到底该听谁的呢?这时我们就需要制定一个规则。? ? ? ? 在 LPA 中,我们以出现次数最多的标签来做决断,其实这就是一种规则。只不过在 SLPA 框架里,规则的选取比较多罢了(可以由用户指定)。? ? ? ? 当然,与 LPA 相比,SLPA 最大的特点在于:它会记录每一个节点在刷新迭代过程中的历史标签序列(例如迭代 T 次,则每个节点将保存一个长度为 T 的序列,如上图所示),当迭代停止后,对每一个节点历史标签序列中各(互异)标签出现的频率做统计,按照某一给定的阀值过滤掉那些出现频率小的标签,剩下的即为该节点的标签(通常有多个)。SLPA 后来被作者改名为?GANXiS,且软件包仍在不断更新中......? ? ? ??这里对上面的图做个简单介绍:带问号的节点是待确定标签的节点,黑色实心点为其邻居节点,它们的标签是已知的,注意标签均是由二元数对的序列构成的,序列中每一个元素的第一个分量表示其标签,第二个分量表示该节点属于该标签对应社区的可能性(或者说概率,叫做 belonging coefficent),因此对于每个节点,其概率之和等于 1。? ? ? ? 我们按照以下步骤来确定带问号节点的标签:1. 获取邻居节点中所有的互异(distinct)标签列表,并累加相应的?belonging coefficent 值。2. 对?belonging coefficent 值列表做归一化,即将列表中每个标签的?belonging coefficent 值除以 C1 (C1 为列表中?belonging coefficent 值的最大值)。3. 过滤。若列表中归一化后的?belonging coefficent 值(已经介于 0,1 之间)小于某一阀值 p (事先指定的参数),则将对应的二元组从列表中删除。4. 再一次做归一化。由于过滤后,剩余列表中的各?belonging coefficent 值之和不一定等于 1,因此,需要将每个?belonging coefficent 值除以 C2 (C2 表示各?belonging coefficent 值之和)。? ? ? ? 经过上述四步,列表中的标签即确定为带问号节点的标签。? ? ? ??这里,我们对 Fast Unfolding 算法做一个简要介绍,它分为以下两个阶段:

您可能关注的文档

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档