Open agatan opened 5 years ago
Synthetic Data で良い Object Detector を学習するために頑張る話。
semi-supervised node classification のために PageRank と GNN を組み合わせようという話。 (グラフ中の一部ノードにのみラベルが与えられているとき、全ノードを正しく classification したい。というタスク)
O(n^2)
なので計算量がつらい。Topic-Sensitive PageRank で近似することで精度を保ちつつ計算量を抑えることができた (APPNP)Graph Convolutional Network (GCN) は以下のような式で定義される(2 層の場合)。
ここで、 A は normalize された隣接行列, X は feature matrix, W はパラメータ。 直感的には、一層ごとに自身の feature と隣接ノードの feature の平均を取るようなイメージ。
問題は
GCN の層を増やしていくと、propagate の分布は PageRank に似た分布に近づいていく。 PageRank は
を無限 step 計算したときの \pi
で、
を無限 step 繰り返したときの分布と一致する。 (GCN との違いは self loop の扱いと normalize の有無だけ。)
が、PageRank は Graph 全体に対するプロパティであり、各ノードに focus したものではない。 そこで Personalized PageRank を使うというアイディアが出てくる。
x は root node, i_x は teleport vector (personalize vector) でここでは [0, 0, ..., 1, 0, ...]
のように「自分自身が 1, それ以外は 0」であるような要素 n のベクトル。
Personalized PageRank は「確率 1 - α でランダムウォーク、確率 α で自分自身に戻る」を無限に繰り返したときの分布。
全ノードから見た Personalized PageRank を計算する必要があるので大変。
ノードを別個で predict する Network に通した後、周辺にその結果を propagate する PPNP を提案している。
PPNP は Personalized PageRank を使っているが、全ノードごとに Personalized PageRank を作ると NxN
の Dense Matrix を作る必要があるし時間計算量も N^2
でかかってくる。
そこで、topic-sensitive PageRank を活用することで近似しつつ計算量を落とす。 topic-sensitive PageRank は、topic ごとに teleport vector が定義されるような PageRank。 今回の場合は、クラス = Topic とみなして topic-sensitive PageRank を計算する。
K step の power iteration で近似する。(収束したかどうかは見ない。常に固定回数)
State of the Art の精度を出している。 PubMed などはグラフが大きいので PPNP は計算できない。が、APPNP は計算可能で性能もよかった。
学習時間はシンプルな GCN よりは遅いが、GAT などよりは速い。
APPNP の power iteration 数と精度の分析。
最適な K は、max(ラベルのあるノードとの shortest path distance for node in all nodes)
と大体同じになっているらしい。
「propagate をどのタイミングで活用するか」についての分析。 propagate しない、training 時のみ、inference 時のみ、両方、の 4 pattern ある。
Why
Machine Learning 輪講は最新の技術や論文を追うことで、エンジニアが「技術で解決できること」のレベルをあげていくことを目的にした会です。
prev. #2
What
話したいことがある人はここにコメントしましょう! 面白いものを見つけた時点でとりあえず話すという宣言だけでもしましょう!