拙著『グラフニューラルネットワーク』が重版して第 5 刷となりました。皆さまありがとうございます!
【重版速報🎉🎉🎉🎉】
— 講談社サイエンティフィク🖋️📔 (@kspub_kodansha) 2024年8月1日
機械学習プロフェッショナルシリーズの重版が決まりました😆ご愛読ありがとうございます‼️
松井孝太・熊谷亘『転移学習』【4刷】 https://t.co/Qic24KAwxD
佐藤竜馬『グラフニューラルネットワーク』【5刷】 https://t.co/Peqn1ZQavo pic.twitter.com/VBkNp2Uwjj
拡散モデルと最適輸送(最適輸送第 5 刷)や GNN の最新動向(グラフニューラルネットワーク第 3 刷)でもやりましたが、重版感謝に感謝して書き下ろし専門記事を投稿します。
本稿では深層学習で部分空間を扱うときは射影行列を考えるとよいという話をします。
紹介する基本的なアイデアは On the Expressive Power of Spectral Invariant Graph Neural Networks [Zhang+ ICML 2024] に基づいています。単純な話なのですが、奥深さも兼ね揃えた良い話なので取り上げることにしました。
目次
部分空間を考えるモチベーション
データを部分空間として表すことがしばしばあります。
とても分かりやすい例は単語ベクトルの集合です [Ishibashi+ NAACL 2024]。こうすることで、和集合や共通部分などの操作を自然に行えるほか、集合どうしの類似度も平面とベクトルのコサイン類似度を用いてきれいに定義することができます。
例えば、"We are the king and queen" と "We are the royalty" という文は似ていますが、単語ベクトルのリストとして単純に比較すると遠いと判定してしまいます。部分空間として表現することで、"king and queen" が表す平面と "royalty" の方向が沿うので、良い感じに比較できるようになります。
別の例はグラフ上の信号を表す部分空間です。グラフは「グラフ上の滑らかな信号を表す部分空間」や「グラフ上のノイジーな信号を表す部分空間」などを用いて表現できます。「グラフ上の滑らかな信号を表す部分空間」はグラフの全体像をうまく表現できているので、辺の集合など局所的な要素の集合で表すよりも性能がよくなることがしばしばあります。
例えば、グラフを入力として受け取ったとき、そのグラフ上での滑らかな信号の部分空間を計算して、この部分空間をグラフの特徴とし、それを後段のニューラルネットワークに渡す、といった処理が考えられます。そうすることで、後段のニューラルネットワークは入力グラフにどういうクラスタ構造があるかなどを利用してタスクを解けるようになります。
部分空間を扱う難しさ
しかし、深層学習で部分空間を扱うのは一筋縄ではいきません。大きな問題は、部分空間を計算機上で表現するのが難しいということです。
1 次元部分空間の場合、「 の方向」というように、代表的な単位ベクトル
を用いて表現することが考えられます。しかし、この表現は一意ではありません。この 1 次元空間は「
の方向」としても表現できます。
例えば、3 次元空間のうちの 1 次元部分空間を考えたとき、「 の方向」という部分空間は、「
の方向」とも表されるということです。
この表現を後段のニューラルネットワークに渡したとしましょう。ニューラルネットワークはベクトル を受け取ったときと、ベクトル
を受け取ったときで、異なる応答を返すかもしれません。この 1 次元部分空間の応答としては、どちらを使えばよいのでしょうか。また、これまでは入力として部分空間を与える場合を考えてきましたが、部分空間を予測したい(出力したい)とすると、ニューラルネットワークへの教師データとしては
と
のどちらを使えばよいでしょうか。何も考えずに両方を訓練データに入れて二乗誤差で訓練してしまうと、その平均であるゼロベクトルを出力するようになってしまいます。
これは、1 次元部分空間の方向を表すベクトルというものが、well-defined(数学用語)でないことが本質的な原因です。本質的に同じものを入力しているのに異なる結果を返すとき、モデルは不変ではない (non-invariant) と言います。GNN の最新動向でも紹介したように、不変なモデルを設計することは機械学習の研究、特にグラフニューラルネットワークでは重要なトピックです。本稿の冒頭で述べた元論文 On the Expressive Power of Spectral Invariant Graph Neural Networks [Zhang+ ICML 2024] のタイトルにある invariant というのはこのことです。不変 (invariant) な、つまり同じ部分空間を入れたら同じ結果が返ってくるような、ニューラルネットワークおよび表現を見つけたいです。
この議論は高次元の場合も成立します。例えば、正規直交基底を部分空間の表現として用いたいかもしれませんがこれは well-defined ではありません。上述のように、基底の符号が定まりません。しかも、高次元では基底を回転させても同じ部分空間を表すので、より問題は複雑になります。
部分空間は射影行列で表現するとよい
部分空間は射影行列で表現するとよいです。射影行列は部分空間にとって一意なので well-definedです。
n 次元空間中の d 次元部分空間の正規直交基底を並べた行列を とすると、射影行列は
です。行列
がこの部分空間の良い特徴量(表現)になります。
射影行列を使えばうまくいく理由をごくごく直観的に述べると、 は「二乗」しており、
であるように、二乗することで符号が統一されます。
例えば、「 の方向」だとすると、射影行列は
です。これは、逆方向のベクトル を用いて計算しても同じ値になります。
高次元部分空間において回転がある場合にも、回転行列は転置(逆回転)をかけると元に戻るので、やはり「二乗」すると回転成分が統一され、射影行列は一意になります。
後段のモデル(多層パーセプトロンなど)に渡すときには、射影行列 の要素を一列に並べた
次元ベクトルを用いればよいです。
1 次元部分空間を表現するとき、もともと 次元の表現を用いていたのに、それよりもはるかに次元の大きい
次元のベクトルを使うと、かえって自由度が増えそうですが、実はそうではなく、これは必要十分な自由度で、一意な表現になっています。射影行列は表面的には
次元ですが、ランクが制限されているので自由度はそれほど高くありません。1 次元部分空間は
次元、一般に d 次元部分空間は
次元の多様体をなすことが知られています。
n 次元空間中の d 次元部分空間( ランクが
の射影行列)の集合のことをグラスマン多様体 (Grassmannian) といい、幾何学の分野で古くから研究されています。より詳細な定義や数学的な構造については Grassmannian - Wikipedia などを参照してください。
On the Expressive Power of Spectral Invariant Graph Neural Networks [Zhang+ ICML 2024] では、グラフラプラシアンの固有空間を射影行列 で表し、
およびその固有値を辺
の特徴量として用いるグラフニューラルネットワークのアーキテクチャを提案しています。この方法により、「グラフラプラシアンの低固有値の固有空間」=「グラフ上の滑らかな信号を表す部分空間」の情報をグラフニューラルネットワークに取り入れることができます。論文ではこの方式を用いることで表現能力が向上することが示されています。
おわりに
一意に表現できると色々と嬉しいので、部分空間を計算機上で扱う必要が生じたらとりあえず射影行列を考えてみるのは良い戦略だと思います。
より抽象的な教訓としては、表現やモデルが well-defined になっているか、不変になっているか、ということは、筋の良いモデルを設計するために常に気にかけておくと良いでしょう。
本稿では、On the Expressive Power of Spectral Invariant Graph Neural Networks [Zhang+ ICML 2024] の細かなところまでは紹介できませんでしたが、『グラフニューラルネットワーク』の第 6 章と第 8 章を読めばこの論文もスムーズに読み進められるようになっていると思います。この論文は ICML 2020 の傑出論文賞 (outstanding paper award) を受賞した On Learning Sets of Symmetric Elements [Maron+ ICML 2020] の著者である Haggai Maron のグループの論文で、品質も高いので、興味を持った方は読んでみることをおすすめします。
最後に、本稿に興味を持った方はぜひ『グラフニューラルネットワーク』も読んでいただけると嬉しいです。
追記:[Ishibashi+ NAACL 2024] を [Kobayashi+ NAACL 2024] と誤記していたのを修正しました。失礼いたしました。
連絡先: @joisino_ / https://joisino.net