随着GNN的应用越来越广,在安全非常重要的应用中应用GNN,存在漏洞可能是非常严重的。
比如说金融系统和风险管理,在信用评分系统中,欺诈者可以伪造与几个高信用客户的联系,以逃避欺诈检测模型;或者垃圾邮件发送者可以轻松地创建虚假的关注者,向社交网络添加错误的信息,以增加推荐和传播重大新闻的机会,或者操控在线评论和产品网站。
因此,我们需要研究对图神经网络的攻击和防御,在我们真正部署一个模型前,应该确认一下这个模型在面对对抗攻击的时候足够健壮?
https://zhuanlan.zhihu.com/p/88934914
https://blog.csdn.net/b224618/article/details/82025371
https://blog.csdn.net/travalscx/article/details/84677646
https://www.in.tum.de/en/daml/all-news/news-single-view-en/article/best-paper-award-at-kdd-2018/
来自KDD 2018,最佳论文。图神经网络上的对抗攻击的开山之作。
备注:
考虑一个简单且经典的场景,图上的结点分类任务。
给定一张图,图上部分结点有标签,通过训练一个深度学习模型来预测图上结点的分类。
一方面预测不基于单独的示例而是联合了图上很多实例的关系效应可能提高鲁棒性;另一方面信息传播带来的级联效应,操纵一个示例可能会影响其他实例,可能会降低鲁棒性。
本文就是研究操纵模型的预测结果是否可能?并且提出一个名叫nettack的对抗攻击算法,来欺骗图深度学习模型。
备注:
想要找到对图神经网络的对抗攻击算法,有两个挑战。
一方面图,不像图像这种由连续特征组成的数据,图的结构和以及大部分情况下的节点特征都是离散的,所以基于梯度构造干扰的方法不适用,那么怎么设计有效的算法来在离散空间找到对抗样本呢?
另一方面对抗样本一个要求是不可分辨性,例如图像,我们可以通过限制每个像素变化很小的值使得人类无法分辨图像的变化。对于大规模的图来说,错综复杂的点和线并不是适合人来观察的,那么怎么定义这种“不可分辨性”呢?
备注:
为了解决明确我们的问题,先来讨论一下攻击模型。
图上的结点分类任务一般是直推学习(上节讨论班讲过,简单提一下),就是训练和预测基于同一张图。
可以看图上最上面的例子,这张图一部分是有标签的,在这张图上训练好模型以后,用模型来预测这张图上没有标签的点的标签。
然后逃逸攻击指的是只修改预测时的图,也就是模型参数在训练数据上训练,攻击发生模型被训练以后或者测试阶段,模型已经固定了,攻击者无法对模型的参数或者结构产生影响。
也就是图中的第二个例子。逃逸攻击的应用场景更窄一些。
本文考虑的是投毒攻击,投毒发生在模型被训练前,直接用投毒的数据来训练模型并且在投毒的数据上做预测。
备注:
为了更好的反映现实情况,即攻击者不一定可以直接修改目标结点,可能只能访问除目标结点外的一些结点,或者不能访问整个数据。
因此明确的区分了攻击者结点和目标结点。
同时,又根据攻击者控制的结点不同,可以分为直接攻击和推理攻击:
还有我们可以做出的扰动类型,比如修改结点特征,添加删除边等等。
备注:
有了前面的这些知识,我们就可以定义我们的问题。
目标是:在有约束的情况下,最大化目标结点的分类损失,也就是最大化结点在扰动后的图上做预测的标签和真实标签的距离
约束是:第一,扰动是不被注意到的;第二,确保攻击者不能修改整个图,允许的扰动数目是有限制的。第二个约束比较好理解,就是限制做扰动的数目,修改一次结点特征或者添加删除一条边,都算一次扰动。
然后问题是如何定义不被注意到的扰动?
核心思想:只允许那些保留图的特定固有属性的扰动
备注:
定义不被注意的扰动核心思想是只允许那些保留图特定固有属性的扰动。
对于图结构来说,就是度的分布。因为现实中的图的度分布是符合幂律分布的,所以可以通过检验两张图的度分布是否来自于同一个幂律分布,来判断度的分布有没有明显的改变。
对于结点特征的话,是特征的共现关系。如果一个原图中没有出现的特征在扰动后的图中出现了,这个就是可以被注意到的。方法是:在特征共现图上随机游走,如果有相当大的概率到达一个新加入的特征,那么就认为这个扰动的加入是不被注意的
这里的一些统计量的计算有兴趣或者有需要的可以看一下原文。
这样就定义了如何选择满足条件的扰动,下面考虑如何选择这些满足不被注意条件的扰动,并且应用他们。
备注:
为了能够量化扰动的效果,同时简便计算,所以提出了一个替代模型。这个替代模型基于两层的GCN,把激活函数做了线性的替换。
模型有了,对不被注意的扰动的计算也有了,然后考虑如何选择最佳的扰动?
备注:
我们应该选择让替代模型损失最大化的扰动。
因此引入评分函数,来评价扰动后的替代模型的损失,损失越大说明扰动效果越好。
比如评价结构扰动,因为扰动的是结构,所以特征矩阵不变,计算替代模型的损失函数
备注:
算法是这样的,输入:给定图,目标节点,攻击者结点,改动限制
在原图上训练替代模型去获取参数
在扰动没有达到阈值的的情况下重复循环:
跳出循环后输出扰动后的图
其实这个算法得到的扰动后的图并不一定是最好的,因为算法是贪婪的,每一步只考虑局部最优的扰动。
原文中对快速计算扰动候选集合和快速计算得分函数都有详细的推导及证明,感兴趣的可以看一下原文。
下面一起来看一下实验结果
因为这是第一篇嘛,所以对比的baseline是
知识受限:攻击时候替代模型只在目标节点附近的一定区域内训练。
结果说明了及时知识受限,攻击也是有效的。同时了解的知识越多,需要施加的扰动越少。