Adversarial Label-Flipping Attack and Defense for Graph Neural Networks

动机

现有的工作忽视了一种特殊的poisoning attack——adversarial label-flipping attack,攻击者可以修改一部分不容易被察觉的training label。

经典的基于图的半监督分类器已经被证明对这种攻击很脆弱,那么深度学习图模型是不是也可以被adversarial label-flipping attack摧毁呢?一方面,局部聚合机制可能提高了鲁棒性,因为翻转的标签得到传播被限制到了他们的局部邻居;另一方面,深度学习模型很容易过拟合错误标签的错误信息。

作为现有的对图数据的对抗性攻击,由于离散性,label-flipping攻击本质上是一个NP-hard整数编程问题。为了避免这种组合搜索,最近的一些方法,提出使用基于梯度的优化器来寻找最优攻击。

但是这种想法无法直接用在我们的问题上:

  1. Label-flipping攻击,外层attack优化涉及内层GNN优化,是一个双层优化问题,无法求解。
  2. 问题包含不可微分变量,eg computing accuracy和flipping操作,阻止直接使用梯度。

我们提出了一个有效的对抗Label-flipping Attack模型来对抗GNN,LafAK。

  • 为了解决第一个挑战,我们提出了一种GNN的近似封闭形式,通过线性化和替换内层的classification loss。通过封闭形式,将双层优化问题转化为了单层优化问题。
  • 为了解决第二个挑战,我们为这些不可微分的变量设计了连续的替代,边的可以微分且有更好的功能性。

为了提高GNN对Label-flipping Attack的鲁棒性,我们发现他们对这种攻击脆弱的原因是对翻转节点的过拟合。
⇓\Downarrow
我们提出了一种基于社区保护的自监督防御框架,通过充分利用社区级信号,可以提高GNN对标签翻转攻击的鲁棒性。

我们首先应用现成的社区检测方法来自动提取社区级信号。然后以预测节点的社区作为辅助自监督任务来训练GNN,明确在训练过程中保留社区。因此,GNN一旦过拟合翻转节点,将受到社区级信号的惩罚。

模型

将攻击目标定义为一个无法微分的双层优化问题。

为了使这个问题可以求解,我们提出一种有效的模型,包含两个部分:

  1. GCN的近似封闭形式,可以直接将双层次优化转化为单层次。
  2. 为攻击目标内的不可微分量设计成连续的代用,仍保留其功能。

使用这种方法,攻击目标可以轻易地使用梯度优化。

Attack Objective

限定攻击范围为二进制分类,有/无标签节点的label分别为yL∈{−1,+1}NLy_L \in \{-1, +1 \}^{N_L}yL{1,+1}NLyU∈{−1,+1}NUy_U \in \{-1, +1 \}^{N_U}yU{1,+1}NU

两层GCN的最优参数是通过在有标签节点的输出上,最小化分类损失学习出来的。

学到的GCN模型使用test accuracy来评估(0-1 test error):

I[⋅]I[\cdot]I[]:一个不可微分的指示函数
sign(⋅)sign(\cdot)sign():Heaviside step function(单位越阶函数,大于0是1,小于0是-1),把节点的预测映射到他们的离散class label

LafAK的目标是找到一些不易被发现的训练标签,这些标签一旦被翻转,重新训练的GCN的test accuracy将会大幅下降。训练标签使用(δ⊙yL)(\delta \odot y_L)(δyL)反转,δ∈{+1,−1}NL\delta \in \{ +1, -1 \}^{N_L}δ{+1,1}NL,-1代表翻转,+1表示不变。

LafAK的目标定义为:

最大翻转次数受到小的翻转比例$\epsilon $的限制,以保证攻击的不可察觉性。

θ∗\theta ^*θ是给定δ\deltaδ,在有标签节点上学到的最优参数,然后外层求L0−1L_{0-1}L01最大化。这是一个双层优化问题。所以需要用到内层GCN的封闭形式。

Approximating Closed Form of GCN

