论文笔记 | 基础知识类论文(多任务学习、图卷积等)

Representation Learning Using Multi-Task Deep Neural Networks for Semantic Classification and Information Retrieval

会议:NAACL 2015
作者:Xiaodong Liu, Jianfeng Gao, Xiaodong He, Li Deng, Kevin Duh, Ye-yi Wang
机构:Nara Institute of Science and Technology, Microsoft Research

研究动机

之前的模型:要不是有一个无监督的目标(不能直接优化任务),要不是有一个单一任务的有监督目标(训练数据不足)。

本文:multi-task DNN,不仅利用大量的cross-task数据,还受益于正则化效应(减少特定任务上的过拟合),从而产生更通用的表示,以辅助新领域的任务。本文的两个任务是query classification 和 ranking for web search。实际上是基于多任务学习目标,学到一个更robust的representatin。

Multi-task learning在1997年就已经由Caruana提出。

两个任务

  • Query Classification:将一个query分到四个领域中,包括:Restaurant、Hotel、Flight、Nightlife。本文将该问题建模成4个二分类任务,每个领域训练一个二分类器,判断该query是否属于该领域。每个query可以属于多个领域。这是一个有监督的任务。

  • Web Search: 给定一个query Q和一个文档列表L,模型希望根据该query和文档的相关性 P ( D 1 ∣ Q ) P(D_1|Q) P(D1Q),对文档进行排序。这也是一个有监督的任务,也就是说对于每一个query,至少对应一个与之相关的文档。

  • 对于这两个任务,都是学习一个表示。也就是给定任务的query或文档,使用DNN生成一个低维向量表示。

模型框架

在这里插入图片描述

灰色的三层是两个任务共享的,上层是任务相关的。左边是query classification任务,右边是web search任务。

模型训练
  • query classification任务定义交叉熵作为损失函数
  • web search任务将负对数似然作为损失函数

Multi-Task架构的另一种方式:
在这里插入图片描述

实验评估

分别评估了该模型在query classification和web search数据集上的表现,实验表明该模型在两个任务上都比baseline要好。

总结

文中的两个任务是相关的,在multi-task的框架下,做到了相互促进。


An Overview of Multi-Task Learning in Deep Neural Networks

什么是Multi-task Learning?

广义上讲,只要有多个loss就算是多任务学习。它还有一些别名(joint learning, learning to learn, learning with auxiliary task)

Multi-task learning 适用场景

  • 单个模型训练过拟合(每个任务都有样本噪声,不同的任务可能噪声不同,最终多个任务学习会抵消一部分噪声)
  • 一些任务的训练样本少,模型无法有效学习
  • 多个任务之间存在关联性
  • 某些特征可能在主任务上不好学习(比如只存在高阶的相关性,或被其他因素抑制),但在辅助任务上好学习,这时可以通过辅助任务来学习这些特征,方法如:hints(预测重要特征)。

两种常见的参数共享方式

  • hard parameter sharing
    即所有任务中共享一些参数,顶层是任务特定层,各个任务有自己的参数。
    在这里插入图片描述

  • soft parameter sharing
    每个任务都有自己的参数,然后将模型参数之间的距离进行正则化,以便使参数相似。
    在这里插入图片描述

辅助任务

关注主任务目标,但是希望从其他有效的辅助任务中获利!
目前选择辅助任务的方法:

  • Related work(比如query classification + web search)
  • Adversarial (可以使用对抗任务作为negative rask,最大化training error)
  • Hints (某些特征在某些任务不好学)
  • Representation learning (辅助任务大多是潜在学习一些特征表示,且一定程度上都利于主任务)

数据增强+半监督学习总结

知乎链接

数据增强是针对现有数据进行一些调整等的,得到更多的数据。多任务学习是可以利用其它相关任务的数据来辅助小样本任务。


AM-GCN: Adaptive Multi-channel Graph Convolutional Networks

会议:KDD 2020
作者:Xiao Wang, Meiqi Zhu, Deyu Bo, Peng Cui, Chuan Shi, Jian Pei
机构:Beijing Univerisity of Posts and Telecommunications, Simon Fraser University
关键词:GCN’s adaptability, topology features, node features

研究动机

在利用GCN对图进行表征时,会考虑两种信息,一种是拓扑结构,一种是节点特征。但作者认为,现有的GCN方法还无法自适应地学习图中节点特征和拓扑结构,并充分融合它们以应对不同场景的分类问题。

