ComE:Learning Community Embedding with Community Detection and Node Embedding on Graphs阅读笔记

news/2025/2/7 6:11:21/文章来源:https://www.cnblogs.com/zhouyeqin/p/18584612

ComE(Community Embedding)

Learning Community Embedding with Community Detection and Node Embedding on Graphs

用社区检测和图上的节点嵌入学习社区嵌入

论文来源:CIKM 2017 https://www.sentic.net/community-embedding.pdf【2017】

项目地址:https://github.com/andompesta/ComE

论文原作者:Sandro Cavallari, Vincent W. Zheng, Hongyun Cai, et al.

单位:Advanced Digital Sciences Center, Nanyang Technological University

一、问题:

传统流水线方法:首先使用谱聚类来识别社区,然后对每个社区使用高斯混合模型。这种方法的问题在于它没有统一的目标函数,使得后期优化变得困难。

本文方法:每个社区可以被视为一个高斯分布,通过一个多元高斯分布来更好地表示社区的嵌入表达,在社区嵌入、社区检测和节点嵌入之间开发了一个闭环,最后共同优化这三个任务,以使它们相互加强。

因此,作者提出了一种新的社区嵌入框架,它联合地同时解决了社区嵌入、社区检测和节点嵌入等三个问题。

二、Model

1、社区检测和社区嵌入。

这篇论文比较创新的一点,就是将社区嵌入定义为低维空间中的多元高斯分布。即对于社区k来说( \(k∈{1,...,K}\) ),它在\(d\)维空间下的社区嵌入是一个多元高斯分布 $N(ψ_k,Σ_k) $,其中 \(ψ_k∈\mathbb R^d\) 表示的是社区内节点的平均向量(即中心点), \(Σ_k∈\mathbb R^{d∗d}\) 表示的是协方差矩阵。整篇文章最大的难点在于,如何用统一的目标函数来使得社区嵌入、社区检测和节点嵌入三者问题得到最优化的结果。由于社区嵌入是由多元高斯分布来表达的,因此就可以通过高斯混合模型来完成。考虑每个节点 \(v_i\)的嵌入 \(ϕ_i\)是由社区 \(z_i=k\)的多元高斯分布生成的。然后,对于所有节点在 \(V\) 中,有如下似然函数:

\[∏_{i=1}^{|V|}∑_{k=1}^Kp(z_i=k)p(v_i|z_i=k;ϕ_i,ψ_k,Σ_k) \tag{1} \]

公式(1)是社区检测和嵌入问题中的似然函数,它描述了在给定社区分配和社区参数的情况下,观测到的节点嵌入的概率。这里的各个部分解释如下:

  1. \(\prod_{i=1}^{|V|}\) :表示对所有节点 \(i\) 从 1 到 \(|V|\) (图中节点的总数)的乘积。这个乘积遍历图中的每个节点,计算每个节点嵌入的概率。
  2. \(\sum_{k=1}^{K}\) :表示对所有可能的社区 \(k\) 从 1 到 \(K\) (社区的总数)的求和。这个求和考虑了每个节点属于每个社区的概率。
  3. $p(z_i = k) $:表示节点 \(v_i\) 属于社区 \(k\) 的概率,将这个概率表达为 \(π_{ik}\):$ π_{ik}∈[0,1]\(,\)∑_{k=1}^Kπ_{ik}=1$。在社区检测中,这个概率是未知的,需要通过优化来确定。
  4. \(p(v_i \mid z_i = k; \phi_i, \psi_k, \Sigma_k)=\mathcal N(ϕ_i|ψ_k,Σ_k)\) :表示在给定节点 \(v_i\) 属于社区 \(k\) 的条件下,节点嵌入 \(\phi_i\) 的条件概率。这个概率由多元高斯分布定义,其中 \(\phi_i\) 是节点 \(v_i\) 的嵌入向量(模型试图学习的表示); \(\psi_k\) 是社区 \(k\) 的均值向量, \(\Sigma_k\) 是社区 $ k$ 的协方差矩阵(社区嵌入的参数,需要通过优化来学习)。

整个似然函数是所有节点嵌入概率的乘积,每个节点嵌入的概率是其属于每个社区概率的加权和。这个似然函数是社区检测和嵌入过程中优化的目标,通过最大化这个似然函数,可以同时学习节点的社区归属概率和社区的嵌入参数。这种方法将社区检测和社区嵌入整合到一个统一的框架中,使得这两个任务可以同时进行,从而可能提高性能和准确性。

2、节点嵌入

本文在节点嵌入时,考虑了三种距离。

