整合多个网络的拓扑结构并降维(Mashup)

整合多个网络的拓扑结构并降维(Mashup)

  介绍一个整合多个网络拓扑结构的方法,方法来源:Compact Integration of Multi-Network Topology for Functional Analysis of Genes.

  文章想利用网络的拓扑结构信息来整合多个网络,利用提取的拓扑信息和数据的其他信息来推断节点的属性。比如利用整合后的网络和提取的拓扑信息为基因或蛋白质预测功能。大体流程如下:

整合多个网络的拓扑结构并降维(Mashup)

  (1)对每个网络采用重启随机游走,获得每一个节点的一个分布,捕获其与网络中其他所有节点的相关性。(网络中n个节点,则每个节点得到一个n维向量);

  (2)构造一个多项逻辑模型来近似每个节点由随机游走得到的n维向量,模型的参数为两个低维特征向量(w, x向量),两个低维向量可以通过最小化模型向量和随机游走得到的扩散向量之间的差异得到;

  (3)使用得到的低维向量(x向量)作为广泛的基于网络的功能推理任务的输入特征。

  接下来我们说说每一步具体的步骤,首先我们说一下数据,现在有K个网络,每个网络有n个节点,每个网络的节点是一样的,但是边的连接不同。现在简单介绍一下重启随机游走算法:

  重启随机游走(Random Walk with Restart)在分析网络结构上已经有很多的应用了。从初始节点出发,下一步走向哪个节点是由概率决定的。现在有一个(加权的)分子相互作用网络G=(V,E),有n个节点,每个节点表示一个基因或一个蛋白质,设该网络的邻接矩阵为A,转移概率矩阵为B,其中Bij表示节点j到节点i的转移概率,计算公式如下:

整合多个网络的拓扑结构并降维(Mashup)

  从节点i开始的重启随机游走定义为:

整合多个网络的拓扑结构并降维(Mashup)

  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构建一个模型向量整合多个网络的拓扑结构并降维(Mashup),让模型向量近似扩散向量,使得它们之间的差异很小。我们用的逻辑模型为softmax,模型向量的每一项如下:

整合多个网络的拓扑结构并降维(Mashup)

其中X, W的维度一样,我们设为d维,且d << n

  我们来看下文章是如何利用softmax降维的。Softmax回归中将x分为类别j的概率为:

整合多个网络的拓扑结构并降维(Mashup)

  k:一共的类别数;

  x:特征向量;

  θ:回归参数

  我们用xi替换xwj替换θj,则整合多个网络的拓扑结构并降维(Mashup)定义式如下:

整合多个网络的拓扑结构并降维(Mashup)

整合多个网络的拓扑结构并降维(Mashup):表示从节点i转移到节点j的概率,我们可以理解为把i分类到类别j的概率(n个节点看做n个类别)

整合多个网络的拓扑结构并降维(Mashup)

  我们使用KL-散度来计算两个向量之间的差异,将差异最小化得到x, w向量。

整合多个网络的拓扑结构并降维(Mashup)

  我们用模型向量整合多个网络的拓扑结构并降维(Mashup)近似扩散向量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用以下公式:

整合多个网络的拓扑结构并降维(Mashup)

其中x向量并没有上标k,说明x向量在k个网络中是一样的。求解x, w向量的函数如下:

整合多个网络的拓扑结构并降维(Mashup)

我们计算出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)
上一篇:hibernate createQuery和createSQLQuery 查询结果count计算


下一篇:获取oracle 表字段,表名,以及主键之类等等的信息。