cs224w(图机器学习)2021冬季课程学习笔记16 Community Detection in Networks

简介: 本章主要内容:本章首先介绍了网络中社区community(或cluster / group)的概念,以及从社会学角度来证明了网络中社区结构的存在性。接下来介绍了modularity概念衡量community识别效果。然后介绍了Louvain算法1识别网络中的community。对于overlapping communiteis,本章介绍了BigCLAM2 方法来进行识别。

1. Community Detection in Networks


  1. 图中的社区识别任务就是对节点进行聚类
  2. networks & communities

网络会长成图中这样:由多个内部紧密相连、互相只有很少的边连接的community组成。

image.png


  1. 从社会学角度理解这一结构:

在社交网络中,用户是被嵌入的节点,信息通过链接(长链接或短链接流动)。

以工作信息为例,Mark Granovetter 在其60年代的博士论文3 中提出,人们通过人际交往来获知信息,但这些交际往往在熟人(长链接)而非密友(短链接)之间进行,也就是真找到工作的信息往往来自不太亲密的熟人。这与我们所知的常识相悖,因为我们可能以为好友之间会更容易互相帮助。

image.png

7c7af3ee1dda4ecaa49ee06ee8c04d31.png

Granovetter认为友谊(链接)有两种角度:

一是structural视角,友谊横跨网络中的不同部分。

二是interpersonal视角,两人之间的友谊是强或弱的。

image.png

Granovetter在一条边的social和structural视角之间找到了联系:

  • structure:structurally/well embeded / tightly-connected 的边也socially strong,长距离的、横跨社交网络不同部分的边则socially weak。

也就是community内部、紧凑的短边更strong,community之间、稀疏的长边更weak。

  • information:长距离边可以使人获取网络中不同部分的信息,从而得到新工作。structurally embedded边在信息获取方面则是冗余的。

也就是说,你跟好友之间可能本来就有相近的信息源,而靠外面的熟人才可能获得更多新信息。

image.png


  1. triadic closure

triadic:三元; 三色系; 三色; 三重; 三合一;

community (tightly-connected cluster of nodes) 形成原因:如果两个节点拥有相同的邻居,那么它们之间也很可能有边。(如果网络中两个人拥有同一个朋友,那么它们也很可能成为朋友)

image.png

triadic closure = high clustering coefficient4

triadic closure产生原因:如果B和C拥有一个共同好友A,那么B更可能遇见C(因为他们都要和A见面),B和C会更信任彼此,A也有动机带B和C见面(因为要分别维持两段关系比较难),从而B和C也更容易成为好友。

Bearman和Moody的实证研究5 证明,clustering coefficient低的青少年女性更容易具有自杀倾向。

image.png


  1. 多年来Granovetter的理论一直没有得到验证,但是我们现在有了大规模的真实交流数据(如email,短信,电话,Facebook等),从而可以衡量真实数据中的edge strength。


举例:数据集Onnela et al. 20076

20%欧盟国家人口的电话网络,以打电话的数量作为edge weight

image.png

image.png

image.png

图中左上角overlap:0/6

图中右上角overlap:2/6

图中左下角overlap:4/6

图中右下角overlap:6/6


  1. 在电话网络6 中,edge strength(电话数)和edge overlap之间具有正相关性:图中蓝色是真实数据,红色是重新排列edge strength之后的数据(对照组):

image.png

在真实图中,更embeded(密集)的部分edge strength也更高(红):

image.png

相比之下,strength被随机shuffle之后的结果就没有这种特性:

image.png

从strength更低的边开始去除,能更快disconnect网络(相当于把community之间的边去掉):

image.png

从overlap更低的边开始,disconnect更快:

image.png


  1. 从而,我们得到网络的概念图:由structurally embeded的很多部分组成,其内部链接更强,其之间链接更弱:

image.png


2. Network Communites


  1. network communites就是这些部分(也叫cluster,group,module):一系列节点,其内部有很多链接,与网络其他部分的外部链接很少

image.png


  1. 我们的目标就是给定一个网络,由算法自动找到网络中的communities(densely connected groups of nodes)

image.png


  1. 以Zachary’s Karate club network来说,通过社交关系创造的图就可以正确预判出成员冲突后会选择哪一边:

image.png


  1. 在付费搜索领域中,也可以通过社区识别来发现微众市场:举例来说,节点是advertiser和query/keyword,边是advertiser在该关键词上做广告。在赌博关键词中我们可以专门找到sporting betting这一小社区(微众市场):

f466561659a544f2a624aeb9b460d99b.png


  1. NCAA Football Network

节点是球队,边是一起打过比赛。通过社区识别算法也可以以较高的准确度将球队划分到不同的会议中:

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png


  1. 我们可以通过最大化modularity来识别网络中的社区。

7411940f95e44e0686ddb99f26605dfd.png


3. Louvain Algorithm


  1. Louvain Algorithm

是用于社区发现的贪心算法,O ( n log ⁡ n ) 运行时间。

支持带权图和hierarchical社区(就可以形成如图所示的树状图dendrogram)。

广泛应用于研究大型网络,快,迅速收敛,输出的modularity高(也就意味着识别出的社区更好)。

image.png


  1. Louvain算法每一步分成两个阶段:

第一阶段:仅通过节点-社区隶属关系的局部改变来优化modularity。

第二阶段:将第一步识别出来的communities聚合为super-nodes,从而得到一个新网络。

