从CNN到GCN的联系与区别:

https://www.zhihu.com/question/54504471/answer/332657604

更加详解Laplacian矩阵:

https://www.zhihu.com/question/54504471/answer/630639025

GCN 实践:

https://mp.weixin.qq.com/s/sg9O761F0KHAmCPOfMW_kQ

深度学习时代的图模型,图网络综述:

https://mp.weixin.qq.com/s/WW-URKk-fNct9sC4bJ22eg

一、GCN图卷积神经网络

1.算法创新

卷积神经网络CNN主要应用于图像领域,但CNN处理的数据是具有显著标准的空间结构的,而网络拓扑图的数据并不具有标准空间结构。GCN 是对CNN在图论上的自然推广,GCN理论基础是谱图理论。

本质上,GCN 是谱图卷积的局部一阶近似,可以用于对局部图结构与节点特征信息进行编码生成节点Embedding。GCN适用性极广,能适用于任意网络拓扑结构图。

2.算法原理

GCN算法原理主要包括传播、聚合和非线性变换,具体解释如下:

传播是指图中的每一个节点将自身的特征信息发送给相邻的邻居节点。

聚合是指图中每个节点将邻居节点的特征信息汇聚的过程,是对节点的局部结构信息进行融合。局部结构信息可以理解为CNN的感知域,共享卷积核权重,正比于神经网络的层数;迭代开始时,每个节点包含了直接连接邻居的特征信息,当计算神经网络第二层时就能把邻居的邻居节点的特征信息聚合进来,从而使参与运算的信息就更多更充分。

层数越多,感知域就更广,参与运算的节点信息就越多。

对聚合之后特征信息做非线性变换,增加模型的表示能力。

二、GraphSAGE通用归纳框架

1.算法创新

《Inductive Representation Learning on Large Graphs》论文提出了GraphSAGE (SAmple and aggreGatE),是一种归纳框架。

它可以利用节点特征信息来高效地为未出现过的节点生成Node Embedding。它不是为每个节点专门训Embedding,而是训练得到一个函数,这个函数功能是从节点的局部邻居节点采样并聚合特征信息。

图一是采样Sampling,以节点为中心进行广度优先遍历方式采样邻居节点,得到包含中心节点和它的邻居节点的子集。

使用采样一定程度上解决了计算资源压力的问题,使图神经模型可以在大规模图数据集上训练;

图二是训练一组聚合函数,这些函数学习如何从一个节点的局部邻居节点聚合所有的特征信息。

图三是连接中心节点特征信息和聚合来自邻居节点特征信息,预测图的上下文环境和节点的标签类别。

三、图神经网络在反欺诈上应用

在反欺诈领域,根据业务场景构建图,再结合图神经网络技术,挖掘欺诈团伙。

比如反垃圾注册场景,我们可以共用设备来构图,也可以构建账号和设备的异构图,这里的设备主要包括设备的deviceid、mac、imei和imsi等信息,

算法采用图神经网络GCN对图中结构信息和自身的特征进行有效的信息抽取和分析,挖掘垃圾注册团伙,能够大幅提高识别效果。

 
链接:https://zhuanlan.zhihu.com/p/59862502

