时空分布偏移下的动态图神经网络:如何在图数据上做数据变换或者数据扰动?NeurIPS论文分享直播回放(7)
NeurIPS 2022
直播回顾
🙋♂️议题分享详情回顾:
现分享议题七:Dynamic Graph Neural Networks Under Spatio-Temporal Distribution Shift时空《时空分布偏移下的动态图神经网络》
直播回放,全文共计3816字。👇
作者简介
结构框架
01
研究背景
图数据在我们现实生活中是很常见的,比如说人与人之间的关系,它会构建成社交网络。在做端上计算的时候,就会有设备和设备之间的关系;以及现在研究的热点——预测交通的流量,在预测交通流量的时候,目前主要的方法是通过动态图经网络去进行预测;还有我们在风控场景上,比如类似信用卡的防控,也会用到图神经网络。
一言以蔽之,动态图神经网络是用来处理高度结构复杂的数据,并且这些数据中还含有一定的时序信息。正因为这种数据是非常复杂的,所以它可能面临时间和空间分布发生偏移的现象。
02
研究动机
在这项工作中,我们的主要的出发点就是去应对动态图上面的时间和空间分布偏移。首先介绍一下为什么这种分布偏移会引起模型性能会衰退?因为平时在做机器学习的时候,大家比较常用的方式是经验误差最小化,我们把数据集首先分成训练集、验证集和预测集,然后在训练集上训练,把训练集上训练好的模型去拿到预测级上去进行预测,得到最终的结果。
整个流程它需要满足一个大前提——所有的数据是需要独立同分布。在这种假设下,我们就可以通过经验误差最小化的方法来得到一个比较好的模型。
但是如果训练测试数据它的分布是不同的,比如在我们今天探究的主题下,图数据它可能有空间和时间上的分布漂移,即可会导致了训练数据和预测时,它的分布是完全不一致的。在训练集上训练好的模型,直接用到预测机上它可能会出现性能衰退,甚至是模型坍缩的情况。
所以在这篇文章中,我们想法借鉴于因果学习,不变误差最小化的思路。我们的主要的目的是想寻求在整个图数据之中不变的模式,把不变的模式找出来,并利用这类模式进行预测。只要我们能够把不变的模式有效的识别出来的话,在预测集上就不会出现很明显的模型性能衰退的情况。
03
我们的方法
我们整个方法有一个基本假设:假设给定数据和label Y,不管它是来自于什么样的环境、什么样的分布,一定存在一个不变模式invariant pattern。既然存在不变模式,肯定也有所谓的可以变化的模式variant pattern。最后的标签Y可以由不变模式和随机误差去唯一确定。换句话来说我们的标签Y在给定不变模式的前提下,是条件独立于可以变化的模式variant pattern的。有了这样一个假设之后,我们就可以建立训练目标。
首先我们在模型中设计这样一个函数,这个函数可以从图数据中,把不变模式提取出来。有了这种提取出来的不变模式之后,根据我们的假设,不变模式它可以对Y进行很好的预测,所以我们在这里就去优化不变模式对Y的损失,这里就是完成了对不变模式的建模,那么对那种变化模式,我们是如何建模的呢?
根据我们的假设,变化模式在已知不变模式的情况下,对最后的结果是没有影响的,所以我们做了一个分布偏移的算子,主动生成了很多分布偏移的样本,要求这些样本对最后的Y没有影响,即计算这些样本loss之后,我们可以比较 loss的方差,方差越小,说明这些变化模式对结果的影响是很小的。
框架主要分为三个模块,第一个模块是我们会采用一些方法在动态图神经网络上对图的节点的表征进行建模。我们的方法主要是要在任意时刻,对任意一个节点拿到它的表征,并且我们需要把这个表征分成两块,一块就是invariant pattern,一块是variant pattern。
建模完毕之后,我们就要对样本做主动的分布迁移的扰动。在我们文章中,我们采用的扰动方法是做随机的组合和拼接,比如对于同样a节点在3时刻,我们做时间上的扰动的时候,可以拿a节点在第1时刻的variant pattern拼上a节点在第3时刻的invariant pattern。
如果我们做空间扰动的话,我们可以拿b节点在3时刻variant pattern,如果我们既做空间也做时间的扰动,我们就可以拿b节点2时刻的variant pattern。
我们生成了很多个主动的分布偏移的样本之后,根据刚才的思路,因为它们对Y的判断是不变的,也即他们对整个预测结果是没有什么差异的,所以通过最小化方差的形式来优化这样一个loss。
同时我们假设invariant pattern对最后的结果即最后的y有比较好的预测,所以最后的整个 loss就是两个部分的结合,一个是variant pattern扰动后的loss不会变化的很明显,一个是invariant pattern对Y的loss会比较小。
04
具体做法
第一步是如何对动态图识别网络中节点在任意时刻进行建模,其实相关的工作也是挺多的,从动态图神经网络角度上来说,最早大概可以追溯到2017年左右,当时主流的方法是把动态图的数据通过结合时间去给它进行切片,每一个切片出来的图数据,它其实就是一张静态的图。
2017年有很多静态图算法,比如GCN、GraphSAGE等是那个时期前后提出的,我们可以通过这些算法去获得每一张静态图上节点的表征,拿到每一张静态图上节点的表征之后,再通过LSTM等方法,把各个时间上的这些表征再进行融合,就得到了动态图上的表征。
这种方法有一个比较大的问题的,正是因为我们引入了RNN(LSTM)模块,RNN它的算法是串行的,所以整个方法它的效率比较低。在我们的工作中,我们通过采用attention这种方法,来对时间和图上的数据进行建模。
具体而言,比如对于节点u和它的邻居v,我们计算出来节点u的q矩阵,还有邻居的k, v矩阵,去定义一个mask m_I是通过q和k去计算的。它可以理解成是我们提取邻居invariant pattern的掩码矩阵,同时我们还做了一个限制,就是因为根据我们的常识,invariant pattern和variant pattern是对立的。
因此我们将负号置于计算m_I的表达式之中,得到m_V作为邻居variant pattern的掩码矩阵,有了m_I和m_V之后,我们就能计算出邻居节点的invariant pattern和variant pattern,再汇总到节点u上,生成了节点u的invariant pattern和variant pattern,下一步我们做了主动分布偏移的变换。
如何在图数据上做数据变换或者数据扰动呢?主流的流派可能是像类似于自监督学习上的做法,对原始的图数据比如原始节点的属性或者原始的边,通过增删这种方式进行扰动。
我们动态图上存在时间的因素,所以如果我们对原始数据进行扰动,整个扰动空间是非常庞大的。所以我们就提出了另一种扰动方式,即直接对聚合后的variant pattern进行扰动。在这个例子里,比如在t1时刻对节点u,我们如果对时间进行扰动的话,我们可以把 t1换成t2。
如果我们对节点进行扰动,我们就可以把 u换成v,因为这一部分是variant pattern,所以不管怎么样对它进行扰动,只要前面的invariant pattern没有变化的话,其实按照我们的假设,对最后预测结果应该是没有什么太大影响。
所以我们有一个目标函数,即所谓的不变风险最小化。其次我们的假设是variant pattern,它不管怎么变,对最后的预测结果都没有产生多大的差异,所以我们只需要计算这些扰动后的样本最后的结果,并且再计算一下这些结果的方差。
最后做一些总结,在探索动态图神经网络上时空分布偏移方向,我们提出了有效的建模动态图数据的方法,有效的扰动,和有效的对分布偏移进行检测的方法。并且设计了一个 loss函数,能够去有效的辨别哪些pattern是 invariant,哪些判断是variant。同时在三个实际数据结合一些构造的数据中,都检验了我们方法的有效性。
● AAIG成立一周年!砥砺前行,谱写新时代的科技之歌~请查收这份最新的自我介绍
● AI治理必修第20刊|ChatGPT发布!智能回答堪比雅思口语满分案!它会成为下一代搜索引擎吗?
● 听委员说|AAIG薛晖出席杭州市"两会",提出加快建立人工智能产业的多元协同治理机制
● 硬约束引导的深度学习偏微分方程求解框架:如何把物理的先验知识来引入模型中?|NeurIPS论文分享直播回放(6)
● “算法偏见”是概念炒作吗?「这个AI不太冷」第3期带你揭秘现实AI!
更多人工智能治理和可持续发展好文点击下方名片关注和星标【阿里巴巴人工智能治理与可持续发展研究中心】