(1). 为了保持节点的一阶邻近性(直接相邻的节点在嵌入空间中也应该是相似的),用的是类似LINE算法的方法;为了保持节点的二阶邻近性,则是用了DeepWalk的想法。

一阶邻近性,$ \log \sigma(\phi_{j}^{T} \phi_{i}) $是对sigmoid函数的对数,sigmoid函数 $ \sigma(x) $定义为 $ 1 / (1 + \exp(-x)) $,它将任意实数映射到 (0, 1) 区间,通常用于将内积转换为概率值:

\[O_{1}=-\sum_{\left(v_{i}, v_{j}\right) \in E} \log \sigma\left(\boldsymbol{\phi}_{j}^{T} \boldsymbol{\phi}_{i}\right)\tag{3} \]

为了保持二阶邻近性,LINE和DeepWalk都强制两个共享许多“上下文”(即,在 \(\zeta\) 跳数内的邻居)的节点具有相似的嵌入。每个节点有两个角色:一个代表自身的节点,另一个是其他节点的上下文。为了区分这些角色,DeepWalk为每个节点 $ v_{j} $ 引入了一个额外的上下文嵌入 $\phi_{j}^{\prime} \in \mathbb{R}^{d} $。将 \(C_{i}\) 表示为 $ v_{i}$ 的上下文集合。采用负采样来定义一个函数,用于衡量 \(v_{i}\) 如何生成其上下文 \(v_{j} \in C_{i}\)

\[\Delta_{ij} = \log \sigma(\phi_{j}^{\prime T} \phi_{i}) + \sum_{t=1}^{m} \mathbb{E}_{v_{l} \sim P_{n}(v_{l})} [\log \sigma(-\phi_{l}^{\prime T} \phi_{i})]\tag{4} \]

其中,$ v_{l} \sim P_{n}(v_{l}) $ 表示根据概率 $P_{n}(v_{l}) $ 采样节点 \(v_{l}\) 作为 \(v_{i}\) 的“负上下文”。设置 $P_{n}(v_{l}) \propto r_{l}^{3/4} $,其中 \(r_{l}\)\(v_{l}\) 的度数。总共有 m 个负上下文。通常,最大化方程4会强制节点 $v_{i} $ 的嵌入 $ \phi_{i} $最好地生成其正上下文 $\phi_{j}^{\prime} $,而不是其负上下文 $\phi_{l}^{\prime\prime} $。然后,通过最小化以下目标函数来保持二阶邻近性:

\[O_{2} = -\alpha \sum_{v_{i} \in V} \sum_{v_{j} \in C_{i}} \Delta_{ij} \tag{5} \]

其中, $\alpha > 0 $是一个权衡参数,以学习能够保持二阶邻近性的节点嵌入。通过调整 \(\alpha\) 参数,可以在一阶和二阶邻近性之间进行权衡。

3、闭合循环

这部分介绍了如何在社区检测和节点嵌入之间建立反馈循环,以及如何通过统一不同阶的邻近性来优化节点嵌入。为了闭合图2中的循环,需要使社区检测和社区嵌入的反馈作用于节点嵌入。假设已经在第3.1节中识别了混合社区成员资格 $ \pi_{ik} $ 和社区嵌入 $(\psi_{k}, \Sigma_{k}) $。然后,可以重新使用公式1来实现这种反馈,通过将节点嵌入 \(\phi_{i}\) 视为未知数。有效地,优化公式1关于 \(\phi_{i}\) 会迫使同一社区内的节点 \(\phi_{i}\) 更接近相应的社区中心 $ \psi_{k}$ 。也就是说,共享一个社区的两个节点可能具有相似的嵌入。与一阶和二阶邻近性相比,这种设计在节点嵌入上实施了社区感知的高阶邻近性,这对于后续的社区检测和嵌入非常有用。

例如,在图1(a)中,节点3和节点10直接相连,但根据文献[35],它们倾向于属于两个不同的社区。因此,仅通过保持一阶邻近性,可能无法很好地区分它们的社区成员资格差异。另一个例子是,节点9和节点10共享许多一跳和两跳邻居,但与节点10相比,节点9更倾向于接近由节点1领导的社区。因此,仅通过保持二阶邻近性,可能也无法很好地区分它们的社区成员资格差异。

