ComE(Community Embedding)是一种基于嵌入的社区检测优化算法。
它结合了节点嵌入技术与社区划分的目标,能够有效识别网络中的社区结构,并在社区划分过程中捕捉复杂的节点相互作用信息。
算法背景
传统的社区检测方法,如基于模块度优化的算法或随机游走方法,主要关注网络的拓扑结构。
然而,这些方法可能无法有效捕捉复杂网络中的高阶相互作用或隐含语义关系。
ComE 提出了将社区检测问题与节点嵌入相结合的思路。通过嵌入方法,将节点表示为低维向量,并进一步在嵌入空间中优化社区划分目标。
算法关键步骤
节点嵌入:
ComE 使用节点嵌入技术(例如 DeepWalk、Node2Vec 或 LINE)将每个节点表示为一个低维向量。节点嵌入的目的是捕捉网络的局部和全局拓扑特性。
目标: 学习一个映射函数 , 将节点 v映射到一个 d维嵌入空间
d 是嵌入的维度,通常较小(如 128 或 256)
嵌入优化目标通常基于节点共现概率或相邻节点相似性;
社区表示建模
在嵌入空间中,每个社区也被表示为一个向量中心点。这些社区向量与节点向量一起优化。
社区中心: 每个社区 c 定义为一个 d-维向量 ,代表该社区在嵌入空间中的中心位置。
社区归属优化
每个节点既属于特定社区,又可能与多个社区有关系。
ComE 通过软聚类方法建模社区归属。
归属概率: 定义节点 v 属于社区 c 的概率 P(c∣v),通常通过软最大化(softmax)函数计算:
这里 表示节点嵌入向量与社区中心的欧几里得距离。
联合优化
ComE 通过一个联合优化框架同时更新节点嵌入 f(v) 和社区中心
优化目标: 最大化节点归属于其真实社区的概率,同时最小化嵌入表示的重构误差
迭代优化:
固定社区中心 , 更新节点嵌入f(v).
固定节点嵌入 f(v),更新社区中心
交替迭代,直到收敛
社区划分输出
最终根据社区归属概率 P(c∣v) 确定节点的社区分配;
硬划分:将每个节点分配给概率最高的社区
软划分:允许节点同时属于多个社区,并根据归属概率赋权