为了证实这个观点,作者做了两个模拟实验(节点分类),也就是设计了两种图,一个是节点的label和节点特征高度相关,而与拓扑结构无关,另一个是节点的label与其拓扑结构高度相关。利用GCN在这两种场景下训练,然后预测节点的label。

Case 1: Random Topology and Correlated Node Features
随机生成包含900个节点的图,随机给节点分配3种label中的一种。然后对于属于同一种label的节点,使用高斯分布去生成节点的特征。也就是节点label与节点特征高度相关,并未考虑拓扑结构。

利用GCN去训练这个网络,对于每一类,随机选择20个节点进行训练,剩下的200个节点用作测试(训练数据 < 测试数据?每一类有300个节点,剩余的呢??)。

比较GCN和MLP对于预测节点label的准确率,MLP是100%,GCN是75.2%。

Case 2: Correlated Topology and Random Node Features
随机生成包含包含900个节点的图,使用Stochastic Blockmodel (SBM) 将节点划分为3个社区(利用拓扑结构划分)。

比较GCN和DeepWalk对节点label的预测准确率,GCN为87%,DeepWalk为100%

综合以上两种情况,作者认为GCN并没有自适应的融合节点特征和拓扑结构,所以作者提出AM-GCN,以克服以上缺陷。

具体方法

给定一个图,将其拓扑结构和节点特征分别提取出来,并考虑两者的交互部分,对于这三个部分分别使用GCN来学习,最终融合在一起。
在这里插入图片描述

从原始图(包括邻接矩阵A,节点特征X)中提取节点特征的方法是:

直接提取节点特征X,然后计算任意两个节点之间的相似度,对于每一个节点,取与其最相似的k个节点作为其邻居,也就是连边。最终组成一个新的图,称为Feature Graph。

从原始图中提取拓扑结构的方法是:

文中给出的是直接取原图(不太理解,因为这样的话,就相当于在原本GCN的基础上,又加强了节点特征的部分,并不能做到作者说的自适应)。

节点特征和拓扑结构的相互信息的获取是通过设计一个common-GCN,共享两个部分的参数得到的。

最终,这几个部分的特征线性融合在一起,再利用attention机制,得到最终的节点表示,用于预测label。

文章分析

优点
  • 分别考虑节点特征和拓扑结构,对传统GCN的不足进行了探究。
待改进
  • 从原图中提取拓扑结构构成的Topology Graph的方式不合理,也没有解释。
  • 实验设计不合理,在揭示现有GCN存在的不能自适应的问题时,使用了两种随机生成的图,证实GCN表现不好。那么,再做了以上改变,得到AM-GCN时,没有在这两个随机图上验证,而是直接在现有的常用图数据集上验证预测label的性能。

Inductive Representation Learning on Large Graphs

会议:NIPS 2018
作者:William L. Hamilton, Rex Ying, Jure Leskovec
机构:Stanford University
关键词:graph representation, node classification, inductive and transductive representation

研究动机

现有对于图数据进行表示的方法,目标都是学习图中节点的表示,然后用于下游任务(节点分类等),这类方法叫做transductive methods,也即直推式方法,代表算法有DeepWalk,LINE,GCN等。这类方法根据节点的拓扑结构或者节点特征学习节点的表示,但不适用于两种情况:

  • 网络结构动态变化,即网络中的节点连接会发生改变
  • 网络中新增节点无法表示

这两种情况下,要学习图中节点的表示,就需要对网络进行重新训练。对于大规模网络来说,代价巨大。

针对这两种情况,作者提出GraphSAGE(sample and aggregate),目的不再是学习节点的表示,而是学习节点聚合函数,这样就能够在给定图网络和聚合函数的情况下,更容易的计算出各个节点的表示。

具体方法

算法的伪代码如下:

在这里插入图片描述

其中,K是指聚合的次数(相当于阶数,如K=2表示对于一个节点的表示考虑了其二阶邻居节点的信息)。

伪代码的解释:

  • 首先,初始化每个节点的表示
  • k=1时,对于每个节点,采样其一阶邻居节点,并聚合采样到的邻居节点的表示,得到1阶的邻居节点表示。
  • 将邻居节点和当前节点的上一层表示连接起来,再经过一个全连接层,得到该节点本层的表示
  • 循环执行结束,将第K层的表示作为最终节点的表示。