基于闭合的循环,共同优化社区检测、社区嵌入和节点嵌入。有三种类型的邻近性需要考虑用于节点嵌入,包括一阶、二阶和高阶邻近性。通常,有两种方法可以结合不同类型的邻近性用于节点嵌入:(1)“concatenation”,例如,LINE首先分别优化 $O_{1} $ 和$ O_{2} $,然后将每个节点的两个结果嵌入连接成一个长向量作为最终输出;(2)“unification”,例如,SDNE[29]学习每个节点的单一节点嵌入,以同时保持一阶和二阶邻近性。在本文中,为了鼓励节点嵌入统一多种邻近性,采用了统一方法,并将其他方法留作未来工作。因此,基于公式1,定义了社区检测和社区嵌入的目标函数,以及强制执行节点嵌入的高阶邻近性:

\[O_3 = -\frac{\beta}{K} \sum_{i=1}^{|V|} \log \sum_{k=1}^{K} \pi_{ik} \mathcal{N}(\phi_i \mid \psi_k, \Sigma_k)\tag{6} \]

其中 $ \beta \geq 0 $ 是一个权衡参数。定义 $ \Phi = {\phi_{i}}, \Phi' = {\phi_{i}'}, \Pi = {\pi_{ik}}, \Psi = {\psi_{k}'} $和 $ \Sigma = {\Sigma_{k}}$ 对于 $i = 1, \ldots, |V| 和 k = 1, \ldots, K $。

然后,统一了节点嵌入的一阶和二阶邻近性。ComE的最终目标函数是:

\[\mathcal{L}(\Phi, \Phi', \Pi, \Psi, \Sigma) = O_1(\Phi) + O_2(\Phi, \Phi') + O_3(\Phi, \Pi, \Psi, \Sigma)\tag{7} \]

最终优化问题变为:

\[(\Phi^*, \Phi'^*, \Pi^*, \Psi^*, \Sigma^*) \leftarrow \underset{\forall k, \text{diag}(\Sigma_k) > 0}{\arg\min} \mathcal{L}(\Phi, \Phi', \Pi, \Psi, \Sigma)\tag{8} \]

三、推理

迭代优化过程。

固定 $(\Phi, \Phi') $,优化 $(\Pi, \Psi, \Sigma) $。由于在优化的时候,可能存在一些情况,使得高斯分量折叠到一个点,那么此时就会使得 \(O_3\) 变成负无穷。所以这里需要加一个限制条件,通过控制\(diag(\Sigma_k)>0\) ,使得\(O_3\) 不会变成负无穷。具体做法就是当遇到 $diag(\Sigma_k)=0 $的情况时,就随机重新设置一个合适的值即可。 之后通过EM算法进行优化求导。:

\[ \pi_{ik} = \frac{N_k}{|V|}, \quad (9) \]

\[ \psi_k = \frac{1}{N_k} \sum_{i=1}^{|V|} \gamma_{ik} \phi_i, \quad (10) \]

\[\Sigma_k = \frac{1}{N_k} \sum_{i=1}^{|V|} \gamma_{ik} (\phi_i - \psi_k)(\phi_i - \psi_k)^T, \quad (11) \]

其中 $ \gamma_{ik} = \frac{\pi_{ik} N(\phi_i \mid \psi_k, \Sigma_k)}{\sum_{k'=1}^{K} \pi_{ik'} N(\phi_i \mid \psi_{k'}, \Sigma_{k'})} $ 且 $ N_k = \sum_{i=1}^{|V|} \gamma_{ik} \(。值得注意的是,实际上如果\) (\Phi, \Phi') $ 被合理初始化(例如,在的实验中通过DeepWalk),$ \operatorname{diag}(\Sigma_{k}) > 0 $的约束很容易满足,因此 $(\Pi, \Psi, \Sigma) $的推断可以快速收敛。

固定 $ (\Pi, \Psi, \Sigma)$,优化 $(\Phi, \Phi') $。由于 $O_3 $中对数项内的求和,计算 $\phi_i $的梯度不方便。因此,尝试最小化 $ \mathcal{L}(\Phi, \Phi' \mid \Phi, \Psi, \Sigma) $的上界。具体来说,引入:

\[ O_3' = -\frac{\beta}{K} \sum_{i=1}^{|V|} \sum_{k=1}^{K} \pi_{ik} \log \mathcal{N}(\phi_i \mid \psi_k, \Sigma_k) \quad (12) \]

很容易证明 $O_3'(\Phi \mid \Pi, \Psi, \Sigma) \geq O_3(\Phi \mid \Pi, \Psi, \Sigma) $由于以下对数凹性:

\[ \sum_{i=1}^{|V|} \log \sum_{k=1}^{K} \pi_{ik} \mathcal{N}(\phi_i \mid \psi_k, \Sigma_k) \geq \sum_{i=1}^{|V|} \sum_{k=1}^{K} \log \pi_{ik} \mathcal{N}(\phi_i \mid \psi_k, \Sigma_k) \quad (13) \]

因此,定义:

\[\mathcal{L}'(\Phi, \Phi' \mid \Pi, \Psi, \Sigma) = O_1(\Phi) + O_2(\Phi, \Phi') + O_3'(\Phi \mid \Pi, \Psi, \Sigma) \]

并且,因此$ \mathcal{L}'(\Phi, \Phi' \mid \Pi, \Psi, \Sigma) \geq \mathcal{L}(\Phi, \Phi' \mid \Pi, \Psi, \Sigma) $。通过随机梯度下降(SGD)[17]来优化 $\mathcal{L}'(\Phi, \Phi') $。对于每个 $ v_i \in V $,有:

\[ \frac{\partial O_1}{\partial \phi_i} = -\sum_{(i, j) \in E} \sigma(-\phi_j^T \phi_i) \phi_j, \quad (14) \]

\[\frac{\partial O_2}{\partial \phi_i} = -\alpha \sum_{v_j \in C_i} \left[ \sigma(-\phi_j'^T \phi_i) \phi_j' \right. \left. + \sum_{t=1}^m \mathbb{E}_{v_l \sim P_n(v_l)} \left[ \sigma(\phi_l'^T \phi_i) (-\phi_l') \right] \right], \quad (15) \]

\[\frac{\partial O_3'}{\partial \phi_i} = \frac{\beta}{K} \sum_{k=1}^{K} \pi_{ik} \sum_{k}^{-1} \left( \phi_i - \psi_k \right) \quad (16) \]

计算上下文嵌入的梯度:

\[\frac{\partial O_2}{\partial \phi_j'} = -\alpha \sum_{v_i \in V} \left[ \delta(v_j \in C_i) \sigma(-\phi_j'^T \phi_i) \phi_i \right. \left. + \sum_{t=1}^m \mathbb{E}_{v_l \sim P_n(v_l)} \left[ \delta(v_l = v_j) \sigma(\phi_l'^T \phi_i) (-\phi_i) \right] \right] \quad (17) \]

算法和复杂度。在算法1中总结了ComE的推理算法。在第1行,对于每个 $v_i \in V $,在图 $G $ 上以长度 $\ell $从 $v_i $开始采样 $\gamma $条路径。在第2行,通过DeepWalk初始化 $ (\Phi, \Phi') \(。在第4-8行,固定\) (\Phi, \Phi') $并优化 $ (\Pi, \Psi, \Sigma) $ 以进行社区检测和嵌入。在第9-16行,固定 $ (\Pi, \Psi, \Sigma) $并优化 $ (\Phi, \Phi') $以进行节点嵌入。

特别是,通过一阶邻近性(第9-10行)、二阶邻近性(第11-14行)和社区感知的高阶邻近性(第15-16行)来更新节点嵌入。分析了算法1的复杂度。第1行的路径采样需要 $O(|V|\gamma \ell) $ 时间。第2行通过DeepWalk初始化参数需要 $O(|V|) $ 时间。第5行的社区检测和嵌入需要 $O(|V|K) $ 时间。第6-8行的约束检查需要 $ O(K) $ 时间。第9-10行的一阶邻近性节点嵌入需要 $O(|E|) $ 时间。第11-14行的二阶邻近性节点嵌入需要 $O(\ell |V|\gamma \ell) $ 时间。第15-16行的社区感知高阶邻近性节点嵌入需要 $O(|V|K) $ 时间。总的来说,复杂度是$ O(|V|\gamma \ell + |V| + T_1 \times (T_2|V|K + K + |E| + |V|\gamma \ell + |V|K)) $,这与图的大小(即, $|V| \(\) 和 \(\) |E|$ )线性相关。因此,算法1是高效的。

四、Conclusion

在本文中主要研究了在网络中对社区进行嵌入这个重要的问题。论文的亮点在于通过一个多元高斯分布来更好地表示社区的嵌入表达。之后,提出了算法ComE,使得在社区嵌入、社区检测和节点嵌入之间开发了一个闭环,最后共同优化这三个任务,以使它们相互加强。

参考:
https://zhuanlan.zhihu.com/p/36924789

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/846208.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌DeepMind—运用深度强化学习为双足机器人学习敏捷足球技能

原文链接:OP3 SoccerTake a look at the OP3 Powered by DYNAMIXEL 看看由DYNAMIXEL 驱动的OP3We investigate whether Deep Reinforcement Learning (Deep RL) is able to synthesize sophisticated and safe movement skills for a low-cost, miniature humanoid robot that…

# 攻防世界:web习题之xff_referer

攻防世界:web习题之xff_referer 题目内容 https://adworld.xctf.org.cn/challenges/list这道题的网页会首先会显示: 当成功修改ip地址之后会提示:思路 我们可以用python的requests包来添加伪造的 X-Forwarded-For 和 Referer 请求头。 代码 import requestsurl = "http…

云注入去签功能解析

云注入去签功能解析 之前用了一个app去去签,想改一些东西,顺便在去签的时候就把注入的dex的东西一起去解析看了,看看到达是怎么解析的,顺便之后把里面的抓包检测的功能也一并给解析了,增加一下代码功底顺便了解一下云注入的去签和抓包检测的原理 这里多出来了classes2.dex…

低资源部署 KubeSphere 4.1.2:2 核 4G 极简云原生实战

KubeSphere V4已经开源一段时间了,推出了全新的 KubeSphere 架构:KubeSphere LuBan,它构建在 K8s 之上,支持高度可配置和可扩展。该版本只安装KubeSphere Core核心组件,即可实现KubeSphre Web控制台的使用。前几天在2核4G的VM虚拟机体验了一下。安装过程极快,服务非常精简…

Leangoo助力医药行业项目降本增效

医药行业痛点诸多,需要解决供应链管理、生物技术、医疗器械研发生产、医疗保健服务流程等问题。Leangoo 通过看板功能,实现各领域的信息共享、流程优化、协同增效,提升效率与质量,推动医药行业整体进步与发展。医药行业痛点诸多,制药研发周期长、生物技术创新协同难、医疗…

3274. 检查棋盘方格颜色是否相同

给你两个字符串 coordinate1 和 coordinate2,代表 8 x 8 国际象棋棋盘上的两个方格的坐标。 以下是棋盘的参考图。如果这两个方格颜色相同,返回 true,否则返回 false。 坐标总是表示有效的棋盘方格。坐标的格式总是先字母(表示列),再数字(表示行)。 示例 1: 输入: co…

看板管理:团队协作的秘密武器是什么?

看板视图是什么? 看板(Kanban)最早源自日本的制造业,尤其是丰田生产方式中的看板系统,它是一个通过视觉化管理工作流的系统。随着时间的推移,Kanban从生产线逐渐渗透到了项目管理、软件开发和其他领域,成为一种高效的工作和任务管理工具。在今天,看板视图指的是一种用来…

NetCore3.1 TCP服务之BeetleX

十年河东,十年河西,莫欺少年穷 学无止境,精益求精 1、安装包 2、server端using BeetleX; using BeetleX.EventArgs; using System;namespace BTcp {class Program : BeetleX.ServerHandlerBase{static int Number = 0;private static BeetleX.IServer mServer;static void M…

【详细教程】如何下载新东方在线上面已购买的视频课程

前言:很多同学都想知道新东方在线上的视频课程怎么下载,但是新东方在线上面已购买的视频课程是不提供直接下载方式的,所以下面就教大家如何用学无止下载器下载新东方在线上面已购买的视频课程。防止课程过期后就再也无法观看了,保存到本地就可以永久观看学习! 一、电脑网页…

攻防世界:Web习题之 get_post

攻防世界:Web习题之 get_post 题目内容 https://adworld.xctf.org.cn/challenges/list题目首先需要我们用GET方式提交一个名为a,值为1的变量:提交成功之后我们需要继续用POST方式随便提交一个名为b,值为2的变量:思路 我们可以使用python的requests包来完成这些操作 代码 imp…

评价:几款办公软件为设计团队协作效率注入澎湃动力的真相披露!

在当今竞争激烈、节奏飞快的设计行业,高效的团队协作是项目成功交付的关键因素。对于全 J 人(MBTI 性格类型中倾向于计划、组织和控制的人群)设计团队而言,他们对办公软件的功能性、有序性和协作性有着更高的要求。合适的办公软件不仅能够优化工作流程,还能极大地提升团队…

智慧园区算法视频分析服务器车辆拥堵检测:安防设备中的网络参数科普

在探讨视频智能分析系统的广泛应用于网络安防设备的核心参数时,不可避免地要深入了解其背后的技术支撑与配置细节。这一系统,凭借其强大的视频接入与查看、智能分析、任务调度等功能,已经在工厂、工地、社区等多个场景中展现出了卓越的性能与价值。而网络安防设备,作为这一…