重叠社团
上面的方法都把每个节点只分到一个社团。但一个人可以同时属于家庭、同事、球友几个圈子;一个蛋白也可以同时参与多个复合物;一个脑区可以参与多个功能系统。
团渗流(CFinder)
团渗流方法(clique percolation,Palla 等,2005)允许社团重叠:把 个节点两两相连的子图称为 -团,共享 个节点的两个 -团视为“相邻”,相互可达的 -团的并集构成一个 -团社团。一个节点可以属于多个这样的社团。直观上,可以想象一个 -团“模板”在网络上滚动:每次移动一个节点到新位置,只要新位置仍构成 -团,模板就能继续滚动;模板能到达的所有位置构成一个社团。
随机网络中的渗流阈值:团渗流社团会不会在随机网络中偶然出现?Derényi、Palla 与 Vicsek(2005)推导出 ER 网络中 -团渗流的阈值 时 ,即巨连通分支出现的条件; 时 。连接概率低于 时,随机网络中只有零散的 -团,不会形成大的 -团社团。因此,若真实网络中存在大的 -团社团,而它的边密度低于对应的阈值,就说明这些社团不是密度带来的偶然产物(推导见数学推导与算法)。
团渗流的局限: 需要人为选择;网络中没有三角形的部分(如树状边缘)不属于任何社团;在稠密网络中可能形成一个巨大的社团。在空手道网络上, 得到一个 25 节点的大社团, 时则有 22 个节点不属于任何社团(代码示例)。
连边社团(link communities)
Ahn、Bagrow 与 Lehmann(2010)提出把边而不是节点分组:每条边只属于一个社团,而节点通过它的不同边自然地属于多个社团。具体做法:
- 对共享一个端点 的两条边 、,定义相似度 , 为包含 自身的邻居集;
- 对边做单连接层次聚类,得到边的树状图;
- 在使划分密度 最大的高度切割( 为总边数,、 为连边社团 的边数与节点数)。
衡量每个连边社团比同样节点数的树多出多少边。连边聚类同时给出层次与重叠,适合“每个节点参与很多不同情境”的网络;Ahn 等在包括蛋白质相互作用在内的多个网络上展示了它。一个与之相关的思路是在线图(以边为节点)上做普通的社团划分(Evans 与 Lambiotte 2009)。