SlideShare ist ein Scribd-Unternehmen logo
1 von 23
あのにっくきQWKを
閾値調整なしで攻略した(かった)
俵(@tawatawara)
Kaggle Data Science Bowl 2019 振り返り会
2020.2.29
自己紹介
Background
◦ 計算機科学(学部), 社会情報学(修士)
◦ 某JTC(電気機器) R&D 勤務
◦ MLは会社に入ってから(※最近仕事でMLしてない)
分析コンペ
◦ 2018年夏あたりから本格的に取り組む
◦ 半年ほど取り組めていなかったが最近復活
◦ 思い出深いもの等
◦
◦
◦
◦
◦
◦
最近の趣味: SPA (, ベンガル語). 特技:お祈り
台風(SIGNATE) 最下位
Human Protein Atras 22nd / 2172
iMet2019(壺) Lost Place ...
12th / 1839
阿修羅絵 227th / 3614
DSB2019 198th / 3497
2DSB2019 振り返り会
DSB2019 参加のモチベーション
きっかけ:Kaggle Days Tokyo
◦ Day1: (WS) Feature engineering for events data
◦ Homework:「自前の data か開催中の DSB2019 に取り組んで下さい」
◦ Day2: Onsite Competition by NIKKEI
◦ 記事の閲覧履歴からユーザごとの(集約)特徴を作って年齢を予測
◦ メタデータの処理してただけで、メインデータは完全にチームメンバーに頼ってた
目標
◦ 一から自分の力でログデータ(event data)に取り組む
◦ 自力で集約特徴を作ってモデルを学習 & submit
◦ あわよくば初の solo メダルを獲得
◦ 阿修羅絵?知らない子ですね…
3DSB2019 振り返り会
元々この場で振り返るつもりだった内容
反省点
◦ groupby & agg 芸を楽しみ過ぎて調子に乗っていた
◦ test を増やしての commit はしていたが、見積もりが甘かった
◦ discussion も kernel もほぼ読んでいなかった(e.g. truncated CV)
◦ 1ヶ月前から start したくせに実質2週間になり、検証が不十分
◦ RTA Japan 見てたら正月終わってた
◦ おみくじの結果が出るまでそわそわしてた
4DSB2019 振り返り会
元々この場で振り返るつもりだった内容
◦ Solution 概要 (public: 701st (0.522) → private: 198th (0.542))
◦ モデル: LGBM の K-Fold averaging (ensemble は無し)
◦ データ:
◦ CVは Stratified Group K-Fold (5-Fold)
◦ test set の過去データもログから label を作って train に加える
◦ 特徴量(548個): 基本的なものかつ割と機械的.
◦ 過去の成績に関する特徴量 (直前のもの、全体の集約)
◦ セッション数, イベント数, 滞在時間 の集約 (by world, title, event_code, event_id)
◦ 最終版はもっと加えてるが死んだので… (ensemble についても同様)
◦ 閾値: scipy.optimize.basinhopping でデータ全体(train + 過去の test)で決定
◦ Final sub の選択:CVも Public も何も信用できず自分を信じた.
5DSB2019 振り返り会
548
まえおき
閾値の決め方だけでメダルが取れるかどうかや色が変わった
DSB2019 振り返り会 6
medal
まえおき
Q. なぜ我々はDSB2019で閾値設定に苦しんだのか?
A. (主に)回帰問題として解いていたから.
Q. なぜ我々はマルチクラス分類を回帰問題として解いたのか?
A. QWK が順序性を考慮した評価指標だから.
DSB2019 振り返り会 7
まえおき
Q. では、
A. は???(何言ってんやコイツ...)
DSB2019 振り返り会 8
もし順序性を考慮した多クラス分類が出来れば?
何故閾値問題が発生する?
9DSB2019 振り返り会
𝑦∗
: 回帰モデルの予測値、𝜅𝑗: クラスを決める閾値
現実(train全体(OOF)でQWKを最大化した場合)
0 1 2 30.5 1.5 2.5
𝜅0 𝜅1 𝜅2
クラス 0 クラス 1 クラス 2 クラス 3
𝑦∗
理想
0 1 2 30.5 1.5 2.5
𝜅0 𝜅1 𝜅2
クラス 0 クラス 1 クラス 2 クラス 3
𝑦∗
何故閾値問題が発生する?
回帰モデルの学習手法の基本は RMSE の最小化
◦ 真の値から遠いほどペナルティがかかる → クラス間の順序性を考慮出来る
◦ 通常の分類モデルだとここがやりにくい(weight で頑張るとかもあり得るかも?)
◦ この後離散的なクラスに変換することは考慮されていない
◦ 閾値で範囲を切るといった情報は組み込まれていない
◦ (閾値で切るのを考えると、特定のクラスが密集するのは(RMSEは下がるが)あまり意味がないかも?)
◦ なんとか両方考慮出来ないか?
10DSB2019 振り返り会
RMSE =
1
𝑁
𝑖
𝑁
𝑦𝑖
∗
− 𝑡𝑖
2
𝑦𝑖
∗
: example 𝑖 に対する回帰モデルの予測値
𝑡𝑗 : example 𝑖 に対するラベル
おことわり
DSB2019 振り返り会 11
ここからは詳しくない分野の内容を
調べてやってみたというものです
そこら辺どうかご了承ください
このため、言葉の定義等、不正確な内容を
含んでいる可能性があります
順序選択モデル
計量経済学で用いられる、順序尺度のためのモデル
◦ 順序性はあるが離散的に扱われるものは色々ある
◦ 年収区分、不動産価格の区分
◦ アンケート調査(リッカート尺度)のような曖昧なもの
考え方
◦ 予測したいものは離散値 𝑦𝑖 ∈ 0, 1, 2, 3
◦ 𝑦𝑖 に対応する潜在的な連続潜在変数 𝑦𝑖
∗
を考え、閾値(𝜅𝑗)によって対応付ける
DSB2019 振り返り会 12
𝑦𝑖 = 0 if − ∞ < 𝑦𝑖
∗
≤ 𝜅0
𝑦𝑖 = 1 if 𝜅0 ≤ 𝑦𝑖
∗
≤ 𝜅1
𝑦𝑖 = 2 if 𝜅1 ≤ 𝑦𝑖
∗
≤ 𝜅2
𝑦𝑖 = 3 if 𝜅2 ≤ 𝑦𝑖
∗
< +∞
「あれ?やってること一緒では???」
→次からが本題
順序選択モデル
𝑦𝑖 が 𝑗 ∈ 0,1, … , 𝐽 となる確率を 𝑦𝑖
∗
が区間に入る確率で表現
13DSB2019 振り返り会
𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 = 𝑃 𝜅𝑗−1 ≤ 𝑦𝑖
∗
≤ 𝜅𝑗 = 𝑃 𝑦𝑖
∗
≤ 𝜅𝑗 − 𝑃 𝑦𝑖
∗
≤ 𝜅𝑗−1
𝑦∗ ≤ 𝜅2 の範囲
𝑦∗ ≤ 𝜅1 の範囲
0 1 2 30.5 1.5 2.5
𝜅0 𝜅1 𝜅2𝑦 = 0 の範囲
𝑦 = 1 の範囲
𝑦 = 2 の範囲
𝑦 = 3 の範囲
𝑦∗
𝑦∗
≤ 𝜅0 の範囲
𝑦𝑖
∗
= 𝑓 𝑥𝑖 (ここで 𝑓 𝑥𝑖 は何らかの回帰モデル)
順序選択モデル
𝑦𝑖 が 𝑗 ∈ 0,1, … , 𝐽 となる確率を 𝑦𝑖
∗
が区間に入る確率で表現
何が嬉しい?
◦ クラス間の順序性を考慮出来ている
◦ 閾値を考慮して離散確率を出せる → Multi-Class Logarithmic Lossで最適化が可能
14DSB2019 振り返り会
𝑦𝑖
∗
= 𝑓 𝑥𝑖 (ここで 𝑓 𝑥𝑖 は何らかの回帰モデル)
Loss = −
1
𝑁
𝑖 𝑗
𝑑𝑖𝑗 log 𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 𝑑𝑖𝑗 =
1 (𝑡𝑖 = 𝑗)
0 otherwise
𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 = 𝑃 𝜅𝑗−1 ≤ 𝑦𝑖
∗
≤ 𝜅𝑗 = 𝑃 𝑦𝑖
∗
≤ 𝜅𝑗 − 𝑃 𝑦𝑖
∗
≤ 𝜅𝑗−1
順序選択モデル
𝑃 𝑦𝑖
∗
≤ 𝜅𝑗 ってどうやって表現するの?
◦ 詳細は省く(※)が、回帰予測の誤差が従う確率分布の 累積分布関数 𝐹 で表現できる
◦ 特に、ロジスティック分布を用いたものは順序ロジットモデルと呼ばれる
◦ このとき 𝐹 はロジスティック関数で表現される
15DSB2019 振り返り会
𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 = 𝑃 𝑦𝑖
∗
≤ 𝜅𝑗 − 𝑃 𝑦𝑖
∗
≤ 𝜅𝑗−1 = 𝐹 𝜅𝑗 − 𝑦𝑖
∗
− 𝐹 𝜅𝑗−1 − 𝑦𝑖
∗
0 1 2 30.5 1.5 2.5
𝜅0 𝜅1 𝜅2
クラス 0 クラス 1 クラス 2 クラス 3
𝑦∗
イメージ
0
0.5
1
0
0.5
1
0
0.5
1
𝐹 𝜅0 − 𝑦𝑖
∗
𝐹 𝜅1 − 𝑦𝑖
∗
𝐹 𝜅2 − 𝑦𝑖
∗
※まだ理解してないだけ
LightGBMの順序ロジットモデルへの拡張
学習編
◦ 連続潜在変数 𝑦∗
を予測する 𝑓として LightGBM を使う (𝑦𝑖
∗
= lgb 𝑥𝑖 )
◦ これに関しては通常の回帰予測と一緒
◦ Loss のカスタマイズ
◦ ここではシンプルに標準シグモイド関数(右式)を用いる
◦ ただし、𝜅𝑗 は given とする (とりあえず理想的な値を与える. )
16DSB2019 振り返り会
Loss = −
𝑖 𝑗
𝑑𝑖𝑗 log 𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 = −
𝑖 𝑗
𝑑𝑖𝑗 log 𝜎 𝜅𝑗 − 𝑦𝑖
∗
− 𝜎 𝜅𝑗−1 − 𝑦𝑖
∗
𝑑
𝑑𝑦𝑖
∗ log 𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 = 1 − 𝜎 𝜅𝑗 − 𝑦𝑖
∗
+ 𝜎 𝜅𝑗−1 − 𝑦𝑖
∗
𝑑2
𝑑𝑦𝑖
∗2 log 𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 = 1 − 𝜎 𝜅𝑗 − 𝑦𝑖
∗
𝜎 𝜅𝑗 − 𝑦𝑖
∗
+ 1 − 𝜎 𝜅𝑗−1 − 𝑦𝑖
∗
𝜎 𝜅𝑗−1 − 𝑦𝑖
∗
𝜎 𝑥 =
1
1 + 𝑒−𝑥
今回は 𝜅−1 = −∞, 𝜅0 = 0.5, 𝜅1 = 1.5, 𝜅2 = 2.5, 𝜅3 = +∞ と設定
LightGBMの順序ロジットモデルへの拡張
推論編
◦ 率直なやり方: それぞれの 𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 を算出 → 確率が一番高い 𝑗 を取る
◦ 以前と同じやり方:改めて閾値を決める
◦ 良い感じの 𝜅0
′
, 𝜅1
′
, 𝜅2
′
を QWK の値を見て決める
◦ 各 Fold で決めて平均, OOF Pred 全体(またはサンプリングしたもの)で最適化, など
17DSB2019 振り返り会
𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 = 𝑃 𝑦𝑖
∗
≤ 𝜅𝑗 − 𝑃 𝑦𝑖
∗
≤ 𝜅𝑗−1 𝑗 = 0, 1, 2, 3
𝑦𝑖 = argmax
𝑗
𝑃 𝑦𝑖 = 𝑗 𝑥𝑖
0 1 2 30.5 1.5 2.5
𝜅0
′
𝜅1
′
𝜅2
′
クラス 0 クラス 1 クラス 2 クラス 3
𝑦∗
実験: Late Submission で検証
RMSEで最適化した通常の LightGBM と比較
◦ Feature, Seed, ハイパラを揃える(時間が無かったので決め打ち)
◦ Test Set (の過去) も学習に用いる
◦ もちろん Validation Set の切り方も揃える
◦ Installation_id を group id と見た StratifiedGroupKFold
◦ Validation Metric は Loss と同一のものを使用し、early stopping を行う
◦ ※学習の設定は冒頭で紹介した solution と同じ. metric のみが異なる.
比較する内容
◦ 予測値の分布は RMSE で最適化した場合と比べて変化するか?
◦ local cv score(oof prediction) と (public,) private score (k-fold Averaging)
DSB2019 振り返り会 18
DSB2019 振り返り会 19
Out-Of-Fold Prediction の分布の比較(全体)
RMSE
Custom
Loss
RMSE が 0~3 の範囲に固まっているのに対し、CustomLoss は分布が広がる
次ページで class ごとに確認 ☞
DSB2019 振り返り会 20
Out-Of-Fold Prediction の分布の比較(class 別)
RMSE
Custom
Loss
class 0 class 1 class 2 class 3
CustomLoss の方がラベルの値を中心に分布している?(1, 2は怪しいが.)
※そういう風に最適化してるからそれはそう
※OOF は commit 時の数値. test(の過去) も train に使う都合上 submit 時は不明.
◦ Local(OOF)では CustomLoss の方が少し良さげに見える
◦ ただし Private では、閾値をOOFで optimize した sub の score が一緒
◦ そもそもCVの作り方に問題がある気もする(今回は単純にSGKFで分割しただけ)
◦ 事前に与えた理想的な閾値を使った場合は(当然だが) CustomLoss の方が良い
Loss, QWK の比較 (kernel 実行版)
DSB2019 振り返り会 21
Objecitive
RMSE
(OOF)
CustomLoss
(OOF)
閾値の決め方
QWK
(OOF)
QWK
(Public)
QWK
(Private)
RMSE 0.991 1.093
理想値(0.5,1.5,2.5) 0.5177 0.451 0.474
分布で決定 0.5797 0.532 0.533
OOF全体でQWK最大化 0.5927 0.515 0.544
Custom
Loss
1.267 1.013
理想値(0.5,1.5,2.5) 0.5829 0.496 0.525
分布で決定 0.5799 0.526 0.536
OOF全体でQWK最大化 0.5942 0.523 0.544
argmax 0.5313 0.428 0.468
まとめ
なぜ我々が閾値設定に苦しんだかを改めて考える
◦ QWK が順序を考慮した指標であるために分類問題を回帰問題として解いていた
順序選択モデルの導入
◦ クラス間の順序性を考慮する + 閾値による分類予測への変換も織り込んでいる
◦ GBDT(今回はLightGBM) の Loss をカスタマイズすることで拡張が可能
Late Sub による実験
◦ 分布 :OOFの予測値の hist は比較的綺麗になっているように見える
◦ スコア:Local だと少し良かったが、Private は微妙(≥ RMSEで最適化したモデル ではある).
◦ そもそもCVの作り方にも問題があるかも?ここは更に実験したい部分.
◦ 与えた理想的な閾値( 𝑗 + 0.5 )でのスコアは当然ながら CustomLoss の方が良い
改善点
◦ 事前に与える閾値の決め方, 閾値込みでのモデル化、後処理での閾値の決め方、などなど沢山ある
◦ Local と Private の差異は CV の作り方のせいかも? → ここをしっかりやって比較し直したい
◦ そもそも特徴量等がシンプルなので、上位陣のやつに試してみたかったり
DSB2019 振り返り会 22
おまけ: 実装した Custom Metric
Class を定義
◦ 初期化時に閾値を渡す
◦ grad と hess を返すメソッド、loss を返す
メソッドをそれぞれ用意
◦ calc_loss を別に用意しているのは loss を改
めて計算したいときに使う用
◦ lgbm には生成したインスタンスからこれらの
メソッドを渡す
◦ ※以下はわかりやすくしただけで、notebook 上
での実際の配置とは少し異なります
DSB2019 振り返り会 23

