Structural Inference of Hierarchies in Networks(网络层次结构推断)

1. 问题

层次结构是一种重要的复杂网络性质。这篇文章给出了层次结构的精确定义,给出了一个在随机图里面生成任意层次结构的概率模型,并给出了从真实世界的复杂网络中推断出层次结构的统计方法。(定义,模型和推断方法);最后,使用推断出来的概率模型,生成更多的网络数据(null model),用于对网络的元素(顶点,边)进行注释和假设检验的方法。

输入:网络数据(边和顶点集)

输出:顶点的层次结构

方法:最大似然估计(ML),马尔科夫链蒙特卡洛方法(MCMC)

已有方法的缺陷:

已有的方法(比如层次聚类)无法保证推断出来的模型是真实模型的无偏估计。也就是说,不能保证,推断出来的层次模型能够在多大程度上反应真实世界网络的层次结构;也不能保证,推断出来的层次结构在多大程度上受到了推断算法本身性质的影响。

2. 理论基础:

最大似然估计(ML)

最大似然估计通常用于估计模型参数。

马尔科夫链蒙特卡洛方法(MCMC)

MCMC是一种抽样方法。在这里,我们将网络的层次结构模型作为一个随机参数向量。对这个随机向量的抽样,等价于对模型的抽样。MCMC算法收敛后,每一个模型被抽到的概率正比于此模型生成真实世界网络的似然度。

贝叶斯模型平均

通过MCMC抽样,可以获得一组层次结构模型。通过对这组模型进行贝叶斯模型平均,可以获得最后的单个模型。贝叶斯模型平均是一种在贝叶斯方法获得参数分布后,对参数求期望,获得最终单个参数估计的方法。

3. 方法

层次结构定义(定义)

在这里所指的层次结构是指:把网络中的节点划分为组,然后将每组节点划分为子组;作这样的递归划分,直到每一个子组只包含单独一个节点的程度。这样的结构通常表示为树的结构。这样的树结构可以表示为D = {D1,D2, . . . ,Dn−1}, Di 表示中间节点,表示一组节点的集合。

层次结构的随机图模型(模型)

LH表示模型的最大似然函数,Ei表示层次结构树的第i个中间节点的左子树;Ri表示右子树;θi表示左右子树之间的节点有边连接的概率。对最大似然函数求偏导,另偏导数为零后,求得θi= Ei/LiRi,此时似然函数获得最大值。

对于特定的层次结构树D,容易估计出模型参数θ;但是从所有可能的层次结构树中求取最佳的一个并不容易。下一步,将使用MCMC方法抽取可能的层次结构,使每一个层次结构被抽取到的概率正比于此结构生成真实世界网络数据的最大似然。

层次结构的抽样方法(推断)

这篇论文的抽样方法采用了MCMC方法中的Metropolis-Hastings算法。马尔科夫链中的每一个状态表示一个层次结构树,下图可以说明,马氏链中的状态是如何相互转移的。对于下图的第一个图,节点表示树中的某一个中间节点,此节点有两个子树,分别为a和b;c表示此节点的兄弟节点。因此,对于这样的层次树的特定节点,马氏链的状态有两种转移的方向,分别对应下图的第二个图和第三个图。抽样的过程中,首先随机选取一个中间节点(均匀选取),然后随机从下图的第二个图和第三个图中选取一个作为候选转移状态。从转移的方式来看,马尔科夫链显然是遍历的。可以使用下面的方式,使状态转移满足细致平稳条件(MH算法的标准方式):如果转移后的层次结构树的最大似然值,大于转移前的最大似然值,则转移必定发生;否则,转移的概率为转移后的似然值与转移前的似然值的比值。

贝叶斯模型平均

当MCMC算法收敛后,有很多方式可以获得最后的模型。比如随机选择一个;在多个样本中选择最大似然值最大的模型;求取多个样本的模型平均。随机选择风险太大,根据最大似然选择模型容易导致过拟合;在贝叶斯方法中,通常选择待估计参数的概率分布的期望作为此参数的点估计(抽样样本的均值)。在这里,作者使用了一种叫作majority consensus tree的技术,这种技术通常用来通过混合多棵系统发生树(使用不同算法),来重构保守一致的系统发生树。

4. 数据

Zachary’s karate club

这是一个包含34个顶点和78条边的社交关系网络。此网络中的边表示一个大学中的空手道俱乐部中的会员相互认识的关系。

The NCAA Schedule 2000 network

此网络包含115个顶点和613条边。顶点表示一个大学足球队,边表示在2000年赛季中,足球队之间的比赛关系。这两个网络都是图聚类算法的标准测试集。

5. 实验与结论

使用此算法可以发现数据中存在的已经被社会科学家发现的社团属性(与科学家标注的标签一致)(监督评价方式)。与其它的图聚类算法相比,此算法尤其能正确分类社团边缘处的节点。除此之外,还可以利用推导出来的层次结构模型生成更多的图数据样本(相似于原始网络数据),据此分析节点和边的一些统计特征,进而对边和顶点进行注释。通过对边和顶点的注释还可以发现异常的顶点和边。

6. 进一步学习