为了解决双层优化问题,提出一种近似的GCN的封闭形式,将其转换为单层优化问题。

我们使用两步简化来获得近似的封闭形式:

  1. 线性化。
  2. 简化内层classification loss。为了使用现有的闭式估计量 “普通最小二乘法(OLS)”,我们将(内部)分类损失替换为可以用OLS解决的回归损失。

GCN的线性化

得出θ=W\theta=Wθ=W

替代内层classification loss

GCN被简化为一个简单的特征传播步骤,然后是一个标准的逻辑回归分类,即使在小样本设置下,也还没有统计学上有效的闭式估计器。相比之下,线性回归模型有一个闭式估计器,即OLS估计器。

因此,我们将GCN简化为线性回归,通过将内层的classification loss替换为回归损失(平方损失)来得到GCN(appr)。

θ∗\theta^*θ是GCN(appr)的优化参数。用这种方法就可以使用OLS来得到θ∗\theta^*θ的封闭形式:


给出这样的GCN近似封闭形式,双层优化问题可以被转换为单层优化问题:

Continuous Surrogates of Non-differentiable Components

公式9得到了单层优化公式,但是其中含有不可微分变量,为了解决这个问题,我们对这些量应用以下的连续代用。

  1. 不可微分量0-1error L0−1L_{0-1}L01。与0-1错误相比,带有测试损失的攻击目标的目的是最大限度地降低分类的总体置信度,而不是test accuracy。我们把Heaviside step function用tanh(τx)tanh(\tau x)tanh(τx)光滑近似。

    给定翻转δ⊙yL\delta \odot y_LδyL,我们进一步获得test nodey~U\widetilde{y}_Uy

    U近似预测:

    θ∗\theta^*θ用公式8计算,最后把y~U\widetilde y_Uy

    U带入公式4,得到连续可微分的0-1error:

  2. 为了处理离散值标签翻转操作向量δ\deltaδ,我们用一组相互独立的Bernoulli随机变量对其中的元素进行建模(翻转第i个节点的概率为α[i]\alpha[i]α[i])从伯努利分布中sample flipping vector。

最后,根据GCN的近似封闭形式和上述连续代数,式(5)中的总体攻击目标变为:

Optimization

防御

可以看出,GCN过拟合了那些翻转节点。

一个直接的解决方案就是利用高级别的信号作为正则化,考虑community structure,一个community的一般是有着相同兴趣和定位的用户。

假设community可以作为高级别信号引导节点分类任务。

基于以上观测,提出了一个保留社区的自监督防御框架,包含两步:

  1. 学习community label。先Embedding再聚类,k-means,得到标签YcY^cYc

  2. 使用保留社区自监督任务作为正则化项,训练GCN。

    有了community label后,将训练GCN用来预测community label作为辅助自监督任务,将L-1层的隐藏特征输入,输出K-路softmax 分布。

    低层的参数θ(L−1)={W(1)…W(L−1)}\theta^{(L-1)}= \{ W^{(1)} \dots W^{(L-1)} \}θ(L1)={W(1)W(L1)},被两个任务共享,只要过拟合了翻转节点,这些共享层就会被community-level信息惩罚。

完整的损失函数:

