本文介绍的是 ICLR 2020 论文《Measuring and Improving the Use of GraphInformation in Graph Neural Networks》,作者为香港中文大学计算机系的硕士二年级研究生侯逸帆。
文 | 侯逸帆
编 | 丛 末
论文地址:https://openreview.net/pdf?id=rkeIIkHKvS
近年来,图神经网络(GNN)在社交网络、知识图谱、推荐系统甚至生命科学等领域得到了越来越广泛的应用。但在复杂的图数据中,我们很难高效利用实体之间的相互依赖关系。在由清华计算机系主办的 AI Time PhD直播间,香港中文大学计算机系的硕士二年级研究生侯逸帆,分享了自己的团队在被誉为“深度学习中的顶会”——ICLR (2020)中发表的研究成果。让我们看看这位学霸是如何巧妙利用节点的“邻里关系”,来选择图数据和改进图神经网络吧!
1
背景知识
a)图数据与数据分类
图是一种强大的数据结构,能够轻松地表示实体(即节点)之间的各种关系(即边)。
实体可以是社交网络中的用户个体,或者分子结构图中的原子。
关系可以是社交网络中用户之间的朋友关系、相似性关系等,或者分子结构图中原子之间的相互关系。
一般在图数据中,节点(实体)的选择是固定的,但是边的构建方法却多种多样。例如社交网络中,既可以依据用户的相似性,也可以将其交互行为、好友关系构建成边,从而组成网络。
因此,当分布相对均匀的原始数据分类较为困难时,如果能根据一些额外的关系信息、把同类点之间的距离“拉近”,从而有效地调整数据分布,那么分类的边界选择会更加容易,从而其任务表现也会获得很好的性能提升。
b)图神经网络
图神经网络(GNN)广泛应用于图数据的表示学习。它可以利用图中的关系信息,捕捉到节点邻居的丰富特征,从而提升下游基于图数据的任务表现。
通用的GNN框架搭建方法如下:
Step 1: 使用聚合器(Aggregate)将邻居的特征聚集起来。
不同节点的邻居数量不同,因此这一步能将任意数目的邻居点的特征向量整合为固定长度的向量。
聚合的方法:mean, sum, weighted sum…
从降噪的角度出发:mean(能抑制噪声) >= weighted sum > pooling > sum(会放大噪声)。
Step 2: 使用组合器(Combine)把聚合完的特征向量和节点自身的特征向量组合为一个新的特征向量。
组合的方法:concatenate, mean, weighted sum…
从保留信息的能力出发:concatenate(乘以参数矩阵来决定向量中的有用部分) > mean = weighted sum(对信息有一定失真)
实际上,并不是所有节点的邻居都包含特定任务的相关信息。因此,数据关系既可能提供正面信息也可能造成负干扰!比如图中,拉近不同类点之间的距离,反而会让分类问题更加复杂。如此利用额外信息,会起到相反效果!
问题来了:什么样的图数据(关系),是适合目前的图神经网络的?
答案:利用数据关系带来的性能提升,和原始图数据中节点从邻居获取的信息的“数量”和“质量”有关!为此,可以用两种平滑度度量方法,来衡量这两个方面!
2
两个平滑度度量
a)背景:KL散度(或信息增益)
已知S(surrounding)后对原系统C(context)的信息增益:通俗来讲,C和S的欧式距离越大,其二者特征越不相似,邻居节点能带来的信息增益越大,导致对节点特征的改变越大。
b)背景:图信号处理后的平滑度
Lambda(傅里叶变换的频率)很小时,表示信号频率和很低,平滑程度很高。
Lambda很大时,表示信号频率很高,表现为很不平滑(平滑度很低)。
c)信息度量一:特征平滑度
对图上所有节点,算出每个节点与邻居节点的距离之和的平方,然后对所有节点进行加和,取曼哈顿距离,最后除以特征维度和边的数目,得到特征平滑度。数学证明KL散度与特征平滑度成正比,即信息增益的大小与特征平滑度成正相关。
d)信息度量二:标签平滑度
针对图中所有的边,计算连接不同类别节点的边的比例,得到取值范围为0-1的值。直观上,标签平滑度为零时,只有同类数据会被“拉近“。
注意:现实中无法获知测试集的标签信息,因此可用训练集已知的标签平滑度来近似真实的位置的标签平滑度。
3
神奇的CS-GNN模型
于是,侯逸帆提出了一种新的模型CS-GNN,该模型利用这两个平滑度指标选择性地聚集邻居信息,以放大有用信息,减少负干扰!
注意这里存在一个tradeoff:尽可能地选同类别(保证信息增益的质量)的不相似的(提高信息增益的大小)邻居。
实验结果证明了的方法对于给定任务测量图形的平滑度值的有效性,并且CS-GNN能够获得更多有用的信息,以实现优于现有方法的性能!
4
答疑互动
问:result部分的OOM是指什么?该程序跑起来,需要什么样的服务器?
答:一般来说对于图数据,会经常有OOM(Out of memory)的情况出现。一般一个16G的卡跑带attention的GNN节点数不能超过10W。过大的话就只能通过邻居采样等方法优化,或者是持续用IO几个batch读一次。
问:有点好奇特征平滑度和标签平滑度有特定阈值吗?比如达到什么范围时图数据的效果最好?
答:因为这两个值是信息增益的一个近似,很难去用他们得到一些精确的结论。不过还是可以用这两个值帮助大家选择图数据或者理解改进图神经网络的。