目录
概
利用 Counterfactual and Factual Reasoning 进行模型解释, 其中的 PS (Probability of Necessity), PN (Probability of Sufficiency) 还挺有意思.
符号说明
- \(G_k = \{V_k, E_k\}\), 图;
- \(A_k \in \{0, 1\}^{|V_k \times V_k|}\), 邻接矩阵;
- \(X_k \in \mathbb{R}^{|V_k| \times d}\), 结点特征;
- \(\hat{y}_k = \arg \max_{c \in \mathcal{C}} P_{\Phi} (c|A_k, X_k)\), 对图 \(\mathcal{G}_k\) 的预测, \(\Phi\) 指代一个 GNN.
评价指标
-
我们的目标是:
- Factual reasoning: 找到一个子图 \((A_k \odot M_k, X_k \odot F_k)\) 满足:
即 mask \(M_k, F_k\) 保持预测不变, 这说明找的子图是抓住主要信息的;
- Counterfactual reasoning: 找到一个子图使得
即去掉了 \((M_k, F_k)\) 所代表的子图后, 预测改变了, 说明这个子图是很重要的 (至少对于预测而言是如此).
-
那么如何来评估用于找到的 \(M_k, F_k\) 的算法质量呢 (假设 \(C(M, F)\) 足够好) ?
-
Simple:
\[C(M, F) = \|M\|_0 + \|F\|_0 \]该指标越小说明找到的子图越'小', 越精炼;
-
PS (Probability of Sufficiency):
\[\text{PS} = \frac{\sum_{G_k \in \mathcal{G}} \text{ps}_k}{|\mathcal{G}|}, \]其中
\[\text{ps}_k = \left \{ \begin{array}{ll} 1 & \text{ if } \hat{y}_k' = \hat{y}_k \\ 0 & \text{ else }, \end{array} \right . \\ \hat{y}_k' = \mathop{\mathrm{argmax}} \limits_{c \in \mathcal{C}} P_{\Phi} (c|A_k \odot M_k, X_k \odot F_k). \]显然 PS 越大, 说明该算法找到的子图都具有充分的信息;
-
PN (Probability of Necessity):
\[\text{PN} = \frac{\sum_{G_k \in \mathcal{G}} \text{pn}_k}{|\mathcal{G}|}, \]其中
\[\text{ps}_k = \left \{ \begin{array}{ll} 1 & \text{ if } \hat{y}_k' \not = \hat{y}_k \\ 0 & \text{ else }, \end{array} \right . \\ \hat{y}_k' = \mathop{\mathrm{argmax}} \limits_{c \in \mathcal{C}} P_{\Phi} (c|A_k - A_k \odot M_k, X_k - X_k \odot F_k). \]显然 PN 越大, 说明该算法找到的子图都是必要的, 因为缺少这些子图无法得到一致的预测;
-
可以类似 F1 score 将二者合一:
\[F_{NS} = \frac{2 \cdot \text{PS} \cdot \text{PN}}{\text{PS} + \text{PN}}. \]
-
注: 上面的 graph-level 的定义可以推广到 node-level, 作者为每个结点赋予 L-hop sub-graph, 然后在这些子图上进行讨论.
代码
[official]
标签:PS,based,Network,Neural,text,odot,PN,mathcal,hat From: https://www.cnblogs.com/MTandHJ/p/16793224.html