GCN: Graph Convolutional Network的更多相关文章

  1. Graph Embedding Review:Graph Neural Network(GNN)综述

    作者简介: 吴天龙  香侬科技researcher 公众号(suanfarensheng) 导言 图(graph)是一个非常常用的数据结构,现实世界中很多很多任务可以描述为图问题,比如社交网络,蛋白体 ...

  2. Two-Stream Adaptive Graph Convolutional Network for Skeleton-Based Action Recognition

    Two-Stream Adaptive Graph Convolutional Network for Skeleton-Based Action Recognition 摘要 基于骨架的动作识别因为 ...

  3. 《T-GCN: A Temporal Graph Convolutional Network for Traffic Prediction》 代码解读

    论文链接:https://arxiv.org/abs/1811.05320 博客原作者Missouter,博客链接https://www.cnblogs.com/missouter/,欢迎交流. 解读 ...

  4. Graph Convolutional Network

    How to do Deep Learning on Graphs with Graph Convolutional Networks https://towardsdatascience.com/h ...

  5. GCN(Graph Convolutional Network)的简单公式推导

    第一步:从前一个隐藏层到后一个隐藏层,对结点进行特征变换 第二步:对第一步进行具体实现 第三步:对邻接矩阵进行归一化(行之和为1) 邻接矩阵A的归一化,可以通过度矩阵D来实现(即通过D^-1*A来实现 ...

  6. 关于Graph Convolutional Network的初步理解

    为给之后关于图卷积网络的科研做知识积累,这里写一篇关于GCN基本理解的博客.GCN的本质是一个图网络中,特征信息的交互+与传播.这里的图指的不是图片,而是数据结构中的图,图卷积网络的应用非常广泛 ,经 ...

  7. 《T-GCN: A Temporal Graph Convolutional Network for Traffic Prediction》 论文解读

    论文链接:https://arxiv.org/abs/1811.05320 最近发现博客好像会被CSDN和一些奇怪的野鸡网站爬下来?看见有人跟爬虫机器人单方面讨论问题我也蛮无奈的.总之原作者Misso ...

  8. GRAPH CONVOLUTIONAL NETWORK WITH SEQUENTIAL ATTENTION FOR GOAL-ORIENTED DIALOGUE SYSTEMS

    面向领域特定目标的对话系统通常需要建模三种类型的输入,即(i)与领域相关的知识库,(ii)对话的历史(即话语序列)和(iii)需要生成响应的当前话语. 在对这些输入进行建模时,当前最先进的模型(如Me ...

  9. 论文阅读笔记(十)【CVPR2016】:Recurrent Convolutional Network for Video-based Person Re-Identification

    Introduction 该文章首次采用深度学习方法来解决基于视频的行人重识别,创新点:提出了一个新的循环神经网络架构(recurrent DNN architecture),通过使用Siamese网 ...

随机推荐

  1. [dev][nginx] 在阅读nginx代码之前都需要准备什么

    前言 以前,我读过nginx的源码,甚至还改过.但是,现在回想起来几乎回想不起任何东西, 只记得到处都是回调和异步,我的vim+ctags索引起来十分吃力. 几乎没有任何收获,都是因为当时打开代码就看 ...

  2. JVM中对象是否已死

  3. 基于Java+Selenium的WebUI自动化测试框架(十四)-----使用TestNG的Sample

    到目前为止,我们所写的东西,都是集中在如何使用Selenium和Java来定位和读取元素.那么,到底如何具体开展测试,如何实现参数化,如何实现判定呢?下面,我们来看看Java应用程序的测试框架吧. 当 ...

  4. Kotlin扩展深入解析及注意事项和可见性

    可见性[Visibility]: 在Java中的可见性有public.protected.private.default四种,而在Kotlin中也有四种:public.protected.privat ...

  5. 开发指南~小程序代码构成~JSON配置

    2.1 JSON 配置 JSON 是一种数据格式,并不是编程语言,在小程序中,JSON扮演的静态配置的角色. 2.1.1 一个例子 ​先看一个例子,打开开发工具的编辑器,在根目录下可以找到 app.j ...

  6. AngularJs中Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.15/

    我在使用angularjs的时候报出来这个错误: Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.15/ 当时 ...

  7. 32位JVM和64位JVM的最大堆内存分别是多数?32位和64位的JVM,int类型变量的长度是多数?

    理论上说上 32 位的 JVM 堆内存可以到达 2^32,即 4GB,但实际上会比这个小很多.不同操作系统之间不同,如 Windows 系统大约 1.5 GB,Solaris 大约 3GB.64 位 ...

  8. SQL中 count(*)和count(1)的对比,区别

    执行效果: 1.  count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了! 从执行计划来看,count(1)和coun ...

  9. .net框架 - File类与FileInfo类异同

    System.IO命名空间中提供的文件操作类有File和FileInfo,这两个类的功能基本相同,只是File是静态类,其中所有方法都是静态的,可以通过类名直接调用,不需要实例化.而FileInfo是 ...

  10. js数组的操作大全

    用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一下狠心,我学!呵 ...