Comments (7)
Thank you for your issue.
When we want to calculate the Shapley value, we constrain the players are in the local L-hop nodes. For the nodes outside the L-hop, we don't change the them. That's to say, we keep them.
If you want to dig more mathematically details about this operation, you can refer to the paper L&C Shapley.
from dig.
Thank you for your quick response! Sorry, I am still a bit confused. From the Algorithm 2 in the SubgraphX paper, seems like the nodes outside of the L-hop are set to zero features?
I think the L&C Shapley paper is doing the same thing. The Definition 1 in the paper indicates that neighbors that are L-hops away are excluded from the game (zerod-out)?
from dig.
It seems like the notation here should be Set nodes from $ P' \ (S \union {G_i}) $ with zeros features
in the second loop line and change the V \S_i
with P' \S_i
in the third loop line.
For the L&C shapley, you can check its code for more details. But I think with the L-hops away nodes unchanged, it will have the same marginal contribution as that in the original shapley value when the coalition is the same. Therefore, the approximation error is smaller than zero them out.
from dig.
Hi @Oceanusity ,
I don't understand How the modified versions mean the nodes outside player set should contribute, It is more like we couldn't judge about their contribution while in the code by setting np.ones
means they are contributing. and also this is not exactly what paper said and ought to be np.zeros
.
from dig.
Hello, for the implementation of subgraphX, we take use of the l-shapley and apply it on the graphs. In order to better minimize the difference between the l-shapley and the original shapley, we should keep the nodes outside the k-hop neighbors to be selected when calculating the marginal contributions.
For the paper, in the algorithm 2, there is a symbol conflict. Please change the Set nodes from V \ (Si ∪ {Gi}) with zero features
to Set nodes from P' \ (Si ∪ {Gi}) with zero features
, and Set nodes from V \ Si with zero features and feed to the GNNs f (·) to obtain f (Si)
to Set nodes from P' \ Si with zero features and feed to the GNNs f (·) to obtain f (Si)
.
Sorry for the symbol problem, and please take this implementation as the original algorithm of the SubgraphX.
from dig.
Comparing the l-Shapley value and the original Shapley value, if the input and output are conditionally independent, then they are the same. Therefore, they are the same when explaining graph neural networks on node classification tasks. It's OK to set other nodes unselected or selected in this case. However, when applying graph classification, this conditional independent is unsatisfied. In this case, we have to minimize the difference between the l-Shapley value and the original Shapley value. Therefore, we follow the l-Shapley to set the nodes outside the k-hop selected.
from dig.
I see thanks
from dig.
Related Issues (20)
- TypeError: add_param_group() missing 1 required positional argument: 'param_group'
- Error on tutorial for graph generation HOT 2
- Codes and scripts for ProNet HOT 1
- Why it is allowed to have overlap between traning and valid & test sensitive labels in Graphair? HOT 1
- when running s-mixup in DIG,we found the diffrernt results with the paper published inICML and the difference is large ,why? HOT 7
- xgraph
- Question about spherenet HOT 1
- Questions about the ComENet HOT 5
- Adding a new node feature to a Spherenet model HOT 2
- Uploading my own dataset
- Code HOT 3
- Reconstruction loss hyperparameter HOT 1
- edge_mask=gnnexplainer_related_preds[1][prediction], NameError: name 'prediction' is not defined HOT 2
- TypeError: draw_networkx_nodes() got an unexpected keyword argument 'with_labels' HOT 4
- 'GNNExplainer' object has no attribute 'node_idx' with BA_shapes
- expired url
- Unable to install DIG on windows due to pyscf
- ProNet scripts
- Why the projector(fc1 and fc2) in graphfair don't have optimizer?How to optimize their parameters?
- Maybe ComENet is not structure invariant? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dig.