首页 > 其他分享 >Topology Attack and Defense for Graph Neural Networks: An Optimization Perspective

Topology Attack and Defense for Graph Neural Networks: An Optimization Perspective

时间:2022-10-06 14:45:34浏览次数:95  
标签:Neural Graph min ij circ Optimization bm mathcal Topology

目录

Xu K., Chen H., Liu S., Chen P., Weng T., Hong M. and Lin X. Topology attack and defense for graph neural networks: an optimization perspective. In International Joint Conferences on Artificial Intelligence (IJCAI), 2019.

为图添加/删除一些的边使得结点的预测发生误判, 基于此攻击作者又提出了一个对抗训练的方法.

符号说明

  • \(\mathcal{G = (V, E)}\), 图;
  • \(|\mathcal{V}| = N, |\mathcal{E}|=M\);
  • \(A \in \{0, 1\}^{N \times N}\), 邻接矩阵;
  • \((\bm{x}_i \in \mathbb{R}^{M_0}, y_i)\), 结点 \(i\) 对应的特征和标签;
  • GCN:

    \[H^{(k)} = \sigma(\tilde{A}H^{(k-1)}(W^{(k-1)})^T), \]

    其中 \(\tilde{A}\) 是 \(A\) 添加 self-loop 后 + 标准化后的邻接矩阵.

Topology Attack

  • Topology attack 就是指在原图 \(\mathcal{G}\) 的基础上, 添加和删除一些边, 使得对于某一些点 \(i\) 的标签预测产生误判;

  • 作者首先将这个问题转换为:

    \[A' = A + C \circ S, \: C = \bar{A} - A, \]

    其中

    \[S \in \{0, 1\}^{N \times N}, \\ \bar{A} = \bm{1}\bm{1}^T - I - A, \]

    \(\circ\) 表示 element-wise 的乘法.

    注意到, 扰动后的邻接矩阵 \(A'\) 是在原来的 \(A\) 的基础上进行 \(C \circ S\) 的操作. 这里 \(S_{ij} = 1\) 表示该位置的边发生了变化, 而 \(C_{ij} = 1\) 表示添加边的操作, 而 \(C_{ij} = -1\) 表示删除边的操作. 故

    1. \([C\circ S]_{ij} = 1\) 表示添加了边;
    2. \([C \circ S]_{ij} = 0\) 表示不进行操作;
    3. \([C \circ S]_{ij} = -1\) 表示删除了边;
  • 如此以来, 我们就可以着眼于 \(S\) 的设计了, 为了保证扰动前后 \(A', A\) 的'差别'不是很大, 作者还额外添加了

    \[\|S\|_1 \le \epsilon \]

    的限制.

  • 于是, 攻击的目标函数可以归纳为:

    \[\tag{6} \begin{array}{ll} \min_{S} & \sum_{i \in \mathcal{V}} f_i(\bm{s}; W, A, \{\bm{x}_i\}, y_i) \\ \text{s.t.} & \bm{1}^T\bm{s} \le \epsilon, \: \bm{s} \in \{0, 1\}^n, \end{array} \]

    这里我们用 \(\bm{s} \in \{0, 1\}^n, n = N(N-1)/2\) 来替代 \(S\), 因为后者是一个对称矩阵, 用 \(\bm{s}\) 就可以避免这一限制. (6) 中的 \(f_i\) 表示预测误差的损失的反, 比如 CE-type loss:

    \[f_i(\bm{s}, W; A, \{\bm{x}_i\}, y_i) = \log Z_{i, y_i}, \]

    这里 \(Z_{i, y_i}:= \hat{P}(y = y_i|\bm{x}_i)\);

  • 为了进一步解决 (6) 中的限制条件, 我们可以放松为:

    \[\tag{8} \begin{array}{ll} \min_{S} & \sum_{i \in \mathcal{V}} f_i(\bm{s}; W, A, \{\bm{x}_i\}, y_i) \\ \text{s.t.} & \bm{1}^T\bm{s} \le \epsilon, \: \bm{s} \in [0, 1]^n, \end{array} \]

    然后通过如下算法采样 \(\bm{u}\) 用于增删 \(A\):

  • 为了更新 \(\bm{s}\), 我们采用 PGD (projected gradient descent):

    \[\bm{s}' \leftarrow \text{clip}(\bm{s} - \eta \bm{g} - \mu \bm{1}, 0, 1), \]

    其中 \(\eta, \bm{g}\) 分别为学习率和梯度, 而 \(\mu \ge 0\) 为

    \[\min_{\mu} \quad \bm{1}^T \bm{s}' \le \epsilon \]

    的解, 可以用二分法逼近.

对抗训练

  • 我们可以通过如下损失进行对抗训练:

    \[\min_{W} \: \max_{\bm{s}} \: -f(\bm{s}, W), \]

    这里每次训练我们首先通过上述的攻击方法生成 \(\bm{s}^*\), 然后再在此基础上

    \[\min_{W} -f(\bm{s}^*, W). \]

    重复直到收敛.

代码

[official]

标签:Neural,Graph,min,ij,circ,Optimization,bm,mathcal,Topology
From: https://www.cnblogs.com/MTandHJ/p/16757580.html

相关文章