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. 《java.util.concurrent 包源码阅读》26 Fork/Join框架之Join

    接下来看看调用ForkJoinTask的join方法都发生了什么: public final V join() { // doJoin方法返回该任务的状态,状态值有三种: // NORMAL, CAN ...

  2. HTML5将给企业带来什么?

    HTML5是近几年来互联网行业的热门词汇,火热的厉害,未来的网络属于HTML5. 乔布斯生前也在公开信<Flash之我见>中预言:像HTML5这样在移动时代中创立的新标准,将会在移动设备上 ...

  3. SpringQuartz 实现定时任务调度

    最近公司新项目需要用到定时器,于是研究了一下发现: Spring中使用Quartz有两种方式实现: 第一种是任务类继承QuartzJobBean 第二种则是在配置文件里定义任务类和要执行的方法,类和方 ...

  4. 在windows下vs使用pthread

    首先从http://sourceware.org/pthreads-win32/下载pthread 的windows安装包,我下的是pthread-w32-2-9-1-release.zip,其他版本 ...

  5. xampp 出现403 无法访问问题(已解决)

    最近重新安装xampp,配置虚拟主机做本地测试,但是总是出现服务器无法访问,权限不够的提示. 查找error文件后排查错误,发现是权限的问题.具体错误如下: 重新查看配置文件httpd.conf,才发 ...

  6. linux上mysql安装与卸载

    以下步骤运行环境是centos6.5   1.查找以前是否装有mysql命令:rpm -qa|grep -i mysql2.删除mysql删除命令:rpm -e --nodeps 包名3.删除老版本m ...

  7. SQL Server插入数据和删除数据

    首先在我的Student表中插入几条数据,由于我的表已经创建完成了,所以就没有创建表的 sql 语句了,不过可以看我的上一篇文章: http://www.cnblogs.com/Brambling/p ...

  8. 《RabbitMQ Tutorial》译文 第 3 章 发布和订阅

    原文来自 RabbitMQ 英文官网的教程(3.Publish and Subscribe),其示例代码采用了 .NET C# 语言. In the previous tutorial we crea ...

  9. 数据库文件*.sdf文件定时备份,但是大小的增量在不断增长的问题排查

    在某项目上,使用SQL Server数据库,现场反馈每天定时备份数据库文件,每天的数据量是400多个申请单的量.之前每天增长量是50M,但是后来两天增长量是80M,每天的数据量差不多. 到底从什么地方 ...

  10. 利用KindEditor实现公司通讯录的维护

    引言: 本人所属施工单位,在建项目较多,通讯录是以项目为单位挂接在公司内部网站通讯录板块,以静态页面展示.一直以来都是项目部办公室通过电话.邮件等方式通知总部信息部门变更通讯录,日常维护的工作量较大. ...