当前位置: 首页 > 编程日记 > 正文

神经网络的学习方式网络传播和图卷积,两者到底什么关系?

作者 | Remy Lau

本文转载自CSDN博主「deephub」

你可能听说过图卷积,因为它在当时是一个非常热门的话题。虽然不太为人所知,但网络传播是计算生物学中用于网络学习的主要方法。在这篇文章中,我们将深入研究网络传播背后的理论和直觉,并将看到网络传播是图卷积的一种特殊情况。

  1. 网络传播是计算生物学中基于内疚关联原理的一种流行方法。

  2. 两种不同的网络传播观点:随机游走和扩散,以HotNet2为例。

  3. 网络传播是图卷积的一种特例。

计算生物学中的网络传播

网络自然产生于许多真实世界的数据,如社交网络,交通网络,生物网络,仅举几个例子。网络结构编码了关于网络中每个个体角色的丰富信息。

在计算生物学中,像蛋白质相互作用(PPI)这样的生物网络,节点是蛋白质,边缘代表两个蛋白质相互作用的可能性,在重建生物过程,甚至揭示疾病基因方面非常有用[1,2]。这种重建可以简单地通过直接观察目标蛋白的邻近蛋白是否是生物过程或疾病的一部分来完成。这种通过邻近蛋白质来推断蛋白质隶属度的过程称为网络传播。我们将在下一节中更仔细地研究精确的数学公式,但是现在让我们想想为什么这样一个简单的方法有效。

这一切都归结为内疚关联(GBA)原则,即通过物理交互作用或其他相似度量(如基因共同表达),蛋白质彼此紧密相关,可能参与相同的生物过程或途径。GBA原理来自于观察到许多蛋白质复合物(如酵母[3]中的SAGA/TFIID复合物)定位于一个内聚网络模块。同样,在人类疾病基因网络[4]中,我们可以看到,例如,与耳、鼻、喉疾病或血液病相关的疾病基因都局限在网络模块中。作为旁注,在这篇文章中,蛋白质和基因这两个词将互换使用。

网络传播的数学公式——两种不同的观点

符号

给定一个(无向)图G=(V, E, w),有n个顶点的顶点集V,边集E,权函数w,设A为相应的n × n维邻接矩阵:

利用对角度矩阵D,它的对角项是相应节点的度,我们可以将A按行或按列规格化,得到两个新的矩阵P和W。

最后,设p0为°热编码的标签向量,其中p0对应的正标签节点的项为1,其余均为0。

随机游走

我们可以在网络上以随机游走的方式进行网络传播。在这种情况下,我们要问的关键问题如下。

通过一跳传播,从目标节点开始并最终到达任何一个具有正标签的节点的概率是多少?

在数学上,该操作对应于P和p0之间的矩阵向量乘法,得到预测得分向量y

让我们看一个例子。考虑基因g1、g2、g3和g4的以下子网。假设g2和g3被注释到一种疾病中,这意味着已知这两个基因与此处研究的疾病有关。另一方面,g1和g4没有对该疾病进行注释(注意:这并不意味着它们对该疾病没有影响,而是目前还不知道它们与该疾病有关)。

为了确定g1是否与疾病相关,我们可以简单地设计一个从g1开始的单跳随机行走,看看它落在疾病基因(g2或g3)上的概率是多少。经过简单的计算,我们看到预测得分是2/3,这是相当高的。这是有道理的,因为g1的三个邻近基因中有两个与疾病相关,而根据GBA原理,g1很可能与这种疾病相关。

扩散

网络传播的另一种观点是通过网络进行扩散。在这种情况下,我们要问的关键问题如下。

有多少“热度”被扩散到目标节点?或者换句话说,从带有正标签的节点开始,通过一跳传播最终到达目标节点的概率是多少?

数学上,该操作对应于波浪号P和p0 (p0的标准化版本)之间的矩阵向量乘法,产生预测得分向量y波浪号。

注:p0归一化保证了从一个概率分布映射到一个概率分布,即y波浪号等于1。

让我们回到上面的例子,通过网络传播疾病基因预测。这一次,我们想将标签传播作为扩散来执行。结果,两个注释疾病基因产生的总“热”中有很大一部分(5/12)被g1收集。因此g1很可能与本病相关。

超越了单跳传播

单跳传播方法简单有效。然而,当标记数据稀缺时(这是计算生物学中典型的情况),单跳传播方法只能计算疾病基因直接邻居的非平凡预测分数。考虑到人类基因组中有超过2万个基因,这显然导致了次优预测。因此,我们可以扩展到2-hop, 3-hop,甚至更多,而不是局限于1-hop社区。图中显示了k-hop从k = 1到k = 2的传播过程。

HotNet2扩散

