论文浅尝 | 图神经网络综述:方法及应用

640?wx_fmt=png

论文链接:https://arxiv.org/pdf/1812.08434.pdf

GNN相关论文列表链接:https://github.com/thunlp/GNNPapers

 

近日,清华刘知远老师组在arXiv上发表了一篇关于图神经网络的综述,本次论文浅尝在分享这篇论文的基础上,对图神经网络的相关方法及应用作一次梳理。

一、前言

图神经网络(GraphNeural Networks, GNNs),主要针对非欧几里得空间结构(图结构)的数据进行处理。具有以下特点:

  • 忽略节点的输入顺序;

  • 在计算过程中,节点的表示受其周围邻居节点的影响,而图本身连接不变;

  • 图结构的表示,使得可以进行基于图的推理。

640?wx_fmt=png

二、图神经网络模型

通常,图神经网络由两个模块组成:传播模块(PropagationModule)和输出模块(Output Module),具体地:

1Propagation Module:图中节点之间传递信息并更新状态;

  • aggregator: 对于一个节点v, 通过聚合其周围节点的信息,学习其潜在表示h_v (state embedding)

640?wx_fmt=png

其中,x_v为节点vfeaturesx_co[v]为其周围边的featuresh_ne[v]表示节点v周围邻居节点的state embeddingx_ne[v]表示周围节点的features

  • updater: 更新节点的stateembedding

640?wx_fmt=png

2Output Module:基于节点和边的向量表示根据不同的任务定义目标函数

640?wx_fmt=png

在监督学习场景中,对于一个特定的节点,其监督信号表示为:t_vlossfunction定义为:

640?wx_fmt=png

常见的图神经网络有:图卷积神经网络(GraphConvolutional Networks, GCNs),门控图神经网络(Gated Graph Neural Networks,GGNNs)以及基于Attention机制的GraphAttention Networks(GAT),下面详细介绍这三种网络:

640?wx_fmt=png

 

1、图卷积神经网络(GCN

1)基于谱方法(Spectral Methods):

相关论文:<ICLR-17> Kipf T N, Welling M.Semi-supervised classification with graph convolutional networks.

640?wx_fmt=png

      通过计算图拉普拉斯算子(Graph Laplacian)的特征分解,在Fourier域定义卷积计算。对于输入信号x和卷积核?_?=????(?):

640?wx_fmt=png

其中,表示图结构的Graph Laplacian矩阵可分解为:

640?wx_fmt=png

      上式的计算将卷积核近似为切比雪夫多项式,并进行化简:

640?wx_fmt=png

640?wx_fmt=png

最终得到GCN网络中的表示:

  • aggregator:

640?wx_fmt=png

  • updater:

640?wx_fmt=png

      但是以上方法有几点不足,卷积核的学习依赖图拉普拉斯矩阵的特征分解,对于图结构有一定的要求,在固定结构上学习的模型,无法迁移到其他结构的模型上。

 

2)基于非谱方法(Non-spectral Methods):

在图上直接定义卷积计算,将不同size的邻居节点考虑在内,同时保持像CNN一样的局部卷积不变性。

  • DCNNs:基于扩散卷积的思想的网络;

  • GraphSAGE:采样固定size的邻居节点,同时通过mean,LSTM, pooling等方式聚合周围节点的信息。

640?wx_fmt=png