可以将推断算法中的MCMC方法,换成变分推断算法。已经有文章介绍了这篇论文在动态网络上的改进,以及使用变分推断改善层次结构推断的效率。

参考文献

[1] Clauset A, Moore C, Newman M E J. Structural Inference of Hierarchies in Networks[J]. Lecture Notes in Computer Science, 2006, 4503:1-13.

Structural Inference of Hierarchies in Networks(网络层次结构推断)的更多相关文章

  1. Android笔记之网络状态推断

    1.首先当然得在 manifest 中加入检查网络状态的权限: <uses-permission android:name="android.permission.ACCESS_NET ...

  2. Deep learning_CNN_Review:A Survey of the Recent Architectures of Deep Convolutional Neural Networks——2019

    CNN综述文章 的翻译 [2019 CVPR] A Survey of the Recent Architectures of Deep Convolutional Neural Networks 翻 ...

  3. 深度学习网络压缩模型方法总结(model compression)

    两派 1. 新的卷机计算方法 这种是直接提出新的卷机计算方式,从而减少参数,达到压缩模型的效果,例如SqueezedNet,mobileNet SqueezeNet: AlexNet-level ac ...

  4. 网络压缩论文集(network compression)

    Convolutional Neural Networks ImageNet Models Architecture Design Activation Functions Visualization ...

  5. TensorRT加速 ——NVIDIA终端AI芯片加速用,可以直接利用caffe或TensorFlow生成的模型来predict(inference)

    官网:https://developer.nvidia.com/tensorrt 作用:NVIDIA TensorRT™ is a high-performance deep learning inf ...

  6. EdgeFormer: 向视觉 Transformer 学习,构建一个比 MobileViT 更好更快的卷积网络

    ​  前言 本文主要探究了轻量模型的设计.通过使用 Vision Transformer 的优势来改进卷积网络,从而获得更好的性能. 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结.最新技术跟 ...

  7. linux网络配置相关文件

    网络接口(interface)是网络硬件设备在操作系统中的表示方法,比如网卡在Linux操作系统中用ethX,是由0开始的正整数,比如eth0.eth1...... ethX.而普通猫和ADSL的接口 ...

  8. iOS基础 - 第三方网络框架

    一.iOS网络层次结构 基于iOS提供API实现上传文件和断点续传的思路 常用iOS第三方网路框架简介 AFNetworking(AFN) ASIHTTPRequest(ASI) 另外一个常用框架 S ...

  9. 『计算机视觉』Mask-RCNN_推断网络其一:总览

    在我们学习的这个项目中,模型主要分为两种状态,即进行推断用的inference模式和进行训练用的training模式.所谓推断模式就是已经训练好的的模型,我们传入一张图片,网络将其分析结果计算出来的模 ...

随机推荐

  1. TFboy养成记 简单小程序(Variable & placeholder)

    学习参考周莫烦的视频. Variable:主要是用于训练变量之类的.比如我们经常使用的网络权重,偏置. 值得注意的是Variable在声明是必须赋予初始值.在训练过程中该值很可能会进行不断的加减操作变 ...

  2. wamp环境下如何安装redis扩展

    Redis安装 wamp环境安装redis扩展 首先在自己本地项目中phpinfo(); 查看php版本; (php版本是5.5, ts-vcll表示MSVC11 (Visual C++ 2012), ...

  3. 【读书笔记】《Effective Java》——创建和销毁对象

    Item 1. 考虑用静态工厂方法替代构造器 获得一个类的实例时我们都会采取一个共有的构造器.Foo x = new Foo(): 同时我们应该掌握另一种方法就是静态工厂方法(static facto ...

  4. Smarty基础用法

    一.Smarty基础用法: 1.基础用法如下 include './smarty/Smarty.class.php';//引入smarty类 $smarty = new Smarty();//实例化s ...

  5. 关于mui header在手机上运行丢失问题

    并不需要换header, 只需要把引用的例子自带的CSS文件 app.css.里的两个样式:.mui-plus.mui-android header.mui-bar {display: none;}. ...

  6. django模板语法之include

    假如我们有以下模板index.html,代码为: <!DOCTYPE html> <html lang="en"> <head> <met ...

  7. 对于vue.js初步了解

    由于本人做的是javaWeb的开发,对于前端的了解还是有限,今天对于vue.js了解了下(主要是看官方api),把自己的心得说一下,希望各位大神可以补充,谢谢   http://www.runoob. ...

  8. Python Django CMDB项目实战之-2创建APP、建模(models.py)、数据库同步、高级URL、前端页面展示数据库中数据

    基于之前的项目代码来编写 Python Django CMDB项目实战之-1如何开启一个Django-并设置base页index页文章页面 现在我们修改一个文章列表是从数据库中获取数据, 下面我们就需 ...

  9. HVR又一次load的时候须要将schedule suspend掉

    今天在进行HVR的又一次load的时候.报错了: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fi ...

  10. JSP具体篇——response对象

    response对象 response对象用于响应client请求,向客户输出信息. 他封装了JSP产生的响应,并发送到client以响应client请求. 1.重定向网页 使用response对象的 ...