从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. linux 利用LDAP身份集中认证

    碰巧所在的公司用到了ldap 集中身份认证,所有打算研究下这套架构,但是看遍了网络上的很多教程,要么不完整,要么就是照着根本弄不出来,十月一研究了三天,结合八方资源终于弄出来了,真是不容易,哎,特此记 ...

  2. python基础之面试常问

    目录 python相对其他语言有什么特点? python内存管理机制,gc机制的了解,gc回收三种算法. lambda函数 高级函数 map.reduce.filter.sorted等. 简述六种基本 ...

  3. 大数据之路week07--day06 (Sqoop 的使用)

    Sqoop的使用一(将数据库中的表数据上传到HDFS) 首先我们先准备数据 1.没有主键的数据(下面介绍有主键和没有主键的使用区别) -- MySQL dump 10.13 Distrib 5.1.7 ...

  4. Machine learning system design---Error analysis

    Error analysis--让我们系统的去判断我们接下来要做什么,而不是随机的,凭直觉地选择一个去做 我们在设计机器学习应用时,刚开始使用简单(简单的features)的算法来很快的完成它,它可能 ...

  5. .net框架 - Enum枚举

    概要 在C#或C++,java等一些计算机编程语言中,枚举类型是一种基本数据类型而不是构造数据类型. 在C语言等计算机编程语言中,它是一种构造数据类型. 它用于声明一组命名的常数,当一个变量有几种可能 ...

  6. Java四种读取和创建XML文档的例子教程

    四种方法解析XML文档:Dom.SAX.JDOM.dom4j          1.了解XML XML,即可扩展标记语言(Extensible Markup Language),标准通用标记语言的子集 ...

  7. Centos7 docker pull速度特别慢

    vim /etc/docker/daemon.json { "registry-mirrors" : ["https://docker.mirrors.ustc.edu. ...

  8. 为什么 MySQL 索引要使用 B+树而不是其它树形结构?比如 B 树?

    一个问题? InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万 为什么是这么多呢? 因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构.数据组织方式说起. ...

  9. java对接微信小程序

    https://www.cnblogs.com/lyn20141231/p/11210372.html https://blog.csdn.net/sinat_29039125/article/det ...

  10. [c++11]右值引用、移动语义和完美转发

    c++中引入了右值引用和移动语义,可以避免无谓的复制,提高程序性能.有点难理解,于是花时间整理一下自己的理解. 左值.右值 C++中所有的值都必然属于左值.右值二者之一.左值是指表达式结束后依然存在的 ...