技术标签: 图神经网络
目录
本文为GNN教程的第二篇文章 【GCN介绍】,取自Kipf et al. 2017,文章中提出的模型叫Graph Convolutional Network(GCN),个人认为可以看作是图神经网络的“开山之作”,因为GCN利用了近似的技巧推导出了一个简单而高效的模型,使得图像处理中的卷积操作能够简单得被用到图结构数据处理中来,后面各种图神经网络层出不穷,或多或少都受到这篇文章的启发。
考虑图(例如引文网络)中节点(例如文档)的分类问题,假设该图中只有一小部分节点标签(label)是已知的,我们的分类任务是想通过这部分已知标签的节点和图的结构来推断另一部分未知标签的节点的标签。这类问题可以划分到基于图结构数据的半监督学习问题中。半监督学习(semi-supervised learning)是有监督学习的一个分支,主要研究的是如何利用少量的有标签数据学习大量无标签数据的标签。
为了对节点进行分类,首先我们可以利用节点自身的特征信息,除此之外,我们还可以利用图结构信息,因此一个典型的图半监督学习问题可以对两个损失函数一起优化:
显然,这样的学习策略基于图中的相邻节点标签可能相同的假设(因为损失函数要求相邻节点的特征向量尽量相似,如何他们的标签不相似的话,那么不能学习到一个从特征向量到标签的有效映射)。然而,这个假设可能会限制模型的能力,因为图的边在语义上不一定代表所连接节点相似。还有一种可能是图中有大量的噪声边。
因此,在这个工作中,作者不再显示的定义图结构信息的损失函数 , 而是使用神经网络模型直接对图结构进行编码,训练所有带标签的结点,来避免损失函数中的正则化项。
这篇文章的主要贡献是为图半监督分类任务设计了一个简单并且效果好的神经网络模型,且这个模型由谱图卷积(spectral graph convolution)的一阶近似推导而来,具有理论基础。
这一节介绍如何从谱图卷积推导出GCN的逐层更新模型,涉及到一些谱图理论的知识,可以安全的跳过这一节,后面我们会为谱图卷积专门出一个专栏的文章,将详细讨论它们。
这一节主要介绍图卷积网络GCN逐层更新(propagation)的理论推导。多层图卷积网络(Graph Convolutional Network, GCN)的逐层传播公式:
现在假设我们限制,即谱图卷积近似为一个关于的线性函数。这种情况下,我们仍能通过堆叠多层来得到卷积的能力,但是这时候,我们不再受限于切比雪夫多项式参数的限制。我们期望这样的模型能够缓解当图中节点度分布差异较大时对局部结构过拟合问题,比如社交网络,引文网络,知识图谱等。另一方面,从计算的角度考虑,逐层线性模型使我们可以构建更深的模型。
这个形象的解释对理解GNN非常重要,希望大家能仔细想一下是不是懂了。
例子
实现时,由于GCN需要输入整个邻接矩阵和特征矩阵, 因此它是非常耗内存的,论文中作者做了优化,他们将作为稀疏矩阵输入,然后通过实现稀疏矩阵和稠密矩阵相乘的GPU算子来加速计算,然而,即使这样,整个矩阵仍然存在这要被塞进内存和显存中的问题,当图规模变大的时候,这种方法是不可取的,在下一篇GraphSAGE的博文中,我们将会介绍如何巧妙的克服这样的问题。
[1] Semi-Supervised Classification with Graph Convolutional Networks
核心
利用html的颜色块动态展示数据*{padding: 0;margin: 0;}.tubiao,.jihua,.shiji,.riqi{width: 100%;overflow: hidden;margin-top: 10px;}.left{width: 10%;float: left;text-align: center;height: 25px;line-height: 25px;}.righ...
每周,谷歌员工都会在厕所的墙壁上粘贴一页来分享本周的测试小建议。有时这页纸会讨论依赖注入,并提供一个简单的示例展示如何用不同语言使用它;有时它可能会分享如何安装一个用于测量团队代码库测试覆盖率的软件。“Testing on the Toilet”起初是个奇怪又有趣的方式,来教给工程师在工作中会用到的一些新的东西,这也被突出为Google文化中的核心力量:向工程师组织有效的传播一系列最佳实践。这有从谷歌工程文化中获得的六个核心原则,你可能能够从中获益。把工程资源用于共享工具和抽象概念。在早期谷..
目前正在做一个开源电商系统,经过了将近一年的筹划,对框架的整体越来越清晰,目前正在框架搭建过程。github地址为:https://github.com/fancyecommerceFecshop后台框架部分:fancyecommerce/yii2_fec_adminfancyecommerce/yii2_fec_admin项目已经开始,预计到2017年元旦出来第一个正式版本。经过一年的筹划,将m...
libfacedetection用于图像中人脸检测和人脸标志检测的快速二进制库,其人脸检测速度可达1500FPS,非常强悍!目前在Github上已经超过3500星。libfacedetection提供了四套接口,分别为frontal、frontal_surveillance、multiview、multiview_reinforce,其中multiview_reinforce效果最好...
sqlmap常用命令-u :注入点;–dbs:获取数据库–current-db:查看当前系统数据库名–tables -D“数据库名”:获取指定数据库中的表;–columns -T“表名” -D“数据库名“:获取指定数据库指定表的字段–dump -T”表名“ -D”数据库名“ -C”字段1,字段2,……“对于简单的GET型注入,例如:sql-libs靶机第一关,,顺序执行上述命令即可。其他类型的注入,持续更新...
2019独角兽企业重金招聘Python工程师标准>>> ...
kubernetes(K8s)集群简介及部署1. kubernetes简介1.1 Kubernetes概述1.2 kubernetes设计架构1.3 kubernetes设计理念2. kubernetes部署2.1 准备工作1. kubernetes简介1.1 Kubernetes概述kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理...
预期目的:站点A 和 站点B 共用同一个图片文件夹C实现方式是:在站点下添加虚拟目录 使虚拟目录指向共用文件夹站点下的页面 使用图片的访问方式示意:其中 C为虚拟目录IIS的站点布局示意:--网站----Default Web Site------应用程序A http://localhost/A/index.html--------虚拟目录C 指向D:\www\C------应用程序B http:...
天气API (https://www.tianqiapi.com) 提供的是真正免费的天气api接口接口没有调用次数、频率、IP等限制!提供的接口完全满足广大开发者的日常需求, 而且使用接口无需注册, 不需要key, 一行代码就可以搞定curl "https://www.tianqiapi.com/api/?version=v1"7日天气 / 15日天气 / 40日天气 ...
概念 CSS Hack用来解决浏览器的兼容性问题,为不同版本的浏览器定制编写不同的CSS效果,使用每个浏览器单独识别的样式代码,控制浏览器的显示样式。Hack分类1. CSS属性前缀法2. 选择器前缀法3. IE条件注释法CSS属性前缀法属性前缀法是在CSS样式属性名前加上一些只有特定浏览器才能识别的hack前缀,以达到预期的页面展现效果。.box{ width:100px; height:100px; background: red; _background:blue;}注意\9、
查看一个简单的jQuery的例子来遍历一个JavaScript数组对象。var json = [ {"id":"1","tagName":"apple"}, {"id":"2","tagName":"orange"}, {"id":"3","tagName":"banana"}, {"id":"4","tagName":"watermelon"},...
问题:版本vcsa5.5,用vsphere web client登陆的时候报错:Failed to connect to VMware Lookup Service https://IP:7444/lookupservice/sdk - SSL certificate verification failed.解决办法:登陆vcsa配置网页:默认账号密码:root/vmware...