1. メッセージ配信
グラフには「変換不変性」(つまり、グラフの空間構造の変化がグラフの性質に影響を与えない)があるため、畳み込みニューラルネットワークに直接入力することはできません。一般的にはメッセージパッシング(Message pass)を利用して処理を行います。
メッセージ パッシング メカニズムは、ローカルな近傍で計算グラフを構築することによって実装されます。つまり、ノードの属性はその隣接ノードによって決定されます。これらの隣接ノードの情報を収集する作業は、人間の介入なしにニューラル ネットワークによって実行されます。その形式は次のとおりです。
各ノードは、その構造、機能、役割 を表す独自の計算グラフを構築できます。計算プロセスでは、各計算グラフは別個のサンプルになります。
なお、グラフニューラルネットワークの層数は、ニューラルネットワークの層数ではなく、計算グラフの層数である。グラフ ニューラル ネットワークの層数 = 計算グラフの層数 =グラフ内のターゲット ノードの近傍の順序。各層のノードは一連の計算重みを共有します。
グラフ ニューラル ネットワークの層の数は、 畳み込みニューラル ネットワークの受容野とみなすことができます。 大きすぎると 、過剰な平滑化が発生する可能性があります(すべてのノードが同じグラフを出力します)。
2. グラフ畳み込みニューラル ネットワーク
1. 演算装置
グラフ畳み込みニューラル ネットワークはメッセージ パッシング方式に基づいており、一般的な計算方法は、隣接するノードの属性特性を要素ごとに平均し(順序に関係なく、最大値/合計でもよい)、入力します。このベクトルをニューロンに入力します。
2. 数学的表現
k+1 層 の埋め込みは、 k 番目の層のノードの近傍計算 (近傍のノードの合計をノードの接続数で割る)であり、式は次のように記述できます。
ここで 、 は活性化関数、は重みです
その中で、ノードの 0 次属性特徴はそれ自体です。
ニューラル ネットワークによって出力される埋め込みベクトルは です。K はネットワークの層の数です。
3. 行列表現
① 層 k のすべてのノードの埋め込みを , として記録します。これは、下図の行列の行です。
②この行列に左の隣接行列を掛ける : ノードの隣接ノードを選択可能(上式の総和処理に相当)
③ノード接続から構成される対角行列である行列を求めます。次のように表されます。
その逆行列は接続数の逆数です。
上記の手順を完了すると、式は次のように表すことができます。
ただし、この方法で計算すると、ノードは自分の接続番号のみを考慮し、相手の接続番号を無視するため(接続の品質に関係なく、すべてのチャネルからの情報が強制的に平均化されます)、式を改善することができます -- > 、つまり、結果は、それ自体への接続数と反対側への接続数の両方を考慮した対称行列になります。
改善されたベクトルの大きさは減少し、その固有値の範囲は (-1,1) になります。この現象については、処理後の最大固有値が 1 になるように、式 D^{-1}AD^{-1} --> を改善し続けることができます 。
最後に、この行列は次のように記録されます。この行列では、2 つのノード間に接続がある場合、その接続の重みを表すことができる行列内にあります(ここで、 と はノードとノード間の接続の数です)。
この行列はラプラシアン行列の計算にも使用できます。
次に、式は次のようにリストされます。これは GCN の層を表すことができます。学習可能なパラメータは重みです。
4. 計算グラフの改善
上記の方法 (ノード自体がノード自体の状況を反映できないという事実を説明するために隣接ノードを使用する) の改良方法は、各ノードに対して各ノードを指す接続を追加することです。
この改善後、隣接行列は(元の行列に単位行列を加えたもの、対角線はすべて 1) になります。
最終的なニューラル ネットワーク式は次のように記述できます。
(式には元の重み行列と単位行列が含まれます)
次のように分割して書くこと もできます。
(前部は元の重み行列の変換であり、その後に単位行列の変換が続きます)
さらなる改善のために、次のように記述される2 セットの重み(1 セットのアグリゲーション ノード情報と 1 セットのセルフループ ノード情報) を 使用できます。
そしてそのとき、後者の式は恒等マッピング、つまり残余の接続になります。
!!!最終的な行列の簡略化形式は次のとおりです: ; ここで、
3.GCNトレーニング
1. 教師あり学習
損失関数: 、ここで、 f は分類/回帰予測ヘッド、 y はノード ラベル情報です
クロスエントロピー損失関数:
GCN の入力はグラフ構造であり、出力もグラフ構造ですが、出力グラフのノードには意味情報が埋め込まれており、出力構造は低次元、連続、高密度の特性を持っています。
埋め込みベクトルは分類のために分類ヘッドに入力でき、それが 2 次元空間にマッピングされると、反復中に異なるカテゴリのノードがますます分離されることがわかります。
---- >
2. 教師なし学習/自己検査学習
Deepwalk/Node2vec と同様に、グラフ自体の接続構造を使用して、反復の目的は、グラフ内の 2 つの接続されたノードの埋め込みベクトルを可能な限り近づけることです。
損失関数: 、これは2 つのノードの合計が類似していることを意味します。
一般に、「エンコーダ-デコーダ」アーキテクチャが採用され、エンコーダはグラフをベクトルに埋め込み、デコーダは2つのベクトル間の類似性を計算します。
4. GCNのメリット
ランダムウォークに基づく従来の機械学習 との比較
① GCN のすべての計算グラフは重みを共有し、パラメータの量が少なくなります
②GCNは帰納学習であり、汎化能力が強い(新しいノードや新しいグラフにも汎化できる - 転移学習)
③ノードの属性特性、構造機能役割、ラベリング情報の活用
④ フィッティング学習能力が強く、得られる埋め込みベクトルの品質が高い
5. CNN と Transformer の比較
1. CNNとの比較
CNN は 2 層の GCN とみなすことができます. 畳み込みは 9 つの隣接ノードとターゲット ノードの情報を要約します. その数式は次のように書くこともできます: , CNN は固定近傍と固定順序 を持つ GCN とみなすことができます.
ただし、両者には次のような違いがあります
① CNN には変換不変性がなく、ピクセルの順序が崩れるとネットワークの出力に影響を与えます。
②GCNのコンボリューションカーネルの重みはあらかじめ定義されており、学習する必要はありません。CNN の重みを学習する必要がある
2. トランスとの比較
Transformer 自体は自己注意メカニズムであり、そのトレーニングの目的は、シーケンス内の要素が相互に影響を与えられるようにすることです。
Transformer は全結合グラフ上の GCN とみなすことができます。