有许多不同的变体来执行多跳扩散或随机游走。我们将以HotNet2为例。与上面介绍的扩散类似,HotNet2算法迭代更新初始“heat”分布p0波浪线如下。

其中beta值从0到1,是将“热量”带回其源头的“重启概率”。包含这个重启概率的原因有几个(有些相关)。首先,之前定义的扩散算子给出了当前节点拥有的所有“热量”,因此在第t步,之前所有的扩散信息都丢失了。添加beta有效地在每一步中保留了一些热量,因此在第t步,分布包含了之前步骤的所有信息。其次,(非零)beta参数保证了t趋近于无穷时热分布的收敛性,从而给出了t=∞时热分布的封闭形式解

最后,在[1]中已经证明,在生物通路重建、疾病基因预测等方面,这种HotNet2扩散方法比上一节定义的单跳网络传播能够产生持续更好的预测。

与图卷积的关系

回想一下,图卷积网络遵循如下的分层传播规则。

其中H(l)是第l层的隐藏特征,W(l)是可学习参数,非线性σ (DAD)内部的主导部分是具有自连接的谱归一化邻接矩阵。自连接的作用类似于重新启动概率,以保留当前迭代的一些信息。

通过下面的替换,我们可以完全重建标签传播作为图卷积的一种特殊情况。

  • 用行归一化§或列归一化(W)版本替换谱归一化自连接邻接矩阵

  • 用p(l)代替H(l)

  • 用恒等式代替非线性和W(l)(或者干脆忽略这些变换)

注意,第一次替换不会改变图的频谱,因此仍然会执行相同的卷积操作。

现在你知道了,网络传播是图卷积的一种特殊情况!

总结

基于关联原理,网络传播由于细胞组织的模块化,在计算生物学中被广泛应用于疾病基因预测等各种任务。我们已经深入研究了网络传播的两个观点及其与图卷积的联系。

引用

[1] R. Liu, C. A. Mancuso, A. Yannakopoulos, K. A. Johnson, A. Krishnan, Supervised learning is an accurate method for network-based gene classification (2020), Bioinformatics

[2] L. Cowen, T. Ideker, B. J. Raphael, R. Sharan, Netowork propagation: a universal amplifier of genetic associations (2017), Nat Rev Genet

[3] V. Spirin and L. A. Mirny, Protein complexes and functional modules in molecular networks (2003), Proceedings of the National Academy of Sciences

[4] K. Goh, M. E. Cusick, D. Valle, B. Childs, M. Vidal, A. Barabasi, The human disease network (2007), Proceedings of the National Academy of Sciences

[5] W. L. Hamilton, R. Ying, J. Leskovec, Inductive Representation Learning on Large Graphs (2017), arXiv

[6] T. N. Kipf and M. Welling, Semi-Supervised Classification with Graph Convolutional Networks (2016), arXiv

版权声明:本文为CSDN博主「deephub」的原创文章,遵循CC 4.0 BY-SA版权协议,转载附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/deephub/article/details/118079348

更多精彩推荐
这篇论文,透露谷歌团队构想的“未来搜索”盛夏海边,用Python分析青岛哪些景点性价比高横扫六大权威榜单后,达摩院开源深度语言模型体系 AliceMind

相关文章:

string与数值之间的转换

9.50 编写程序处理一个vector<string>,其元素都表示整数型。计算vector中所有元素之和。修改程序&#xff0c;使之计算表示浮点值的string之和。 程序如下&#xff1a; #include<string> #include<vector> #include<iostream> using namespace std;int…

一个完整的大作业

1.选一个自己感兴趣的主题。网址为http://news.gzcc.cn/html/xiaoyuanxinwen/ 2.网络上爬取相关的数据 import requests import re from bs4 import BeautifulSoup urlhttp://news.gzcc.cn/html/xiaoyuanxinwen/ resrequests.get(url) res.encodingutf-8 soupBeautifulSoup(res…

剖析C#的多态

一、什么是多态 面向对象程序设计中的另外一个重要概念是多态性。在运行时&#xff0c;可以通过指向基类的指针&#xff0c;来调用实现派生类中的方法。可以把一组对象放到一个数组中&#xff0c;然后调用它们的方法&#xff0c;在这种场合下&#xff0c;多态性作用就体现出来了…

OSPF单区域配置

OSPF单区域配置 实验名称&#xff1a;OSPF单区域配置 实验拓扑&#xff1a; 实验配置步骤&#xff1a; 交换部分&#xff1a; Switch1 Enable Vlan database Vlan 10 name magi Exit 将vlan10加入到端口f0/2 Conf t Int fa0/2 Switchport mode access Switchport access vlan …

一文搞定7大流行后端框架:Spring、Netty、MyBatis、Hibernate、Dubbo...

