Graph Matching Networks for Learning the Similarity of Graph Structured Objects
https://arxiv.org/pdf/1904.12787.pdfを読む。
Contribution
- GNNで1つのグラフを入力とし、similarity判定に使えるvectorを出力する方法
- Graph Matching Networkと呼ばれる、入力は2つのグラフで、出力がそのsimilarity scoreのネットワークを提唱。Cross-graph attention mechanismというらしい。まあ要は2つのグラフ間でいろいろやっている。計算量はなのでさすがにだいぶ遅いが、精度はかなりすごいらしい
Experiments
- Synthetic graph edit-distanceを学習する
- binary function similarity search
- mesh retrieval (何これ)
Notes
- Weihuaのやつはisomorphism testであってsimilarityではなさそう(WL kernel, similarity判定にはそれほど強くないのか?←Globalなsimilarityには確かに弱そう)
- Related Workがおもしろい。Similarity basedなkernelがいくつか紹介されている。walks or paths (Borgwardt & Kriegel), limited-sized substructures (Horváth et al. 2004) , subtree (Shervashidze & Borgwardt 2009)など
- kernelはhand-craftedなので大変だねという話
- Metric Learningというのがあるらしい。2点間の距離を学習するらしい
Deep Graph Similarity Learning
Embedding models
要はベクトルを出力するモデル。事前に各グラフについてベクトル化しておくとクエリごとが楽。Encoder, Propagator, Aggregatorにわかれる。
Encoder: 頂点ラベル(イテレーションごとに異なる)、辺ラベル(イテレーション間で同じ)を初期化
Propagator: とは、頂点から頂点へ向かう情報であり、2頂点のラベルと、辺ラベルでupdate。頂点ラベルは、その頂点のラベルとその頂点に向かうすべての頂点からのメッセージでupdate
Aggregator: イテレーションのあと、各ノードの特徴量をaggregateする。aggregateという単語ややこしいな
Graph Matching Networks
Embedding modelのpropagatorにおいてというのが増えた。2つのグラフの個の組合せについてを計算する。ノードラベルのアップデートには、メッセージの他に、これらの情報を加えてアップデートする。
感想
例によってなんでうまくいくか全然イメージできないな。まあうまくいかないイメージもできないんだけど。discriminative powerについてWL test以外の観点から調べてみたさがある