人工知能におけるGNNとは何ですか?

人工知能におけるGNNとは何ですか?

グラフディープラーニング(GDL)は有望な研究分野であり、グラフデータに基づいた学習や分析は非常に有用です。この記事では、シンプルなグラフ ニューラル ネットワーク (GNN) の基本と、その内部の仕組みの背後にある直感を紹介します。しかし、心配しないでください。何が起こったのかをより直感的に理解できるように、著者は記事の中で多くのカラー写真を使用してグラフィカルな情報を提供しています。

グラフとは何ですか?

グラフは、接続されたノード (頂点) とエッジで構成されるデータ構造であり、明確な開始点や終了点がない情報を表すために使用できます。すべてのノードは空間内の任意の位置を占めることができ、グラフの構造が 2 次元以上で描画される場合、通常、類似した特性を持つノードが一緒にクラスター化されます。

これは、エンティティを表す相互接続されたノードのグループで構成されるグラフです。

エッジの上の黒い先端は、ノード間の関係のタイプを示し、関係が双方向か一方向かを示します。グラフには、有向グラフと無向グラフという 2 つの主な種類があります。有向グラフでは、ノード間の接続に方向がありますが、無向グラフでは接続の順序は重要ではありません。有向グラフは単方向または双方向のいずれかになります。

グラフは、ソーシャル ネットワーク、分子など、さまざまなものを表現できます。ノードはユーザー/製品/アトムを表し、エッジはそれらの間の接続(接続された製品/キーでフォロー/一般的に購入されるなど)を表します。ソーシャル ネットワーク グラフは次のようになります。ノードはユーザー、エッジは接続です。

ノードはユーザーを表し、エッジは 2 つのエンティティ間の接続/関係を表します。実際のソーシャル ネットワーク グラフは、多くの場合、はるかに大きく複雑です。

次に、著者は、再帰ユニット、埋め込みベクトル表現、フィードフォワードニューラルネットワークなどの概念をいくつか紹介します。グラフ理論(つまり、グラフとは何か、グラフはどのように見えるか)について知っておくことも重要です。

いくつかの用語はあなたにとって馴染みのないものであるかもしれません。心配しないで!紛らわしい用語については、関連する概念の基本的な意味を理解できるように、著者は見つけられる最も信頼できる説明へのリンクを貼るよう最善を尽くしました。これに基づいて、これらの概念とグラフ ニューラル ネットワークにおけるその役割をさらに理解できます。

グラフニューラルネットワークを理解する

各ノードには、それを定義する一連の特性があります。ソーシャル ネットワーク グラフの場合、これらの特徴としては、年齢、性別、居住国、政治的所属などが挙げられます。各エッジは、類似の特性を持つ可能性のあるノードを接続します。これは、これらのノード間の何らかの相関関係または関係を反映しています。

次の頂点と辺を持つグラフ G があるとします。

この写真は上の写真と同じです。

簡単にするために、特徴ベクトルは現在のノードのインデックスのワンホットエンコーディングであると仮定します。同様に、ラベル (またはカテゴリ) をノードの色 (緑、赤、黄色) として設定できます。するとグラフは次のようになります。

ノードの順序は実際には重要ではありません。

注意: 実際のアプリケーションでは、ノードの順序が非常に混乱する可能性があるため、ワンホット エンコーディングを使用しないようにしてください。代わりに、ソーシャル ネットワークの場合は年齢、性別、政治的志向など、分子研究の場合は定量化可能な化学的特性など、ノードを明確に区別する特徴を使用する必要があります。

ノードのワンホットエンコーディング(または埋め込み)ができたので、ニューラルネットワークを導入してグラフを変更することができます。すべてのノードは、リカレント ユニット (またはその他のニューラル ネットワーク アーキテクチャ。ここではリカレント ユニットを使用) に変換できます。すべてのエッジは、単純なフィードフォワード ニューラル ネットワークで構成されます。すると次のようになります:

エンベロープ シンボルは、各ノードのワンホット エンコードされたベクトル (埋め込み) です。

メッセージング

ノードとエッジの変換が完了すると、グラフはノード間でメッセージの受け渡しを実行できるようになります。このプロセスは、特定のノードの周囲の有向エッジを介して周囲のノードからメッセージ(つまり埋め込み)をプッシュすることを伴うため、「近傍集約」とも呼ばれます。

注: 場合によっては、単方向エッジに 1 つのニューラル ネットワークを使用し、双方向エッジに別のニューラル ネットワークを使用するなど、異なるタイプのエッジに異なるニューラル ネットワークを使用する必要があることがあります。この方法では、ノード間の空間関係をキャプチャできます。

GNN の場合、単一の参照ノードに対して、隣接ノードはエッジ ニューラル ネットワークを介して参照ノード上の再帰ユニットにメッセージ (埋め込み) を渡します。参照再帰ユニットの新しい埋め込み更新は、再帰埋め込みと隣接ノード埋め込みのエッジ ニューラル ネットワーク出力の合計に対する再帰関数を使用することに基づいています。上の赤​​いノードを拡大して、このプロセスを視覚化してみましょう。

紫色の四角は、隣接ノードからの埋め込み (白い封筒) に適用された単純なフィードフォワード ニューラル ネットワークです。赤い三角形は、現在の埋め込み (白い封筒) とエッジ ニューラル ネットワークの出力 (黒い封筒) の合計に適用され、新しい埋め込み (上部の白い封筒) を取得する再帰関数です。

このプロセスは、レイヤー L+1 の埋め込みがレイヤー L の埋め込みに依存するため、ネットワーク内のすべてのノードで並列に実行されます。したがって、実際には、メッセージの受け渡しを実行するために、あるノードから別のノードに「移動」する必要はありません。

注: エッジ ニューラル ネットワーク出力 (黒いエンベロープ) の合計は、出力の順序とは無関係です。

最終的なベクトル表現の用途は何ですか?

近傍集約/メッセージ パッシング プロセスを複数回実行した後、各ノードの再帰ユニットは新しい埋め込みセットを取得します。さらに、複数のタイムステップ/ラウンドのメッセージ パッシングの後、ノードは自分自身と近隣ノードの情報 (特徴) をより深く理解できるようになります。これにより、グラフ全体のより正確な表現が作成されます。

パイプラインをさらに進めるか、単にグラフを表現するために、すべての埋め込みを加算して、グラフ全体を表すベクトル H を取得できます。

隣接行列を使用するよりも H を使用する方が適しています。隣接行列は、グラフをどのように変形してもグラフの特性や固有のプロパティを表すことはなく、ノード間のエッジ接続のみを表すためです (場合によってはそれほど重要ではありません)。

要約すると、すべてのノード再帰ユニットの最終的なベクトル表現を合計し (もちろん順序とは無関係)、結果のベクトルを他の作業への入力として使用したり、単にグラフを表現したりします。このステップは次の図のようになります。

これは、メッセージの受け渡しを n 回繰り返した後に、埋め込みベクトルが完全に更新された最終グラフです。すべてのノードのテーブルを作成できます。これらを足すとHになります。

グラフニューラルネットワークを実装するための4つのステップ

GNN の使い方は非常に簡単です。実際、それらを実装するには次の 4 つのステップが必要です。


  1. グラフが与えられたら、まずノードを再帰ユニットに変換し、エッジをフィードフォワードニューラルネットワークに変換します。
  2. 次に、すべてのノードに対して n 個の隣接ノード集約(つまり、メッセージの受け渡し)を実行します。
  3. 次に、すべてのノードの埋め込みベクトルを合計してグラフ表現 H を取得します。
  4. 最後に、H を完全にスキップしてより高いレベルに直接移動することも、H を使用してグラフの固有のプロパティを特徴付けることもできます。