返回第一阶段,重复直至modularity不可能提升。

如下图右下角所示:

image.png


  1. Louvain算法将图视作带权的。

原始图可以是无权的(例如边权全为1)。

随着社区被识别并聚合为super-nodes,算法就创造出了带权图(边权是原图中的边数)。

在计算过程中应用带权版本的modularity。

image.png

image.png

7b11eb0a727943cdbbf74a31f230707d.png

image.pngimage.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png


  1. phase2 (restructing)

将通过上一步得到的社区收缩到super-nodes,创建新网络,如果原社区之间就有节点相连,就在对应super-nodes之间建边,边权是原对应社区之间的所有边权加总。

然后在该super-node网络上重新运行phase1

image.png

图示如下:

image.png


  1. Louvain Algorithm整体图示:

image.png


  1. 在Belgian mobile phone network中,通过Louvain algorithm,可以有效划分出法语和德语社区:

image.png


  1. 本节总结
  • modularity:对将图划分到社区的partitioning的质量的评估指标,用于决定社区数
  • Louvain modularity maximization:贪心策略,表现好,能scale到大网络上

image.png


4. Detecting Overlapping Communities: BigCLAM


  1. overlapping communities

image.png


  1. Facebook Ego-network11

其节点是用户,边是友谊:

image.png

在该网络中社区之间有重叠。通过BigCLAM算法,我们可以直接通过没有任何背景知识的网络正确分类出很多节点(图中实心节点是分类正确的节点):

image.png


  1. protein-protein interactions

在protein-protein interactions网络中,节点是蛋白质,边是interaction。其functional modules在网络中也是重叠的。

image.png

image.png


  1. 重叠与非重叠的社区在图中和在邻接矩阵中的图示:

image.png


  1. BigCLAM方法流程:

第一步:定义一个基于节点-社区隶属关系生成图的模型(community affiliation graph model (AGM12))

第二步:给定图,假设其由AGM生成,找到最可能生成该图的AGM

通过这种方式,我们就能发现图中的社区。

image.png

image.png

image.png

image.pngimage.png


  1. AGM可以生成稠密重叠的社区

image.png


  1. AGM有弹性,可以生成各种社区结构:non-overlapping, overlapping, nested

558f61c23ba646c69fcfbbe0f8633a73.png


  1. 通过AGM发现社区:给定图,找到最可能产生出该图的AGM模型参数(最大似然估计)

image.png

image.png

image.png

image.png

f3efb3c9db6443cf8e3710531e63bb1c.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png


  1. BigCLAM总结:

BigCLAM定义了一个模型,可生成重叠社区结构的网络。给定图,BigCLAM的参数(每个节点的membership strength)可以通过最大化对数似然估计得到。


image.png

相关文章
|
1月前
|
机器学习/深度学习 计算机视觉 Python
模型预测笔记(三):通过交叉验证网格搜索机器学习的最优参数
本文介绍了网格搜索(Grid Search)在机器学习中用于优化模型超参数的方法,包括定义超参数范围、创建参数网格、选择评估指标、构建模型和交叉验证策略、执行网格搜索、选择最佳超参数组合,并使用这些参数重新训练模型。文中还讨论了GridSearchCV的参数和不同机器学习问题适用的评分指标。最后提供了使用决策树分类器进行网格搜索的Python代码示例。
54 1
|
5月前
|
机器学习/深度学习 算法 BI
机器学习笔记(一) 感知机算法 之 原理篇
机器学习笔记(一) 感知机算法 之 原理篇
|
5月前
|
机器学习/深度学习 搜索推荐 PyTorch
【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术
【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术
1135 2
|
5月前
|
机器学习/深度学习 算法 数据可视化
技术心得记录:机器学习笔记之聚类算法层次聚类HierarchicalClustering
技术心得记录:机器学习笔记之聚类算法层次聚类HierarchicalClustering
51 0
|
5月前
|
机器学习/深度学习 分布式计算 API
技术好文:Spark机器学习笔记一
技术好文:Spark机器学习笔记一
39 0
|
6月前
|
机器学习/深度学习 自然语言处理 PyTorch
fast.ai 机器学习笔记(四)(1)
fast.ai 机器学习笔记(四)
137 1
fast.ai 机器学习笔记(四)(1)
|
6月前
|
机器学习/深度学习 数据挖掘 Python
fast.ai 机器学习笔记(一)(4)
fast.ai 机器学习笔记(一)
127 1
fast.ai 机器学习笔记(一)(4)
|
6月前
|
机器学习/深度学习 Python 文件存储
fast.ai 机器学习笔记(一)(3)
fast.ai 机器学习笔记(一)
132 1
fast.ai 机器学习笔记(一)(3)
|
6月前
|
机器学习/深度学习 算法 图计算
图机器学习入门:基本概念介绍
图机器学习是机器学习的分支,专注于处理图形结构数据,其中节点代表实体,边表示实体间关系。本文介绍了图的基本概念,如无向图与有向图,以及图的性质,如节点度、邻接矩阵。此外,还讨论了加权图、自循环、多重图、双部图、异构图、平面图和循环图。图在描述数据关系和特征方面具有灵活性,为机器学习算法提供了丰富的结构信息。
145 0
|
6月前
|
机器学习/深度学习 Python 索引
fast.ai 机器学习笔记(二)(4)
fast.ai 机器学习笔记(二)
55 0
fast.ai 机器学习笔记(二)(4)