SlideShare une entreprise Scribd logo
1  sur  42
Kaggle参加報告:
Predicting Molecular Properties
(Top solutions & 13th place solution)
藤川 和樹1, 望月 正弘2
AI本部AIシステム部
データサイエンス第二グループ1, データサイエンス第一グループ2
株式会社ディー・エヌ・エー
1
自己紹介
• 氏名: 藤川 和樹 (Kazuki Fujikawa)
• 経歴:
• ~2014 神戸大学システム情報学研究科 修士
• 研究領域: 自然言語処理、機械学習
• 2014~ 株式会社ディー・エヌ・エー
• 行動ログベース・画像特徴量ベースのパーソナライズ・
レコメンドシステムの開発
• Mobageプラットフォーム上での雑談対話生成
• 機械学習を用いた創薬支援
• DRIVE CHART: AIを活用した交通事故削減支援サービス
2
自己紹介
• 氏名: 望月 正弘 (Masahiro Mochizuki)
• 経歴:
• 2003-2007 新潟大学 理学部 生物学科
• 2007-2012 新潟大学大学院 自然科学研究科
博士後期課程 修了 博士 (理学)
• 2012-2013 レキオスソフト(株)
• 2014-2017 (株) 情報数理バイオ
• 2017/11/1 株式会社ディー・エヌ・エー 入社
• 元々の専門は、生化学・分子生物学という生物学と化学の中間くらいの分野
• DDBJデータ解析チャレンジ(2016)、IT創薬コンテスト(2014-2017)等のITとバイオの境界
領域のコンペで受賞複数。
3
Agenda
• コンペティション概要
• Graph Convolution導入
• 弊チームの手法
• 上位Solution紹介
4
Agenda
• コンペティション概要
• Graph Convolution導入
• 弊チームの手法
• 上位Solution紹介
5
Predicting Molecular Propertiesの概要
• 開催期間: 2019/5/30 - 2019/8/28
• 参加者数: 2,749 チーム
• 私たちの成績: 13位 (Gold Medal獲得)
• チーム内の役割分担:
• 藤川: 実装など、ほぼ全て。(チームリーダー)
• 望月: 化学、本当にチョットだけワカル。
• タスク: scalar coupling constantの予測 (回帰問題) (詳細は後述)
• Metrics: type(後述)ごとのlog MAEの単純算術平均
6
Predicting Molecular Propertiesのタスク
• 分子内のスピンをもっている原子核(1Hと13Cなどの原子核)は、小さな磁石として性質を
もっているので、磁力を介して相互に影響し合う。
• scalar coupling constantとは、この相互作用の強度を示す値。単位はHz。
• この相互作用には結合性電子が介在しているため、着目している原子間を隔てる結合の数が
多いほど値が小さくなる傾向がある。
引用元: H.ハートら 『ハート基礎有機化学』三訂版 (2002) 395ページ
7
Couplingのタイプ
• 提供されたデータの各事例にはtypeと呼ばれる情報が付与されていた。
• このtypeによってcoupling constantの分布には大きな違いがあった。
type 意味
1JHC 1結合を介したHとCの相互作用
2JHH 2結合を介したH同士の相互作用
… (計8種類) …
引用元: https://www.kaggle.com/artgor/molecular-properties-eda-and-models
8
Agenda
• コンペティション概要
• Graph Convolution導入
• 弊チームの手法
• 上位Solution紹介
9
Graph Convolution導入
• 画像認識 / 自然言語処理などの分野で深層学習は発展
• CNN / RNN による効率的な特徴抽出法が貢献
• 画像 / テキストは規則正しいグラフと考えられる
• 分子のグラフに対して同じ方法を適用することは困難
• ノードの次数が一定ではない、エッジには属性が付いている、etc.
図引用: wikipedia
(https://ja.wikipedia.org/wiki/酢酸)
図引用: Wu+, 2019
10
Graph Convolution導入
• 画像認識 / 自然言語処理などの分野で深層学習は発展
• CNN / RNN による効率的な特徴抽出法が貢献
• 画像 / テキストは規則正しいグラフと考えられる
• 分子のグラフに対して同じ方法を適用することは困難
• ノードの次数が一定ではない、エッジには属性が付いている、etc.
図引用: wikipedia
(https://ja.wikipedia.org/wiki/酢酸)
図引用: Wu+, 2019
理論的背景/詳細な導入資料は以下リンクへ
https://speakerdeck.com/yoichi7yamakawa/
hazimetefalsegraph-convolutional-network
11
Graph Convolution導入
• 関連研究: Message Passing Neural Networks(MPNN)[Gilmer+, ICML2017]
• 論文毎に個別に定義されていたGraph Convolutionの枠組みをGilmerらが一般化
• 各ノードに割り当てられた特徴ベクトルを、隣接するノードやエッジの特徴ベクトルを
使って更新する
• 上記をL回繰り返すと、各ノードの特徴ベクトルはL近傍のノードやエッジの情報を
反映していると考えることができる
図引用: Gilmer+, ICML2017
12
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
Graph Convolution導入
• (Feature Extraction Phase)
• 原子・結合に対する特徴量をそれぞれ抽出(e.g. 原子番号、結合種など)
Feature Extraction
H
C
H
14
Graph Convolution導入
• Message Passing Phase
• 近隣の原子や結合の特徴量を入力に、各原子の特徴量を更新する
Feature Extraction
H
C
H
Message
Passing
Message
Passing
Message
Passing
Message Passing
15
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
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
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
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
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
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
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
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
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
Agenda
• コンペティション概要
• Graph Convolution導入
• 弊チームの手法
• 上位Solution紹介
25
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
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
v1: SchNet-basedの課題・改善余地がある点
• Lossの下がりが遅く、Underfit傾向(Train loss ≒ Valid loss)
• タスク(1JHH, 2JHNなど)特有の特徴抽出がしづらい
• 以下(仮説)のような区別すべき構造が区別しづらい入力となっている可能性がある
• Graph距離の違い
• 二面角の違い
• Coupling typeの違い
• データを全て使えていない
• 訓練データは全体の8割(Train : Valid : Test = 8 : 1 : 1)
• アンサンブル無し(CV平均も無し)
28
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
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
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
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
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
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
(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
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
Agenda
• コンペティション概要
• Graph Convolution導入
• 弊チームの手法
• 上位Solution紹介
37
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
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
3rd place solution ([ka.kr] Solve chem. together)
• チームの構成: 4人中2人はドメイン知識あり
• BERTをベースにしたモデル
• ただし、説明を読む限りBERTのアーキテクチャを採用した
だけで、BERT特有の教師なし事前学習はやっていないので
BERT特有の要素は薄そう。
• 原子ではなくて原子のペアを要素としたsequenceを入力と
していた。
• TestデータのPseudo-labelingを試した点は私たちと同じ。
ただし、overfit対策で、最後にモデルをtrainデータだけで
訓練し直すというテクニックを使っていた。
40
上位チームとの比較
• 上位3チームはいずれもself-attentionを利用したモデルを採用していた。実は問題によって
は、私たちが採用したSchNetのような分子向けに作られたモデルよりも強い可能性がある。
• 1位は、全体的に情報を拡張・細分化して、既存手法よりも複雑なモデルを構築した印象があ
る。
• 一般的には闇雲に複雑化をするとoverfitなどでパフォーマンスが上がらないことが多いが、
そうはならないように本当に効果的な複雑化だけをやっているということだと思う。
• 背景には、チームの中にground truthが生成できるくらいドメイン知識がある人がいるという
ことが大きいと推測。実際1位と3位も量子化学者とMLエンジニアの混成チーム。
• 実際にground truthを量子化学計算で求めるのはルール違反とされていたが、自分でやったこ
とがあるからこそ分かる勘所で、特徴設計できることは強みになったのではないか。
41
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

Contenu connexe

Tendances

Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
Shuyo Nakatani
 

Tendances (20)

TalkingData AdTracking Fraud Detection Challenge (1st place solution)
TalkingData AdTracking  Fraud Detection Challenge (1st place solution)TalkingData AdTracking  Fraud Detection Challenge (1st place solution)
TalkingData AdTracking Fraud Detection Challenge (1st place solution)
 
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)
 
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明
 
強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習
 
MICの解説
MICの解説MICの解説
MICの解説
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 
Data-Centric AIの紹介
Data-Centric AIの紹介Data-Centric AIの紹介
Data-Centric AIの紹介
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデル
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 
Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西
 
失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用
 
BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)
 
LSTM (Long short-term memory) 概要
LSTM (Long short-term memory) 概要LSTM (Long short-term memory) 概要
LSTM (Long short-term memory) 概要
 
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
 
機械学習で泣かないためのコード設計 2018
機械学習で泣かないためのコード設計 2018機械学習で泣かないためのコード設計 2018
機械学習で泣かないためのコード設計 2018
 
数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理
 

Similaire à Kaggle参加報告: Champs Predicting Molecular Properties

Similaire à Kaggle参加報告: Champs Predicting Molecular Properties (20)

Introduction to Chainer (LL Ring Recursive)
Introduction to Chainer (LL Ring Recursive)Introduction to Chainer (LL Ring Recursive)
Introduction to Chainer (LL Ring Recursive)
 
[CV勉強会]Active Object Localization with Deep Reinfocement Learning
[CV勉強会]Active Object Localization with Deep Reinfocement Learning[CV勉強会]Active Object Localization with Deep Reinfocement Learning
[CV勉強会]Active Object Localization with Deep Reinfocement Learning
 
第64回情報科学談話会(滝沢 寛之 准教授)
第64回情報科学談話会(滝沢 寛之 准教授) 第64回情報科学談話会(滝沢 寛之 准教授)
第64回情報科学談話会(滝沢 寛之 准教授)
 
An Introduction of DNN Compression Technology and Hardware Acceleration on FPGA
An Introduction of DNN Compression Technology and Hardware Acceleration on FPGAAn Introduction of DNN Compression Technology and Hardware Acceleration on FPGA
An Introduction of DNN Compression Technology and Hardware Acceleration on FPGA
 
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なことChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なこと
 
ChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なことChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なこと
 
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hareDAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
 
20170806 Discriminative Optimization
20170806 Discriminative Optimization20170806 Discriminative Optimization
20170806 Discriminative Optimization
 
Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!
 
SeRanet
SeRanetSeRanet
SeRanet
 
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
 
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
 
最先端NLP勉強会2017_ACL17
最先端NLP勉強会2017_ACL17最先端NLP勉強会2017_ACL17
最先端NLP勉強会2017_ACL17
 
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
 
【チュートリアル】コンピュータビジョンによる動画認識
【チュートリアル】コンピュータビジョンによる動画認識【チュートリアル】コンピュータビジョンによる動画認識
【チュートリアル】コンピュータビジョンによる動画認識
 
2012-03-08 MSS研究会
2012-03-08 MSS研究会2012-03-08 MSS研究会
2012-03-08 MSS研究会
 
Rubyの御先祖CLUのお話(原本)
Rubyの御先祖CLUのお話(原本)Rubyの御先祖CLUのお話(原本)
Rubyの御先祖CLUのお話(原本)
 
「機械学習とは?」から始める Deep learning実践入門
「機械学習とは?」から始める Deep learning実践入門「機械学習とは?」から始める Deep learning実践入門
「機械学習とは?」から始める Deep learning実践入門
 
Generating Better Search Engine Text Advertisements with Deep Reinforcement L...
Generating Better Search Engine Text Advertisements with Deep Reinforcement L...Generating Better Search Engine Text Advertisements with Deep Reinforcement L...
Generating Better Search Engine Text Advertisements with Deep Reinforcement L...
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
 

Plus de Kazuki Fujikawa

Plus de Kazuki Fujikawa (15)

Stanford Covid Vaccine 2nd place solution
Stanford Covid Vaccine 2nd place solutionStanford Covid Vaccine 2nd place solution
Stanford Covid Vaccine 2nd place solution
 
BMS Molecular Translation 3rd place solution
BMS Molecular Translation 3rd place solutionBMS Molecular Translation 3rd place solution
BMS Molecular Translation 3rd place solution
 
ACL2020 best papers
ACL2020 best papersACL2020 best papers
ACL2020 best papers
 
NLP@ICLR2019
NLP@ICLR2019NLP@ICLR2019
NLP@ICLR2019
 
Kaggle参加報告: Quora Insincere Questions Classification
Kaggle参加報告: Quora Insincere Questions ClassificationKaggle参加報告: Quora Insincere Questions Classification
Kaggle参加報告: Quora Insincere Questions Classification
 
Ordered neurons integrating tree structures into recurrent neural networks
Ordered neurons integrating tree structures into recurrent neural networksOrdered neurons integrating tree structures into recurrent neural networks
Ordered neurons integrating tree structures into recurrent neural networks
 
A closer look at few shot classification
A closer look at few shot classificationA closer look at few shot classification
A closer look at few shot classification
 
Graph convolutional policy network for goal directed molecular graph generation
Graph convolutional policy network for goal directed molecular graph generationGraph convolutional policy network for goal directed molecular graph generation
Graph convolutional policy network for goal directed molecular graph generation
 
Conditional neural processes
Conditional neural processesConditional neural processes
Conditional neural processes
 
NIPS2017 Few-shot Learning and Graph Convolution
NIPS2017 Few-shot Learning and Graph ConvolutionNIPS2017 Few-shot Learning and Graph Convolution
NIPS2017 Few-shot Learning and Graph Convolution
 
Matrix capsules with em routing
Matrix capsules with em routingMatrix capsules with em routing
Matrix capsules with em routing
 
Predicting organic reaction outcomes with weisfeiler lehman network
Predicting organic reaction outcomes with weisfeiler lehman networkPredicting organic reaction outcomes with weisfeiler lehman network
Predicting organic reaction outcomes with weisfeiler lehman network
 
SchNet: A continuous-filter convolutional neural network for modeling quantum...
SchNet: A continuous-filter convolutional neural network for modeling quantum...SchNet: A continuous-filter convolutional neural network for modeling quantum...
SchNet: A continuous-filter convolutional neural network for modeling quantum...
 
Matching networks for one shot learning
Matching networks for one shot learningMatching networks for one shot learning
Matching networks for one shot learning
 
DeNAにおける機械学習・深層学習活用
DeNAにおける機械学習・深層学習活用DeNAにおける機械学習・深層学習活用
DeNAにおける機械学習・深層学習活用
 

Kaggle参加報告: Champs Predicting Molecular Properties

  • 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. Agenda • コンペティション概要 • Graph Convolution導入 • 弊チームの手法 • 上位Solution紹介 4
  • 5. Agenda • コンペティション概要 • Graph Convolution導入 • 弊チームの手法 • 上位Solution紹介 5
  • 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
  • 8. Couplingのタイプ • 提供されたデータの各事例にはtypeと呼ばれる情報が付与されていた。 • このtypeによってcoupling constantの分布には大きな違いがあった。 type 意味 1JHC 1結合を介したHとCの相互作用 2JHH 2結合を介したH同士の相互作用 … (計8種類) … 引用元: https://www.kaggle.com/artgor/molecular-properties-eda-and-models 8
  • 9. Agenda • コンペティション概要 • Graph Convolution導入 • 弊チームの手法 • 上位Solution紹介 9
  • 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
  • 14. Graph Convolution導入 • (Feature Extraction Phase) • 原子・結合に対する特徴量をそれぞれ抽出(e.g. 原子番号、結合種など) Feature Extraction H C H 14
  • 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
  • 25. Agenda • コンペティション概要 • Graph Convolution導入 • 弊チームの手法 • 上位Solution紹介 25
  • 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
  • 28. v1: SchNet-basedの課題・改善余地がある点 • Lossの下がりが遅く、Underfit傾向(Train loss ≒ Valid loss) • タスク(1JHH, 2JHNなど)特有の特徴抽出がしづらい • 以下(仮説)のような区別すべき構造が区別しづらい入力となっている可能性がある • Graph距離の違い • 二面角の違い • Coupling typeの違い • データを全て使えていない • 訓練データは全体の8割(Train : Valid : Test = 8 : 1 : 1) • アンサンブル無し(CV平均も無し) 28
  • 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
  • 34. 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
  • 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
  • 37. Agenda • コンペティション概要 • Graph Convolution導入 • 弊チームの手法 • 上位Solution紹介 37
  • 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
  • 41. 上位チームとの比較 • 上位3チームはいずれもself-attentionを利用したモデルを採用していた。実は問題によって は、私たちが採用したSchNetのような分子向けに作られたモデルよりも強い可能性がある。 • 1位は、全体的に情報を拡張・細分化して、既存手法よりも複雑なモデルを構築した印象があ る。 • 一般的には闇雲に複雑化をするとoverfitなどでパフォーマンスが上がらないことが多いが、 そうはならないように本当に効果的な複雑化だけをやっているということだと思う。 • 背景には、チームの中にground truthが生成できるくらいドメイン知識がある人がいるという ことが大きいと推測。実際1位と3位も量子化学者とMLエンジニアの混成チーム。 • 実際にground truthを量子化学計算で求めるのはルール違反とされていたが、自分でやったこ とがあるからこそ分かる勘所で、特徴設計できることは強みになったのではないか。 41
  • 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