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. eclipse中Maven工程使用Tomcat7以上插件

    Maven中使用tomcat:run命令默认是使用Tomcat6的版本, 现在要用到Tomcat7以上的版本,在eclipse的Maven工程中配置如下 第一步:在项目的pom里面加入如下配置: 官网 ...

  2. 2719:陶陶摘苹果-poj

    2719:陶陶摘苹果 总时间限制:  1000ms 内存限制:  65536kB 描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米 ...

  3. Entity Framework——建模建库

    1数据库初始化策略选择 三种初始化策略: 1)CreateDatabaseIfNotExists:默认的策略.如果数据库不存在,那么就创建数据库.但是如果数据库已存在,而且实体发生了变化,就会出现异常 ...

  4. 玩转html

    简介 CSS 是什么? CSS是Cascading Style Sheets的简称,中文称为层叠样式表. 作用 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象 ...

  5. webpack构建项目

    webpack构建项目 案例代码戳这里 ps:每个案例对应相应的demo,例如"案例1"对应"demo1" 一.webpack基本功能及简单案例 安装webpa ...

  6. 企业级LNMP架构搭建实例(基于Centos6.x)

    1.1 部署LNMP架构说明 1.1.1 LNMP架构内容 01.部署linux系统 02.部署nginx网站服务 03.部署mysql数据库服务 04.部署php动态解析服务 1.1.2 配置LNM ...

  7. pymysql实现MySQL与Python交互

    常见MySQL操作 所需模块: pip3 install pymysql 查询(fetchone,fetchmany,fetchall): import pymysql #连接 con = pymys ...

  8. Taffy Web开发,Python Flask实践详解

    1. 前言 最近为Taffy自动化测试框架写了个页面,主要实现了用例管理.执行,测试报告查看管理.发送邮件及配置等功能. 2. 实现细节 页面使用Python Flask +Bootstrap开发,还 ...

  9. Python的列表

    1. Python的列表简介 1. 1 列表的定义 列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型.列表中的每个元素都分配一个数字 ,即它的 ...

  10. Jarvis OJ - [XMAN]level0 - Writeup

    差不多最简单的pwn了吧,不过本菜鸟还是要发出来镇楼 分析一下,checksec 查看程序的各种保护机制 没有金丝雀,没有pie 执行时输出Hello,World,在进行输入,溢出嘛  开工 丢到id ...