| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> (NOCD)Overlapping Community Detection with Graph Neural Networks -> 正文阅读 |
|
[游戏开发](NOCD)Overlapping Community Detection with Graph Neural Networks |
论文地址 可以看做BigCLAM的升级版。 核心思想:将GNN的强大能力与伯努利-泊松概率(Bernoulli–Poisson)模型结合起来。 Bernoulli–Poisson modelBernoulli-Poisson (BP)模型是一种考虑到重叠社区的图生成模型。 根据BP模型,图是如下方式生成的:给定从属关系 F ∈ R ≥ 0 N × C F \in \mathbb{R}_{\ge0}^{N \times C} F∈R≥0N×C?, 邻接矩阵项 A u v A_{uv} Auv?被采样为: A u v ~ B e r n o u l l i ( 1 ? e x p ( ? F u F v T ) ) (1) A_{uv} \sim Bernoulli(1 - exp(-F_uF_v^T))\tag {1} Auv?~Bernoulli(1?exp(?Fu?FvT?))(1)其中Fu是节点u(矩阵F的第u行)的社区从属的行向量。直观的说,节点u和v的共同社区越多(即较高的点积 F u F v T F_uF_v^T Fu?FvT?),他们被连接成边的可能性越大。 该模型有许多令人满意的特性:它可以生成各种社区拓扑(例如嵌套的、分层的),能导致社区之间的密集重叠,并且具有计算效率。现有的研究建议在BP模型中使用坐标上升的最大似然估计或马尔可夫链蒙特卡罗进行推断。 Model definition F : = G N N θ ( A , X ) (2) F := GNN_\theta(A,X)\tag {2} F:=GNNθ?(A,X)(2)输出层采用逐元素的ReLU激活函数,以确保f的无负性。 BP模型的负对数似然损失函数为:(推导过程BigClam中用) ? l o g p ( A ∣ F ) = ? ∑ ( u , v ) ∈ E l o g ( 1 ? e x p ( ? F u F v T ) ) + ∑ ( u , v ) ? E F u F v T (3) -logp(A|F) = -\sum\limits_{(u,v)\in E}log(1- exp(-F_uF_v^T)) + \sum \limits_{(u,v)\notin E}F_uF_v^T \tag{3} ?logp(A∣F)=?(u,v)∈E∑?log(1?exp(?Fu?FvT?))+(u,v)∈/?E∑?Fu?FvT?(3)但是现实中的图通常是非常稀疏的(绝大部分节点之间没有连接 ( u , v ) ? E (u,v) \notin E (u,v)∈/?E),这意味着式3中的第二项将为损失提供更大的贡献。因此,需要通过平衡这两个项来抵消这一点,这是不平衡分类的一种标准技术。 L ( F ) = ? E ( u , v ) ~ P E [ l o g ( 1 ? e x p ( ? F u F v T ) ) ] + E ( u , v ) ~ P N [ F u F v T ] (4) \mathcal{L}(F) = -\mathbb{E}_{(u,v) \sim P_E}[log(1-exp(-F_uF_v^T))]+\mathbb{E}_{(u,v)\sim P_N}[F_uF_v^T]\tag{4} L(F)=?E(u,v)~PE??[log(1?exp(?Fu?FvT?))]+E(u,v)~PN??[Fu?FvT?](4)其中 P E P_E PE?和 P N P_N PN?分别表示边和非边上的均匀分布。 该方法不像传统方法那样直接优化隶属矩阵F,而是搜索神经网络参数 θ ? \theta ^* θ?,以最小化(平衡的)负对数似然函数: θ ? = arg ? θ min ? L ( G N N θ ( A , X ) ) (5) \theta^* = \arg\limits_{\theta} \min \mathcal{L}(GNN_\theta(A,X)) \tag{5} θ?=θarg?minL(GNNθ?(A,X))(5)GNN进行社区预测的优点: 首先,由于适当的归纳偏差,GNN为邻近节点输出相似的社区隶属向量,与简单模型相比,这提高了预测质量。此外,这样的公式使我们能够无缝地将节点特征分配到模型中。如果节点属性X不可用,我们可以简单地使用A作为节点特性。最后,根据公式2,我们甚至可以预测出在训练时没有看到的节点的社区。 ScalabilityBP模型的一个优点是它可以有效地评估计算损失L(F)及其梯度。通过使用缓存技巧,我们可以将这些操作的计算复杂度从O(N^2)降低到O(N + M)。由于现实世界网络的稀疏性,这已经导致了较大的加速(通常M<<N^2),但我们还可以进一步加速,在计算损失时,我们不是使用A的所有项(公式4),而是在每个训练历元采样一小批S边和非边,从而近似计算?L inO(S)(类似于mini-batch SGD)。 Model architecture在本文的实验中,作者使用的是2层GCN作为NOCD模型的基础。GCN可以定义为: F : = G C N θ ( A , X ) = R e L U ( A ^ ?? R e L U ( A ^ X W ( 1 ) ) W ( 2 ) ) (6) F := GCN_\theta (A,X) = ReLU(\widehat{A}\;ReLU(\widehat{A}XW^{(1)})W^{(2)}) \tag{6} F:=GCNθ?(A,X)=ReLU(A ReLU(A XW(1))W(2))(6)其中, A ^ = D ~ ? 1 / 2 A ~ D ~ ? 1 / 2 \widehat{A} = \tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2} A =D~?1/2A~D~?1/2是归一化邻接矩阵。 A ~ = A + I N \tilde{A} = A + I_N A~=A+IN?是具有自环的邻接矩阵。 D ~ i i = ∑ j A ~ i j \tilde{D}_{ii} = \sum_j\tilde{A}_{ij} D~ii?=∑j?A~ij?是 A ~ \tilde{A} A~的对角度矩阵。 NOCD模型与标准GCN的两个主要区别是:
Assigning nodes to communities根据隶属矩阵进行社区划分,如果节点u的隶属关系Fuc高于一个固定的阈值p,那么我们就将节点分配给社区C。文中实验采取p=0.5. |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 16:51:25- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |