AWS Startup ブログ
【開催報告&資料公開】ML@Loft 第13回 「Graph Neural Network」(オンライン開催)
AWS 機械学習ソリューションアーキテクトの宇都宮 ( Twitter: @shokout ) です。本ブログでは、2020年7月3日に実施された ML@Loft 第13回 「Graph Neural Network」の開催概要を報告いたします。
ML@Loft は AWS 上で機械学習を開発・運用しているデベロッパー・データサイエンティストのための、コミュニティイベントです。2019年より月に1回、目黒の AWS Loft Tokyo で開催しておりましたが、第11回よりオンライン開催に切り替えて実施しています。第13回は Graph Neural Network (グラフニューラルネットワーク、以下 GNN)について、アカデミックから実業務への応用まで幅広い視点でお話いただく3名の方々をゲストにお迎えし、125名と多くの方々にご参加いただきました。
前半は、理化学研究所革新知能統合センターの前原さん、SyntheticGestalt の CTO 神谷さん、株式会社 yUNI の内橋さんより、それぞれ10分ずつのLT 形式、後半は視聴者の皆様から slido でいただいたご質問をもとにパネルディスカッションを行いました。
1. LT セッション
前原 貴憲 氏(理化学研究所革新知能統合センター) 「グラフニューラルネットワークの表現力」
前原さんは、理化学研究所 AIP で離散最適化ユニットのユニットリーダーとして離散構造、数値計算、機械学習やデータマイニング等の領域をご専門とされている第一線の研究者です。理論保証があるアルゴリズムが好きで、計算機で”綺麗に”計算できるものが研究の興味だそうです。アカデミック界隈でも盛り上がっている機械学習のトピックについて、第一線の研究者であるご登壇者の前原さんにご相談したところ、ご自身でも力を入れられており、ICML や CVPR など Top conference での論文採択数も多く、機械学習のビッグトレンドになっている GNN をご提案いただきました。
GNN は、端的にいうとグラフ構造を持つデータに対するニューラルネットワーク(NN)を幅広く指しています。GNN の最初の概念は2000年より前ですが、ここ5年ほどで再び注目度が高まり、多くのアーキテクチャが登場しています。例えば化合物毒性判定やSNSのユーザー属性(性別など)の推定、点群からのポーズ推定など、様々なユースケースに応用されつつあります。今回は GNN についてアカデミアの立場からなぜ流行っているのか、どんなことがわかっているのか、を中心にお話いただきました。
[Slides]
前原さんは、理化学研究所 AIP で離散最適化ユニットのユニットリーダーとして離散構造、数値計算、機械学習やデータマイニング等の領域をご専門とされている第一線の研究者です。理論保証があるアルゴリズムが好きで、計算機で”綺麗に”計算できるものが研究の興味だそうです。アカデミック界隈でも盛り上がっている機械学習のトピックについて、第一線の研究者であるご登壇者の前原さんにご相談したところ、ご自身でも力を入れられており、ICML や CVPR など Top conference での論文採択数も多く、機械学習のビッグトレンドになっている GNN をご提案いただきました。
GNN は、端的にいうとグラフ構造を持つデータに対するニューラルネットワーク(NN)を幅広く指しています。GNN の最初の概念は2000年より前ですが、ここ5年ほどで再び注目度が高まり、多くのアーキテクチャが登場しています。例えば化合物毒性判定やSNSのユーザー属性(性別など)の推定、点群からのポーズ推定など、様々なユースケースに応用されつつあります。今回は GNN についてアカデミアの立場からなぜ流行っているのか、どんなことがわかっているのか、を中心にお話いただきました。
GNNはなぜ(アカデミアで)流行っているのか?
まず、アカデミアの視点からは、GNN はやれることがかなりたくさんあるから。従来の NN の研究成果を流用し、GNN では更にグラフの情報をどう取り込むかといった自由度もあり、タスクに対してモデルを色々作り込んでベンチマーク性能を上げることができます。理論としては、関数解析や抽象代数、グラフ理論、信号処理、分散アルゴリズム、計算量理論など数学の幅広い道具で勝負できるという点も挙げられます。一方で私見として、「GNN が非グラフのアプローチやカーネル方などの従来手法と比較して GNN が大きく上回った感じは受けない」ともお話しされており、本トークでは、「GNN の表現力の限界として、現在までにわかっていること」に主眼を置いてお話いただきました。
グラフ付きの教師付き学習問題と GNN のアプローチ
普通の教師付き学習問題は、入力と出力のペア、X1、Y1 からXn、Ynが与えられて、入力に対して、出力を介す関数を学習します。一方グラフ上の学習は、入力がグラフ、もしくは、入力ベクトルがグラフの各頂点に乗っている、というどちらかのパターンにほぼほぼ分けられます。入力がグラフの前者の場合は、例えば化合物、たんぱく質の分子構造が与えられたときに、その分子構造をグラフと見立てて、「このグラフは毒があるか」を判定する問題。後者は、例えばソーシャルネットワークで、各ユーザの関係性を表すグラフがあり、それを使って男女推定を行う場合、グラフの頂点に付随するリンク、フォロー、フォロワーなどの関係性データの情報を使ってより精度よく推定を行いたい、といった場合です。
多くの機械学習アルゴリズムでは、ベクトルを入力にとります。GNN は、どうやってグラフをベクトルにエンコードするか、これを行う手段の一つです。2000年ごろには、グラフカーネルという言葉で研究されており、グラフに対して埋め込み写像を定義、または内積を先に定義して分解し埋め込みを作る方法です。グラフカーネルは実は今でも十分性能が出る手法です。一方 GNN は埋め込み写像自体を NN で学習によって求めます。
GNN を理解する上でグラフカーネルをまず理解しよう
GNN の話を考える際、グラフカーネルの話を理解していると実はすごくわかりやすくなります。
[典型的なグラフカーネルの作り方]
1. 各頂点ごとに近傍の部分グラフパタンを数える
2. 頂点ごとの係数ベクトル(ある頂点の近くに頂点が何個あるか)を各頂点の特徴量として使う
3. すべての頂点の2の合計をグラフ特徴量に使う
[典型的な GNN の作り方]
1. グラフの各頂点について、近傍頂点の情報(特徴量から計算される)を集約、非線型変換(学習による)を施す
2. 頂点ごとのベクトルを各頂点の特徴量として使う
3. すべての頂点の2の合計をグラフ特徴量に使う
見てわかる通り、グラフカーネルと GNN では2~3のアプローチが共通しており、注目した部分グラフのパターンの集約というフレームワークに乗っています。
グラフの表現可能性と、GNN で解くべき関数、GNN の構成
普遍近似定理
普遍近似定理が、グラフニューラルネットワークの表現力で一番強い結果です。「グラフ上の連続関数が精度よく近似できるような GNN が存在する」ということが示せます。NN はどんな関数も近似できるという定理のグラフバージョンです。「いろんな方法で証明できる定理 = 良い定理」これはまさにそういう定理で、様々な証明方法の中で前原さんはグラフ論を使って証明されています。ただ、この普遍近似定理を示すためには、元のグラフ頂点数がNのときに、サイズ N の近傍を全部考える必要があり、実用的には全く役に立たない(2^n^2通りで情報を集約するのは膨大な時間がかかる)です。そのため、
1. 実用的には、実際に使われている GNN としては、どのような関数を表現するのか
2. 表現したい関数があった時、どんな GNN を組めば良いのか?
という二つが最近のGNNの表現力に関する中心的な課題になっています。
GCN (Graph Convolutional Network) と GIN (Graph Isomorphism Network)
GNN の表現力として GCN を例に挙げていただきました。普通の多重パーセプトロンと似ていて、レイヤーごとに、頂点で平均をとる操作をしたものが GCN になります。GCN でうまく表現できるグラフというのは、例えば、隣り合う頂点同士で近い性質を持つ場合に平均化することで、ノイズが除去できて上手く表現できるグラフが考えられます。これは数学的に証明できて、低周波成分(滑らからかな成分)と、ノイズの和でかけるときは、GCN を使う方がグラフ構造なしよりも高い性能を達成することがわかっています。逆に、スムーズでは無い高周波成分に情報があると、精度が激減する、ということも示されています。
GCNも部分グラフ集約で見ることができますが、グラフの近傍を平均化するところを非線形にしたGraph Isomorphism Network (GIN) を作ると、グラフが同じかどうか判定するグラフ同型判定アルゴリズムを表現できます。もっと強くいうと、グラフ同型性が判定できないような関数に対して、GIN を使って任意の精度で近似できる(普遍近似定理)ことを示すことができます。
一般に、表現したい関数があったときに、例えば、各頂点の近傍の個数だけで決まる関数、固有値で決まる関数など、どうやってデータを集約したらいいかというパターンを決めると、それに対応する GNN が普遍近似定理をもつということが証明できます。このような関数解析のアプローチ以外にも、分散ネットワークを用いた全く違うアプローチでも、この GNN の表現が研究されています。
まとめと今後の展望
このように、一番広い意味の表現可能性、不能性はほぼ解決しており、GNN はグラフの関数としてなんでも表現ができるが、計算量が膨大になってしまう。現在は、どういう問題にどういうネットワークが向いているか、というところに研究の興味が移っていて、例えば、GCN はスムーズネスバイアスがある問題に強い、GIN は W 区別不能関数を上手く近似できる、関数の不変性に応じて普遍近似定理が成り立つ、といったことが証明されています。
最後に、GNN は NN の中でも特に統計的な学習理論があまり進んでおらず、この数年で、この関数を近似するために、どのくらいのサンプル数必要か、といった研究が進むはず、という今後の GNN 研究の展望をお話しいただき、ご発表を締めくくっていただきました。少し難しい話もありましたが、本日 GNN を考える上で理論的な全体像と研究の最前線のトピックを非常にクリアにまとめてお話いただきました。
Kotaro Kamiya 氏 “Virtual screening and compound representations”
続いて、SyntheticGestaltのCTO神谷さんより、GNNの応用と、Compound Representationsについて、Virtual Screeningとは何か、Compound Representationの問題に対してGNNを用いてどのように取り組まれているのか、GNNで解けるものの限界は、などについてお話いただきました。SyntheticGestaltでは、機械学習等を用いたライフサイエンスのアプリケーションのサービス開発に従事されています。
[Slides]
Virtual Screeningというのは、創薬目的で良い化合物を見つける際に計算機の力を使うというものです。通常はウェット実験で化合物のスクリーニングを行いますが、それをコンピューターの中でやろうというのが、Virtual Screeningです。
それから、もう1つのタイトルになっているデータの表現方法については、2つの概念があります。1つ目は、物理実体である化合物を計算機で扱えるようにするためにどのようなデータ形式にするのかというもの。2つ目は、データ形式を固定した後の表現学習で得られた特徴量のことです。どちらも目的としては、予測パフォーマンスの向上や、データ間の近接性や類似性の実現といったところに意図が置かれますが、ここでは Virtual Screening における Out-of-distribution (OOD) の課題に対するツールとして見ていきます。
データ形式の具体例を挙げると、こちらはニュース等で聞かれたこともあるかもしれないレムデシビルという化合物で、複雑な構造でリッチな情報を持っています。これを、コンピューターが扱える形に落とす段階で、情報を削ってグラフに落とすのか、あるい3次元のまま考えるのか、というデータの表現方法が存在しています。
次に、Virtual Screening のフローの具体例をご紹介いただきました。例えばの数字になりますが、合成が容易な10億化合物からスタートして、機械学習による化合物の性質予測で1万コンパウンドまで絞り込み、標的ごとの相互作用予測でウェット実験にかけるの100個まで絞る、といった枠組みです。
特に相互作用予測モデルについて補足すると「病気の原因となる悪いタンパク質がいて、それを薬剤となる化合物で阻害することで病気が治る」というような生化学的な仕組みをモデル反映しています。具体的には、相手となるタンパク質と化合物のペアを考えるマルチモーダルなモデルを使います。ここで化合物サイドの特徴抽出に GNN が使うことができます。
ML ベースの Virtual Screening に置いては、推論データのサイズが大きいことがメインのチャレンジになります。高々1万〜100万の学習データをもとに学習したモデルを使って、ナイーブに予測を掛けることは難しくなってきます。そこで、推論対象を選定するために、近接性・類似性というものを使うことを考えます。実際に、学習データと推論データ分布が異なるために正しい予測ができない課題があります。この課題に対して、推論に使えそうなコンパウンドを上手に検出できるように、データ形式や表現学習の工夫することが一つの打ち手になります。
ここで、DGL(Deep Graph Library) を用いて GIN と Infomax をベースとしたクラスタリングのデモをご紹介くださいました。学習データと推論データに重なりが多いと推論に使える候補が多くなります。なお、注意点として、グラフ表現と対応する GNN を使うことが昨今の流行りですが、主要なGNN や各種定理は直接は適用できません。化合物のグラフ表現においては、原子をノード、結合をエッジと対応させるため、labelled node、labelled edge となるグラフがベースとなるためです。(2部グラフを介した対応策はあります。)
理論的には、OOD は本質的に解けない問題ですが、実践的には、解きたいタスクやドメインに応じて仮定を置くことで自動化を導くモデル構築は実現できるかもしれません。この仮定のメタ探索において、比較的広いクラスのグラフを扱える GNN の持つ柔軟性により、自由度を持った試行錯誤ができるのではないかという結論を導いてくださいました。
内橋 堅志 氏 (株式会社 yUNI) 「Graph Neural Networks のビジネス応用可能性」
内橋さん (twitter: @uchi_k) さんは、マーケティングと機械学習の架け橋でサービス作りをする、株式会社 yUNI の代表です。また、nlpaper.challenge という会社や大学で NLP を扱う方々みんなでサーベイや研究を行うこと目的とした団体の運営もされています。yUNI は、昨年10月ごろ創業、社員2名のシード期のスタートアップです。設立以来、大企業からスタートアップ、研究機関などから受託開発をやってきました。もともとフリーランスのエンジニアとして個人で受けていた仕事を引き継ぐような形で、マーケティング系やその効果測定、パーソナライズ、グラフデータ、機械学習×マーケティングの領域でサービス開発をしています。グラフデータを実務で扱うケースはまだまだ少ないそうですが、今回はビジネス寄りの話として、マーケティングx機械学習、実世界のグラフの性質、Heterogeneous graph からの機械学習と実応用、論文の再現性、などの観点から GNN についてお話いただきました。
Graph Neural Networks のビジネス応用可能性 heterogeneous graph と論文再現性について
マーケティング領域には数多くのレイヤーがあり、機械学習が利用されているものも多くあります。マーケティング領域で使われるデータは、SNS のような他企業のデータもあれば、企業が蓄積している顧客の購買履歴データなど、そのデータの多くがグラフ構造を含んでいます。顧客の購買データについては、購買履歴や商品閲覧ログをもとにユーザと商品を結ぶ二部グラフとして考えることができます。商品をさらに企業やブランドまで広げて考えると、より広範囲のグラフデータがを考えることができ、これらのデータが潤沢に存在するマーケティング領域では、将来的に GNN が広く活用される可能性が考えられます。マーケティングのフレームワークの一例として RACE を取り上げて考えてみます。潜在客が顧客になって、継続的に関係を築くまで、ここでは Reach, Act, Convert, Engage の4つの段階があります。
RACE
1. Reach(インバウンド): SNS 施策のコンテンツマーケティング、SEO、メディアによってユーザーを自社に誘導する、いわゆるインバウンドの施策を行います。ここでの機械学習活用例として、コンテンツマーケティングの効果測定というのがあります。効果測定はデータマーケの根幹をなす非常に重要なもので、効果測定ができないとどのぐらい効果があったかがわからないために、継続的な予算投入が難しくなります。基本的には、どのくらい流入があったかを測定するためのKPI導入します。また、コンテンツのキュレーション、アプリ内での行動履歴やユーザーの意図(例えばどういう検索をしたいか)を推定する、いわゆるパーソナライズにおいて機械学習使います。
2. Act(関心を持たせる): 誘導した潜在顧客に対して、適切な施策や導線を設計します。潜在顧客の順位付け、潜在顧客の中でアプローチすべき人や会社を探すリードスコアリング、LP(ランディングページ)や自社サイトのコンテンツの最適化などがあります。
3. Convert(購買に動かす): 興味を持ってくれた顧客に、導線を引き実際に購入してもらう。セールなど動的な価格設定や、チャットボットを使った購入の簡易化などに機械学習が使われています。
4. Engage(顧客と良い関係を築く):顧客に継続的に購入や登録をしてもらい、良質な関係を維持することを目的にしています。最近はサブスクリプションで収益化する企業が増えていて、解約率、所謂チャーンを低く保つ、っていうことが非常に重要で、今最も注目されている分野です。「どの顧客に対してどんな情報をいつ伝えるか」といった部分の自動化(エンゲージオートメーション)や、カスタマーサポートのボット作成などへ機械学習が使われています。
マーケティングにおける効果測定は重要であるにも関わらずその難しさからなかなか導入が進んでいないことに着目し、yUNI では SNS を起点にしたコンテンツマーケの効果測定を支援しています。マーケティングの中でも、近年重要性を増しているのが、デジタルマーケティングっていう分野で、SNS や口コミサイトの評価や、その評価がコンバージョンにどう影響しているかを、どうやって評価するのか、という大きな課題があります。その中にも、偽のレビューの発見や、主要なアカウントの発見、顧客のセグメントなど、様々な機械学習の問題があり、yUNI では主に、ユーザー・ジェネレーティド・コンテンツ(twitter などのユーザーが生成したコンテンツ)についてその収集と解析を行うことで、これまで数値化しにくかったバイラル要素の効果測定を、業務として提供しています。
Heterogeneous Graph を用いた GNN
論文では大抵の GNN ベースのモデルは、入力が、単一のノードタイプとエッジタイプをもつ、近接なhomogeneous であるグラフが前提としていることが多いですが、実世界のグラフは、異なる特徴空間の様々なタイプのノードとエッジで構成されていて、実際、マーケティングで解析するグラフには、heterogeneous なものが多いです。例えば、共著ネットワークという有名なデータセットでは、著者と論文の二種類のノードタイプを持った二部グラフになっていますが、著者は大学名 MIT のような属性を持ち、論文の方には開催地や会議名といった属性がついていて、ノードに著者や論文といったことなる属性を持つものが含まれるグラフを heterogeneous graph といいます。例えば、EC マーケティングの場合、ファーストパーティの購買データ、顧客情報やアクセスログに加えて、サードパーティから興味関心データを購入したり、異なるドメインのノードタイプ、エッジタイプを連結した heterogeneous graph になりやすいデータの特性を持っています。この共著ネットワークの例だと、この heterogeneous graph で何が嬉しいかっていうと、単純に人と論文を結びつけて考えるだけでなく、間に複数のパスを考えることができます。著者 a1 が論文 P1 を投稿した ACL には、著者 a3 も論文 P2 も投稿している場合、a1 – P1 – ACL – P2 – a3 というパスがあって、a1 と a3 を隣接していると考えることができます。このような heterogeneous graphで の隣接関係の作り方をメタパスベースの隣接といいます。投稿論文のメタパスを通して、近接関係が定義できるという意味です。
WWW2019の「Heterogeneous Graph Attention Network (HAN)」という論文では、現実世界のheterogeneous graphに対して、メタパスの隣接関係を使って階層的なattentionで、いくつかのベンチマークで SoTA を達成しています。HANは、既存の graph attention network を heterogeneous graph に拡張したものです。こちらの例では、俳優、映画、映画監督、3つのノードタイプがあり、意味的な近接関係を考えてみると、映画 – 俳優 – 映画、映画 – 監督 – 映画 というメタパスが定義できて、このメタパスを通して、例えば m1 と m2 という2つの映画っていうのが隣接しているというふうに考えることができます。この論文では、メタパス近傍のノードレベルの重要度 (node-level attention) と、メタパス自体の重要度 (semantic-level attention) をそれぞれ学習します。例えば共著ネットワークの例では、「同じ会議で論文を発表した」ということが、「共著者である」というのと比べて、どれぐらい重視すべきかというのは、タスクによって変わってきます。そのため、node-level attention と semantic-level attention の2段階の階層が作られています。
Node-level attention
(メタパス近傍を重要度に応じて集約)
1. 共通空間への射影: ノードタイプが異なる heterogeneous graph において、変換行列をデザインして、異なるノードを共通の空間に射影
2. エッジの重要度の計算: 隣接するノードiとノードjに対して、メタパス近傍のノードレベルのattention、エッジ重要度を DNN で学習
3. 正規化したエッジ重要度: ノードペア間のアテンションを、softmax で正規化した重み係数を計算
4. メタパスに基づく特徴埋め込み: 全ての近傍ノードの集約を繰り返し、メタパスに基づく近傍埋め込みを得る
Semantic-level attention
(タスクによってメタパスの重要度が異なるため、メタパス重要度を semantic-attention として導入し、重要度に応じて集約)
1. 単層 MLP で node embedding を非線形変換し、埋め込みの類似度として重要度を計算
2. 正規化
3. メタパス重要度で aggregation
この手法を使うと、ノードレベル、メタパスレベルの重要度を見ることができるため、それらの解釈性が求められる場合に使えそう。メタパスの設計が必要なので、ある程度のドメイン知識は求められそうです。論文の実験結果では、メタパスの重要度が大体同じになっており、semantic fusion があまり意味ないような結果となっています。タスクとして、もっとメタパスがバリエーション豊かで、重要度が大きく異なるタスクで検討できる可能性はありそうです。
GNN 推薦論文の再現性
DNN 推薦界隈起こっている問題として、論文の再現性の話があります。RecSys 2019 の Best paperは、近年の DNN 系推薦手法を再現実装し比較した結果、古典的な手法にすら勝てないものがほとんどだった、というものでした。新規手法の出現頻度が高く、データセットが多岐にわたるために、SoTA が非常に追いにくくなってるという問題があります。KDD、WWW などの、top conference のDNN 関連論文18本追試して、再現できたのが半分以下の7本しかなく後は負けてしまった。そのため、正しいベースライン、古典的だが強力な手法を正しく調整して比較すること、実装や前処理、ハイパラをちゃんと公開することが求められています。
GNN でも再現性の問題はあり、最近になってグラフの正しいベースラインを作る取り組みが出てき始めました。「A Fair Comparison of Graph Neural Network for Graph Classification」という論文では、5つのモデルを、9つのベンチマークで再実験しています。構造情報がきちんと活用されているかどうかを、構造が関係ないベースラインと比較することで確認しようとしている取り組みです。また、「Open Graph Benchmark」は、大規模でかつ多様なタスクや領域をカバーしたベンチマークセットを提案していて、OSS的に運用されている取り組みです。一番注目すべきものとして「Benchmarking Graph Networks」という論文があります。既存手法では小規模なデータで評価されていることが多く、一般化可能なアーキテクチャが判定しづらい問題があります。しかし、graph regression/classification, node classification, link prediction という4つの代表的なタスクについて、ベンチマークに相応しいデータを選定して、既存手法で再現実験した論文です。既存手法で使われているデータセットが小規模すぎる、task specificではないかという問題に対して、GNNs、WL-GNNsの実験フローをきちんと作って比較しようと提案しています。node classification に関する結果として、グラフ構造を無視してMLPでモデル化するとスコアが低くなって、グラフ構造のモデリングが必要なタスクはありそうだということが見えており、(前原さんの話でも紹介のあった)表現能力が非常に高い WL-GNNs は WL-test と同等の識別能力を持つものの、最近の 3WL-GNN や RingGNN は GCN をスコアで下回るといった結果が出てきています。
GNN 論文の再現性のまとめとして、データセットが小規模だったり一般化が難しかったりして SoTA というものが追いにくいのは DNN 推薦と同じ課題であるがある程度は仕方ない側面もある。グラフカーネルを使った手法や、古典的な手法とのちゃんとした比較をもっと見てみたい。GNN 界隈全体に対して、コードが公開されている論文が多いために秩序が保たれているように感じられる、と述べていただきました。
2. パネルディスカッション
後半のお悩み相談会は、視聴者からのご質問、ディスカッションしたい項目を slido で募りながら、AWSのファシリテートによりパネルディスカッション形式で行いました。人気の高い質問や登壇者からの質問を中心に、 LTer の方々にお答えいただく形式で、後半のディスカッションも大変盛り上がりました。
Q: ベンチマーク研究が実応用の問題へ拡張された際に、GNN が使えるかどうかの見解はどう変わっていくのでしょうか
(理研AIP 前原氏)今出ている GNN はベンチマーク番長なんじゃないかという話。実際に GNN で解きたい問題とベンチマークで公開されている問題で、大分ギャップがある。
(yUNI 内橋氏 以下敬称略)GNN の表現能力が高いと夢のある論文は多いものの、実際に実問題で使うとなった際に、古典的な手法と比べて本当にプログレスがあるのか、正直疑問が残る。
(SyntheticGestalt 神谷氏)創薬の場合、そもそもタスク設定が間違っていることが多い、作りやすい或いは得られやすいデータに寄ってしまっている、などの課題がある。応用上は「解きたいタスクをカバーできるようなデータをどのように作っていくのか」が重要。
Q: どのようなライブラリで実装するのが一般的なのでしょうか
(前原)私は実装をほぼ研究レベルしかやらないので、割と大規模な問題に使う場合、どういう手法がいいかよくわからない。私が論文で書いたのはPyTorchを使ってゴリゴリと。もっと楽できる方法はありますか?
(内橋)僕も基本 PyTorch で、神谷さんが言及されていた DGL は使ったことありますが、まだアルファかベータぐらいだと思うので、実際使うとなったら、PyTorch になるのかな。
(神谷)基本は PyTorch です。GNN は複雑ではないので、1から書いた方が楽かと思う。
(前原)NN って、実装そんなに重くないですね。決定木系の方が、はるかに実装が辛い。
(神谷)それもある意味、PyTorch や TensorFlow のおかげっていうところはありますね。今後は Bayes Deep Learning 辺りのフレームワークも充実してくると嬉しい。
Q: (前原さんのスライドより)「GCNはスムーズバイアスがある問題に強い、GINはWL区別不能関数を近似できる、関数の普遍性に応じた普遍近似定理のGNN活用範囲として分かってきた」これらは実用的なグラフでいうと、どのようなものにあたるのでしょうか
(前原)今ベンチマークに転がっているのは、大体スムーズバイアスが効いている問題。質問にもあった「長距離作用が働く問題はあるのか」という話については、ベンチマークでそういう問題を見てないので、多分、研究の土台にまだ上がってないと思う。実際は、長距離相関が効く問題が整ってないので、よくわからない。そういった問題もグラフで表現するのが適しているのかどうか。
(神谷)例えば、コンパウンドにおいては、一見グラフ上離れていても、立体構造を作ると、近くなったりするような原子達があって、そういう場合はグラフ上での長距離関係が大事だったりする。立体構造を表現したい場合はノード上に、座標や物性情報をのせる。そのようなデータ表現に対しては GIN などで示されている性質は未証明されておらず、GNN がどうカバーしていくのか、理論側の次のチャレンジだと思う。
Q: ベンチマーク論文の妥当性についてどう思われますか?
(神谷)AI 創薬では、数千万から数億のウェット実験の Go/NoGo 意思決定材料として、機械学習モデルの予測結果やアセスメント結果を使う。従って、ベンチマークに対しても厳しく評価を行う文化は形成されていると感じる。
(内橋)小さいデータサイズでしか実験してない論文が結構ある。きちんとした実験を中規模から大規模なデータセットで行ない、みんなでコンセンサスが取れるようになると、SoTA にももっと意味がでてくると思う。そうでない SoTA はちょっと懐疑的。
(前原)私も論文に出ている SoTA は意味がないと思っているが、Kaggle の評価は結構意味があると思う。Leader board も分かれているし、何度もチューニングできないし。最近コンペでも GNN を見るようになったけど、実際に Kaggle の結果がどれくらい有効に働いているのかを聞けると嬉しい。
Q: GNN を加工物に適応した際に、うまくワークするタスクとうまくいかないタスクにはどのようなものがあるのでしょうか。また、両者のタスクの本質的な違いは何だと考えていますか?
(神谷)立体構造を考慮しないと、解けない問題か否か、が本質的な違い。立体構造を考慮しなくていい場合、例えば統計量で十分なパターンであれば GNN がワークする可能性は高い。立体構造を考慮しなきゃいけない場合は、既存の GNN がワークしないので、そもそもグラフでない表現を考えるアプローチが必要になる。
Q:「初学者がまず読むべき論文」は?
(内橋)GINの論文はすごく勉強になった。
(前原)あれはいい論文、読みやすい。あと、理論方向にいきたいか、実用方向にいきたいか、で多分読むものが分かれるんですが、最近GCNを提案したKipsが書いたD論 (Deep learning with graph-structured representations ) が、すごくよいチュートリアルになっているので、それを読むのがおすすめ。
(神谷)今は理論が結構整理されているので、理論から始めると捗る。経験的に得られたアーキテクチャは後に否定されたりするようなこともあって、トップダウンに理論から入っていく方が良いかなと思う。
(内橋)割と実装から入ることが多かった。GNNは実装がそんなに難しくないので、普段プログラミングされる方であれば、リバースエンジニアリングというか、コードから勉強した方が、もしかしたら目的に沿うかもしれない、論文自体も大体コードを公開しているので、「Papers with code」というサイトも結構参考になる。
Q: 3次元構造をグラフで表現する試みは行われてきているのでしょうか。2次元とは違う難しさが存在するのでしょうか
(前原)今回私が紹介したのは、グラフは最初にgivenでGNNする話でした。ポーズ推定だと、点群からグラフを作ってGNNと、グラフを作る工程が1個増える。自由度が増えて大変になる気がするのですが、実用上「こういうふうにグラフを作ればいい」というのありますか?
(神谷)分子表面を考える場合は、ベクトル場が1個のデータ点になると思っていて、そのデータ形式を扱えるNNが出てくると革命的だと思う。
Q: (普遍近似定理などで)計算量が莫大になるのを防ぐテクニックはあるのでしょうか(近似手法や並列計算をする方法など)
(前原)理論を追っているとない。例えば、全てに対する普遍近似をあきらめて、特定の問題の普遍近似のためにこの計算が必要、と、何かをあきらめるしかない。自分が解きたい問題で、諦める部分をうまく見出すというのが答え、まだ城跡としては整ってないのでは。
Q: 今日のセッションを振り返って
(内橋)ベンチマークの話については、今年の6月ごろから一気に論文等が出てきたイメージ。その辺を追うと面白いと思うし、自分自身も今後も注目していく。
(神谷)ソフトウェアエンジニアリングの中でも、重要な概念として、アルゴリズムとデータ構造がある。ニューラルネットワークにも同様の議論があって、グラフというデータ構造を使ったときに、どれがアルゴリズム、どこのモデル、クラスを使えばいいのか、一方で、現実世界の問題をどうグラフで表現し、どのデータ表現を使うのか、どういう関数を使えばいいのかというのが最も重要かと考える。
(前原)GNNの分野は発展途上で主に研究のフェーズ、しかしベンチマークがあんまりそろっていない。研究者の立場からすると、こんな問題が解けると嬉しいとか、こういう問題を解いて、実用上困った、とかそういう情報があるとすごく嬉しい。なぜこの問題は解けなかったのか考えることで、議論が先に進んでいくので、こういう問題にGCN使ったけど上手くいかなかったとかあれば、共有していただけるととても嬉しい。
また、Technicalな質問については、なんとパネルディスカッションが始まる前に前原さんからTwitter上でお答えいただいていましたのでそちらをご参照ください。
https://twitter.com/tmaehara/status/1278990133979607043?s=20
Q. グラフの周波数とは?
A. グラフラプラシアンの固有値のことです.グラフがパスのときは離散フーリエ変換とぴったり一致するので,これはその一般化になっています.https://jstage.jst.go.jp/article/essfr/8/1/8_15/_pdf をご覧ください.
Q. 平均化と相性の良くない場合にどうすれば?
A. 高周波数を残すような情報集約をします.具体的には Skip Connection を入れる,A をかけるかわりに (I – A) をかける,チェビシェフフィルタを設計する,など.低周波を除いたあとのデータに予測をかける(Gradient Boosting)とかも強いです.
Q. どうやって相性を判定する?
A. ドメイン知識を使うのが本筋(例:SNSでリンクがあるところは同性.恋人関係ネットワークでリンクがあるところは異性,etc).データが手元にある場合は,隣り合う頂点同士の特徴量の分布を見る(いわゆるアソータティビティ分析)も役に立つかも.
Q. 具体例
A. スムーズネスバイアス:複雑ネットワーク系は大体そう WL区別不能:これは難しい.実データでこれが本当に必要なものは見たことがないです 普遍性に応じた近似定理:例えば連結性が重要な問題でサイクル型集約が強いことが言えますが,実際それで性能向上した論文が出ています.
Q. 巡回セールスマン問題が分類とは?
A. 回帰と言った方がよかったですね(実用上分類タスクが多いのでそう言ってしまいました).h(G) = 「G の TSP 値」を予測しにいく話のつもりでした.
Q. 画像におけるCapsuleNetのように,グラフデータに特化したNNは?
A. まだない気がします.数年以内には出てて不思議でないです.もしもう出ていてわたしが見逃していても許してください(トレンド早すぎ問題)
Q. GNN が爆発的に増えた原因論文
A. たぶん GCN https://tkipf.github.io/graph-convolutional-networks/.個人的には GIN https://arxiv.org/abs/1810.00826 もエポックメイキングだったと思ってます.#mlloft
Q. グラフの場合の train/test split
A. 頂点分類であれば頂点をランダムに分割するのが https://arxiv.org/pdf/1401.3441.pdfと関連するので筋が良さそうです(が,ランダム部分集合の性質が出ちゃうので正解かどうか?).グラフ分類であれば入力のグラフを適当に分ける,みたいなのがやられています.
Q. GNNの性能評価が小規模データでやられる理由
A. 大規模ネットワークを大規模に揃えなきゃいけないの難しいんですよね(画像は写真一発で作れるのが本当に強い……)
Q. グローバル構造を取り出すにはどういうデータが必要?
A. 既存手法らは「ローカルを積み重ねてグローバルを見る」動きをするので,グローバル構造特化の話はあまりないです.最近グローバルパターンで集約する話を考えているので,論文になると嬉しいなあ
Q. グラフ構造そのものを予測する問題はある?
A. 古典的な「リンク予測問題」が一番シンプルな例ですね.グラフ構造を出力させる問題だと,生成系のタスクは盛り上がっていますね(それっぽい化合物を生成する研究)
3. おわりに
まだまだ研究フェーズにある GNN ですが、グラフの表現可能性など理論的にわかってきてたこと、創薬やマーケティングなどの実応用の検証でわかってきたこと、ベンチマークにおける課題、など、様々な角度からディスカッションしていただきました。後半のパネルディスカッションも話題が尽きず、登壇者の方々にも親身にご回答いただき大変盛り上がりました。ご参加いただきましたみなさま、どうもありがとうございました。AWS でも今回ご紹介いただいたように Amazon SageMaker から DGL (Deep Graph Library) を気軽にご利用いただくことができますので、こちらの Blog などをご参考に、ぜひお試しいただければ幸いです。今後もオンライン開催も含め継続していきますので、Twitter (#mlloftハッシュタグ)やconnpass (ML@Loft)などでも情報をウォッチしていただければと幸いです。
このブログの著者
宇都宮 聖子 (Shoko Utsunomiya)
AWS 機械学習ソリューションアーキテクト。バックグラウンドは光半導体の量子情報・量子コンピュータの研究者。AWS 上の機械学習と量子コンピュータのワークロードをサポートさせていただいています。好きなサービスは Amazon SageMaker と Amazon Braket。( Twitter: @shokout )