Weitere ähnliche Inhalte

Was ist angesagt?

[DL輪読会] Spectral Norm Regularization for Improving the Generalizability of De...
[DL輪読会] Spectral Norm Regularization for Improving the Generalizability of De...[DL輪読会] Spectral Norm Regularization for Improving the Generalizability of De...
[DL輪読会] Spectral Norm Regularization for Improving the Generalizability of De...Deep Learning JP
 
[DeepLearning論文読み会] Dataset Distillation
[DeepLearning論文読み会] Dataset Distillation[DeepLearning論文読み会] Dataset Distillation
[DeepLearning論文読み会] Dataset DistillationRyutaro Yamauchi
 
最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向ohken
 
パターン認識と機械学習入門
パターン認識と機械学習入門パターン認識と機械学習入門
パターン認識と機械学習入門Momoko Hayamizu
 
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
[DL輪読会]NVAE: A Deep Hierarchical Variational AutoencoderDeep Learning JP
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向Motokawa Tetsuya
 
【DL輪読会】Dropout Reduces Underfitting
【DL輪読会】Dropout Reduces Underfitting【DL輪読会】Dropout Reduces Underfitting
【DL輪読会】Dropout Reduces UnderfittingDeep Learning JP
 
アンサンブル学習
アンサンブル学習アンサンブル学習
アンサンブル学習Hidekazu Tanaka
 
モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化Yusuke Uchida
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門Kawamoto_Kazuhiko
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)RyuichiKanoh
 
最適輸送入門
最適輸送入門最適輸送入門
最適輸送入門joisino
 
合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点Ichigaku Takigawa
 
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with TransformersDeep Learning JP
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理Taiji Suzuki
 
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...Deep Learning JP
 
[DL輪読会]Understanding Black-box Predictions via Influence Functions
[DL輪読会]Understanding Black-box Predictions via Influence Functions [DL輪読会]Understanding Black-box Predictions via Influence Functions
[DL輪読会]Understanding Black-box Predictions via Influence Functions Deep Learning JP
 
Positive-Unlabeled Learning with Non-Negative Risk Estimator
Positive-Unlabeled Learning with Non-Negative Risk EstimatorPositive-Unlabeled Learning with Non-Negative Risk Estimator
Positive-Unlabeled Learning with Non-Negative Risk EstimatorKiryo Ryuichi
 
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision TreeNIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision TreeTakami Sato
 

Was ist angesagt? (20)

[DL輪読会] Spectral Norm Regularization for Improving the Generalizability of De...
[DL輪読会] Spectral Norm Regularization for Improving the Generalizability of De...[DL輪読会] Spectral Norm Regularization for Improving the Generalizability of De...
[DL輪読会] Spectral Norm Regularization for Improving the Generalizability of De...
 
