グラフニューラルネットワークGNNの紹介

グラフ ニューラル ネットワークの基礎

基本モジュール定義図

3 つの特徴:

  • 点 – 固有ベクトル表現
  • エッジ – 関係を表します (有向/無向に分けられます)
  • グラフ — グラフ ベクトル (グローバル)

物事がどれほど複雑であっても、グラフ ニューラル ネットワークを使用する目的は、特徴を統合し、特徴を再構築することであり、その目的は、
点特徴、エッジ特徴、そして最終的に全体的なグラフ特徴を適切に処理することです。グラフ構造を使用して、これらの特徴 (ポイント、エッジ、グローバル) に出力結果を埋め込みます
: ポイント/エッジ/グラフの分類と回帰

グラフの隣接行列

隣接行列: 各点の近傍が誰であるかをコンピュータに伝えます。
ここに画像の説明を挿入
接続関係がある場合は 1 をマークし、関係がない場合は 0 をマークします。
双方向エッジの隣接行列は対称です。GNN
(A, X) は次のとおりですモデルに導入された隣接行列、および点の特性

テキストデータはグラフで表現することもでき、接続関係は
ここに画像の説明を挿入
青が1、白が0という比較的疎な行列である隣接行列で表すことができます。
注: 行列において、値が 0 の要素の数が非ゼロの要素の数よりはるかに多く、非ゼロの要素の分布が不規則な場合、その行列は疎行列と呼ばれます。

隣接行列は通常、コードでは N * N ではなく、2 * N
ここに画像の説明を挿入
[ソース、ターゲット]: from です。到着。

ポイント フィーチャの更新 (リファクタリング)

ポイントの更新では、そのポイント自体の情報だけでなく、その近傍の情報も考慮されます。
近傍とその独自の情報を組み合わせると、
ここに画像の説明を挿入
シガム活性化関数、w 重み、および学習可能な重みパラメーター
集約操作を完全接続層として使用できます。更新方法は多数あり、自分で設定できます (合計、平均、最大、最小)。
ここに画像の説明を挿入

多層GNN

GNN は複数の層を持つこともできます。

  • GNN の本質は各部分の機能を更新することです
  • 入力は特徴量、出力も特徴量、隣接行列は変化しない
    ここに画像の説明を挿入
    元の入力 – 最初の結果 – 2 番目の結果
    グラフ構造と隣接行列は変化せず、何が変化するかがポイント特徴。

受容野:畳み込みが進むにつれて、各点が感じることができる領域がどんどん大きくなっていきます

グラフ畳み込みGCNモデル

図の一般的なタスク:

  • ノードの分類、各ノードの予測、さまざまなポイントでの接続予測があるかどうか
  • グラフ全体の分類、グラフの部分分類など、異なる部分グラフが類似しているかどうか、異常の検出など。
  • 最終的には、GCN は特徴抽出操作を完了する必要がありますが、入力オブジェクトが固定フォーマットである必要はありません。

通常、GCN には 2 つのものが渡されます: 1. 各ノードの入力特徴、2. ネットワーク構造図が
グラフ ニューラル ネットワークに渡され、損失関数を使用して反復および更新されます。

GCN は純粋な教師あり学習ではありませんが、すべてのラベルを必要とせず、少数のラベルで学習できることが GCN の利点でもあります。
損失を計算する際には、ラベル付けされたデータのみが使用されます (交通予測では、遠隔地では人為的にラベル付けされたデータは使用されません) ある点の損失が小さければ、
その近傍の損失も小さいはずです。半教師付き問題。

GCNの基本的な考え方

オレンジ色のノードの場合、その特性を計算します: 隣接するノード (それ自体を含む) の特性を平均し、それをニューラル ネットワークに渡します:
黄色の点を再構築/更新する方法: 最初に集約して合成 (平均) — ニューラル ネットワークを通過しますつまり、訓練可能なパラメータを追加します — 二次元ベクトルを取得します
ここに画像の説明を挿入

ネットワーク層:

これは畳み込みに似ています。GCN は複数の層を実行することもできます。各層の入力は依然としてノードの特徴です。
その後、現在の特徴とネットワーク構造図が引き続き下位層に渡され、元の隣接行列が継続的に計算されます。
ここに画像の説明を挿入
元の隣接行列 - 各点の更新 - 活性化関数 RELU - 2 番目の更新 - 活性化関数 RELU - グラフ畳み込みの洗浄後、最終的に各点に対応するベクトルを取得します

