GNNのエッジ特徴量と多関係グラフ|RGCNとアテンション連結の設計
これまでのGNNの説明では、グラフは単純な隣接関係のみを持つ単純グラフを前提としてきました。しかし実際の問題ではエッジに種類や特徴量が付随することが少なくありません。本記事では、複数の関係型(エッジ種別)を持つ多関係グラフへのGNNの拡張方法と、連続的なエッジ特徴量をメッセージパッシングに組み込む設計を解説します。
多関係グラフとエッジ特徴量|単純グラフを超えたGNNの必要性
単純グラフの仮定とその限界
これまで扱ってきたGNNは、グラフのエッジが均質(すべて同じ種類の隣接関係)であることを暗黙に仮定してきました。しかし現実の多くの問題では、エッジに種類や属性が存在します。
代表的な例として知識グラフがあります。知識グラフでは「東京 → [首都である] → 日本」「水分子 → [含む] → 酸素原子」のように、ノード間の関係型(述語)がエッジに付与されます。このような多関係グラフ(multi-relational graph)では、異なる関係型を区別してメッセージパッシングを行う必要があります。
流体工学の文脈でも同様の状況が生じます。プラントの配管ネットワークでは、エッジが主配管・支管・バイパス管といった種別を持ちます。非構造格子では、境界エッジ・内部エッジ・対称境界エッジの区別が重要です。これらを単純グラフとして扱うと、エッジ種別に応じた物理的な挙動の違いが失われてしまいます。
多関係グラフの定式化
多関係グラフは と表します。 はノード集合、 はエッジ集合、 は関係型(エッジ種別)の集合です。各エッジ は始点ノード 、終点ノード 、関係型 の3つ組で表されます。 を関係型 におけるノード の近傍集合とします。
関係型グラフ畳み込みネットワーク(RGCN)の設計とパラメータ共有
関係ごとに変換行列を定義する
多関係グラフに対する最初の系統的なGNNアプローチが、Relational Graph Convolutional Network(RGCN)[Schlichtkrull et al., 2017] です。RGCNのアイデアは単純で、関係型 ごとに異なる変換行列 を用意し、それぞれの関係に対するメッセージを別々に集約します。
ここで は正規化関数であり、前の記事で解説した対称正規化()や平均正規化などが適用できます。式(1)の本質は、関係型ごとに独立した線形変換を行い、すべての関係にわたって和を取ることです。和を取るので、関係が複数であっても、最終的なメッセージの数はひとつです。
この構造は流体マルチフィジクスシミュレーションのグラフに対応させることができます。熱流体解析では、節点間のエッジが「流体の対流」「固体の熱伝導」「固液界面の熱伝達」の3種類に区別されます。それぞれに異なる物理スケールと伝達様式があるため、関係型ごとに変換行列を分けることは物理的に自然な設計といえます。
パラメータ爆発の問題
RGCNの課題として、関係型の数 が増えるにつれ、学習パラメータ数が線形に増加することがあります。知識グラフでは数百〜数千の関係型を扱うことがあり、その場合は変換行列 が大量に生成されます。学習データが限られる中でこれだけ多くのパラメータを学習しようとすると、過学習が生じやすく学習も遅くなります [Schlichtkrull et al., 2017]。
基底行列によるパラメータ共有
この問題を解消するために、Schlichtkrull et al. [2017] は基底行列(basis matrices)によるパラメータ共有を提案しました。 個の基底行列 を全関係型で共有し、各関係型の変換行列 はその線形結合として表します。
ここで は関係型 に固有の結合係数であり、 とすることでパラメータ数を大幅に削減できます。直感的には「すべての関係型が共通の『基底変換』の組み合わせで表現できる」という仮定を置いていることに相当します。
式(2)を式(1)に代入すると、基底共有付きRGCNの集約式は次のようになります。
ここで は基底行列をスタックしたテンソル、 は関係型 の結合係数ベクトル、 は のi番目の方向に沿ったテンソル積を表します。
別の見方をすると、この基底共有アプローチは「各関係型の埋め込みと、全関係にわたって共有されるテンソルを学習する」ことに相当します。学習パラメータ数は ( は埋め込み次元)となり、 のときにパラメータを大幅に削減できます。
RGCNの拡張と応用
RGCNのアーキテクチャはさまざまな形で拡張されています。
| 手法 | 説明 |
|---|---|
| Zitnik et al. [2018] | パラメータ共有なしのRGCNを薬剤・疾患・タンパク質の多関係データセットに適用 |
| Marcheggiani and Titov [2017] | 言語の依存関係グラフの解析に同様の戦略を適用 |
| Teru et al. [2020] | RGCNスタイルの集約とアテンションを組み合わせる |
エッジ特徴量をアテンションに組み込む方法
離散的な関係型を超えた汎用的なアプローチ
RGCNは関係型が離散的(有限個のカテゴリ)の場合に有効ですが、エッジ特徴量が連続値ベクトルである場合には直接適用できません。式(1)から分かるように、RGCNにおけるメッセージの計算では各エッジの型に対して固定した を使うだけであり、エッジ特徴量の大きさを扱わないからです。非構造格子の格子点間距離、エッジ面積ベクトル、面の法線ベクトルといった幾何学的特徴量がこれにあたります。
より汎用的なアプローチとして、エッジ特徴量をメッセージパッシング時に近傍の埋め込みと連結する方法があります [Sinha et al., 2019]。任意のベースとなる集約関数 に対して、集約式を次のように変更します。
ここで はエッジ に付随する任意の特徴量ベクトル、 はベクトルの連結を表します。 には、これまでの記事で解説した平均集約、セット集約、GATなどを使うことができます。
この手法の利点はシンプルさです。エッジ特徴量を近傍の埋め込みに連結するだけで、あらゆる集約関数に対してエッジ情報を活用できます。
流体シミュレーションへの応用
非構造格子を用いた流体シミュレーションでは、格子点(ノード)間のエッジに幾何学的な情報が付随します。典型的なエッジ特徴量として次のものが挙げられます。
| エッジ特徴量 | 物理的意味 |
|---|---|
| 格子点間距離 | 拡散フラックスの離散化に関わるスケール |
| 面法線ベクトル | 対流・拡散の方向性の情報 |
| 面積(2次元では辺の長さ) | フラックスの重み付けに使われる |
| 境界フラグ | 壁面・流入・流出の区別 |
式(4)の枠組みでこれらのエッジ特徴量を近傍ノードの埋め込みと連結してから集約することで、GNNが格子のトポロジー情報だけでなく幾何学的な情報も活用できるようになります。これは非構造格子上でのサロゲートモデル構築において有効です。
アテンションとの組み合わせ
式(4)でエッジ特徴量を連結した後に、ベース集約としてGAT(Graph Attention Network)を使うことで、エッジ特徴量に基づいてアテンション重みを計算することができます。この組み合わせは近年の研究で高い性能を示しており [Sinha et al., 2019]、離散的な関係型と連続的なエッジ特徴量の両方を統一的に扱えるという点で実用上も優れています。
RGCNと式(4)の手法の使い分けをまとめると次のとおりです。
| 条件 | 推奨手法 |
|---|---|
| 関係型が離散的・有限個 | RGCN(パラメータ共有あり) |
| エッジ特徴量が連続ベクトル | 連結 + 任意のAGGREGATEbase |
| 両方が混在 | 連結アプローチで統一的に扱う |
さらに深く学ぶための書籍
本記事のテーマをより深く学びたい方には、以下の書籍をおすすめします。
- Graph Representation Learning(William L. Hamilton, Morgan & Claypool, 2020):本記事の内容の原典であり、RGCNからエッジ特徴量の扱いまで体系的に解説しています。GNNを学ぶ出発点として最適な一冊です。