重叠社区检测

重叠社区检测

💡 原文中文,约1300字,阅读约需3分钟。
📝

内容提要

同构图节点类型单一,异构图可将多属性融入图结构。异构图社区检测需用重叠社区算法:Linkcomm以边为基本元素,按边相似度合并,使节点可属多社区;CPM通过k-派系渗透找社团,依赖超参k且复杂度高;SLPA用标签传播迭代,成本高;LEMON用于种子扩张扩召回。

🔎

延伸解读

重叠社区检测的适用场景

文章指出,同构图节点类型单一,其他属性需人工融入特征;异构图则能直接将多属性定义到图结构中,更贴合实际。在异构图中,一个节点可能属于多个社区,因此需要重叠社区检测算法。这提示读者,当数据包含多种节点类型或节点具有多重归属时,应优先考虑异构图建模和重叠社区算法。

Linkcomm与Louvain的对比

Linkcomm以边为基本元素,按边相似度顺序合并,使节点可属多社区;Louvain以节点为基本元素,合并过程随机。Linkcomm每次合并两个社团,一次迭代求最优;Louvain每次移动一个节点,多轮迭代至收敛。读者可根据对确定性和效率的需求选择:Linkcomm合并顺序确定但粒度粗,Louvain更灵活但结果受随机性影响。

CPM算法的限制与调参

CPM通过寻找k-派系并渗透形成社团,依赖超参k(通常4-6),划分结果对k敏感。它适用于联通子图较多的场景,但复杂度较高,支持节点数量有限,且不能加入边权信息。使用时需根据数据规模调整建图方式,并谨慎选择k值,避免因k不当导致社团划分不合理。

SLPA与LEMON的定位

SLPA通过标签传播迭代,每个节点保留占比超过阈值的多个标签,从而识别重叠社区,但迭代成本高,且可能收敛困难,收敛后精度高但召回不高。LEMON是种子扩张算法,已知部分节点和社区,用于扩充同社区其他节点,适合扩召回场景。两者分别适用于对精度要求高或需扩大召回的任务。

❓

Q&A

异构图和同构图在社区检测上有什么主要区别?

同构图节点类型单一,其他属性需人工融入特征;异构图能直接将多属性定义到图结构中,不依赖人工,更贴合实际。异构图社区检测中节点可能属于多个社区,因此需要重叠社区检测算法。

Linkcomm算法是如何实现重叠社区检测的?

Linkcomm以边为基本元素进行社区划分,通过边-边相似度(两条边非公共节点的邻居节点交并比)排序合并边,使同一个点可以属于不同社区。合并时选择使社团整体密度最大的状态作为最终结果。

CPM算法做重叠社区检测的步骤是什么?

CPM分两步:1. 寻找k个节点的完全子图作为k-派系;2. 若两个k-派系有k-1个公共节点,则它们属于同一社团,按此连边形成的联通分支即为一个社团。

CPM算法有哪些主要限制?

CPM的主要限制包括:超参k需人工设置(通常4-6),结果依赖该值;主要适用于联通子图较多的场景;复杂度较高,支持节点数量有限;不能加入边权信息。

SLPA标签传播算法在重叠社区检测中是如何工作的?

SLPA初始化每个节点有唯一标签,迭代T次:随机选节点,汇总邻居标签,选频率最高的作为当前标签,并存储每轮结果。成团时,每个节点保留占比超过阈值x的标签,同一标签的节点属于同一社团。

LEMON算法适用于什么场景?

LEMON是种子扩张类算法的代表,适用于已知部分节点和所属社区,需要扩充同社区其他节点的场景,常用于扩召回。

🏷️

标签

➡️

继续阅读