1.4 图数据深度学习
作为一种重要的数据类型,图数据的分析与学习的需求日益凸显,许多图学习(Graph Learning)的理论均专注于图数据相关的任务学习。谱图理论(Spectral Graph Theory)[2]是将图论与线性代数相结合的理论,基于此理论发展而来的谱聚类相关算法[3],可以用来解决图的分割或者节点的聚类问题。统计关系学习(Statistical Relational Learning)[4]是将关系表示与似然表示相结合的机器学习理论,区别于传统的机器学习算法对数据独立同分布(independent and Identically Distributed,数据对象是同类且独立不相关的)的假设,统计关系学习打破了对数据的上述两种假设,对图数据的学习具有更好的契合度。为了更加贴合实际场景中的异构图数据,异构信息网络(Heterogeneous Information Network)[5]分析被提出,用以挖掘异构图中更加全面的结构信息和丰富的语义信息。由于这些年深度学习在实际应用领域取得的巨大成就,表示学习和端对端学习的概念日益得到重视,为了从复杂的图数据中学习到包含充分信息的向量化表示,出现了大量网络表示学习(Network Embedding)[6]的方法。然而网络表示学习很难提供表示学习加任务学习的端对端系统,基于此,图数据的端对端学习系统仍然是一个重要的研究课题。
由于图数据本身结构的复杂性,直接定义出一套支持可导的计算框架并不直观。与图数据相对应的数据有图像、语音与文本,这些数据是定义在欧式空间中的规则化结构数据,基于这些数据的张量计算体系是比较自然且高效的。图1-11给出了图数据与其他几类常见类型数据的对比。图像数据呈现出规则的2D栅格结构,这种栅格结构与卷积神经网络的作用机制具有良好的对应。文本数据是一种规则的序列数据,这种序列结构与循环神经网络的作用机制相对应。
图1-11 图像和语音文本数据类型
受图信号处理(Graph Signal Processing)[7]中对图信号卷积滤波的定义的启发,近几年发展出了一套基于图卷积操作并不断衍生的神经网络理论。本书将这类方法统称为图神经网络(Graph Neural Network,GNN[8][9][10])。下面我们简述其发展历程。
2005年,Marco Gori等人发表论文[11],首次提出了图神经网络的概念。在此之前,处理图数据的方法是在数据的预处理阶段将图转换为用一组向量表示。这种处理方法最大的问题就是图中的结构信息可能会丢失,并且得到的结果会严重依赖于对图的预处理。GNN的提出,便是为了能够将学习过程直接架构于图数据之上。
随后,其在2009年的两篇论文[12][13]中又进一步阐述了图神经网络,并提出了一种监督学习的方法来训练GNN。但是,早期的这些研究都是以迭代的方式,通过循环神经网络传播邻居信息,直到达到稳定的固定状态来学习节点的表示。这种计算方式消耗非常大,相关研究开始关注如何改进这种方法以减小计算量。
2012年前后,卷积神经网络开始在视觉领域取得令人瞩目的成绩,于是人们开始考虑如何将卷积应用到图神经网络中。2013年Bruna等人首次将卷积引入图神经网络中,在引文[14]中基于频域卷积操作的概念开发了一种图卷积网络模型,首次将可学习的卷积操作用于图数据之上。自此以后,不断有人提出改进、拓展这种基于频域图卷积的神经网络模型。但是基于频域卷积的方法在计算时需要同时处理整个图,并且需要承担矩阵分解时的很高的时间复杂度,这很难使学习系统扩展到大规模图数据的学习任务上去,所以基于空域的图卷积被提出并逐渐流行。
2016年,Kipf等人[15]将频域图卷积的定义进行简化,使得图卷积的操作能够在空域进行,这极大地提升了图卷积模型的计算效率,同时,得益于卷积滤波的高效性,图卷积模型在多项图数据相关的任务上取得了令人瞩目的成绩。
近几年,更多的基于空域图卷积的神经网络模型的变体[16][17][18]被开发出来,我们将这类方法统称为GNN。各种GNN模型的出现,大大加强了学习系统对各类图数据的适应性,这也为各种图数据的任务学习奠定了坚实的基础。
自此,图数据与深度学习有了第一次真正意义上的结合。GNN的出现,实现了图数据的端对端学习方式,为图数据的诸多应用场景下的任务,提供了一个极具竞争力的学习方案。
下面,我们给出图数据相关任务的一种分类。
1.节点层面(Node Level)的任务
节点层面的任务主要包括分类任务和回归任务。这类任务虽然是对节点层面的性质进行预测,但是显然不应该将模型建立在一个个单独的节点上,节点的关系也需要考虑。节点层面的任务有很多,包括学术上使用较多的对论文引用网络中的论文节点进行分类,工业界在线社交网络中用户标签的分类、恶意账户检测等。
2.边层面(Link Level)的任务
边层面的任务主要包括边的分类和预测任务。边的分类是指对边的某种性质进行预测;边预测是指给定的两个节点之间是否会构成边。常见的应用场景比如在社交网络中,将用户作为节点,用户之间的关注关系建模为边,通过边预测实现社交用户的推荐。目前,边层面的任务主要集中在推荐业务中。
3.图层面(Graph Level)的任务
图层面的任务不依赖于某个节点或者某条边的属性,而是从图的整体结构出发,实现分类、表示和生成等任务。目前,图层面的任务主要应用在自然科学研究领域,比如对药物分子的分类、酶的分类等。