前回、複雑なデータを分析するためのモデルとしてグラフニューラルネットワーク(GNN)を紹介しました。 それではGNNがどのように機能するかを詳しく見てみましょう。
1.グラフのデータはどんな構造を持ちますか?
表形式のデータとは異なり、グラフにはノード(交点)間にエッジ(経路)があります。非常に興味深いのは、次のように世の中の多くのものが、相互に関係する構造を持っているところです。
- 投資家の行動は金融市場で互いに影響を受けます
- ソーシャルネットワーク上で噂はすぐ拡まり、多くの人々の決定に影響を与えます
- インフルエンサーの行動により、一般の方々の嗜好が変化していくかもしれません
- あるマーケティング戦略は社内の他のマーケティング戦略の結果に影響を与えるかも知れません。
- 囲碁と呼ばれるボードゲームでは、盤上の一部の結果が他の部分に影響を与えます
こういった構造は次のグラフのように表示されます。このデータは公開されている「空手クラブ」のデータ(1)に基づいています。各ノードは、クラブの各メンバーを意味します。以下のグラフ(2)は、クラブ内の4つのグループを示しています。ノード間にはエッジがあり、この構造はデータの分析において非常に重要です。
- GNNモデルはどのように「学習」させるのですか?
各ノードはベクトルとして表されます(例:[0 1 0 0 5])。これは、機械学習の分野では「ノード特徴量」または単に「特徴量」と呼ばれます。モデルが学習する際、各ノードはお隣さんのノードから情報を取得し、この情報に基づいて更新されます。はい、とてもシンプルですね! お隣さんから情報を取得する方法の1つは、各お隣さんからの情報を「合計」することです。もう1つは、「平均」を取ることです。損失関数が収束するまで、これらの更新を繰り返します。
なお、グラフの構造を変えても、同じように合計や平均を取ることができます。このことが、GNNによりモデルを柔軟に設計することができる大きな理由です。
- GNNモデルはどのように「予測」ができますか?
GNNはモデルを訓練した後、グラフに基づいていろんな予測ができます。 GNNには、3種類の予測があります。
- ノード予測(node prediction):各ノードがどのクラスに属するかを予測します。訓練データはまずラベル(正解)に従って分類する必要があります。たとえば、上記の空手クラブでは、各メンバーは、上記に4色で示されている4つのチームのいずれかのメンバーとして分類される必要があります。
- グラフ予測(graph prediction):グラフの構造全体に基づいて、そのグラフ全体がどのクラスに属するかを予測します。たとえば、新しい抗生物質が、特定の病気の治療に効果があるかどうかを予測します。
- リンク予測(link prediction):各ノードが顧客または製品を意味する場合、顧客と製品の間のエッジは過去の購入を意味する可能性があります。グラフに基づいてより優れたノード特徴量を獲得できれば、あなたがどの製品をより好きかを正確に知らせるレコメンダーシステムができるかも知れません。
- 以下のチャートを御覧ください
以上のように、GNNがどのように機能するかご理解いただけたら幸いです。GNNは柔軟にモデルを設計できます。次回はどのようなGNNモデルが現在人気なのかを説明したいと思います。乞うご期待!
(1) Wayne W. Zachary. An information flow model for conflict and fission in small groups. Journal of anthropological research, pp. 452–473, 1977.
(2) SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS, 22 Feb 2017, Thomas N. Kipf & Max Welling