| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> Modularity Based Community Detection with Deep Learning 阅读笔记 -> 正文阅读 |
|
[人工智能]Modularity Based Community Detection with Deep Learning 阅读笔记 |
一、创新点??1、提出DNR模型 ??2、对DNR模型改进,加入节点约束,提出semi-DNR模型 ??3、第一次将深度学习应用到社区检测 二、研究背景??模块或群落结构的识别对于描述和理解复杂系统非常重要。现有的多种社团检测算法中有两类代表:随机模型和模块度最大化模型。 2.1 问题描述??设无向无权图 G =(V,E),其中V = {v1, v2, …, vN } 是N个顶点的集合,E = {eij} 是边的集合,每条边都连接着V中的两个顶点。 ??G的邻接矩阵是一个非负对称的矩阵 A = [aij],aij = 1,顶点 i 和 j 之间有边;aij = 0,顶点 i 和 j 之间无边。 ??社团检测的问题是要找到 K个模块或社区 {𝑉𝑖 𝑖=1)𝐾} 的子图,这些子图的顶点之间的联系比与外部顶点的联系更紧密。在这里,考虑不相交的社区。 2.2 随机模型(Stochastic Model)??在随机模型中,aij 可以被看作是结点 i 和 j 相连的概率。如果结点 i 和 j 是相连的,可以进一步认为此概率由结点 i 和 j 生成属于同一社区的边的概率确定。 ??引入潜在变量 H = [hik]∈𝑅+(𝑁×𝐾),其中 hik 代表结点 i 产生属于社区 k 的边的概率。这个潜在变量还可以捕捉到结点 i 属于社区k的概率。H 的每一行都可以被视为社区成员的分布的结点。结点 i 和 j 被属于社区 k 的链接连接的概率为 hikhjk,它们连接的概率为:
??基于NMF的社区检测方法的目的是找到一个非负的成员矩阵 H 来重建邻接矩阵 A 。有两个常见的目标(损失)函数来量化重建误差。
2.3 模块度最大化模型(Modularity Optimization Model)??该模型由Newman引入最大化模块化函数Q,该函数定义为社区内边的数量与所有对顶点上此类边的预期数量之间的差。 例如,一个有两个社区的网络
??当K>2时,社团多于两个,可以定义特征矩阵 H = [hik]∈𝑅+(𝑁×𝐾) 得到
2.4 研究方法??虽然设计的目的不同,这两类模型都在寻找低秩嵌入来最好地代表和重建网络拓扑结构。 ??但是这两种方法都只能通过线性重建来重建原始的网络,忽略了网络的非线性特性,而真实的网络有各种非线性特征,使得这些模型在实践中不那么有效。 ??神经网络是一个非常好的非线性映射的方法,所以作者将深度学习应用于社团检测,提出了Deep Nonlinear Reconstruction(DNR)算法。将该方法扩展到一个半监督的社区检测算法中,在图结点之间加入成对的约束,提出了semi-DNR模型。 三、算法3.1 DNR??自动编码器是一种特殊的神经网络,用于学习一种新的表示方法,可以最好地接近原始数据,它是该模型的一个关键构件,模型由堆叠的自编码器实现,单个自编码器的计算过程如下:
B
H
M
input
encoder
decoder
ERROR
??编码器将原始数据B映射到一个低维嵌入,解码器将潜伏表示H映射回原始数据空间,即重构原始数据。 ??自动编码器的目的是学习一个低维非线性表征H,该表征能够最好地重建原始数据B,即最小化原始数据B和重建数据M之间的差异。 ??以欧式距离和sigmoid交叉熵为真实值B和估计值M之间的距离度量函数 Lθ,重建误差小于一定值停止,S(.)为激活函数sigmoid 或tanh,其中WH和dH是要在编码器中学习的参数, WM和dM是要在解码器中学习的参数。
??单独增加神经网络的层数会带来计算上的复杂,所以采用多个自编码器堆叠来实现深度学习。 ??堆叠的实现方式是:三个自编码器分别训练,如首先将 B 输入第一个encoder,训练以得到最佳权值, 然后将第一个的编码输出 H1 作为第二个encoder的输入,直到训练完第三个。
H1
H2
H3
input B
encoder
encoder
encoder
??所以在已知编码层输出的情况下,三个自编码器是互相独立的。最后在社团检测部分,对最后一个自编码器的编码层输出进行 k-means 聚类。 3.2 semi-DNR??semi-DNR (Pairwise Constrained Semi-supervised Community Detection)算法是半监督,在算法中引入顶点的成对约束。 ??该约束为:假设部分节点的归属社团已知,并且如果两个顶点属于同一个社团时,他们的低维映射 h 应该相似, 然后再将该先验知识加入模型训练中。 ??具体表现为,引入矩阵 O = [oij]∈𝑅(𝑁×𝑁) (𝑖,𝑗∈𝑠𝑎𝑚𝑒 𝑐𝑜𝑚𝑚𝑢𝑛𝑖𝑡𝑦&“oij” =1;𝑖,𝑗∈𝑑𝑖𝑓𝑓𝑒𝑟𝑒𝑛𝑡 𝑐𝑜𝑚𝑚𝑢𝑛𝑖𝑡𝑦&“oij” =0),构建损失函数纳入自动编码器: 四、实验结果??在两个人工合成网络(LFR和GN)以及6个真实的网络中进行实验,并且将DNR与6种算法对比,semi-DNR与2种类似的方法比较,评价指标为归一化互信息(NMI)。
?? 所有的自动编码器都是单独训练的。如前所述,模块化矩阵作为第一个自动编码器的输入,结果输入下一个编码器。 ??训练批次设定为网络的大小,并且最多运行100000次迭代。对于每个网络我们用10个随机初始化训练一个DNR模型,并从三个自动编码器中提取潜在的表征用于聚类。最后,采用k-means进行聚类,并返回具有最大模块化的结果。 ??GN网络由128个节点组成,分为4个社区,每个社区32个节点。每个节点平均有16条边,其中Zout边是社区间的边。结果如图(a)。DNR优于所有的竞争方法,特别是当Zout>6时。 ??LFR网络比GN网络更复杂。节点数设为1000,平均度数为20,顶点度数的指数和社区大小分别为-2和-1,混合参数μ从0.6到0.8变化。作者设置了两组网络:一组社区规模为10到50,另一组为20到100。 ??这两组网络的结果显示在图(b)和(c)中。如图所示,DNR可以成功地检测出小型和大型社区。当μ>0.65时,它在小社群规模的网络上取得了最佳性能(b),而μ>0.6时,它在大社群规模的网络上取得了最佳性能(c)。 ??在Zout=7的GN上,所有的方法通过强制执行相同百分比的标签都有类似的改进。 ??在无监督方法不能获得满意结果的网络上,相比之下,半DNR在相同数量的标签下取得了更好的性能。意味着半DNR在使用成对约束方面比其他方法更有效。此外,在多层上执行成对约束的性能也有类似的改进,说明semi-DNR只需通过一层图的正则化就能充分发掘成对约束。 参考文献[1] 论文 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/27 20:35:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |