Adversarial Attacks on Neural Networks for Graph Data
论文链接:https://arxiv.org/pdf/1805.07984.pdf
evasion attack & poisoning attack
Abstract
本文介绍了第一个在属性图上进行对抗攻击的研究,特别关注利用图卷积的思想模型。除了在测试阶段进行攻击,本文进行了更具挑战的poisoning attack(聚焦于机器学习模型的训练阶段)类别。在考虑实例间依赖关系的情况下,针对节点特征和图结构进行对抗扰动(adversarial perturbation)。通过保证重要的数据特征保证扰动是不可见的(unnoticeable)。为了解决底层的离散域(discrete domain),本文提出了一种利用增量计算的有效方法 NETTACK。本文实验研究表明,即使通过很小的扰动,也能够使节点分类的准确率产生明显的下降。此外,本文的方法是可迁移的,并且在即使只知道图的很少知识时也能成功。
1 Introduction
图数据上最频繁应用的任务是节点分类:给定一个大(带属性的)图和一些节点的标签,目标是预测其余节点的标签。
GCNs在节点分类任务中取得了巨大的成功。这些方法的优势超越了非线性、层次本质,依赖于图的关系信息来进行分类:不只是单独考虑实例(节点和特征),它们之间的关系(边)也被利用。也就是说实例没有被单独处理,要处理的是某种非独立同分布(non-i.i.d)的数据,其中如同质偏好(homophily)的网络效应支持了分类。
此前的一些文章表明用于分类学习任务的深度学习结构很容易被欺骗,即使是一些小的扰动也可以导致错误的预测。在本文之前,对图上的深度学习方法的对抗扰动问题还没有解决。这是至关重要的,因为在基于图学习的对抗是很普遍且错误数据容易被注入。
本文弥补了这一差距,并研究这种操作是否是可行的。Can deep learning models for attributed graphs be easily fooled? How reliable are their results?
这个问题的答案是不可预见的:一方面,由于预测不是基于单个实例而是基于不同实例的联合,关系效应可能提高鲁棒性。另一方面,信息传播可能导致级联效应,操作单个实例会影响其它实例。
机遇:(1)由于在属性图上进行操作,对抗扰动会以两种方式呈现:改变节点特征或图结构。(2)关系效应给了我们更多能力:通过操纵一个实例,可能会对另一个实例的预测产生影响。这个场景是非常真实的。在基于图的学习场景中可以区分(i)要误分类的节点,称为 targets(ii)可以直接操作的节点,称为 attacker。下图展示了本工作的目标以及本方法在 Citeseer上的结果。与学习模型的经典攻击相比,图具有更大的扰动潜能。同样,构建它们很具有挑战性。
挑战:(1)与图像(image)有连续特征不同,图(graph)结构(通常也是节点的特征)是离散的。因此基于梯度的方法来查找扰动是不合适的。如何在离散域中找到对抗样例来设计有效的算法?(2)对抗扰动旨在不易被(人类)察觉。如何在(binary,attributed)图中捕获“不明显察觉”的概念?(3)节点分类通常以 transductive learning 设置的方式呈现。在对特定测试数据进行预测前训练和测试数据要联合学习一个新的分类模型。这就意味着主要执行的 evasion attack (分类模型的参数假设是静态的)是不现实的。模型必须对被操纵的数据(重新)训练。因此在 transductive 设置中的基于图的学习与具有挑战性的 poisoning attack 之间具有内在的联系。
为此,本文提出了一种属性图的对抗扰动方法。主要聚焦于基于 GCN 和 CLN(Column Network)的图卷积的半监督分类,也在无监督分类模型 DeepWalk 上展现了本方法的潜能。默认假设 attacker 知道整个图的所有知识,但只能操作图的一部分。该假设确保了在最坏情况下进行可靠的弱点分析。但即使只知道部分数据,实验证明该攻击依然有效。
本文贡献:
Model:本文提出了一种在属性图上考虑节点分类的对抗攻击模型。该攻击可以操纵图结构和节点特征,同时通过保留重要的数据特征(如度分布、特征同时出现)来确保不明显的改变。
Algorithm:设计了一个有效的算法来计算基于线性思想的攻击。本方法支持增量计算并应用图的稀疏性快速执行。
Experiments:本模型即使只需要对图进行很小的改变也能能够对目标节点的分类结果进行显著的恶化。
2 Preliminaries:
令表示属性图,
是邻接矩阵,
表示节点属性。
表示节点 v 的 D 维特征向量。节点 id
,特征 id
。
给定带标签节点的子集,类标签
。节点分类的目标就是要学习一个函数
把节点集
中的每个节点映射到类别
。由于预测是针对给定的测试实例进行的,这些实例在训练之前已经知道(也在训练期间使用),这对应于典型的 transductive learning 场景。
本文聚焦于使用图卷积层进行节点分类。隐层被定义为:
其中是通过单位阵
增加自循环后的(无向)输入图 G 的邻接矩阵。
是第 l 层的可训练权重矩阵,
,
是激活函数。第一层有
,如用节点特征作为输入。由于潜在表示
(递归地)依赖于临近表示(乘
),所有的实例都耦合在一起。认为 GCNs 只有单个隐层:
输出表示将节点 v 分为 c 类的概率。用 θ 表示所有参数,如
。通过最小化带标签样本
输出的交叉熵,以半监督方式学习最优参数 θ。如,最小化
是训练集中 v 的标签。
表示图中每个实例的类分布。
3 Related Work
Deep Learning for Graphs.
主要区分两大研究流派:(i)node embedding(通常在无监督环境中操作)(ii)architectures employing layers specifically designed for graphs(专门为图设计的层级架构)。本文工作将重点放在第二种原则上并表明本文的对抗攻击也可以迁移到 node embedding 中。
Adversarial Attacks.
两个主要的攻击类型是针对训练数据的 poisoning/causative attacks(模型的训练阶段在攻击之后)和针对测试数据/应用程序阶段的 evasion/exploratory attacks(假设学习模型是固定的)。考虑到 poisoning attack 通常计算上更困难,因为还必须考虑模型的后续学习。这种类别并不适合本文的设置。
Generating Adversarial Perturbations.
通常来说,由于找到对抗扰动通常归结为