[DeepLearning論文読み会] Dataset Distillation
[DeepLearning論文読み会] Dataset Distillation[DeepLearning論文読み会] Dataset Distillation
[DeepLearning論文読み会] Dataset Distillation
 
最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向
 
パターン認識と機械学習入門
パターン認識と機械学習入門パターン認識と機械学習入門
パターン認識と機械学習入門
 
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
 
HiPPO/S4解説
HiPPO/S4解説HiPPO/S4解説
HiPPO/S4解説
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向
 
【DL輪読会】Dropout Reduces Underfitting
【DL輪読会】Dropout Reduces Underfitting【DL輪読会】Dropout Reduces Underfitting
【DL輪読会】Dropout Reduces Underfitting
 
アンサンブル学習
アンサンブル学習アンサンブル学習
アンサンブル学習
 
モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
最適輸送入門
最適輸送入門最適輸送入門
最適輸送入門
 
合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点
 
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
 
[DL輪読会]Understanding Black-box Predictions via Influence Functions
[DL輪読会]Understanding Black-box Predictions via Influence Functions [DL輪読会]Understanding Black-box Predictions via Influence Functions
[DL輪読会]Understanding Black-box Predictions via Influence Functions
 
Positive-Unlabeled Learning with Non-Negative Risk Estimator
Positive-Unlabeled Learning with Non-Negative Risk EstimatorPositive-Unlabeled Learning with Non-Negative Risk Estimator
Positive-Unlabeled Learning with Non-Negative Risk Estimator
 
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision TreeNIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
 

Ähnlich wie DSB2019振り返り会:あのにっくき QWK を閾値調整なしで攻略した(かった)

【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい
【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい
【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたいTakuji Tahara
 
Long-Tailed Classificationの最新動向について
Long-Tailed Classificationの最新動向についてLong-Tailed Classificationの最新動向について
Long-Tailed Classificationの最新動向についてPlot Hong
 
【論文LT資料】 Gait Recognition via Disentangled Representation Learning (CVPR2019)
【論文LT資料】 Gait Recognition via Disentangled Representation Learning (CVPR2019)【論文LT資料】 Gait Recognition via Disentangled Representation Learning (CVPR2019)
【論文LT資料】 Gait Recognition via Disentangled Representation Learning (CVPR2019)Takuji Tahara
 
Student Cup 2020 2nd(?) solution LT
Student Cup 2020 2nd(?) solution LTStudent Cup 2020 2nd(?) solution LT
Student Cup 2020 2nd(?) solution LTHogeBona
 
ICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic modelsICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic modelssleepy_yoshi
 
Robust Large-Scale Machine Learning in the Cloud
Robust Large-Scale Machine Learning in the CloudRobust Large-Scale Machine Learning in the Cloud
Robust Large-Scale Machine Learning in the CloudYuto Yamaguchi
 
