graphnn icon indicating copy to clipboard operation
graphnn copied to clipboard

About belief propagration implementation

Open chunyang-wen opened this issue 7 years ago • 1 comments

In your paper, there are two schemes:

  • mean field
  • loopy belief propagation

in example of graph_classification, there is only implementation of mean field.

loopy belief propagation contains two phases:

  • v_i_j, message from i to j, gather all i's neighbor messages, except from j
  • v_i, message from all i's neighbor, plus its own message

I am curious about how to efficiently calculate v_i_j. Unlike mean field, it simply do matrix multiplication. But loopy belief propagation is some what complicated and it is not easy because we need to remove neighbor j when we calculate v_i_j. Of course, we can implement it by just set i's neighbor j to zero, when calculate v_i_j, but it is not efficient.

So any hint on that?

chunyang-wen avatar Jul 10 '17 03:07 chunyang-wen

Hi there, please check out the pytorch implementation of structure2vec: https://github.com/Hanjun-Dai/pytorch_structure2vec

It contains both efficient implementation of mean field and loopy bp.

Hanjun-Dai avatar Dec 24 '17 19:12 Hanjun-Dai