人工智能

基于属性补全的异质图神经网络

2021-10-05  本文已影响0人  酷酷的群

论文标题:Heterogeneous Graph Neural Network via Attribute Completion
论文链接:https://dl.acm.org/doi/abs/10.1145/3442381.3449914
论文来源:WWW 2021

一、概述

异质图对比同质图能够包含更加全面的信息,能够更加有效地描述现实系统。最近的一些研究已经使用GNN来处理异质图,比如HAN、MAGNN等方法。这些模型可以被解释为由图结构指导来平滑化邻域节点属性。为了学习节点表示,需要有所有节点的属性。然而,这并不总是能够满足。
有些节点没有属性,因为成本太高,甚至不可能获得(比如敏感的个人信息)。特别是在异构图中,我们通常不能得到所有类型节点的属性,这将影响GNN-based模型的性能。我们将异质图中的属性缺失分为两类:
①需要被分析的节点属性缺失,比如下图中DBLP数据集的author类型节点;
②不需要被分析的节点属性缺失,比如下图中IMDB数据集的actor类型节点。

schema

上图中只有DBLP的paper类型节点以及IMDB数据集的movie类型节点有属性,其余节点属性缺失,我们需要这些节点的属性来对所分析的节点做预测。虽然有些类型的节点没有属性,但在大多数情况下,这些没有属性的节点会直接连接到有属性的节点,所以以往的研究都采用了一些手工的方法来处理异构图中属性缺失的问题。以MAGNN和HAN为例,对于DBLP数据集而言,paper节点采用文章keyword的bag-of-words表示,而补全author节点属性的方式是采用author发表论文的keyword的bag-of-words表示,具体操作是平均与author节点相连接的paper的属性,另外他们没有使用计算机科学专门预训练过的词向量而是一个one-hot表示作为term和venue节点的属性,这可能提供无效的信息。

本文提出Heterogeneous Graph Neural Network via Attribute Completion (HGNN-AC)来应对异质图属性缺失的问题。我们以节点间的拓扑关系为指导,通过对有属性节点的属性进行加权聚合来补全无属性节点的属性。HGNN-AC首先使用HIN-Embedding方法来获取节点embedding,然后在进行加权聚合时通过计算节点embedding的attention权重来区分不同节点的不同贡献。这种补全机制可以轻松地与任意HIN模型组合,使整个系统端到端。补全机制的监督损失与模型的预测损失相结合来优化整个学习过程。

二、概念

  1. 定义1:异质图

一个异质图表示为G(V, E,F,R,\varphi ,\phi ),其中VE分别代表节点和边的集合,FR分别代表节点和边的类型集合,满足|F|+|R|> 2,每个节点i\in V关联一个节点类型映射函数\varphi :V\rightarrow F,每条边e\in E关联一个边类型映射函数\phi :E\rightarrow R

  1. 定义2:异构图中的不完全属性

