Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kaggle参加報告: Champs Predicting Molecular Properties

Kaggle参加報告: Champs Predicting Molecular Properties

Kaggleコンペティション「Predicting Molecular Properties」で13位になった時の解法の紹介と、上位ソリューションの紹介です。

Kazuki Fujikawa

December 13, 2019
Tweet

More Decks by Kazuki Fujikawa

Other Decks in Science

Transcript

  1. Kaggle参加報告: Predicting Molecular Properties (Top solutions & 13th place solution)

    藤川 和樹1, 望⽉ 正弘2 AI本部AIシステム部 データサイエンス第⼆グループ1, データサイエンス第⼀グループ2 株式会社ディー・エヌ・エー 1
  2. ⾃⼰紹介 • ⽒名: 藤川 和樹 (Kazuki Fujikawa) • 経歴: •

    ~2014 神⼾⼤学システム情報学研究科 修⼠ • 研究領域: ⾃然⾔語処理、機械学習 • 2014~ 株式会社ディー・エヌ・エー • ⾏動ログベース・画像特徴量ベースのパーソナライズ・ レコメンドシステムの開発 • Mobageプラットフォーム上での雑談対話⽣成 • 機械学習を⽤いた創薬⽀援 • DRIVE CHART: AIを活⽤した交通事故削減⽀援サービス 2
  3. ⾃⼰紹介 • ⽒名: 望⽉ 正弘 (Masahiro Mochizuki) • 経歴: •

    2003-2007 新潟⼤学 理学部 ⽣物学科 • 2007-2012 新潟⼤学⼤学院 ⾃然科学研究科 博⼠後期課程 修了 博⼠ (理学) • 2012-2013 レキオスソフト(株) • 2014-2017 (株) 情報数理バイオ • 2017/11/1 株式会社ディー・エヌ・エー ⼊社 • 元々の専⾨は、⽣化学・分⼦⽣物学という⽣物学と化学の中間くらいの分野 • DDBJデータ解析チャレンジ(2016)、IT創薬コンテスト(2014-2017)等のITとバイオの境界 領域のコンペで受賞複数。 3
  4. Predicting Molecular Propertiesの概要 • 開催期間: 2019/5/30 - 2019/8/28 • 参加者数:

    2,749 チーム • 私たちの成績: 13位 (Gold Medal獲得) • チーム内の役割分担: • 藤川: 実装など、ほぼ全て。(チームリーダー) • 望⽉: 化学、本当にチョットだけワカル。 • タスク: scalar coupling constantの予測 (回帰問題) (詳細は後述) • Metrics: type(後述)ごとのlog MAEの単純算術平均 6
  5. Predicting Molecular Propertiesのタスク • 分⼦内のスピンをもっている原⼦核(1Hと13Cなどの原⼦核)は、⼩さな磁⽯として性質を もっているので、磁⼒を介して相互に影響し合う。 • scalar coupling constantとは、この相互作⽤の強度を⽰す値。単位はHz。

    • この相互作⽤には結合性電⼦が介在しているため、着⽬している原⼦間を隔てる結合の数が 多いほど値が⼩さくなる傾向がある。 引⽤元: H.ハートら 『ハート基礎有機化学』三訂版 (2002) 395ページ 7
  6. Graph Convolution導⼊ • 画像認識 / ⾃然⾔語処理などの分野で深層学習は発展 • CNN / RNN

    による効率的な特徴抽出法が貢献 • 画像 / テキストは規則正しいグラフと考えられる • 分⼦のグラフに対して同じ⽅法を適⽤することは困難 • ノードの次数が⼀定ではない、エッジには属性が付いている、etc. 図引⽤: wikipedia (https://ja.wikipedia.org/wiki/酢酸) 図引⽤: Wu+, 2019 10
  7. Graph Convolution導⼊ • 画像認識 / ⾃然⾔語処理などの分野で深層学習は発展 • CNN / RNN

    による効率的な特徴抽出法が貢献 • 画像 / テキストは規則正しいグラフと考えられる • 分⼦のグラフに対して同じ⽅法を適⽤することは困難 • ノードの次数が⼀定ではない、エッジには属性が付いている、etc. 図引⽤: wikipedia (https://ja.wikipedia.org/wiki/酢酸) 図引⽤: Wu+, 2019 理論的背景/詳細な導⼊資料は以下リンクへ https://speakerdeck.com/yoichi7yamakawa/ hazimetefalsegraph-convolutional-network 11
  8. Graph Convolution導⼊ • 関連研究: Message Passing Neural Networks(MPNN)[Gilmer+, ICML2017] •

    論⽂毎に個別に定義されていたGraph Convolutionの枠組みをGilmerらが⼀般化 • 各ノードに割り当てられた特徴ベクトルを、隣接するノードやエッジの特徴ベクトルを 使って更新する • 上記をL回繰り返すと、各ノードの特徴ベクトルはL近傍のノードやエッジの情報を 反映していると考えることができる Quantum Chemistry Riley 2 Oriol Vinyals 3 George E. Dahl 1 DFT 103 seconds Message Passing Neural Net 10 2 seconds E,!0, ... Targets ure 1. A Message Passing Neural Network predicts quantum perties of an organic molecule by modeling a computationally ensive DFT calculation. 図引⽤: Gilmer+, ICML2017 12
  9. Graph Convolution導⼊ • 関連研究: Message Passing Neural Networks(MPNN)[Gilmer+, ICML2017] •

    (Feature Extraction), Message Passing, Readout の3段階に分割して各種⼿法を説明 Feature Extraction H C H Message Passing Message Passing Message Passing ! 𝒚 Message Passing Readout Readout 13
  10. Graph Convolution導⼊ • Message Passing Phase • 近隣の原⼦や結合の特徴量を⼊⼒に、各原⼦の特徴量を更新する Feature Extraction

    H C H Message Passing Message Passing Message Passing Message Passing ℎ! (#) ℎ%! (#) 𝑒!%! Message Function: 𝑀" (ℎ# " , ℎ$! " , 𝑒#$! ) ℎ%! (#) 𝑒!%! + Message Function: 𝑀" (ℎ# " , ℎ$" " , 𝑒#$" ) Update Function: 𝑈" (ℎ# " , 𝑚# (") ) ① 隣接する原⼦と結合の情報を基に、 Message Functionを使って ℎ! (#) へ 伝搬する情報 𝑚! (%) を推定する ② 着⽬する原⼦の情報と 𝑚! (%) を基に、 Update Functionを使って ℎ! (%&') を 推定する ③ 上記をグラフ中の全原⼦に対して ⾏なう処理をN回繰り返す 𝑚! (#) ℎ! (#&') 16
  11. Graph Convolution導⼊ • Message Passing Phase • 近隣の原⼦や結合の特徴量を⼊⼒に、各原⼦の特徴量を更新する Feature Extraction

    H C H Message Passing Message Passing Message Passing Message Passing ℎ! (#) ℎ%! (#) 𝑒!%! Message Function: 𝑀" (ℎ# " , ℎ$! " , 𝑒#$! ) ℎ%! (#) 𝑒!%! + Message Function: 𝑀" (ℎ# " , ℎ$" " , 𝑒#$" ) Update Function: 𝑈" (ℎ# " , 𝑚# (") ) 例: NFP [Dunvenaud+, NIPS2015] Message Function: 𝑀% ℎ! % , ℎ( % , 𝑒!( = 𝑐𝑜𝑛𝑐𝑎𝑡(ℎ( % , 𝑒!( ) Update Function: 𝑈% ℎ! % , 𝑚! % = σ 𝐻% )*+(!)𝑚! (%) ※ 𝐻% )*+(!): step 𝑡, 頂点 𝑣 毎に 準備された重み 𝑚! (#) ℎ! (#&') 17
  12. Graph Convolution導⼊ • Message Passing Phase • 近隣の原⼦や結合の特徴量を⼊⼒に、各原⼦の特徴量を更新する Feature Extraction

    H C H Message Passing Message Passing Message Passing Message Passing ℎ! (#) ℎ%! (#) 𝑒!%! Message Function: 𝑀" (ℎ# " , ℎ$! " , 𝑒#$! ) ℎ%! (#) 𝑒!%! + Message Function: 𝑀" (ℎ# " , ℎ$" " , 𝑒#$" ) Update Function: 𝑈" (ℎ# " , 𝑚# (") ) 例: EdgeNet+S2S [Gilmer+, ICML2017] Message Function: 𝑀% ℎ! % , ℎ( % , 𝑒!( = 𝐴(𝑒!() ℎ( (%) Update Function: 𝑈% ℎ! % , 𝑚! % = 𝐺𝑅𝑈 ℎ! % , 𝑚! % ※𝐴(𝑒!(): 結合特徴量𝑒!( を変換するNN 𝑚! (#) ℎ! (#&') 18
  13. Graph Convolution導⼊ • Message Passing Phase • 近隣の原⼦や結合の特徴量を⼊⼒に、各原⼦の特徴量を更新する Feature Extraction

    H C H Message Passing Message Passing Message Passing Message Passing ℎ! (#) ℎ%! (#) 𝑒!%! Message Function: 𝑀" (ℎ# " , ℎ$! " , 𝑒#$! ) ℎ%! (#) 𝑒!%! + Message Function: 𝑀" (ℎ# " , ℎ$" " , 𝑒#$" ) Update Function: 𝑈" (ℎ# " , 𝑚# (") ) 例: GIN [Xu+, ICLR2019] Message Function: 𝑀% ℎ! % , ℎ( % , 𝑒!( = ℎ( % Update Function: 𝑈% ℎ! % , 𝑚! % = 𝑀𝐿𝑃(%) ℎ! % + 𝑚! % 𝑚! (#) ℎ! (#&') 19
  14. Graph Convolution導⼊ • Message Passing Phase • 近隣の原⼦や結合の特徴量を⼊⼒に、各原⼦の特徴量を更新する Feature Extraction

    H C H Message Passing Message Passing Message Passing Message Passing ℎ! (#) ℎ%! (#) 𝑒!%! Message Function: 𝑀" (ℎ# " , ℎ$! " , 𝑒#$! ) ℎ%! (#) 𝑒!%! + Message Function: 𝑀" (ℎ# " , ℎ$" " , 𝑒#$" ) Update Function: 𝑈" (ℎ# " , 𝑚# (") ) 例: SchNet [Schutt+, ICML2017] Message Function: 𝑀# ℎ! # ,ℎ% # ,𝑒!% = 𝑀𝐿𝑃(𝑀𝐿𝑃(𝑒!% ) ∗ 𝐿𝑖𝑛𝑒𝑎𝑟(ℎ% # )) Update Function: 𝑈# ℎ! # ,𝑚! # = ℎ! # + 𝑚! # ※ 𝑒!% : 原⼦間距離をガウス基底で展開したもの ※ cfconvでは結合の有無に関わらずMessage Passingを⾏なう 𝑚! (#) ℎ! (#&') 20
  15. Graph Convolution導⼊ • Readout Phase • 原⼦毎の特徴量を集約して分⼦レベルの特徴量を獲得する Feature Extraction H

    C H Message Passing Message Passing Message Passing ! 𝒚 Message Passing Readout Readout 例: NFP [Dunvenaud+, NIPS2015] Readout Function: 𝑅 ℎ! , 𝑣 ∈ 𝐺 = 𝑓 : !,% 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 𝑊%ℎ! , 21
  16. Graph Convolution導⼊ • Readout Phase • 原⼦毎の特徴量を集約して分⼦レベルの特徴量を獲得する Feature Extraction H

    C H Message Passing Message Passing Message Passing ! 𝒚 Message Passing Readout Readout 例: EdgeNet+S2S [Gilmer+, ICML2017] Readout Function: 𝑅 ℎ! , 𝑣 ∈ 𝐺 = 𝑠𝑒𝑡2𝑠𝑒𝑡 ℎ! , 𝑣 ∈ 𝐺 22
  17. Graph Convolution導⼊ • Readout Phase • 原⼦毎の特徴量を集約して分⼦レベルの特徴量を獲得する Feature Extraction H

    C H Message Passing Message Passing Message Passing ! 𝒚 Message Passing Readout Readout 例: GIN [Xu+, ICLR2019] Readout Function: 𝑅 ℎ! , 𝑣 ∈ 𝐺 = 𝑔 𝑐𝑜𝑛𝑐𝑎𝑡 𝑠𝑢𝑚 ℎ! % 𝑣 ∈ 𝐺 𝑡 = 0, 1, … , 𝑇 23
  18. Graph Convolution導⼊ • Readout Phase • 原⼦毎の特徴量を集約して分⼦レベルの特徴量を獲得する Feature Extraction H

    C H Message Passing Message Passing Message Passing ! 𝒚 Message Passing Readout Readout 例: SchNet [Schutt+, ICML2017] Readout Function: 𝑅 ℎ! , 𝑣 ∈ 𝐺 = 𝑠𝑢𝑚 ℎ! , 𝑣 ∈ 𝐺 24
  19. v1: SchNet-based (CV: -1.49) • ⼀般的なGraph分類タスク(Tox21 etc.)と⽐較した本タスクの特⾊は以下の通り • 特徴量 •

    (ほぼ正確な)3D距離が提供されている Ø 3D距離を扱うことができるSchNetをベースモデルとして採⽤ • タスク • 原⼦ペアに対応する⽬的変数の予測 Ø Readout対象の原⼦を対応する原⼦ペアに限定 • Coupling type毎に傾向が⼤きく異なることがDiscussionで報告されている Ø Coupling type数次元(8次元)の出⼒を⾏い、マルチタスク学習を⾏なう • 評価指標 • Group Log MAE Ø 微分可能なのでGroup Log MAEを⽬的関数として直接最適化 26
  20. v1: SchNet-based (CV: -1.49) Feature Extraction H C H 3Layer

    SchNet 3Layer SchNet 3Layer SchNet ! 𝒚𝟐𝑱𝑯𝑯 Message Passing Readout 例: 2JHH Targetの場合 + MLP 𝒕 Group Log MAE Pair Feature: 3D距離のガウス展開(300d) Atom Feature: 原⼦IDのone-hot(10d) 27
  21. v1: SchNet-basedの課題・改善余地がある点 • Lossの下がりが遅く、Underfit傾向(Train loss ≒ Valid loss) • タスク(1JHH,

    2JHNなど)特有の特徴抽出がしづらい • 以下(仮説)のような区別すべき構造が区別しづらい⼊⼒となっている可能性がある • Graph距離の違い • ⼆⾯⾓の違い • Coupling typeの違い • データを全て使えていない • 訓練データは全体の8割(Train : Valid : Test = 8 : 1 : 1) • アンサンブル無し(CV平均も無し) 28
  22. v2: SchNet-based w/ skip-connection (CV: -1.49→-1.78) Feature Extraction H C

    H 3Layer SchNet 3Layer SchNet 3Layer SchNet ! 𝒚𝟐𝑱𝑯𝑯 Message Passing Readout 例: 2JHH Targetの場合 + MLP 𝒕 Group Log MAE 各層の出⼒をconcat (GIN同様) + 訓練データを全体の8割→9割(→-1.85) • タスク特有の特徴抽出 • skip-connection導⼊で各層の出⼒をconcatすることでタスク特有の特徴量次元数を増やす 29
  23. v3: SchNet+GIN (CV: - 1.78→-1.98) Feature Extraction H C H

    3Layer SchNet+GIN 3Layer SchNet+GIN 3Layer SchNet+GIN ! 𝒚𝟐𝑱𝑯𝑯 Message Passing Readout 例: 2JHH Targetの場合 + MLP 𝒕 Group Log MAE SchNet GIN SchNet GIN SchNet GIN • SchNetは似た距離でグラフ距離が異なる事例を区別しづらい Ø グラフを陽に扱うGINと組み合わせることで両者の利点の相補を期待 Pair Feature: 3D距離のガウス展開(300d), グラフ距離(最⼤4)のone-hot(4d) 30
  24. v4: SchNet+GIN w/ separate MLP (CV: - 1.98→-2.08) Feature Extraction

    H C H 3Layer SchNet+GIN 3Layer SchNet+GIN 3Layer SchNet+GIN ! 𝒚𝟏𝑱𝑯𝑪 Message Passing Readout 例: 2JHH Targetの場合 + 1JHC MLP 𝒕 Group Log MAE • Coupling type 毎の性質の違いを最終層の線形層だけで表現するのは不⼗分 Ø 最終層の2層MLPをCoupling type数だけ配置 ... ! 𝒚𝟐𝑱𝑯𝑯 2JHH MLP ! 𝒚𝟑𝑱𝑯𝑵 3JHN MLP ... 31
  25. v5: v4 w/ Pair features (CV: - 2.08→-2.38, LB: -2.36)

    Feature Extraction H C H 3Layer SchNet+GIN 3Layer SchNet+GIN 3Layer SchNet+GIN ! 𝒚𝟏𝑱𝑯𝑪 Message Passing Readout 例: 2JHH Targetの場合 + 1JHC MLP 𝒕 Group Log MAE • SchNetのFilter(≒Attention)の計算に、原⼦ペアの情報が利⽤されていない Ø Filter計算の⼊⼒に⽤いるペア特徴量に、⼀つ前のレイヤーの原⼦Embeddingを追加 Ø Readout時に更新済み原⼦ベクトルに連結する形で利⽤ ... ! 𝒚𝟐𝑱𝑯𝑯 2JHH MLP ! 𝒚𝟑𝑱𝑯𝑵 3JHN MLP ... (10fold CVの1foldのみ、SEED平均無し) Pair Feature: 3D距離のガウス展開(300d), グラフ距離(最⼤4)のone-hot(4d), ⼆⾯⾓のcosθ, cos2θのガウス展開(30d), ⼀つ前のレイヤーの原⼦Embedding 32
  26. v6: Coupling type fine-tuning (LB: -2.36→-2.51) • Coupling type 毎の性質の違いがMessage

    Passing層では考慮できない Ø v5の学習済みモデルを初期値に、各Coupling typeに限定したデータセットでFine-tuningを⾏った 1JHN 1JHC 3JHN ... Pre-training 1JHC Fine-tuning Pretrained Model 1JHC Fine-tuned Model + 1JHN + 1JHN Fine-tuned Model 3JHN + 3JHC Fine-tuned Model ... ... Pretrained Model Pretrained Model Pretrained Model ! 𝒚𝟏𝑱𝑯𝑪 ! 𝒚𝟏𝑱𝑯𝑵 ! 𝒚𝟑𝑱𝑯𝑵 Training set +2 seeds avg (LB: -2.73) 33
  27. Feature Extraction H C H 3Layer SchNetPer GraphDist+GIN 3Layer SchNetPer

    GraphDist+GIN 3Layer SchNetPer GraphDist+GIN ! 𝒚𝟏𝑱𝑯𝑪 Message Passing Readout 例: 2JHH Targetの場合 + 1JHC MLP 𝒕 Group Log MAE • Graph距離の違いは重要なので、SchNetのFilter⽣成部でも考慮させたい Ø 特定のGraph距離に位置する原⼦特徴量のみを畳み込むSchNetを複数配置 ... ! 𝒚𝟐𝑱𝑯𝑯 2JHH MLP ! 𝒚𝟑𝑱𝑯𝑵 3JHN MLP ... SchNet Graph距離=1 GIN SchNet Graph距離=1 GIN SchNet Graph距離=1 GIN SchNet Graph距離=2 SchNet Graph距離=2 SchNet Graph距離=2 SchNet Graph距離=3 SchNet Graph距離=3 SchNet Graph距離=3 SchNet Graph距離≧4 SchNet Graph距離≧4 SchNet Graph距離≧4 (v7): SchNetPerGraphDist (CV: -2.38→-2.53, LB: -2.36→-1.85) 34
  28. (v7): SchNetPerGraphDist (CV: -2.38→-2.53, LB: -2.36→-1.85) • CVのスコアは改善されているのに、LBのスコアが⼤きく改悪される事案が発⽣ • CVのValid

    setは分⼦単位でのランダム分割により構築しており、Valid setのスコアは 改善されているため単純な過学習対策では上⼿くいかなさそう • Train setとTest setの間に何らかのGapがあるか、モデルの表現⼒が⾼くなった ことでモデルの適合範囲が極端に狭くなってしまったかのいずれかではないか • v6まではLBとCVがほぼ等価だった 35
  29. v8: v7 w/ pseudo label (CV: -2.53→-2.62, LB: -1.85→-2.68) •

    v6の訓練済みモデルでTest setに対してPseudo labelを⾏なう • Test setがモデルの適合範囲に含まれる状態を維持しながら、表現⼒の⾼いモデルで 予測精度を向上させることが狙い • v6はFine-tuningで得られたモデルであるため、そのモデルで付けたラベルを スクラッチからの学習で得ようとする蒸留効果も期待 1JHN 1JHC 3JHN ... Test set +Coupling type fine-tuning & 2 seeds avg (LB: -2.92) 36
  30. 1st place solution (hybrid) • チームの構成: Boschの量⼦化学計算の専⾨家とMLの専⾨家の混成チーム • GNNで分⼦を扱う場合には原⼦をノード、化学結合をエッジとするのが⼀般的だが、この チームは複数の原⼦をまとめ上げたノード(bond,

    triplets, quads)を作るなどして、ノード の概念を⼤幅に拡張した。(1分⼦に500ノードが含まれることも) • Message Passingにノード間距離を考慮したself-attentionを導⼊ • ノードの特徴量として、原⼦の種類をより細分化した特徴量を使った。例えば、同じ1JHC でも、Cに何個の原⼦が結合しているかで、subtypeを定義した。 𝒁! = 𝑾𝟏 𝒁 softmax 𝒁𝑻𝑾𝟐 𝑻𝑾𝟑 𝒁 − 𝜸𝑫 H-C= H-C- 同じ1JHCでも結構違いそう 38
  31. 2nd place solution (🤖 Quantum Uncertainty 🤖) • チームの構成: MLの専⾨家の2⼈組

    (Andres Torrubia, Pavel Hanchar) • 始めは原⼦をpoint cloudとして処理するモデル(Pointnetベースのモデル)を利⽤していた が、最終的には1位と同じself-attentionを利⽤したモデルを採⽤。 • ノードの特徴量として原⼦の座標(normalizeしたx, y, z)、原⼦の種類、coupling typeを利 ⽤した。各原⼦がどのcoupling typeに属するかが重要だった? • Couplingのタイプごとにfine-tuningしたモデルを⽤いた点は私たちと同じ。 • 特徴量としてシンプルな原⼦に関する情報だけを使っていて、結合等のドメイン知識に関わ る情報は全く利⽤していなかった。 39
  32. 3rd place solution ([ka.kr] Solve chem. together) • チームの構成: 4⼈中2⼈はドメイン知識あり

    • BERTをベースにしたモデル • ただし、説明を読む限りBERTのアーキテクチャを採⽤した だけで、BERT特有の教師なし事前学習はやっていないので BERT特有の要素は薄そう。 • 原⼦ではなくて原⼦のペアを要素としたsequenceを⼊⼒と していた。 • TestデータのPseudo-labelingを試した点は私たちと同じ。 ただし、overfit対策で、最後にモデルをtrainデータだけで 訓練し直すというテクニックを使っていた。 40
  33. 上位チームとの⽐較 • 上位3チームはいずれもself-attentionを利⽤したモデルを採⽤していた。実は問題によって は、私たちが採⽤したSchNetのような分⼦向けに作られたモデルよりも強い可能性がある。 • 1位は、全体的に情報を拡張・細分化して、既存⼿法よりも複雑なモデルを構築した印象があ る。 • ⼀般的には闇雲に複雑化をするとoverfitなどでパフォーマンスが上がらないことが多いが、 そうはならないように本当に効果的な複雑化だけをやっているということだと思う。

    • 背景には、チームの中にground truthが⽣成できるくらいドメイン知識がある⼈がいるという ことが⼤きいと推測。実際1位と3位も量⼦化学者とMLエンジニアの混成チーム。 • 実際にground truthを量⼦化学計算で求めるのはルール違反とされていたが、⾃分でやったこ とがあるからこそ分かる勘所で、特徴設計できることは強みになったのではないか。 41
  34. References • Wu, Zonghan, et al. "A comprehensive survey on

    graph neural networks." arXiv preprint arXiv:1901.00596 (2019). • Gilmer, Justin, et al. "Neural message passing for quantum chemistry." in Proc. of ICML, 2017. • Duvenaud, David K., et al. "Convolutional networks on graphs for learning molecular fingerprints." in Proc. of NIPS, 2015. • Xu, Keyulu, et al. "How powerful are graph neural networks?." in Proc. of ICLR, 2019. • Schütt, Kristof, et al. "SchNet: A continuous-filter convolutional neural network for modeling quantum interactions." in Proc. of NIPS, 2017. 42