整合多个网络的拓扑结构并降维(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:重启的概率,在扩散过程中控制局部和全局拓扑信息的相对影响,重启概率比较大则说明局部结构更重要;

  ein维的分布向量,ei(i) = 1ei(j) = 0,  任意 j≠i

  stin维分布列向量,每一项表示从节点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替换xwj替换θ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)的更多相关文章

  1. openstack网络(neutron)模式之GRE的基本原理

    neutron网络目的是为OpenStack云更灵活的划分网络,在多租户的环境下提供给每个租户独立的网络环境. neutron混合实施了第二层的VLAN和第三层的路由服务,它可为支持的网络提供防火墙, ...

  2. FC网络学习笔记02 -网络配置方法

    随着新一代飞机的综合化航电系统对通信需求的不断提高,传统的ARINC429.1553B总线的传输速率分别只有100Kbps和1Mbps,其带宽已远远不 论文联盟 http://Www.LWlm.cOm ...

  3. 一文搞懂各种 Docker 网络 - 每天5分钟玩转 Docker 容器技术(72)

    前面各小节我们先后学习了 Docker Overaly,Macvaln,Flannel,Weave 和 Calico 跨主机网络方案.目前这个领域是百家争鸣,而且还有新的方案不断涌现. 本节将从不同维 ...

  4. 快速开发基于 HTML5 网络拓扑图应用--入门篇(一)

    计算机网络的拓扑结构是引用拓扑学中研究与大小,形状无关的点.线关系的方法.把网络中的计算机和通信设备抽象为一个点,把传输介质抽象为一条线,由点和线组成的几何图形就是计算机网络的拓扑结构.网络的拓扑结构 ...

  5. Python网络编程篇之socket

    1 socket 插座?呵呵,想多了,翻译过来意思是套接字! A network socket is an internal endpoint for sending or receiving dat ...

  6. 开源网络监控管理系统:OpenNMS

    OpenNMS是一个开源的企业级基于Java/XML的分布式网络和系统监控管理平台.OpenNMS是管理网络的绝好工具,它能够显示网络中各中终端和服务器的状态和配置,为方便地管理网络提供有效的信息. ...

  7. 072、一文搞懂各种Docker网络 (2019-04-17 周三)

    参考https://www.cnblogs.com/CloudMan6/p/7587532.html   前面各个小节我们学习了 Docker Overlay .Macvlan .Flannel.We ...

  8. 第 8 章 容器网络 - 072 - 一文搞懂各种 Docker 网络

    Docker 起初只提供了简单的 single-host 网络,显然这不利于 Docker 构建容器集群并通过 scale-out 方式横向扩展到多个主机上. 跨主机网络方案: Docker Over ...

  9. Hyperledger Fabric 建立一个简单网络

    Building you first network 网络结构: 2个Orgnizations(每个Org包含2个peer节点)+1个solo ordering service 打开fabric-sa ...

随机推荐

  1. NLP--- How to install the tool NLTK in Ubuntu ?

    NLP--- How to install the tool NLTK in Ubuntu ? 1. open the website of NLTK and download it.  https: ...

  2. 《操作系统_FCFS和SJF》

    先来先服务FCFS和短作业优先SJF进程调度 转自:https://blog.csdn.net/qq_34374664/article/details/73231072 一.概念介绍和案例解析 FCF ...

  3. 【Hadoop 分布式部署 三:基于Hadoop 2.x 伪分布式部署进行修改配置文件】

    1.规划好哪些服务运行在那个服务器上 需要配置的配置文件 2. 修改配置文件,设置服务运行机器节点 首先在   hadoop-senior  的这台主机上 进行   解压 hadoop2.5   按照 ...

  4. .Net Core 全球化&本地化的使用

    官网文档 nuget地址 创建资源文件 添加资源文件 实施策略 配置本地化 本地化中间件 使用 视图本地化 DataAnnotations 本地化 Make the app's content loc ...

  5. Docker Builders:Builder pattern vs. Multi-stage builds in Docker

    原文链接 Builder pattern vs. Multi-stage builds in Docker This post looks at two new PRs from the Docker ...

  6. Images之Dockerfiles

    Best practices for writing Dockerfiles This document covers recommended best practices and methods f ...

  7. 在服务器端对sshd做白名单

    1.添加用户 #useradd aaa #passwd aaa -->输入密码:123456 添加3个用户,bbb和ccc与aaa添加一样 2.添加白名单 #vim /etc/ssd/sshd_ ...

  8. Js操作Cookie的实现

  9. Codeforces 781C Underground Lab

    题目链接:http://codeforces.com/problemset/problem/781/C 因为有${K}$个机器人,每个又可以走${\left \lceil \frac{2n}{k} \ ...

  10. leecode第十五题(三数之和)

    class Solution { public: void quick_order(vector<int>& num, int star, int en)//快排 { int st ...