整合多个网络的拓扑结构并降维(Mashup)
整合多个网络的拓扑结构并降维(Mashup)
介绍一个整合多个网络拓扑结构的方法,方法来源:Compact Integration of Multi-Network Topology for Functional Analysis of Genes.
文章想利用网络的拓扑结构信息来整合多个网络,利用提取的拓扑信息和数据的其他信息来推断节点的属性。比如利用整合后的网络和提取的拓扑信息为基因或蛋白质预测功能。大体流程如下:
(1)对每个网络采用重启随机游走,获得每一个节点的一个分布,捕获其与网络中其他所有节点的相关性。(网络中n个节点,则每个节点得到一个n维向量);
(2)构造一个多项逻辑模型来近似每个节点由随机游走得到的n维向量,模型的参数为两个低维特征向量(w, x向量),两个低维向量可以通过最小化模型向量和随机游走得到的扩散向量之间的差异得到;
(3)使用得到的低维向量(x向量)作为广泛的基于网络的功能推理任务的输入特征。
接下来我们说说每一步具体的步骤,首先我们说一下数据,现在有K个网络,每个网络有n个节点,每个网络的节点是一样的,但是边的连接不同。现在简单介绍一下重启随机游走算法:
重启随机游走(Random Walk with Restart)在分析网络结构上已经有很多的应用了。从初始节点出发,下一步走向哪个节点是由概率决定的。现在有一个(加权的)分子相互作用网络G=(V,E),有n个节点,每个节点表示一个基因或一个蛋白质,设该网络的邻接矩阵为A,转移概率矩阵为B,其中Bij表示节点j到节点i的转移概率,计算公式如下:
从节点i开始的重启随机游走定义为:
pr:重启的概率,在扩散过程中控制局部和全局拓扑信息的相对影响,重启概率比较大则说明局部结构更重要;
ei:n维的分布向量,ei(i) = 1且ei(j) = 0, 任意 j≠i;
sti:n维分布列向量,每一项表示从节点i出发经过t步后到达该节点的概率;
上式的第一项可以看做从与当前节点连接的其他节点继续更新的更新项,第二项为重启项。经过多次迭代后可以为每个节点计算一个n维的向量Si。
①我们应用上面的重启随机游走方法对网络1中的每个节点i计算一个n维向量Si,(也称为扩散向量或扩散状态)Sij表示从节点i出发到达节点j的概率;
②降维 因为我们拿到的数据本身是有噪声的,并且得到的扩散向量都是n维的,若n比较大,则在后续计算中耗时非常大(生物网路中的节点一般都在2万多,可见维度太大)。
那么我们如何降维呢?
我们利用多项逻辑模型为每一个扩散向量Si构建一个模型向量,让模型向量近似扩散向量,使得它们之间的差异很小。我们用的逻辑模型为softmax,模型向量的每一项如下:
其中X, W的维度一样,我们设为d维,且d << n。
我们来看下文章是如何利用softmax降维的。Softmax回归中将x分为类别j的概率为:
k:一共的类别数;
x:特征向量;
θ:回归参数
我们用xi替换x,wj替换θj,则定义式如下:
:表示从节点i转移到节点j的概率,我们可以理解为把i分类到类别j的概率(n个节点看做n个类别)
我们使用KL-散度来计算两个向量之间的差异,将差异最小化得到x, w向量。
我们用模型向量近似扩散向量si,随后用模型中的x, w向量分别表示节点的特征向量和参数向量。这样就将原先的n x n矩阵变为n x d矩阵。
接下来我们扩展到k个网络中:w向量视为网络特异性上下文向量,共k x n个,x向量为节点的特征向量,在k个网络中实现共享,也就是利用x向量做到整合k个网络的目的,共n个。
w : k x n个,在计算模型向量时,作为节点特征向量的参数,根据网络的不同而不同,反映了网络的特异性;
x:n个,节点的特征向量,因为文章方法的目的就是整合网络的拓扑,因此采用的方式为:将k个网络中节点的x向量共享从而达到整合的目的。
此时我们对k个网络中近似扩散向量的softmax用以下公式:
其中x向量并没有上标k,说明x向量在k个网络中是一样的。求解x, w向量的函数如下:
我们计算出x, w向量后,就可以利用节点的x向量来做数据相关分析了。
文献:Compact Integration of Multi-Network Topology for Functional Analysis of Genes(http://www.cell.com/cell-systems/fulltext/S2405-4712(16)30360-X)
整合多个网络的拓扑结构并降维(Mashup)的更多相关文章
- openstack网络(neutron)模式之GRE的基本原理
neutron网络目的是为OpenStack云更灵活的划分网络,在多租户的环境下提供给每个租户独立的网络环境. neutron混合实施了第二层的VLAN和第三层的路由服务,它可为支持的网络提供防火墙, ...
- FC网络学习笔记02 -网络配置方法
随着新一代飞机的综合化航电系统对通信需求的不断提高,传统的ARINC429.1553B总线的传输速率分别只有100Kbps和1Mbps,其带宽已远远不 论文联盟 http://Www.LWlm.cOm ...
- 一文搞懂各种 Docker 网络 - 每天5分钟玩转 Docker 容器技术(72)
前面各小节我们先后学习了 Docker Overaly,Macvaln,Flannel,Weave 和 Calico 跨主机网络方案.目前这个领域是百家争鸣,而且还有新的方案不断涌现. 本节将从不同维 ...
- 快速开发基于 HTML5 网络拓扑图应用--入门篇(一)
计算机网络的拓扑结构是引用拓扑学中研究与大小,形状无关的点.线关系的方法.把网络中的计算机和通信设备抽象为一个点,把传输介质抽象为一条线,由点和线组成的几何图形就是计算机网络的拓扑结构.网络的拓扑结构 ...
- Python网络编程篇之socket
1 socket 插座?呵呵,想多了,翻译过来意思是套接字! A network socket is an internal endpoint for sending or receiving dat ...
- 开源网络监控管理系统:OpenNMS
OpenNMS是一个开源的企业级基于Java/XML的分布式网络和系统监控管理平台.OpenNMS是管理网络的绝好工具,它能够显示网络中各中终端和服务器的状态和配置,为方便地管理网络提供有效的信息. ...
- 072、一文搞懂各种Docker网络 (2019-04-17 周三)
参考https://www.cnblogs.com/CloudMan6/p/7587532.html 前面各个小节我们学习了 Docker Overlay .Macvlan .Flannel.We ...
- 第 8 章 容器网络 - 072 - 一文搞懂各种 Docker 网络
Docker 起初只提供了简单的 single-host 网络,显然这不利于 Docker 构建容器集群并通过 scale-out 方式横向扩展到多个主机上. 跨主机网络方案: Docker Over ...
- Hyperledger Fabric 建立一个简单网络
Building you first network 网络结构: 2个Orgnizations(每个Org包含2个peer节点)+1个solo ordering service 打开fabric-sa ...
随机推荐
- python学习 day016打卡 面向对象--成员
本节主要内容: 1.类的成员 2.类的成员-变量 3.类的成员-方法 4.类的成员-属性 5.私有 一.类的成员: 能在类中写的内容就是类的成员. class 类名: #方法 def __init__ ...
- Linux下的压缩解压缩命令详解及实例
实例:压缩服务器上当前目录的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前目录 unzip filename.zip ====================== ...
- java中\r与\n的区别
\r : return 到当前行的最左边. \n: newline 向下移动一行,并不移动左右. Linux中\n表示回车+换行: Windows中\r\n表示回车+换行. 测试了一下,在java,w ...
- VC.遍历文件夹中的文件
1.VC下遍历文件夹中的所有文件的几种方法 - 年少要轻狂 - CSDN博客.html(https://blog.csdn.net/wllmsdn/article/details/27220999) ...
- Qt532.QSettings_默认分隔符
1.http://bbs.csdn.net/topics/391831509?page=1 2楼: QSettings读取配置文件的内容是以逗号作为分隔符,以分号作为结束符.遇到分号就结束了,后面的内 ...
- Java中的单实例
前几天刚学完单实例设计模式,今天看代码时发现一行代码很奇怪,getRuntime()函数的返回类型怎么是它本身,忽然想起前几天学的单实例模式,于是找到方法的定义,果然是静态私有变量,获取实例的公有方法 ...
- Transactional cannot be resolved to a type
SpringBoot整合Mybatis时遇到“ Transactional cannot be resolved to a type ” ,以为是没有导入相应的包 “ import org.sprin ...
- leecode第八十九题(格雷编码)
class Solution { public: vector<int> grayCode(int n) { vector<int> res; res.push_back(); ...
- Eclipse Jee环境配置
最近下载了新的Eclipse Jee Neon版本,记录一下如何进行开发环境的配置. 1.下载必要的开发环境文件 ①下载Java SE Development Kit (简称JDK) ②下载Tomca ...
- 小程序歌词展示,格式lrc歌词
代码: wxml: <view class="page"> <view class="lrc" style="margin-top: ...