ただし、通常はあまり多くのレイヤーを行う必要はありません (6 人までなら誰でもわかります) 上の写真の栗の部分では、2 回行うことで他のすべてのポイントを確認できます。

基本的な計算

図の基本構成:
G はグラフ
A は隣接行列
D は各ノードの次数
F は各ノードの特徴
ここに画像の説明を挿入

特徴量の計算方法:実際には隣接行列と特徴量行列の乗算であり、近傍情報の集約を示す
ここに画像の説明を挿入
質問1:他人のことばかり考えていて、自分のことは考えていない。
ここに画像の説明を挿入
ここに画像の説明を挿入
質問 2:
平均ではなく、加算のみが考慮されます。
ここに画像の説明を挿入
ここに画像の説明を挿入

ここで 1/2 は最初の行を正規化することと同等であり、列も正規化する必要があります。

ここに画像の説明を挿入ここに画像の説明を挿入
これは 2 回の正規化に相当し、数値が小さいため、ルート記号を開く必要があります。なぜ
ここに画像の説明を挿入
これを行うのか:
次の赤と緑の A と B の次数を考慮する必要があります。
ここに画像の説明を挿入
ここに画像の説明を挿入
関係の重みを非常に小さくし、暁紅への影響がそれほど大きくならないようにする。

最終的な式:
たとえば、10 カテゴリのタスクを完了するには、出力層を示す F は 10 です。

ここに画像の説明を挿入

最初の層: 隣接行列、特徴 X を再結合、一連のプリセットを作成し、重みパラメーターを乗算し、活性化関数 relu を適用します。

隣接行列が更新される場合、
ここに画像の説明を挿入

GCN のレイヤー数:
理論的には大きいほど良いです
が、実際の画像にはそれほど多くは必要ありません。
ソーシャル ネットワークでは、たった 6 人で全世界を知ることができるため、
一般的な GCN レイヤーの数は必要ありません。実験
: 複数のグラフ データ セットでは、2 つまたは 3 つのレイヤーがより適切であり、多すぎると悪化することがわかりました。

グラフ アテンション メカニズム グラフ アテンション ネットワーク

どのノードの影響が大きく、どのノードの影響が小さいかを区別するための重みが必要です。
Chestnut: 5 点、各点は 4 次元データです。
重みは影響の大きさを区別するために使用されますが、2 点と 3 点の影響は 1 に対して同じである必要がありますか?
ここに画像の説明を挿入
ここに画像の説明を挿入
隣接行列[5×5]:N×N
特徴行列[5×4]:5点、各点は4次元データ。
トレーニング可能な重みパラメータ w[4×8]
集計更新: [5,8]

前回の内容です このセクションでは主に重み項目の
ここに画像の説明を挿入
式を紹介します:
ここに画像の説明を挿入
hi, hj: 点 i と点 j の特徴 w
: 訓練可能な重みパラメータ、最初に次元マッピングを実行して
2 つの特徴を取得し、次に内積を実行して重みを反映しますvalue
a: 注意を参照
ここに画像の説明を挿入Softmax: 正規化、2 から 1 への重みと 3 から 1 への重み、合計は 1 になるはずですexp(eij): ex から eij へのパワーマッピングを参照、大きな
結果に

残る問題: a の計算

1×5 次元の特徴ベクトルは 5×8 ベクトルと呼ばれ、8 次元のベクトルになります。そして、スプライシングでは、
トレーニング可能で学習可能な重みパラメータ行列を追加し、
16×1 行列を重み付けして重みとして値を取得します。
重みは正の値でなければならないため、relu 活性化関数を追加し、
最後に
ここに画像の説明を挿入
注意を正規化します。つまり、隣接行列に重み付けを行い、
1~2の重みe12をもう1回加算するのですが、実際に変更されるのは隣接行列のa12の値です。

T-GCN シーケンス グラフ ニューラル ネットワーク

一部のグラフは時間とともに変化します 1
、時間が変化すると、点の特性が変化
します 2 、時間が変化すると、点の特性が変化し、グラフの構造も
変化します

グラフの類似性

ペーパーリンク

入力: 2 つまたは複数のグラフ構造
グラフ ニューラル ネットワークへの入力
出力: マッチング類似度、出力スコア

おすすめ

転載: blog.csdn.net/Sun123234/article/details/129863131