まとめ

これで、グラフ ニューラル ネットワークがどのように動作するかが明確に理解できました。 GNN はグラフ ノード間の依存関係をモデル化する上で強力なパフォーマンスを発揮するため、ソーシャル ネットワーク、ナレッジ グラフ、推奨システムで広く使用されています。ソーシャル ネットワーク グラフを例にとると、GNN はコンテンツの推奨において優れたパフォーマンスを発揮します。たとえば、ユーザーが同様の政治的傾向を持つ別のユーザーをフォローしている場合、GNN をノード分類に使用して、Web サイト上の特定のコンテンツを上記のユーザーのニュース フィードに送信できるかどうかを予測できます。GNN を「推奨フォロー」に使用すると、システムはユーザーが属する業界を考慮して、潜在的な接続を提供できます (エッジ分類)。

グラフディープラーニングは実は非常に興味深いです。この記事のハイライトは、いくつかの視覚的なグラフを使用してグラフニューラルネットワークの基本的な概念を紹介することですが、GNN を徹底的に理解したい場合は、自分でコードを書いて試してみるのが最適です。

<<:  2022年にロボット工学の急成長を支える5つの要因

>>:  Kevin P. Murphy の「確率的機械学習: 上級」が PDF でダウンロードできるようになりました。

ブログ    
ブログ    
ブログ    

推薦する

米国でレベル4自動運転システムの一部がリコールされた。Pony.aiはどんなミスを犯したのか?

自動運転車が交通事故に巻き込まれるのは今回が初めてではない。しかし、今回のPony.aiによるL4...

ほんの数行の Python コードで、将来の子供がどのような外見になるかを予測できますか?強力な人工知能

今回はBaidu Smart Cloudの顔認識機能とPythonを組み合わせて実験してみました。結...

スマートシティが公衆衛生危機の影響を緩和する方法

IETスマートシティジャーナルに掲載された論文「COVID-19パンデミック:新たな流行に対応するた...

...

OpenAIの創設者サム・アルトマンが解雇されてから24時間後

ChatGPTを開発するOpenAIは金曜日、CEO兼創設者のサム・アルトマン氏を解雇したが、彼の突...

「手を自由にする」は夢ではありません! AI がソフトウェア テストの未来を形作る 5 つの方法...

人工知能は今日最も注目されている流行語であり、その発展により企業や業界は情報に基づいた意思決定を行い...

...

信頼とセキュリティの分野におけるデータサイエンスの典型的な 7 つの使用例

信頼とセキュリティとは何でしょうか? 現在の世界ではどのような役割を果たしているのでしょうか? 多く...

MIT博士課程修了者で『太極拳』の著者胡淵明氏が中国に戻り、グラフィックスプログラミングに重点を置いたビジネスを始める

MIT 博士号取得者であり太極拳の著者でもある胡元明氏は、学界から産業界へスムーズに移行しました。胡...

Google Brain の新たな研究: 強化学習はどのようにして音で観察することを学ぶのでしょうか?

人間は、脳内の神経系が外部環境の変化に継続的に適応するためにその構造を変える能力を持っていることを証...

アルゴリズム図: 2 つのスタックを持つキューを実装するにはどうすればよいでしょうか?

[[348375]]この記事はWeChatの公開アカウント「Java Chinese Commun...

...

マイクロソフト、Windows 10を開発者向けAIプラットフォームに

人工知能の人気が高まるにつれ、あらゆるテクノロジーメーカーが自社の製品やサービスに人工知能というラベ...

Google のコード生成システムはプログラマーの半分を「飲み込んだ」のでしょうか?人類は長い間AIに「負けて」きました!

著者: 徐潔成最近、センセーショナルなAlphaGo囲碁ロボットを発売したDeepMindが再び大き...

Google AIが新世代の「物体検出」システムをリリース

[[319182]] 3月19日、Google BrainとAIチームは今週、EfficientDe...