下图为对红色中心节点采样其一阶和二阶邻居节点,并聚合邻居节点,得到红色节点的表示,再预测节点label:
在这里插入图片描述

在训练模型时,可以将其视为无监督学习,也就是在设计损失函数时,认为相邻节点的embedding相近,而无相连的节点embedding相似度较低。也可以将其视为监督学习,根据具体任务设计损失函数,如:交叉熵函数。

以下是无监督学习的损失函数:
在这里插入图片描述

聚合函数主要包括:mean aggregator,LSTM aggregator, pooling aggregator。

根据损失函数,学到聚合函数中的参数。在给定一个图网络时,即可根据以上算法计算出每个节点的表示,在节点结构发生变化后,也无需重新训练网络,只需要根据聚合函数重新计算节点表示即可。

论文分析

优点
  • 思路上的转变,从学习节点embedding,从学习聚合函数的参数
  • 适合动态图节点的表示,适合新增节点的表示
待改进
  • 邻居节点采样个数固定,邻居节点少于采样个数时,使用有放回抽样,否则无放回。这样对于节点的表示不够准确。
  • 随着阶数的增多,每一层采样的节点个数呈指数增加,训练时间会比较长。

Graph Attention Networks

会议:ICLR 2018
作者:Petar Velickovic, Guillem Cucurull, Arantxa Casanova, Yoshua Bengio
机构:University of Cambridge, Montreal Institute for Learning Algorithms
关键词:graph representation,graph attention
论文链接:论文pdf
源码连接:kears版本 pytorch版本

研究动机

卷积操作引入图领域后,产生了大量图表示学习的方法,这些方法基本可以分为两大类,即谱方法(spectral approaches)与非谱方法(non-spectral approaches)。

谱方法主要利用图傅里叶变换(Graph Fourier Transform)实现卷积。主要是利用图的拉普拉斯矩阵(Laplacian matrix)导出其频域上的拉普拉斯算子,再类比频域上的欧式空间中的卷积,导出图卷积的公式。其中的卷积操作与图拉普拉斯矩阵的特征值分解有关,因此,往往需要进行密集的矩阵操作,且整个计算并不是局部的。为了解决这一问题,[1]提出了GCN网络,该网络可以有效地对节点的一阶邻居进行处理,而且可以避免复杂的矩阵操作。然而,这些模型都依赖于图的结构。因此,在特定图结构上训练得到的模型往往不能直接使用到其他图结构上。

非谱方法是直接在图上定义卷积,其核心在于聚合邻居节点的信息。这类方法的一个挑战在于如何处理变长大小的邻居节点的问题。[2]提出了GraphSAGE,对于每一个节点,首先从它的邻居节点中采样出固定数量的节点,然后聚合这些邻居节点的信息,以表示当前节点。

Attention机制的优势在于可以处理变长的输入。所以本文提出一种基于attention的架构GAT,主要思想是根据attention值聚合一个节点的所有邻居节点的表示,以更新当前节点的表示。

具体方法

本文利用的是multi-head self-attention,主要包含两步,计算邻居节点和中心节点的attention权重,根据权重聚合邻居节点表示,以此更新中心节点的表示。

  • 图中的每个节点都有一个向量表示,对该表示进行一定的变换后,得到每个节点新的特征向量。
  • 对于一个节点,计算其他节点与其的attention权重
  • 根据权重聚合这些节点的表示,更新当前中心节点的表示

GAT的网络结构中包含多个graph attention layer,一个graph attention layer的结构如下图:
在这里插入图片描述

分析

优点
  • 可以处理邻居节点个数不同的情况,为每个邻居节点赋予不同的权重。而不是像GCN中只有节点的连接关系。
  • 计算效率高,与拉普拉斯矩阵计算相比,self-attention的计算可以并行,每个节点的表示都可以独立计算得到。
  • 不依赖于整体图结构,而仅依赖于节点的局部邻居。学到的网络参数可以直接应用于未见过的图中。
待改进
  • 仅包含一阶邻居,没有高阶信息
  • 未考虑节点自身特征,仅通过其邻居节点的特征聚合来更新中心节点

参考文献

[1] Thomas N Kipf and Max Welling. Semi-supervised classification with graph convolutional networks. International Conference on Learning Representations (ICLR), 2017.
[2] William L Hamilton, Rex Ying, and Jure Leskovec. Inductive representation learning on large graphs. Neural Information Processing Systems (NIPS), 2017.

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值