Contenu connexe Similaire à Kaggle参加報告: Champs Predicting Molecular Properties (20) Plus de Kazuki Fujikawa (15) Kaggle参加報告: Champs Predicting Molecular Properties2. 自己紹介
• 氏名: 藤川 和樹 (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
6. Predicting Molecular Propertiesの概要
• 開催期間: 2019/5/30 - 2019/8/28
• 参加者数: 2,749 チーム
• 私たちの成績: 13位 (Gold Medal獲得)
• チーム内の役割分担:
• 藤川: 実装など、ほぼ全て。(チームリーダー)
• 望月: 化学、本当にチョットだけワカル。
• タスク: scalar coupling constantの予測 (回帰問題) (詳細は後述)
• Metrics: type(後述)ごとのlog MAEの単純算術平均
6
7. Predicting Molecular Propertiesのタスク
• 分子内のスピンをもっている原子核(1Hと13Cなどの原子核)は、小さな磁石として性質を
もっているので、磁力を介して相互に影響し合う。
• scalar coupling constantとは、この相互作用の強度を示す値。単位はHz。
• この相互作用には結合性電子が介在しているため、着目している原子間を隔てる結合の数が
多いほど値が小さくなる傾向がある。
引用元: H.ハートら 『ハート基礎有機化学』三訂版 (2002) 395ページ
7
10. Graph Convolution導入
• 画像認識 / 自然言語処理などの分野で深層学習は発展
• CNN / RNN による効率的な特徴抽出法が貢献
• 画像 / テキストは規則正しいグラフと考えられる
• 分子のグラフに対して同じ方法を適用することは困難
• ノードの次数が一定ではない、エッジには属性が付いている、etc.
図引用: wikipedia
(https://ja.wikipedia.org/wiki/酢酸)
図引用: Wu+, 2019
10
11. Graph Convolution導入
• 画像認識 / 自然言語処理などの分野で深層学習は発展
• CNN / RNN による効率的な特徴抽出法が貢献
• 画像 / テキストは規則正しいグラフと考えられる
• 分子のグラフに対して同じ方法を適用することは困難
• ノードの次数が一定ではない、エッジには属性が付いている、etc.
図引用: wikipedia
(https://ja.wikipedia.org/wiki/酢酸)
図引用: Wu+, 2019
理論的背景/詳細な導入資料は以下リンクへ
https://speakerdeck.com/yoichi7yamakawa/
hazimetefalsegraph-convolutional-network
11
12. Graph Convolution導入
• 関連研究: Message Passing Neural Networks(MPNN)[Gilmer+, ICML2017]
• 論文毎に個別に定義されていたGraph Convolutionの枠組みをGilmerらが一般化
• 各ノードに割り当てられた特徴ベクトルを、隣接するノードやエッジの特徴ベクトルを
使って更新する
• 上記をL回繰り返すと、各ノードの特徴ベクトルはL近傍のノードやエッジの情報を
反映していると考えることができる
図引用: Gilmer+, ICML2017
12
13. 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
15. Graph Convolution導入
• Message Passing Phase
• 近隣の原子や結合の特徴量を入力に、各原子の特徴量を更新する
Feature Extraction
H
C
H
Message
Passing
Message
Passing
Message
Passing
Message Passing
15
16. Graph Convolution導入
• Message Passing Phase
• 近隣の原子や結合の特徴量を入力に、各原子の特徴量を更新する
Feature Extraction
H
C
H
Message
Passing
Message
Passing
Message
Passing
Message Passing
ℎ 𝑣
(𝑡)
ℎ 𝑢1
(𝑡)
𝑒 𝑣𝑢1
Message Function:
𝑀𝑡(ℎ 𝑣
𝑡
, ℎ 𝑢1
𝑡
, 𝑒 𝑣𝑢1
)
ℎ 𝑢1
(𝑡)
𝑒 𝑣𝑢1
+
Message Function:
𝑀𝑡(ℎ 𝑣
𝑡
, ℎ 𝑢2
𝑡
, 𝑒 𝑣𝑢2
)
Update Function:
𝑈𝑡(ℎ 𝑣
𝑡
, 𝑚 𝑣
(𝑡)
)
① 隣接する原子と結合の情報を基に、
Message Functionを使って ℎ 𝑣
(0)
へ
伝搬する情報 𝑚 𝑣
(𝑡)
を推定する
② 着目する原子の情報と 𝑚 𝑣
(𝑡)
を基に、
Update Functionを使って ℎ 𝑣
(𝑡+1)
を
推定する
③ 上記をグラフ中の全原子に対して
行なう処理をN回繰り返す
𝑚 𝑣
(𝑡)
ℎ 𝑣
(𝑡+1) 16
17. Graph Convolution導入
• Message Passing Phase
• 近隣の原子や結合の特徴量を入力に、各原子の特徴量を更新する
Feature Extraction
H
C
H
Message
Passing
Message
Passing
Message
Passing
Message Passing
ℎ 𝑣
(𝑡)
ℎ 𝑢1
(𝑡)
𝑒 𝑣𝑢1
Message Function:
𝑀𝑡(ℎ 𝑣
𝑡
, ℎ 𝑢1
𝑡
, 𝑒 𝑣𝑢1
)
ℎ 𝑢1
(𝑡)
𝑒 𝑣𝑢1
+
Message Function:
𝑀𝑡(ℎ 𝑣
𝑡
, ℎ 𝑢2
𝑡
, 𝑒 𝑣𝑢2
)
Update Function:
𝑈𝑡(ℎ 𝑣
𝑡
, 𝑚 𝑣
(𝑡)
)
例: NFP [Dunvenaud+, NIPS2015]
Message Function:
𝑀𝑡 ℎ 𝑣
𝑡
, ℎ 𝑢
𝑡
, 𝑒 𝑣𝑢 = 𝑐𝑜𝑛𝑐𝑎𝑡(ℎ 𝑢
𝑡
, 𝑒 𝑣𝑢)
Update Function:
𝑈𝑡 ℎ 𝑣
𝑡
, 𝑚 𝑣
𝑡
= σ 𝐻𝑡
deg(𝑣)
𝑚 𝑣
(𝑡)
※ 𝐻𝑡
deg(𝑣)
: step 𝑡, 頂点 𝑣 毎に
準備された重み
𝑚 𝑣
(𝑡)
ℎ 𝑣
(𝑡+1) 17
18. Graph Convolution導入
• Message Passing Phase
• 近隣の原子や結合の特徴量を入力に、各原子の特徴量を更新する
Feature Extraction
H
C
H
Message
Passing
Message
Passing
Message
Passing
Message Passing
ℎ 𝑣
(𝑡)
ℎ 𝑢1
(𝑡)
𝑒 𝑣𝑢1
Message Function:
𝑀𝑡(ℎ 𝑣
𝑡
, ℎ 𝑢1
𝑡
, 𝑒 𝑣𝑢1
)
ℎ 𝑢1
(𝑡)
𝑒 𝑣𝑢1
+
Message Function:
𝑀𝑡(ℎ 𝑣
𝑡
, ℎ 𝑢2
𝑡
, 𝑒 𝑣𝑢2
)
Update Function:
𝑈𝑡(ℎ 𝑣
𝑡
, 𝑚 𝑣
(𝑡)
)
例: EdgeNet+S2S [Gilmer+, ICML2017]
Message Function:
𝑀𝑡 ℎ 𝑣
𝑡
, ℎ 𝑢
𝑡
, 𝑒 𝑣𝑢 = 𝐴(𝑒 𝑣𝑢) ℎ 𝑢
(𝑡)
Update Function:
𝑈𝑡 ℎ 𝑣
𝑡
, 𝑚 𝑣
𝑡
= 𝐺𝑅𝑈 ℎ 𝑣
𝑡
, 𝑚 𝑣
𝑡
※𝐴(𝑒 𝑣𝑢): 結合特徴量𝑒 𝑣𝑢を変換するNN
𝑚 𝑣
(𝑡)
ℎ 𝑣
(𝑡+1) 18
19. Graph Convolution導入
• Message Passing Phase
• 近隣の原子や結合の特徴量を入力に、各原子の特徴量を更新する
Feature Extraction
H
C
H
Message
Passing
Message
Passing
Message
Passing
Message Passing
ℎ 𝑣
(𝑡)
ℎ 𝑢1
(𝑡)
𝑒 𝑣𝑢1
Message Function:
𝑀𝑡(ℎ 𝑣
𝑡
, ℎ 𝑢1
𝑡
, 𝑒 𝑣𝑢1
)
ℎ 𝑢1
(𝑡)
𝑒 𝑣𝑢1
+
Message Function:
𝑀𝑡(ℎ 𝑣
𝑡
, ℎ 𝑢2
𝑡
, 𝑒 𝑣𝑢2
)
Update Function:
𝑈𝑡(ℎ 𝑣
𝑡
, 𝑚 𝑣
(𝑡)
)
例: GIN [Xu+, ICLR2019]
Message Function:
𝑀𝑡 ℎ 𝑣
𝑡
, ℎ 𝑢
𝑡
, 𝑒 𝑣𝑢 = ℎ 𝑢
𝑡
Update Function:
𝑈𝑡 ℎ 𝑣
𝑡
, 𝑚 𝑣
𝑡
= 𝑀𝐿𝑃(𝑡)
ℎ 𝑣
𝑡
+ 𝑚 𝑣
𝑡
𝑚 𝑣
(𝑡)
ℎ 𝑣
(𝑡+1) 19
20. Graph Convolution導入
• Message Passing Phase
• 近隣の原子や結合の特徴量を入力に、各原子の特徴量を更新する
Feature Extraction
H
C
H
Message
Passing
Message
Passing
Message
Passing
Message Passing
ℎ 𝑣
(𝑡)
ℎ 𝑢1
(𝑡)
𝑒 𝑣𝑢1
Message Function:
𝑀𝑡(ℎ 𝑣
𝑡
, ℎ 𝑢1
𝑡
, 𝑒 𝑣𝑢1
)
ℎ 𝑢1
(𝑡)
𝑒 𝑣𝑢1
+
Message Function:
𝑀𝑡(ℎ 𝑣
𝑡
, ℎ 𝑢2
𝑡
, 𝑒 𝑣𝑢2
)
Update Function:
𝑈𝑡(ℎ 𝑣
𝑡
, 𝑚 𝑣
(𝑡)
)
例: SchNet [Schutt+, ICML2017]
Message Function:
𝑀𝑡 ℎ 𝑣
𝑡
, ℎ 𝑢
𝑡
, 𝑒 𝑣𝑢 = 𝑀𝐿𝑃(𝑀𝐿𝑃(𝑒 𝑣𝑢) ∗ 𝐿𝑖𝑛𝑒𝑎𝑟(ℎ 𝑢
𝑡
))
Update Function:
𝑈𝑡 ℎ 𝑣
𝑡
, 𝑚 𝑣
𝑡
= ℎ 𝑣
𝑡
+ 𝑚 𝑣
𝑡
※ 𝑒 𝑣𝑢: 原子間距離をガウス基底で展開したもの
※ cfconvでは結合の有無に関わらずMessage
Passingを行なう
𝑚 𝑣
(𝑡)
ℎ 𝑣
(𝑡+1) 20
21. 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
22. 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
23. 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
24. 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
26. 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
27. 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
29. 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
30. 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
31. 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
32. 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
33. v6: Coupling type fine-tuning (LB: -2.36→-2.51)
• Coupling type 毎の性質の違いがMessage Passing層では考慮できない
v5の学習済みモデルを初期値に、各Coupling typeに限定したデータセットでFine-tuningを行った
1JHN1JHC 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
35. (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
36. 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で得られたモデルであるため、そのモデルで付けたラベルを
スクラッチからの学習で得ようとする蒸留効果も期待
1JHN1JHC 3JHN...
Test set
+Coupling type fine-tuning & 2 seeds avg (LB: -2.92)
36
38. 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
39. 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
40. 3rd place solution ([ka.kr] Solve chem. together)
• チームの構成: 4人中2人はドメイン知識あり
• BERTをベースにしたモデル
• ただし、説明を読む限りBERTのアーキテクチャを採用した
だけで、BERT特有の教師なし事前学習はやっていないので
BERT特有の要素は薄そう。
• 原子ではなくて原子のペアを要素としたsequenceを入力と
していた。
• TestデータのPseudo-labelingを試した点は私たちと同じ。
ただし、overfit対策で、最後にモデルをtrainデータだけで
訓練し直すというテクニックを使っていた。
40
42. 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