CS224W| 笔记2.1:图的四大属性
1 引言
初步了解一个人,我们通常会问其身高、年龄、体重等信息。那么,要了解一个图Graph
我们需要关注哪些信息呢?这就是本节讨论的内容。
图的四大属性
通常我们会从下面四个方面去初步理解一个图:
- 度分布(Degree distribution)
- 路径长度(Path length)
- 聚类系数(Clustering coefficient)
- 连通分量(Connected components)
下面依此来看
度分布(Degree distribution)
- 定义:统计每个节点的度,然后计算不同的度数在所有节点中出现的频率。从图上看起来更直观。
路径长度(Path length)
需要了解三个概念:路径、距离、直径
路径:
是一串彼此相连的节点组成的链。如:
或者注:一个条路径中的某点看可以出现多次!
- 2 .
距离(Distance)
:两点之间的最短路径shortest path,称为两点之间的距离
。注:
- 对于有向图,一条路径的边一定要从左到右
若两点之间不直接或间接相连则距离为无穷大.
如下图中的 和 点之间距离
直径
:图的中任意两点之间距离的最大值,称为图的直径
。但直径并不是很好用,考虑到一个
很扁的图
和很圆的图
可能具有形同的直径。说白了就是容易受极端值影响。通常采用平均距离。- 计算时忽略不相连的两点间距离,无穷大。
- 直径也适用于刻画图的某个连通分量(connected components)的直径。
平均距离
Average path length:所有两点之间距离加总,除以所有两点的组合数。
聚类系数(Clustering coefficient)
- 定义:是用来描述一个图中的某节点与其相连节点之间
聚集成团
的程度的一个系数。它只定义在无向图上。计算方法如下:
实际上就是算节点i与邻居构成实际组成的三角形数除上最大可能三角形个数。翻译成人话就是 我的朋友之间相互认识情况。
平均聚类系数
:所有节点的聚类系数取平均就得到。
连通分量(Connected components)
连通分量
:图中的一个子图,子图中任意两点之间都存在路径,子图内节点和子图外的节点都没有路径。- 任何连通图的连通分量只有一个,即是其自身.
- 非连通的无向图有多个连通分量。
如何找到联通分量?
通过广度搜索算法(BFS)。具体的内容放在将 深度搜索(DFS)和广度搜索时再详细介绍。
【举个栗子】
下面老师找了几个现实世界的网络,来计算其四个属性情况。
MSN Messager网络
老师通过MSN(类似QQ的聊天软件),上一个月的对话活动构建的网络,这本身是个Multigraph 包含180M的用户(节点),两类边:是否好友、是否聊过天(可多次)。
通过简化,将用户之间有过聊天简化成无向图。共180M节点,1.3B边。这个MSN网络的4大属性如下:
通过属性说明了什么呢?
给大家翻译下:
- 度分布,均值14.4,说明平均每个人和14.4个人聊天
- 聚类系数,均值0.11,平均每个人聊天过的朋友中,只有11%的朋友会彼此聊天。
- 连通分量,最大联通分量覆盖99%的节点,
强连通
,绝大部分人都生活在一个大群体中。 - 路径长度,均值6.6,平均两个人之间通过7个人就能聊上天;最大值30,意味任意两个人能认识最多通过30个人就能实现。
老师还给了一个PPI网络,蛋白质相互作用的网络,感兴趣的朋友可以自行了解。这部分详细的计算和画图内容,放在对应的代码篇。路径如下:
https://github.com/kevin-meng/learn-graph-knowledge-step-by-step
一个问题
得到图的四个维度属性后,怎么评价这个网络呢?到底处在什么水平?
就好像评价看一个人是高还是矮,我们是拿自己或他人作为参照,得出结论。那么对于网络我们也需要一个参照,这就是下面要谈的随机网络模型
参考文章
- http://web.stanford.edu/class/cs224w/slides/02-gnp-smallworld.pdf
- https://blog.csdn.net/Jenny_oxaza/article/details/106142668