给定一个异质图GX代表节点属性。节点属性不完全意味着\exists F^{'}\subset FF^{'}\neq \phiV中关联节点类型映射函数\varphi :V\rightarrow F^{'}的节点没有属性。也就是说,本文讨论的范围是G要么某种类型的所有节点全都有属性,要么某种类型的所有节点全部属性缺失,不存在某种类型既包含有属性节点也包含无属性节点。

  1. 定义3:异质图embedding

给定一个异质图G,任务是学习一个d维节点表示h_{v}\in \mathbb{R}^{d}v\in V,来捕获G丰富的结构和语义信息,且满足d\ll |V|

下表总结了本文使用的符号表示:

符号表示

三、方法

HGNN-AC框架遵循的原则是一个无属性节点v\in V^{-}的生成属性应该来自有属性节点v\in V^{+}。主要思想是利用拓扑信息作为指导,计算节点v\in V^{-}的直接相邻邻域节点v^{'}\in N_{v}^{+}的贡献度,这可以作为执行属性补全的参考。

  1. 概述

给定一个异质图G,首先通过网络的拓扑结构A来计算节点的embeddingH,然后使用H评估节点拓扑关系,利用注意机制学习一个得分,以确定哪些直接连接的属性节点最适合向无属性节点贡献属性。接着根据这个得分来加权聚合V^{+}中节点的属性以补全V^{-}中节点的属性。为了避免过拟合以及确保补全过程能够被指导,HGNN-AC首先随机丢弃一些V^{+}中节点的属性,然后按照同样的补全过程来重建这些被丢弃的属性,这样就会有一个丢弃属性和重建属性的loss,使得补全过程是被指导的。最后,将属性完备的节点以及网络拓扑结构A作为一个新的图提供给HINs模型。整个过程是端到端的,模型的loss就是预测loss和补全loss的组合loss。下图展示了补全的过程:

补全过程
  1. 拓扑embedding的预学习

在异质图中,每个节点都有拓扑信息,但不一定有属性信息。同质性是指相似实体之间的联系比不同实体之间的要强。由于网络同质性的存在,拓扑和属性信息总是表达相似或相同的语义。考虑到这一点,我们假设节点的拓扑信息之间的关系能够很好地反映节点的属性信息之间的关系。在本文中,HGNN-AC采用现有的异构图embedding方法,如metapath2vec或HHNE,得到基于网络拓扑的节点embedding。然而这些基于skip-gram的方法总是使用单个meta-path,可能会忽略一些有用的信息。为了得到更好的embedding,HGNN-AC首先根据常用的多个meta-path通过随机游走获得更全面的节点序列,然后将这些序列输入到skip-gram模型中学习节点嵌入H

  1. 使用attention机制进行属性补全

之前的一些方法补全缺失属性的方法是平均聚合直接相邻邻居节点的属性,但我们注意到每个节点的直连邻居节点在属性聚合中扮演着不同的角色,具有不同的重要性,这可能是因为:
①这些节点的类型不同;
②它们的局部拓扑结构不同,也就是说,一个节点的邻居越多,它对每个邻居的重要性就越低。

本文采用的方法是得到节点embedding(节点embedding是根据图的拓扑结构得到的)后,HGNN-AC采用注意力机制自动学习不同直接邻居的重要性,然后从集合V^{+}中的一阶邻居聚合属性信息来补全V^{-}中的属性信息。

给定节点对(u,v),attention层会学习重要性e_{uv},这意味着uv的重要性:

e_{uv}=att(h_{v},h_{u})

h_{v},h_{u}是节点的拓扑embedding,u\in V^{+}att(\cdot )是执行注意力机制的函数,是对所有节点对共享的。

HGNN-AC采用masked attention机制,意味着我们只计算u\in N_{v}^{+}e_{uv}N_{v}^{+}V^{+}中节点v的一阶邻域。具体的:

e_{uv}=\sigma (h_{v}^{T}Wh_{u})

W是参数矩阵,\sigma是激活函数。获得所有邻居的得分后,使用softmax函数进行标准化:

a_{uv}=softmax(e_{uv})=\frac{exp(e_{uv})}{\sum _{s\in N_{v}^{+}}exp(e_{us})}

然后执行加权聚合:

x_{v}^{C}=\sum _{u\in N_{v}^{+}}a_{uv}x_{u}

如果v没有有属性邻居节点,也就是N_{v}^{+}=\phi,那么我们将v的属性向量设置成零向量。但是事实上这种情况很少发生,所以对模型性能影响很小。

更进一步,为了稳定学习过程已经减少高方差(异质图网络具有很高的方差),我们采用multi-head attention,然后聚合的过程就变成了:

x_{v}^{C}=mean(\sum_{k}^{K}\; \sum _{u\in N_{v}^{+}}a_{uv}x_{u})

这意味着把K个head的结果平均起来。

  1. 属性的drop

有一个问题是,我们如何评估由上述框架生成的这些新属性?换句话说,我们如何确保属性补全过程是可学习的,以及生成的属性是正确的?为了解决这个问题,我们随机丢掉V^{+}中的一些属性,然后按照补全过程重构这些属性,这样丢弃属性和补全属性之间就有一个监督的补全loss,使得补全过程是被指导和可学习的。

具体的,将V^{+}分成V_{drop}^{+}V_{keep}^{+}两部分,由一个超参数\alpha控制划分比例,也就是|V_{drop}^{+}|=\alpha |V^{+}|。HGNN-AC首先丢弃V_{drop}^{+}中的属性,然后根据V_{keep}^{+}中的节点属性重建丢弃的属性。按照前面框架的描述,在这里v来自V_{drop}^{+}u来自V_{keep}^{+},同样的multi-head attention也应用在这里。

我们的目标是让重构的属性与原来丢弃的属性尽可能接近,使用欧几里德距离作为度量,于是便有一个监督loss:

L_{completion}=\frac{1}{|V_{drop}^{+}|}\sum _{i\in V_{drop}^{+}}\sqrt{(X_{i}^{C}-X_{i})^{2}}

  1. 与HIN模型相结合

经过上述过程我们有了V^{-}中的补全属性节点以及V^{+}中的有属性节点,于是所有节点属性定义如下:

X^{new}=\left \{X_{i}^{C},X_{j}|\forall i\in V^{-},\forall j\in V^{+}\right \}

节点属性X^{new}和拓扑结构A,作为一个新图,输入给HIN模型中:

\tilde{Y}=\Phi (A,X^{new})\\ L_{prediction}=f(\tilde{Y},Y)

\Phi代表HIN模型,L_{ prediction}代表预测loss。最后,两个loss相结合,整个模型是端到端的:

L=\lambda L_{completion}+L_{prediction}

\lambda是一个权衡因子。

四、实验

  1. 数据集

采用三个数据集DBLP,ACM和IMDB。数据集统计信息如下:

数据集统计信息
  1. 实验

实验分为两组:
①要分类的节点属性缺失,采用DBLP数据集;
②要分类的节点有属性,其余类型节点属性缺失,采用ACM和IMDB数据集。

实验结果如下:

DBLP ACM,IMDB

另外在GTN上对比了使用属性补全与不使用的效果:

对比
  1. 结果可视化

使用t-SNE对学习到的节点embedding做了可视化:

t-SNE
  1. 个案研究

为了证明补全机制的有效性,采用下列五种配置进行实验对比:

配置

实验结果如下:

结果
  1. 超参数影响

对比不同超参数的影响:

超参数
上一篇下一篇

猜你喜欢

热点阅读