2、门控图神经网络(GGNN

相关论文:<ICLR-16> Li Y, Tarlow D, Brockschmidt M,et al. Gated graph sequence neural networks.

  • 提高图结构信息的long-term传播能力

  • 将图中的edge信息考虑在内

   将图矩阵作如下表示,不同类型的边采用不同类型的传播矩阵,同时,用 A^(out)和 A^(in) 分别表示节点的入度信息和出度信息。

640?wx_fmt=png     

计算图传播信息:

1Propagation module

  • initialization step

    640?wx_fmt=png


  • pass information:矩阵A中包含了当前节点与其他节点的交互信息

    640?wx_fmt=png


节点的state embedding h_{v^(t-1)},与其他节点的交互信息a_{v^(t)}通过GRU单元进行融合:

  • update gate

    640?wx_fmt=png


  • reset gate

    640?wx_fmt=png


  • activate

640?wx_fmt=png

640?wx_fmt=png

2Output module

  • node-level

    640?wx_fmt=png


  • graph-level

    640?wx_fmt=png


            其中,i,j表示两个全连接神经网络。

 

3、注意力图神经网络(GAT

相关论文:<ICLR-18> Velickovic, Petar, et al. Graphattention networks.

  • 为节点的不同的邻居节点指定不同权重

  • 节点-邻居节点对的计算可并行化,相比于GCN等网络,速度较快

    640?wx_fmt=png


       节点权重的计算:

640?wx_fmt=png

       节点信息的更新:

640?wx_fmt=png

      由“Attentionis all you need”一文中提出的head attentionGAT网络中也使用了headattention


640?wx_fmt=png

640?wx_fmt=png

 

三、图神经网络应用

640?wx_fmt=png


1Structural Scenarios

主要应用于其数据结构为图结构的场景,如蛋白质分子结构图、KnowledgeGraph等。

KnowledgeGraph中应用GNN为例:

 

相关论文:<IJCAI-17> Hamaguchi T, et al. Knowledgetransfer for out-of-knowledge-base entities: a graph neural network approach.

      论文主要针对KG中的out-of-knowledge-base(OOKB)实体,进行知识库补全等任务。

aOOKB实体定义:

在训练过程中未被训练到的实体,无法得到其embedding表示,从而无法预测其与知识库中其他实体之间的关系。如下图中在测试期间新出现的实体“Blade-Runner”,或者说新出现的三元组“(Blade-Runner,based-on, Do-Androids-Dream-of-Electric-Sheep?)”(图中红线所示部分)。

640?wx_fmt=png

我们的任务则定义为:基于知识库中已存在的三元组(2)和当前新出现的三元组(1),预测当前新实体与知识库中其他实体之间的关系(即三元组3)。

同时,OOKB实体即哪些与知识库中已存在的实体直接相连的实体,基于此,可以通过知识库中现有的实体表示得到OOKB实体表示。

 

b、这篇文章利用GNN中节点表示的方式,对OOKB实体进行表示:

640?wx_fmt=png

其中,T_head表示以OOKB实体为尾实体的三元组集合,T_tail表示以OOKB实体为头实体的三元组集合,通过其周围邻居的头尾实体对当前实体进行表示。

            T_head, T_tail分别表示聚合三元组信息的函数,论文中为batchnormalization function

            GNN传播的节点状态表示为:

640?wx_fmt=png

c、模型的输出模块利用TransE等经典模型,进行知识库补全任务。

640?wx_fmt=png

2Non-structural Scenarios

主要应用于其数据结构为非图结构的场景,如图片、文本等。在此类场景中,应用GNN通常有两种方式:

  • 利用具有图结构信息的外部资源,如KnowledgeGraph等;

  • 探索此类数据中隐含的图结构,如文本的句法数结构。

 

1)图片相关任务:

  • Image Classification, i.e., zero-shot, few-shot

  • Visual Reasoning, i.e., VQA

  • Semantic Segmentation

其中,图片分类任务零样本学习和少样本学习的相关论文有:

  • Zero-shot recognition via semantic embeddings and knowledge graphs

  • Rethinking knowledge graph propagation for zero-shot learning

  • Multi-label zero-shot learning with structured knowledge graphs

  • The more you know: Using knowledge graphs forimage classification

  • Few-shot learning with graph neural networks

2NLP相关任务:

  • Text Classification

  • Sequence Labeling

  • Neural machine translation

  • Relation Extraction

  • Event Extraction

 

以机器翻译的一篇论文为例,通过将sourcelanguage的句法结构图输 GNN 进行 encode,继而附加 Attention layerdecoder 层,输出 target language 序列。

 

相关论文:<ACL-18> Beck D, Haffari G, Cohn T.Graph-to-sequence learning using gated graph neural networks.

           

    这篇文章以“Graph tosequence”为要点,实验部分包括两个任务,其中一个是AMR图输出序列,另一个做syntax-aware的机器翻译任务。

     其中,AMR Graph为从句子的句法表示中抽象出来的语义表示语言,具体相似语义的句子有相同的AMR Graph。如下图左所示。

640?wx_fmt=png

      模型在Seq2seq模型的基础上,以AMR graph为输入,通过GGNN网络进行encode,经过Attention层和RNNdecoder输出序列。GGNN encoder部分表示为:

640?wx_fmt=png

其中,640?wx_fmt=png 表示当前节点与周围节点相连边的参数,l_e 表示不同边的类型。

     但随着Graph中边类型的增多,很容易引起参数爆炸的问题,因此,本文提出了一种融合Graphedge信息的方式,即将edge转化为附加的节点(no labelled edges)。具体地,通过将Graph转化为对应的二分图。上图中的句法结构图对应的二分图如下所示:

640?wx_fmt=png

由此,graph中的边的类型只有一种。

 

四、Open problems

         图神经网络目前虽被广泛利用,但存在不少问题亟待解决:

1Shallowstructure:多层的图神经网络,可能会导致over-smoothing的问题,如GCN等网络,一些论文中也尝试用Skip connection的方式加以解决;

2DynamicgraphsGNN目前仅能处理一些静态图,对于实时增加/减少的节点和边则无法很好地处理;

3Non-structuralscenarios:在处理非图结构的数据时,希望利用其中内在的结构,而目前从raw data中生成graph的方法仍需改善;

4Scalability

 

五、总结

本文中总结了近年来常用的几种图神经网络模型,并就其应用场景进行了进一步的探讨。总的来说,图神经网络强大的计算能力,对图结构数据的友好处理,深受研究者们的喜爱,但其仍存在很多需要解决的问题,也是我们可以进一步研究的方向。

 


笔记整理:耿玉霞,浙江大学直博生。研究方向:知识图谱,零样本学习,自然语言处理等。

 



OpenKG.CN


中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

640?wx_fmt=jpeg

点击阅读原文,进入 OpenKG 博客。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480112.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文笔记(Social Attentional Memory Network:Modeling Aspect- and Friend-level Differences in Recom-)

社交注意记忆网络&#xff1a;模拟面级别和朋友级别的区别 原文链接&#xff1a;Social Attentional Memory Network: Modeling Aspect- and Friend-Level Differences in Recommendation, WSDM’19 1. 摘要 社会中的连接有助于提升推荐系统的性能&#xff0c;但是&#xff…

玩转算法之面试-第六章(栈和队列)

leetcode 20 此时栈顶的左括号和当前遍历的右括号匹配&#xff0c;故将左括号从栈顶pop出。 leetcode 150&#xff1a; leetcode 71 栈和递归的关系 递归算法&#xff1a;二叉树中的算法 、二叉树的前序遍历&#xff0c;中序遍历&#xff0c;后序遍历 前序遍历代码&am…

POJ 1321 棋盘问题(回溯)

文章目录1. 题目1.1 题目链接1.2 题目大意1.3 解题思路2. 代码2.1 Accepted 代码1. 题目 1.1 题目链接 http://poj.org/problem?id1321 1.2 题目大意 在一个给定形状的棋盘&#xff08;只能在#号的位置摆放&#xff09;上面摆放棋子&#xff0c;棋子没有区别。要求摆放时任…

Java多线程系列(二):线程的五大状态,以及线程之间的通信与协作

在Java面试的时候&#xff0c;经常会问到Java并发编程相关的多线程、线程池、线程锁、线程通信等面试必考点&#xff0c;比如&#xff1a; Java并发编程系列&#xff1a;Java线程池的使用方式&#xff0c;核心运行原理、以及注意事项 Java并发编程系列&#xff1a;4种常用Jav…

负样本为王:评Facebook的向量召回算法

星标/置顶小屋&#xff0c;带你解锁最萌最前沿的NLP、搜索与推荐技术有人的地方就会有江湖&#xff0c;就会有鄙视链存在&#xff0c;推荐系统中也不例外。排序、召回&#xff0c;尽管只是革命分工不同&#xff0c;但是我感觉待遇还是相差蛮大的排序排序&#xff0c;特别是精排…

论文浅尝 | TEQUILA: 一种面向时间信息的知识问答方法

来源&#xff1a;CIKM’18链接&#xff1a;http://delivery.acm.org/10.1145/3270000/3269247/p1807-jia.pdf?ip223.3.116.39&id3269247&accACTIVE%20SERVICE&keyBF85BBA5741FDC6E%2EEEBE655830483280%2E4D4702B0C3E38B35%2E4D4702B0C3E38B35&__acm__15478819…

京东2020算法工程师0824笔试题整理

代码题&#xff1a; 1&#xff1a;开心消消乐&#xff1a; #include #include #include #include #include #include #include #define ll long long #define inf 0x3f3f3f3f #define Max 1001 using namespace std; int dir[4][2]{{-1,0},{1,0},{0,-1},{0,1}}; string …

论文笔记(eTrust: Understanding Trust Evolution in an Online World)

eTrust&#xff1a;理解线上信任进化 原文链接&#xff1a;eTrust: Understanding Trust Evolution in an Online World, KDD’12 原理&#xff1a;用户偏好与项的向量内积 用户与朋友相似度权重*朋友对项的时间衰减评分用户对项的评分 摘要 大部分关于线上信任的研究都假设…

技术动态 | 67 亿美金搞个图,创建知识图谱的成本有多高你知道吗?

OpenKG 祝各位读者元宵节快乐&#xff01;本文转载自公众号&#xff1a;机器之心。选自ISWC作者&#xff1a;Baptiste Rocca参与&#xff1a;思源、李亚洲我们知道强大的深度模型需要很多计算力&#xff0c;那你知道创建一个知识图谱的成本到底是多少吗&#xff1f;德国 Mannhe…

Attention模型:我的注意力跟你们人类不一样

星标/置顶小屋&#xff0c;带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 小轶背景截至今日&#xff0c;Badanau Attention的原文citation已达1.34w之多。2020年几乎所有主流NLP任务都需要借助attetion来实现。在深度学习全民炼丹的时代&#xff0c;attention是为数不多具有较强…

动态规划算法(Dynamic Programming)之0-1背包问题

文章目录1. 问题引入2. 动态规划求解0-1背包3. 复杂度4. 0-1背包升级版&#xff08;带价值&#xff09;5. 0-1背包升级版&#xff08;带价值&#xff09;DP解法1. 问题引入 前面讲了0-1背包的回溯解决方法&#xff0c;它是穷举所有可能&#xff0c;复杂度是指数级别的&#xf…

Java多线程系列(一):最全面的Java多线程学习概述

Java并发编程的技能基本涵括以下5方面&#xff1a; 多线程 线程池 线程锁 并发工具类 并发容器 多线程的4种创建方式 继承Thread 实现Runnable接口 实现Callable接口 以及线程池来创建线程 Java线程的生命周期 线程的创建 线程的就绪 线程的运行 线程的阻塞 线程的死…

论文浅尝 | 基于知识库的自然语言理解 01#

本文转载自公众号&#xff1a;知识工场。罗康琦&#xff0c;上海交通大学计算机系2019届博士&#xff0c;研究方向为自然语义理解和知识图谱。2012年获得华中科技大学软件工程学士学位&#xff0c;现就职于京东数据科学实验室&#xff08;Data Science Lab&#xff09;。他曾在…

推荐系统图算法实用干货汇总(含论文、代码、样例教程)

Hello,今天为朋友们推荐一个值得学习的公众号「浅梦的学习笔记」&#xff0c;小编目前在电商公司从事推荐系统相关的工作。主要分享关于「推荐系统&#xff0c;图算法&#xff0c;NLP&CV以及求职面试」等内容&#xff0c;欢迎关注一起学习和交流&#xff5e;文末可打包下载…

动态规划应用--双11购物凑单

文章目录1. 问题描述2. 代码实现1. 问题描述 双11购物节的时候&#xff0c;某宝给你很多张满300减50的优惠券&#xff0c;你想组合各种商品的价格总和>300&#xff0c;且金额总和越接近300越好&#xff0c;这样可以多薅点羊毛。 回溯算法效率太低&#xff0c;时间复杂度指…

商汤科技2020数据分析师0820笔试题目整理

2019年8月19日 问答题1&#xff1a;缺失值数据预处理有哪些方法&#xff1f;https://juejin.im/post/5b5c4e6c6fb9a04f90791e0c 处理缺失值的方法如下&#xff1a;删除记录&#xff0c;数据填补和不处理。主要以数据填补为主。 1 删除记录&#xff1a;该种方法在样本数据量十分…

Java多线程系列(八):ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)

