赞
踩
导读: 本次分享的内容为图深度学习在自然语言处理领域的方法与应用,主要内容和素材都来自于我们Graph4NLP团队的一篇调研文章:Graph Neural Networks for Natural Language Processing:A Survery,以及我们团队所开发的Graph4NLP的python开源库和教程。主要包括以下几大方面内容:
--
我将首先阐述一下为什么需要图结构来处理NLP任务,然后介绍一下传统的图方法在NLP里面的应用,最后引出图神经网络并且简单介绍图深度学习的基础理论。
我们知道图结构数据是由节点和边组成的数据类型,在生活的方方面面都可以看到,尤其在大数据时代,比如互联网、社交网络、金融的交易网。还有可以表示成图结构的蛋白质等化学物质。我们也可以用图结构来表示逻辑关系的程序脚本。从图像领域来看,有表示图像里物体间相互交互关系的图结构。
同样在NLP的领域里,我们也会发现很多很多可以表示为图结构的数据。比如针对一个句子,如果我们想表示这个句子里的句法信息的话,可以建立一个dependency graph或者constituency graph;如果我们想捕捉句子的语义信息的话,可以建立一个AMR graph或者IE graph;如果我们把程序语言也看作一种自然语言的话,我们可以构建出捕捉程序逻辑关系的SQL graph。
传统NLP领域的表征方法一般分为3种:
第一种采用词袋来表征文本,该方法依靠统计每个词在句子或文档里的频率,但是这种方式无法捕捉词语之间顺序或者无法捕捉词语之间的语义信息。
第二种把文本表示成序列,相对于词袋会捕捉更多的序列信息,并且会包含词对之间的前后关系,典型方法有Word2vec和Glove。
第三种把文本表示成图,比较常见的有dependency graph和constituency graph等。当我们把一个文本表示成图后,就不再局限于前后位置的序列关系,我们可以捕捉到任意两个位置之间的关系,除了位置关系、语法关系,我们还可以捕捉语义关系。所以当我们对句子的文本表示越彻底越全面时,对表征学习任务帮助越大。
现在把自然语言表示成图结构已经不是一件新鲜事情,早在深度学习之前就有算法去这么做。例如采用Random Walk算法和Graph Matching算法计算文本之间的相似性。虽然传统方法表征成了图结构,但是对语言的处理具有比较大的局限性。
其一是没有后续特征的提取环节,其二解决的任务比较有限,比如句子生成,词与句子分类,尤其对于预处理模型同时求多个任务时,需要应用图深度学习来解决图特征提取环节。
图神经网络的核心思想是依靠邻居节点的表征向量对目标节点的影响,不断地更新和学习每个节点的隐式表征。不同的图神经网络之间的差异在于所定义的邻居节点对目标节点的影响方式和信息传递的方式不同。图神经网络既可以计算节点的表征向量node embedding,也可以计算整个图的表征向量graph-level embedding。通过图卷积方式计算节点的表征向量的不同,图卷积有四个比较典型的代表:Spectral-based,Spatial-based,Attention-based,Recurrent-based。该四个类型并不相互排斥,一种图卷积方法既可以是Spatial-based也可以是Attention-based。
我们介绍下基本的图卷积操作。
第一个公式为图卷积运算,它的输入为A邻接矩阵和H
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。