GNNの定式化
from グラフニューラルネットワーク (機械学習プロフェッショナルシリーズ)
頂点埋め込みを考える
頂点の特徴量からベクトルを得て, NNで扱えるようにする
多分, 表現学習
入力は頂点特徴量を持つグラフ$ G= (V, E, X)
Vは頂点集合
Eは多分辺集合
Xは特徴ベクトル
出力は頂点の埋め込み$ Z\in R^{n\times d}
dはXの次元数
頂点情報の更新を定式化
初期化: $ h^{(0)}_v = X_v (\forall v \in V)
$ hはある頂点vの持つ特徴ベクトル
$ \forallは全称記号. 任意の某
更新: 後で
重要なのは集約関数がNNで, パラメータになっていること. 与えられたデータからどう集約すればいいのか (更新の仕方) を学習する
集約関数中心に, 含まれる関数を全て微分可能のすれば, 誤差逆伝播法が適用できて学習が楽
頂点埋め込みが作成できれば, 後段に目的ごとの分類器やらを設置すれば問題が解けるので, グラフの状態を考慮してベクトルで表現する埋め込みの段階が重要
GNNはNNのグラフに対する一般形と言える
周囲の情報を集約しないGNNはNNと等価. つまり辺のないグラフに対してのGNNとNNは等価
辺の情報が有用なグラフなら, GNNの表現力はNNより高い
既存のNNのアーキテクチャにメッセージ伝播をつけてGNNを実現できる
RouteNetではRNNにメッセージ集約を行わせていた
辺の定義とGNNのデバッグはやけに実践的だ. 覚えがあるんだろうな
集約関数の実装例
例1. GCN, Graph Convolution Networks
グラフ畳み込みNN. 自己ループを各頂点に加えることで, 集約関数の実装を簡便にできる
?これはなぜやってもいいのか
?ノルム, 正規化の理屈
例2. GAT, Grape Attention Network
注意機構を集約関数に内蔵
Attention Networkのグラフへの一般化
? 定式化のalphaの分母と分子の意味. 特にLeakelyRELU
やはり辺に意味のあるグラフであれば, Transformerより高い性能が期待される
例3. GGNN, Gated Graph Neural Netowork
GRU, Gated Recurrent Networkで特徴量を更新
RouteNetの実装はこれ
?中間表現は各層で共通. GRUでは記憶した情報として用いるが, GCNやGATでは更新された別の状態として捉える
>例4, 5は割愛
学習
推論