HashMap、CurrentHashMap 的实现原理基本都是BAT面试必考内容&#xff0c;阿里P8架构师谈&#xff1a;深入探讨HashMap的底层结构、原理、扩容机制深入谈过hashmap的实现原理以及在JDK 1.8的实现区别&#xff0c;今天主要谈CurrentHashMap的实现原理&#xff0c;以及在JDK1.7和…

论文笔记(Neural Graph Collaborative Filtering)

神经图协同过滤 论文链接&#xff1a;Neural Graph Collaborative Filtering, SIGIR’19 原理&#xff1a;在 user-item interaction graph 上使用 GNN 来学习 user 向量和item 向量&#xff0c;用户向量和项向量的内积来预测评分。 区别&#xff1a; 大部分论文使用 GNN 只是…

论文浅尝 | 基于知识库的自然语言理解 02#

本文转载自公众号&#xff1a;知识工场。罗康琦&#xff0c;上海交通大学计算机系2019届博士&#xff0c;研究方向为自然语义理解和知识图谱。2012年获得华中科技大学软件工程学士学位&#xff0c;现就职于京东数据科学实验室&#xff08;Data Science Lab&#xff09;。他曾在…

工业解密:百度地图背后的路线时长预估模型!

星标/置顶小屋&#xff0c;带你解锁最萌最前沿的NLP、搜索与推荐技术编 | YY无论你是苦逼学生&#xff08;公交地铁狗&#xff09;、职场萌新&#xff08;打车狗&#xff09;还是有钱大佬&#xff08;有车一族&#xff09;&#xff0c;只要站在了北上广深的土地上&#xff0c;就…