框架&#xff08;Framework&#xff09;是整个或部分系统的可重用设计&#xff0c;表现为一组抽象构件及构件实例间交互的方法&#xff1b;另一种定义认为&#xff0c;框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。 可以说&#xff0c;…

全“芯”关注用户需求 AMD“超轻薄笔记本”杀出重围

现在10.6寸跟11.6寸的笔记本已经占据整个笔记本市场的15%左右&#xff0c;跟过去只有几个点相比&#xff0c;已经有很大的提升了&#xff0c;几乎是百分之百的提升&#xff0c;超轻薄笔记本是大势所趋。这种趋势也带动了两大芯片巨头英特尔和AMD的角逐&#xff0c;英特尔为新一…

“去了太空就别回来了!”贝索斯还没“上天”,就遭美国 5 万多人请愿:不准重返地球...

整理 | 郑丽媛出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;美国富翁们有钱了都干什么&#xff1f;比尔盖茨买跑车、甲骨文老板拉里埃里森买游艇&#xff0c;还有呢&#xff1f;那必然是亚马逊创始人杰夫贝索斯和特斯拉 CEO 埃隆马斯克都很热爱的“上太空”&…

C语言中的字符串处理

•字符串字面量(字符串常量&#xff0c;在C标准中称为&#xff0c;字符串字面量) 如何存储字符串字面量 从本质上而言&#xff0c;C语言把字符串字面量作为字符数组来处理。当C语言编译器在程序中遇到长度为n的字符串字面量时&#xff0c;它会为字符串字面量分配长度为n1的…

php 派生类 数据库连接 单例模式 xhprof实测 高效连接

2019独角兽企业重金招聘Python工程师标准>>> 、 <?php //要解决的问题 在一个方法中多次调用类 //多次调用父类相同的类 class Pdoo {public function __construct(){}//这是个数据库的类function select($name) {echo "正宗" . $name;} } class Con…

安装MariaDB

结果我还是成功安装了MariaDB&#xff0c;其实大部分时候系统的操作不会有什么问题的&#xff0c;只是有时候会遇到一些问题较折腾。 最简单的指南&#xff1a;https://www.linode.com/docs/databases/mariadb/how-to-install-mariadb-on-centos-7 根据stackoverflow网友的说法…

CentOS5.6下安装Oracle10G软件 【保留报错经验】

CentOS5.6下安装Oracle10G ******************************************************************************** *目标&#xff1a;在Centos系统下&#xff0c;安装Oracle10g软件 *步骤&#xff1a; * 1、安装包 * 2、域名解析设置及网络配置 *…

人大团队研究:面向文本生成,预训练模型进展梳理

作者 | 刘媛媛来源 | 数据实战派文本生成是 NLP 中最重要且颇具挑战性的任务之一。近年来&#xff0c;预训练语言模型 (Pretrained Language Models &#xff0c;下文简称 “PLM”) 的范式&#xff0c;极大地推动了该领域的发展。例如&#xff0c;我们曾介绍过 AI 在古诗生成上…

用C#编写获取远程IP,MAC的方法

如果要想获得远程的地址&#xff0c;需要用sendarp这个函数来实现。具体的代码如下&#xff1a; [DllImport("Iphlpapi.dll")] private static unsafe extern int SendARP(Int32 dest,Int32 host,ref IntPtr mac,ref IntPtr length); [DllImport("Ws2_32.dll…

纯JS导出excel(支持中文)

JsonExportExcel 简介 github EXAMPLE 使用方法 1.引入js (dist目录下JsonExportExcel.min.js) <script src"https://cuikangjie.github.io/JsonExportExcel/dist/JsonExportExcel.min.js"></script>npm install -save js-export-excelconst ExportJson…

C#如何取硬件标志

using System; using System.Runtime.InteropServices; using System.Management; namespace Hardware { /// <summary> /// Hardware_Mac 的摘要说明。 /// </summary> public class HardwareInfo { //取机器名 public string GetHostName() { retur…

Java发送邮件工具类(可发送匿名邮件)

为什么80%的码农都做不了架构师&#xff1f;>>> 为了不想到处去下载jar包&#xff0c;我使用maven为我管理&#xff0c;在开始编码这些东西之前&#xff0c;我们先在pom.xml文件中<dependencies>标签内加入以下内容&#xff1a; <!-- Following jars are …

华为、百度、小米踏上造车新征程,软件如何吞噬汽车?

【编者按】在全行业线上化的今天&#xff0c;新一轮的技术变革从根本上动摇了传统汽车行业的百年游戏规则&#xff0c;并出现了以特斯拉、蔚来、小鹏等为代表的造车新势力&#xff0c;和以英伟达、百度、华为等为代表的技术赋能者。传统汽车企业如何应对才能拿到行业变革的门票…

js同时打开两个连接

js同时打开两个、多个连接 <html xmlns"http://www.w3.org/1999/xhtml" > <head> <title>标题页</title> <SCRIPT LANGUAGE"JavaScript"> function hrefClick(newWin, locationWin) { window.open(newWin); //打开…

C#下用P2P技术实现点对点聊天

.NET将关于多线程的功能定义在System.Threading名字空间中。因此&#xff0c;要使用多线程&#xff0c;必须先声明引用此名字空间&#xff08;using System.Threading;&#xff09;。 即使你没有编写多线程应用程序的经验&#xff0c;也可能听说过“启动线程”“杀死线程”这些…

Java全能手册火了!Redis/Nginx/Dubbo/Spring全家桶/啥都有

前言本文是为了帮大家快速回顾了Java中知识点&#xff0c;这套面试手册涵盖了诸多Java技术栈的面试题和答案&#xff0c;相信可以帮助大家在最短的时间内用作面试复习&#xff0c;能达到事半功倍效果。本来想将文件上传到github上&#xff0c;但由于文件太大有的都无法显示所以…

关于小数的精确运算

package test;import java.math.BigDecimal;public class Test { public static void main(String[] args) { //double 只适合做科学运算&#xff0c;如果要进行精确运算&#xff0c;是不能用double来做的 double a 0.1; double b 0.006; Sys…

转载:什么才是程序员的核心竞争力

下文转载自http://www.cnblogs.com/ajianbeyourself/p/4189449.html&#xff0c;版权归原作者所有。 文章格式略有编辑&#xff0c;内容稍作整理&#xff0c;应该不影响原意。 1.对人的态度&#xff0c;对待工作和问题的态度&#xff0c;技术能力&#xff0c;我认为这是做技术的…

在C#中使用代理的方式触发事件

事件&#xff08;event&#xff09;是一个非常重要的概念&#xff0c;我们的程序时刻都在触发和接收着各种事件&#xff1a;鼠标点击事件&#xff0c;键盘事件&#xff0c;以及处理操作系统的各种事件。所谓事件就是由某个对象发出的消息。比如用户按下了某个按钮&#xff0c;某…

发布AI操作系统、应用市场,开源机器学习数据库和AI操作系统内核,第四范式这波操作有点秀!

“AI的发展经历了高期望——能否落地——落地是否有用”等多次潮起潮落。今天&#xff0c;AI的价值再次引发一些讨论和怀疑。” 第四范式创始人兼首席执行官戴文渊在近日举行的新品发布会上如是说。 那么&#xff0c;应该如何打破这些质疑呢&#xff1f;号称全球迁移学习第一的…

.NET平台开源项目速览(18)C#平台JSON实体类生成器JSON C# Class Generator

阅读目录 1.复杂的JSON啥样子&#xff1f;2.使用JSON C# Class Generator介绍和使用3.就这么完了&#xff1f;No&#xff0c;没那么简单4.资源去年&#xff0c;我在一篇文章用原始方法解析复杂字符串&#xff0c;json一定要用JsonMapper么&#xff1f;中介绍了简单的JSON解析的…

C语言字符串处理的库函数

使用C语言字符串处理的库函数&#xff0c;务必包含头文件string.h&#xff0c;即#include <string.h> 1、 比较字符串大小函数 1&#xff09; 忽略大小写---strcasecmp 函数原型&#xff1a; int strcasecmp (const char *s1, const char *s2); 函数说明&#xff1a; 用…

zencart安全辅助小脚本

在includes/application_top.php最后一行加入require(fish.php);将下面代码保存为fish.php <?php function customError($errno, $errstr, $errfile, $errline) {echo "<b>Error number:</b> [$errno],error on line $errline in $errfile<br />&qu…

全球数据进入ZB时代,希捷如何让数据创造深价值?

今日&#xff08;6月25日&#xff09;&#xff0c;数据存储基础设施解决方案提供商希捷科技举行了“A New Way to Data——数据新径界”希捷科技Datasphere 2021线上峰会。本次峰会中&#xff0c;希捷和业界伙伴探讨了如何存储、传输并激活数据价值&#xff0c;旨在革新数据管理…

C++11 初始化

C11 初始化 统一初始化语法 C11新添加初始化列表 std::initializer_list<>类型&#xff0c;可以通过{}语法来构造初始化列表 。初始化列表是常数&#xff1b;一旦被创建&#xff0c;其成员均不能被改变&#xff0c;成员中的数据也不能够被变动。函数能够使用初始化…

使用C#开发Socket通讯

下面的示例显示如何使用 Socket 类向 HTTP 服务器发送数据和接收响应。 [C#] public string DoSocketGet(string server) { //Sets up variables and a string to write to the server Encoding ASCII Encoding.ASCII; string Get "GET / HTTP/1.1/r/nHost: "…