Osaka.Stan #3 Chapter 5-2
Osaka.Stan #3 Chapter 5-2Osaka.Stan #3 Chapter 5-2
Osaka.Stan #3 Chapter 5-2Takayuki Goto
 
MLP SVM Chapter 7 分割法
MLP SVM Chapter 7 分割法MLP SVM Chapter 7 分割法
MLP SVM Chapter 7 分割法Taikai Takeda
 
LCCC2010:Learning on Cores, Clusters and Cloudsの解説
LCCC2010:Learning on Cores,  Clusters and Cloudsの解説LCCC2010:Learning on Cores,  Clusters and Cloudsの解説
LCCC2010:Learning on Cores, Clusters and Cloudsの解説Preferred Networks
 
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さんAkira Shibata
 
NIPS KANSAI Reading Group #7: Temporal Difference Models: Model-Free Deep RL ...
NIPS KANSAI Reading Group #7: Temporal Difference Models: Model-Free Deep RL ...NIPS KANSAI Reading Group #7: Temporal Difference Models: Model-Free Deep RL ...
NIPS KANSAI Reading Group #7: Temporal Difference Models: Model-Free Deep RL ...Eiji Uchibe
 
PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5sleepy_yoshi
 
20190725 taguchi decision_tree_for_pubshare
20190725 taguchi decision_tree_for_pubshare20190725 taguchi decision_tree_for_pubshare
20190725 taguchi decision_tree_for_pubsharetaguchi naoya
 
Large scale gan training for high fidelity natural
Large scale gan training for high fidelity naturalLarge scale gan training for high fidelity natural
Large scale gan training for high fidelity naturalKCS Keio Computer Society
 
機械学習 / Deep Learning 大全 (2) Deep Learning 基礎編
機械学習 / Deep Learning 大全 (2) Deep Learning 基礎編機械学習 / Deep Learning 大全 (2) Deep Learning 基礎編
機械学習 / Deep Learning 大全 (2) Deep Learning 基礎編Daiyu Hatakeyama
 

Ähnlich wie DSB2019振り返り会:あのにっくき QWK を閾値調整なしで攻略した(かった) (20)

【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい
【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい
【LT資料】 Neural Network 素人なんだけど何とかご機嫌取りをしたい
 
Long-Tailed Classificationの最新動向について
Long-Tailed Classificationの最新動向についてLong-Tailed Classificationの最新動向について
Long-Tailed Classificationの最新動向について
 
BERTology のススメ
BERTology のススメBERTology のススメ
BERTology のススメ
 
【論文LT資料】 Gait Recognition via Disentangled Representation Learning (CVPR2019)
【論文LT資料】 Gait Recognition via Disentangled Representation Learning (CVPR2019)【論文LT資料】 Gait Recognition via Disentangled Representation Learning (CVPR2019)
【論文LT資料】 Gait Recognition via Disentangled Representation Learning (CVPR2019)
 
Student Cup 2020 2nd(?) solution LT
Student Cup 2020 2nd(?) solution LTStudent Cup 2020 2nd(?) solution LT
Student Cup 2020 2nd(?) solution LT
 
ICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic modelsICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic models
 
Robust Large-Scale Machine Learning in the Cloud
Robust Large-Scale Machine Learning in the CloudRobust Large-Scale Machine Learning in the Cloud
Robust Large-Scale Machine Learning in the Cloud
 
Osaka.Stan #3 Chapter 5-2
Osaka.Stan #3 Chapter 5-2Osaka.Stan #3 Chapter 5-2
Osaka.Stan #3 Chapter 5-2
 
MLP SVM Chapter 7 分割法
MLP SVM Chapter 7 分割法MLP SVM Chapter 7 分割法
MLP SVM Chapter 7 分割法
 
ggplot2 110129
ggplot2 110129ggplot2 110129
ggplot2 110129
 
LCCC2010:Learning on Cores, Clusters and Cloudsの解説
LCCC2010:Learning on Cores,  Clusters and Cloudsの解説LCCC2010:Learning on Cores,  Clusters and Cloudsの解説
LCCC2010:Learning on Cores, Clusters and Cloudsの解説
 
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
 
NIPS KANSAI Reading Group #7: Temporal Difference Models: Model-Free Deep RL ...
NIPS KANSAI Reading Group #7: Temporal Difference Models: Model-Free Deep RL ...NIPS KANSAI Reading Group #7: Temporal Difference Models: Model-Free Deep RL ...
NIPS KANSAI Reading Group #7: Temporal Difference Models: Model-Free Deep RL ...
 
PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5
 
20190725 taguchi decision_tree_for_pubshare
20190725 taguchi decision_tree_for_pubshare20190725 taguchi decision_tree_for_pubshare
20190725 taguchi decision_tree_for_pubshare
 
Large scale gan training for high fidelity natural
Large scale gan training for high fidelity naturalLarge scale gan training for high fidelity natural
Large scale gan training for high fidelity natural
 
機械学習 / Deep Learning 大全 (2) Deep Learning 基礎編
機械学習 / Deep Learning 大全 (2) Deep Learning 基礎編機械学習 / Deep Learning 大全 (2) Deep Learning 基礎編
機械学習 / Deep Learning 大全 (2) Deep Learning 基礎編
 
ggplot2 110129
ggplot2 110129ggplot2 110129
ggplot2 110129
 
PRML Chapter 14
PRML Chapter 14PRML Chapter 14
PRML Chapter 14
 
How good is my GAN?
How good is my GAN?How good is my GAN?
How good is my GAN?
 

