Giter VIP home page Giter VIP logo

Comments (7)

Oceanusity avatar Oceanusity commented on September 28, 2024

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.

ShichangZh avatar ShichangZh commented on September 28, 2024

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?

Screen Shot 2021-11-04 at 9 12 26 AM

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.

Oceanusity avatar Oceanusity commented on September 28, 2024

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.

alirezadizaji avatar alirezadizaji commented on September 28, 2024

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.

Oceanusity avatar Oceanusity commented on September 28, 2024

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.

Oceanusity avatar Oceanusity commented on September 28, 2024

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.

alirezadizaji avatar alirezadizaji commented on September 28, 2024

I see thanks

from dig.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.