图数据管理与挖掘-第三讲 社区发现算法笔记

艾晓雪

关注

阅读 100

2022-01-26

        社区发现是真实网络分析方面重要的研究课题,例如在社交网络中利用社区发现,可以进行好友推荐和广告的精准推荐等。社区发现算法比较多,本讲从最初的层级聚类的社区发现算法开始,介绍了基于边的中心度,k-clique,k-core, k-truss等不同的社区发现算法;同时也介绍了一种基于图的生成模型的社区挖掘算法。

 

首先我们讲什么是社区,有些结点具有局部特征,社区内的结点密集,社区与社区之间的连接比较稀疏。

 社区发现有很多应用可以做朋友推荐,或用于广告的推送。

Part 1 Community Detection Algorithms

 

大学社区与高中社区可能有overlapping重叠的,同时大学里面的好友与department里面的好友可能是一种包含关系,社区与社区之间的拓扑结构是各种各样的情景。

这里介绍一种传统的社区发现算法,层次聚类比较传统的机器算法。  

在图里面什么是聚类呢, 聚类算法我们知道大都是无监督算法,一般是两个物体之间的实体距离越近我们放进一个类,这是一个基本思路。

 社区是在图里面去找类,所以图里面实体是结点,两个结点之间的距离一般称为weights。

两种基本的思路,一种是两个结点之间的独立路径多说明其之间联系密切,还有一种思路是切断多少个结点才能把i,j变成不连通的。

然后我们就可以做层次聚类,首先把两个点合二为一,数据挖掘还考过别忘了,前面有写聚类相关的算法可以在我的主页下搜索。

如何去定义一个社区是相对好的,我们定义一个度量Modularity,这个参数主要衡量的是网络被划分到不同社区的好坏。

假如是个随机图的话(假设S有四个社区,s是其一)

#edges within group s ——社区s实际边个数

expected#edges within group s——随机产生的边的个数

如果说s是一个比较好的社区的话,这个社区边的数目比较大(第一部分)比随机产生的变数多,相减会是正数,这个数越大说明这个社区划分的越好,已挖掘的社区当中有多少条边数出来就可以了,  关键是随机产生的边数怎么计算。

实际上通过定义随机的一个模型,假设原始的图有n个结点,和m条边,另外产生一个图G' ,

这个图也是n个结点m条边,并且G'与G的每个结点deg分布一样的,但是边的连接是随机产生的,这种情况下我就算结点i,j之间可能有多少条边通过如上图方法计算.

表示的是i,j结点之间边数目的期望.

我们可以验证一下任何两个结点(i,j) 

 前面的算法是假设结点与结点之间是disjoint的社区发现的算法,导致的情况是社区与社区之间不能有overlapping的情况。

下面另外一个社区发现算法也是用来处理disjoint这样一种情况,在讲之前首先介绍一下Edge-betweenness(边的中心度)这样的一个概念,什么叫边的中心度呢?比如一些节点之间的最短路径通过这条边,通过这条边的最短路径越多其边的中心度越高。

   那么这个Edge Betweenness与数据发现有什么关系呢?[Girvan and Newman,PNAS 2002]

美国科学院的院刊这期还是比较有意思,如果一条边的Edge-betw越大的话代表这条边越有可能在社区里面还是不在社区里面? 发现连接社区之间的边具有很高的EB值。

如果把这条EB值很高的边删除后,这个图不再连通了, 我们认为找到比较好的社区了

所以该算法流程是这样子的,这个方案的效率是非常低的。

不断的去红色的边,最后图被分成了两个不同的社区。

这个算法每次找到所有的shortest-path,然后计算edge的EB值再排序删除,这样的计算效率很低那么介绍一种按照BFS计算的方法去计算EB的策略。

1.首先从任意一个结点开始,对每个结点而言构建一个BFS-tree,这个tree表达的是从A点开始经过多少跳到任意一个结点,这实际上是一个BFS-tree.

 2. 计算EB,这样算出从A点开始每条边的一个得分,同样可以构建以B开始的BFS-tree,算出每条边的的score,

以上是根据EB-value值的一个策略去找社区。

复盘一下就是往往连接社区之间的边具有较高EB-value值,去掉这些边,就可以得到表现不错的社区,是这样子的机理来进行社区发现。

下面我们讲一个团这样的概念,说白了,社区发现就是找一个sub-graph,这个sub-graph越接近团越接近社区,为什么团是最好的社区呢?首先团呢其中任意两点都连接了一条边,很显然是最好的社区了,但实际情况,假设十个同事之间关系很紧密,并不意味着这10个人任何两个人之间都是好友关系。 

熟悉算法导论的同学应该清楚要想找到这样一个团是一个NP-complete问题,非常复杂,以下讲解了极大团与最大团的知识,这个英文解释的很清楚。

关于团的 

  

 

 

 

 

 

 

 

参考资料

图数据管理与挖掘-第三讲 社区发现算法 北京大学2021暑期-邹磊教授_哔哩哔哩_bilibili

精彩评论(0)

0 0 举报