整合多个网络的拓扑结构并降维(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 和 Pandas 的数据分析(7) --- Pickling
上一节我们介绍了几种合并数据的方法. 这一节, 我们将重新开始不动产的例子. 在第四节中我们写了如下代码: import Quandl import pandas as pd fiddy_states ...
- 【BZOJ】3209: 花神的数论题
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3209 显然是按照二进制位进行DP. 考虑预处理$F[i][j]$表示到了二进制的第$i$位 ...
- 前端html5/css基础知识
https://www.cnblogs.com/clschao/articles/10073124.html
- L1-048. 矩阵A乘以B
水题不多说,直接上代码:#include<stdio.h> using namespace std; int main() { ][]; ][]; int m,n; int x,y; sc ...
- openModelica调试
1打印信息 Modelica.Utilities.Streams.print(“messge”);
- 简单理解Hadoop架构原理
一.前奏 Hadoop是目前大数据领域最主流的一套技术体系,包含了多种技术. 包括HDFS(分布式文件系统),YARN(分布式资源调度系统),MapReduce(分布式计算系统),等等. 有些朋友可能 ...
- Python Appium 开启Android测试之路
1.获取 Android app的Activity 打开终端cmd,先cd进入到刚才下载的“新浪.apk”目录下,然后使用aapt dump badging xxx.apk命令获取包内信息.注意,启动 ...
- Axure 动态面板的状态与尺寸
知识点: 1.动态面板的状态下相当动态面版的模式,当符合某种条件的话就选择对应的动态面板的状态 2.动态面板的尺寸可以根据内容自动调整大小 本节教程主要分为一下图片两种场景: 出现动态面板中的两种.一 ...
- legend2---开发日志4(常用的链接传值方式有哪些)
legend2---开发日志4(常用的链接传值方式有哪些) 一.总结 一句话总结:常用的其实就是get和post,不过有具体细分 a标签 post表单 js方式拼接url 1.js正则尽量少匹配的符号 ...
- docker 安装完mysql 后客户端无法访问
1.在虚拟机的centos 中安装 docker 的mysql 镜像. docker run --name mysql01 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12 ...