【Paper-Attack Defense】Adversarial Label-Flipping Attack and Defense for Graph Neural Networks相关推荐

  1. COMBINING LABEL PROPAGATION AND SIMPLE MODELS OUT-PERFORMS GRAPH NEURAL NETWORKS(CorrectSmooth)阅读笔记

    文章目录 链接 一.摘要 二.引言 三."修正和平滑"模型 四.转导式节点分类实验 四.总结 总结 红色部分为个人的一些解读,不足之处请多多指点! 链接 论文题目:结合标签传播和简 ...

  2. 【阅读】A Comprehensive Survey on Distributed Training of Graph Neural Networks——翻译

    转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] (本文中,涉及到公式部分的翻译不准确,请看对应原文.) 另一篇:[阅读]Distributed Graph Neural Networ ...

  3. 【论文导读】- STFL: A Spatial-Temporal Federated Learning Framework for Graph Neural Networks

    文章目录 论文信息 摘要 Contributions Methodology Graph Generation Graph Neural Network 联邦学习 Experiment 数据集 Nod ...

  4. 训练技巧详解【含有部分代码】Bag of Tricks for Image Classification with Convolutional Neural Networks

    论文地址:https://arxiv.org/pdf/1812.01187.pdf 更多方法和代码可见:图像分类任务中的tricks总结 更多更全的tricks补充(补充链接也是福利满满~) 目录 2 ...

  5. 【论文速读】Ordered Neurons:Integrating Tree Structures into Recurrent Neural Networks

    ICLR 2019的两篇最佳论文之一.[paper] 虽然自然语言通常以序列形式呈现,但语言的基本结构并不是严格序列化的.语言学家们一致认为,该结构由一套规则或语法控制,且规定了单词组成语句的逻辑.不 ...

  6. 【论文阅读】Learning Effective Road Network Representation with Hierarchical Graph Neural Networks

    目录 简介 论文简介 ABSTRACT 1 INTRODUCTION 2 RELATED WORK 3 PRELIMINARIES 4 MODEL 4.1 Contextual Embedding f ...

  7. 【PaperReading】OpenHGNN:An Open-Source Toolkit for Heterogeneous Graph Neural Networks

    OpenHGNN:An Open-Source Toolkit for Heterogeneous Graph Neural Networks 1. 引言 2. OpenHGNN框架 2.1 Trai ...

  8. 【Paper-Attack】Exploratory Adversarial Attacks on Graph Neural Networks

    Exploratory Adversarial Attacks on Graph Neural Networks 依赖training loss的最大梯度的这种基于梯度的策略,在攻击GNN模型时候,可 ...

  9. 【推荐算法】Knowledge-aware Graph Neural Networks with Label Smoothness Regularization(KGNN-LS)论文笔记

    题目:Knowledge-aware Graph Neural Networks with Label Smoothness Regularization for Recommender System ...

最新文章

  1. 查看显卡利用率 python_既然大家都说装了win10,就不用鲁大师监测显卡温度,为什么呢?...
  2. DataRow的RowState属性变化问题
  3. uva 12545——Bits Equalizer
  4. 2017最新nginx+keepalived+centos7安装配置过程
  5. 参会指南丨3分钟带你玩转2019数据技术嘉年华!
  6. Hive metastore入门
  7. https openssl http2
  8. echarts地图添加图片
  9. Label Matrix v8 怎样做二次开发
  10. 高等数学教材上册复习
  11. (一)绪论 | 如何判断某数据结构是逻辑结构还是存储结构,是线性结构还是非线性结构
  12. 长连接如何转换为短连接格式呢?
  13. python获取根目录_python如何获取当前工程根目录
  14. badboy设置中文_badboy中文手册
  15. 2.6-使用C#Winform开发Tcp/Udp网络小助手(含步骤和源码)
  16. python编程入门指南磁力下载-实战Python语言实现BT种子转化为磁力链接
  17. php 正文提取算法,基于机器学习的网页正文提取方法
  18. 科学释梦——意识窗口在记忆模块间的穿越
  19. matlab 多项式拟合EXCEL中复杂数据
  20. phpstudy -sql服务器2008r2 -中控考勤机 -php 组合查询考勤

热门文章

  1. 汉字-生僻字:生僻字目录2
  2. cloudera cdh5.13.0 vmware 快速安装
  3. npm包管理器小节一下
  4. 2017-4-20实体类,数据访问类.字符串攻击.防攻击
  5. 25@JSP_day08
  6. 关于 Hibernate 中的“脏数据”、“脏对象”
  7. oracle operation_type,oracle静默安装
  8. oracle rac 高并发性能_高并发业务下 JVM 涉及的垃圾回收与性能问题分析与定位...
  9. 一文带你了解GaussDB(DWS) 的Roach逻辑备份实现原理
  10. 14天1000+大集群滚动升级,银行柜台竟然毫无感觉