Kürzlich hochgeladen

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 

Kürzlich hochgeladen (9)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 

DSB2019振り返り会:あのにっくき QWK を閾値調整なしで攻略した(かった)

  • 2. 自己紹介 Background ◦ 計算機科学(学部), 社会情報学(修士) ◦ 某JTC(電気機器) R&D 勤務 ◦ MLは会社に入ってから(※最近仕事でMLしてない) 分析コンペ ◦ 2018年夏あたりから本格的に取り組む ◦ 半年ほど取り組めていなかったが最近復活 ◦ 思い出深いもの等 ◦ ◦ ◦ ◦ ◦ ◦ 最近の趣味: SPA (, ベンガル語). 特技:お祈り 台風(SIGNATE) 最下位 Human Protein Atras 22nd / 2172 iMet2019(壺) Lost Place ... 12th / 1839 阿修羅絵 227th / 3614 DSB2019 198th / 3497 2DSB2019 振り返り会
  • 3. DSB2019 参加のモチベーション きっかけ:Kaggle Days Tokyo ◦ Day1: (WS) Feature engineering for events data ◦ Homework:「自前の data か開催中の DSB2019 に取り組んで下さい」 ◦ Day2: Onsite Competition by NIKKEI ◦ 記事の閲覧履歴からユーザごとの(集約)特徴を作って年齢を予測 ◦ メタデータの処理してただけで、メインデータは完全にチームメンバーに頼ってた 目標 ◦ 一から自分の力でログデータ(event data)に取り組む ◦ 自力で集約特徴を作ってモデルを学習 & submit ◦ あわよくば初の solo メダルを獲得 ◦ 阿修羅絵?知らない子ですね… 3DSB2019 振り返り会
  • 4. 元々この場で振り返るつもりだった内容 反省点 ◦ groupby & agg 芸を楽しみ過ぎて調子に乗っていた ◦ test を増やしての commit はしていたが、見積もりが甘かった ◦ discussion も kernel もほぼ読んでいなかった(e.g. truncated CV) ◦ 1ヶ月前から start したくせに実質2週間になり、検証が不十分 ◦ RTA Japan 見てたら正月終わってた ◦ おみくじの結果が出るまでそわそわしてた 4DSB2019 振り返り会
  • 5. 元々この場で振り返るつもりだった内容 ◦ Solution 概要 (public: 701st (0.522) → private: 198th (0.542)) ◦ モデル: LGBM の K-Fold averaging (ensemble は無し) ◦ データ: ◦ CVは Stratified Group K-Fold (5-Fold) ◦ test set の過去データもログから label を作って train に加える ◦ 特徴量(548個): 基本的なものかつ割と機械的. ◦ 過去の成績に関する特徴量 (直前のもの、全体の集約) ◦ セッション数, イベント数, 滞在時間 の集約 (by world, title, event_code, event_id) ◦ 最終版はもっと加えてるが死んだので… (ensemble についても同様) ◦ 閾値: scipy.optimize.basinhopping でデータ全体(train + 過去の test)で決定 ◦ Final sub の選択:CVも Public も何も信用できず自分を信じた. 5DSB2019 振り返り会 548
  • 7. まえおき Q. なぜ我々はDSB2019で閾値設定に苦しんだのか? A. (主に)回帰問題として解いていたから. Q. なぜ我々はマルチクラス分類を回帰問題として解いたのか? A. QWK が順序性を考慮した評価指標だから. DSB2019 振り返り会 7
  • 8. まえおき Q. では、 A. は???(何言ってんやコイツ...) DSB2019 振り返り会 8 もし順序性を考慮した多クラス分類が出来れば?
  • 9. 何故閾値問題が発生する? 9DSB2019 振り返り会 𝑦∗ : 回帰モデルの予測値、𝜅𝑗: クラスを決める閾値 現実(train全体(OOF)でQWKを最大化した場合) 0 1 2 30.5 1.5 2.5 𝜅0 𝜅1 𝜅2 クラス 0 クラス 1 クラス 2 クラス 3 𝑦∗ 理想 0 1 2 30.5 1.5 2.5 𝜅0 𝜅1 𝜅2 クラス 0 クラス 1 クラス 2 クラス 3 𝑦∗
  • 10. 何故閾値問題が発生する? 回帰モデルの学習手法の基本は RMSE の最小化 ◦ 真の値から遠いほどペナルティがかかる → クラス間の順序性を考慮出来る ◦ 通常の分類モデルだとここがやりにくい(weight で頑張るとかもあり得るかも?) ◦ この後離散的なクラスに変換することは考慮されていない ◦ 閾値で範囲を切るといった情報は組み込まれていない ◦ (閾値で切るのを考えると、特定のクラスが密集するのは(RMSEは下がるが)あまり意味がないかも?) ◦ なんとか両方考慮出来ないか? 10DSB2019 振り返り会 RMSE = 1 𝑁 𝑖 𝑁 𝑦𝑖 ∗ − 𝑡𝑖 2 𝑦𝑖 ∗ : example 𝑖 に対する回帰モデルの予測値 𝑡𝑗 : example 𝑖 に対するラベル
  • 12. 順序選択モデル 計量経済学で用いられる、順序尺度のためのモデル ◦ 順序性はあるが離散的に扱われるものは色々ある ◦ 年収区分、不動産価格の区分 ◦ アンケート調査(リッカート尺度)のような曖昧なもの 考え方 ◦ 予測したいものは離散値 𝑦𝑖 ∈ 0, 1, 2, 3 ◦ 𝑦𝑖 に対応する潜在的な連続潜在変数 𝑦𝑖 ∗ を考え、閾値(𝜅𝑗)によって対応付ける DSB2019 振り返り会 12 𝑦𝑖 = 0 if − ∞ < 𝑦𝑖 ∗ ≤ 𝜅0 𝑦𝑖 = 1 if 𝜅0 ≤ 𝑦𝑖 ∗ ≤ 𝜅1 𝑦𝑖 = 2 if 𝜅1 ≤ 𝑦𝑖 ∗ ≤ 𝜅2 𝑦𝑖 = 3 if 𝜅2 ≤ 𝑦𝑖 ∗ < +∞ 「あれ?やってること一緒では???」 →次からが本題
  • 13. 順序選択モデル 𝑦𝑖 が 𝑗 ∈ 0,1, … , 𝐽 となる確率を 𝑦𝑖 ∗ が区間に入る確率で表現 13DSB2019 振り返り会 𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 = 𝑃 𝜅𝑗−1 ≤ 𝑦𝑖 ∗ ≤ 𝜅𝑗 = 𝑃 𝑦𝑖 ∗ ≤ 𝜅𝑗 − 𝑃 𝑦𝑖 ∗ ≤ 𝜅𝑗−1 𝑦∗ ≤ 𝜅2 の範囲 𝑦∗ ≤ 𝜅1 の範囲 0 1 2 30.5 1.5 2.5 𝜅0 𝜅1 𝜅2𝑦 = 0 の範囲 𝑦 = 1 の範囲 𝑦 = 2 の範囲 𝑦 = 3 の範囲 𝑦∗ 𝑦∗ ≤ 𝜅0 の範囲 𝑦𝑖 ∗ = 𝑓 𝑥𝑖 (ここで 𝑓 𝑥𝑖 は何らかの回帰モデル)
  • 14. 順序選択モデル 𝑦𝑖 が 𝑗 ∈ 0,1, … , 𝐽 となる確率を 𝑦𝑖 ∗ が区間に入る確率で表現 何が嬉しい? ◦ クラス間の順序性を考慮出来ている ◦ 閾値を考慮して離散確率を出せる → Multi-Class Logarithmic Lossで最適化が可能 14DSB2019 振り返り会 𝑦𝑖 ∗ = 𝑓 𝑥𝑖 (ここで 𝑓 𝑥𝑖 は何らかの回帰モデル) Loss = − 1 𝑁 𝑖 𝑗 𝑑𝑖𝑗 log 𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 𝑑𝑖𝑗 = 1 (𝑡𝑖 = 𝑗) 0 otherwise 𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 = 𝑃 𝜅𝑗−1 ≤ 𝑦𝑖 ∗ ≤ 𝜅𝑗 = 𝑃 𝑦𝑖 ∗ ≤ 𝜅𝑗 − 𝑃 𝑦𝑖 ∗ ≤ 𝜅𝑗−1
  • 15. 順序選択モデル 𝑃 𝑦𝑖 ∗ ≤ 𝜅𝑗 ってどうやって表現するの? ◦ 詳細は省く(※)が、回帰予測の誤差が従う確率分布の 累積分布関数 𝐹 で表現できる ◦ 特に、ロジスティック分布を用いたものは順序ロジットモデルと呼ばれる ◦ このとき 𝐹 はロジスティック関数で表現される 15DSB2019 振り返り会 𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 = 𝑃 𝑦𝑖 ∗ ≤ 𝜅𝑗 − 𝑃 𝑦𝑖 ∗ ≤ 𝜅𝑗−1 = 𝐹 𝜅𝑗 − 𝑦𝑖 ∗ − 𝐹 𝜅𝑗−1 − 𝑦𝑖 ∗ 0 1 2 30.5 1.5 2.5 𝜅0 𝜅1 𝜅2 クラス 0 クラス 1 クラス 2 クラス 3 𝑦∗ イメージ 0 0.5 1 0 0.5 1 0 0.5 1 𝐹 𝜅0 − 𝑦𝑖 ∗ 𝐹 𝜅1 − 𝑦𝑖 ∗ 𝐹 𝜅2 − 𝑦𝑖 ∗ ※まだ理解してないだけ
  • 16. LightGBMの順序ロジットモデルへの拡張 学習編 ◦ 連続潜在変数 𝑦∗ を予測する 𝑓として LightGBM を使う (𝑦𝑖 ∗ = lgb 𝑥𝑖 ) ◦ これに関しては通常の回帰予測と一緒 ◦ Loss のカスタマイズ ◦ ここではシンプルに標準シグモイド関数(右式)を用いる ◦ ただし、𝜅𝑗 は given とする (とりあえず理想的な値を与える. ) 16DSB2019 振り返り会 Loss = − 𝑖 𝑗 𝑑𝑖𝑗 log 𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 = − 𝑖 𝑗 𝑑𝑖𝑗 log 𝜎 𝜅𝑗 − 𝑦𝑖 ∗ − 𝜎 𝜅𝑗−1 − 𝑦𝑖 ∗ 𝑑 𝑑𝑦𝑖 ∗ log 𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 = 1 − 𝜎 𝜅𝑗 − 𝑦𝑖 ∗ + 𝜎 𝜅𝑗−1 − 𝑦𝑖 ∗ 𝑑2 𝑑𝑦𝑖 ∗2 log 𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 = 1 − 𝜎 𝜅𝑗 − 𝑦𝑖 ∗ 𝜎 𝜅𝑗 − 𝑦𝑖 ∗ + 1 − 𝜎 𝜅𝑗−1 − 𝑦𝑖 ∗ 𝜎 𝜅𝑗−1 − 𝑦𝑖 ∗ 𝜎 𝑥 = 1 1 + 𝑒−𝑥 今回は 𝜅−1 = −∞, 𝜅0 = 0.5, 𝜅1 = 1.5, 𝜅2 = 2.5, 𝜅3 = +∞ と設定
  • 17. LightGBMの順序ロジットモデルへの拡張 推論編 ◦ 率直なやり方: それぞれの 𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 を算出 → 確率が一番高い 𝑗 を取る ◦ 以前と同じやり方:改めて閾値を決める ◦ 良い感じの 𝜅0 ′ , 𝜅1 ′ , 𝜅2 ′ を QWK の値を見て決める ◦ 各 Fold で決めて平均, OOF Pred 全体(またはサンプリングしたもの)で最適化, など 17DSB2019 振り返り会 𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 = 𝑃 𝑦𝑖 ∗ ≤ 𝜅𝑗 − 𝑃 𝑦𝑖 ∗ ≤ 𝜅𝑗−1 𝑗 = 0, 1, 2, 3 𝑦𝑖 = argmax 𝑗 𝑃 𝑦𝑖 = 𝑗 𝑥𝑖 0 1 2 30.5 1.5 2.5 𝜅0 ′ 𝜅1 ′ 𝜅2 ′ クラス 0 クラス 1 クラス 2 クラス 3 𝑦∗
  • 18. 実験: Late Submission で検証 RMSEで最適化した通常の LightGBM と比較 ◦ Feature, Seed, ハイパラを揃える(時間が無かったので決め打ち) ◦ Test Set (の過去) も学習に用いる ◦ もちろん Validation Set の切り方も揃える ◦ Installation_id を group id と見た StratifiedGroupKFold ◦ Validation Metric は Loss と同一のものを使用し、early stopping を行う ◦ ※学習の設定は冒頭で紹介した solution と同じ. metric のみが異なる. 比較する内容 ◦ 予測値の分布は RMSE で最適化した場合と比べて変化するか? ◦ local cv score(oof prediction) と (public,) private score (k-fold Averaging) DSB2019 振り返り会 18
  • 19. DSB2019 振り返り会 19 Out-Of-Fold Prediction の分布の比較(全体) RMSE Custom Loss RMSE が 0~3 の範囲に固まっているのに対し、CustomLoss は分布が広がる 次ページで class ごとに確認 ☞
  • 20. DSB2019 振り返り会 20 Out-Of-Fold Prediction の分布の比較(class 別) RMSE Custom Loss class 0 class 1 class 2 class 3 CustomLoss の方がラベルの値を中心に分布している?(1, 2は怪しいが.) ※そういう風に最適化してるからそれはそう
  • 21. ※OOF は commit 時の数値. test(の過去) も train に使う都合上 submit 時は不明. ◦ Local(OOF)では CustomLoss の方が少し良さげに見える ◦ ただし Private では、閾値をOOFで optimize した sub の score が一緒 ◦ そもそもCVの作り方に問題がある気もする(今回は単純にSGKFで分割しただけ) ◦ 事前に与えた理想的な閾値を使った場合は(当然だが) CustomLoss の方が良い Loss, QWK の比較 (kernel 実行版) DSB2019 振り返り会 21 Objecitive RMSE (OOF) CustomLoss (OOF) 閾値の決め方 QWK (OOF) QWK (Public) QWK (Private) RMSE 0.991 1.093 理想値(0.5,1.5,2.5) 0.5177 0.451 0.474 分布で決定 0.5797 0.532 0.533 OOF全体でQWK最大化 0.5927 0.515 0.544 Custom Loss 1.267 1.013 理想値(0.5,1.5,2.5) 0.5829 0.496 0.525 分布で決定 0.5799 0.526 0.536 OOF全体でQWK最大化 0.5942 0.523 0.544 argmax 0.5313 0.428 0.468
  • 22. まとめ なぜ我々が閾値設定に苦しんだかを改めて考える ◦ QWK が順序を考慮した指標であるために分類問題を回帰問題として解いていた 順序選択モデルの導入 ◦ クラス間の順序性を考慮する + 閾値による分類予測への変換も織り込んでいる ◦ GBDT(今回はLightGBM) の Loss をカスタマイズすることで拡張が可能 Late Sub による実験 ◦ 分布 :OOFの予測値の hist は比較的綺麗になっているように見える ◦ スコア:Local だと少し良かったが、Private は微妙(≥ RMSEで最適化したモデル ではある). ◦ そもそもCVの作り方にも問題があるかも?ここは更に実験したい部分. ◦ 与えた理想的な閾値( 𝑗 + 0.5 )でのスコアは当然ながら CustomLoss の方が良い 改善点 ◦ 事前に与える閾値の決め方, 閾値込みでのモデル化、後処理での閾値の決め方、などなど沢山ある ◦ Local と Private の差異は CV の作り方のせいかも? → ここをしっかりやって比較し直したい ◦ そもそも特徴量等がシンプルなので、上位陣のやつに試してみたかったり DSB2019 振り返り会 22
  • 23. おまけ: 実装した Custom Metric Class を定義 ◦ 初期化時に閾値を渡す ◦ grad と hess を返すメソッド、loss を返す メソッドをそれぞれ用意 ◦ calc_loss を別に用意しているのは loss を改 めて計算したいときに使う用 ◦ lgbm には生成したインスタンスからこれらの メソッドを渡す ◦ ※以下はわかりやすくしただけで、notebook 上 での実際の配置とは少し異なります DSB2019 振り返り会 23