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

Signate: MUFG Data Science Champion Ship 解法紹介(5th)

ty
October 06, 2022

Signate: MUFG Data Science Champion Ship 解法紹介(5th)

2022-08-30 ~ 09-22にSignateにて開催されていたMUFGコンペ(MUFG Data Science Champion Ship)の解法の一例.

ty

October 06, 2022
Tweet

More Decks by ty

Other Decks in Technology

Transcript

  1. • BERT系のモデル -> GBDTによるStacking 2 解法 deberta-v3-large deberta-large roberta-large xlm-roberta-large

    mbart-large-50 deberta-v3-large (US) LightGBM XGBoost CatBoost Mean Feature engineering raw data html content other features Add other features as text Remove html 本パイプライン×4 (random_seed=0,1,2,3) CrossValidationの分割も random_seedで指定
  2. 5 データについて • 説明変数と目的変数 [state] 二値変数(0/1) [country] アルファベット二文字の国コード 例:US [category1],

    [category2] 例:music, jazz [duration] 日数 例:30 [goal] 範囲を表す文字列?単位不明 例:1-1000 [html_content] HTMLで書かれたアピール文 基本英語だが他言語も含む
  3. 6 データについて:簡単なデータ可視化 1/4 • データ件数 – Train data : 9791件

    – Test data : 9800件 • State 列(目的変数) – 正例・負例はほぼ同数 図はsweetviz[fbdesignpro, 2020]を使用して出力 [fbdesignpro, 2020] fbdesignpro. fbdesignpro/sweetviz: Visualize and compare datasets, target values and associations, with one line of code. GitHub. Published November 30, 2020. Accessed October 5, 2022. https://github.com/fbdesignpro/sweetviz
  4. 8 データについて:簡単なデータ可視化 3/4 • Country 列 • Duration 列 Train

    Test 図.Country列の頻度分布 図.Duration列の頻度分布
  5. 9 データについて:簡単なデータ可視化 4/4 • Category1 列 • Category2 列 Train

    Test 図.Category1列の頻度分布 図.Category2列の頻出値の数と割合
  6. 10 データの特徴 • テキストデータ+テーブルデータ – html_content 列以外はテーブルデータ • HTMLデータ –

    HTMLタグを含むデータ – 公開されている学習済みモデルは 基本HTMLを含まないデータで学習される • 多言語データ – 英語以外の言語を含むデータ • ただし,ほとんど英語データ(パット見) • Country列の情報からは判断不可 – 英語と他言語の両方を含むサンプルも存在 • 長い系列長 – deberta-v3-large tokenizerによるtoken数 • Mean: 1,299 • Q3: 1,347 • Median: 558 図.データ例 Train_00385 (DE) 図.データ例 Train_04132 (JP)
  7. 11 解法の方針 • BERT[Devlin+, 2018]系モデルの利用 – 自然言語処理(文書分類)におけるデファクトスタンダード • 前述のデータ特徴に対応する –

    テキスト+テーブル,HTML,多言語,長系列 [Devlin+, 2018] Devlin, Jacob, et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." arXiv preprint arXiv:1810.04805 (2018). 図.論文[Devlin+, 2018]から引用
  8. 12 データの特徴への対応策 1/4 • テキストデータ+テーブルデータ – テーブルデータもテキストデータとしてBERTで処理 • ◯処理が容易,categoryやcountryはテキストデータ •

    ✕ 数値データの処理方法として最適かは不明 • 採用:シンプルなテキストとしてテーブルデータを前処理 – 特殊トークンなどは使用せず – テーブルデータを処理するモデルとテキストデータを処理するBERTの組合せ • Stacking • テーブルデータを処理するMLPなど+BERTをEnd-to-Endで学習 • ◯Stackingは一般に有効であることが知られている • ✕ 特になし?(処理が複雑になる) • 採用:Stacking
  9. 13 データの特徴への対応策 2/4 • HTMLデータ – 前処理無し(HTMLをそのまま使用) • ◯HTMLタグの情報を活用可能,前処理無しの方が高精度な場合が多い? •

    ✕ token長が増加 – HTML除去(平文) • ◯アピール文そのものの意味理解には有効に思える,token数を削減 • ✕ HTMLの情報が消える,多言語データへの対応の重要度が増加 • 採用:HTMLを除去するモデルと除去しないモデルの両方を使用 – HTMLを含むデータで事前学習したモデル • ◯一般的に近いドメインで事前学習したモデルのfinetuneは効果的 • ✕ 良い公開モデルが見つからない,手持ちのデータでの事前学習の手間 • 良い公開モデルが見つからず,手持ちデータでの事前学習も手間がかかるため不採用
  10. 14 データの特徴への対応策 3/4 • 多言語データ – 英語への翻訳 • ◯debertaなどの強力な英語モデルが使用可能, 翻訳の過程で必要な言語検出の結果を特徴量として使用可能

    • ✕ 結果が言語検出・翻訳の精度に依存 • 言語検出の手間のため不採用 – 多言語モデル • ◯英語以外の平文を適切に処理可能 • ✕ 単一言語のモデルと比較すると精度は劣る? • 採用:HTMLを除去する場合に多言語モデルを使用 図.データ例 Train_00385 (DE)
  11. 15 データの特徴への対応策 4/4 • 長い系列長 – BERTモデルのmax_lengthを増やす • deberta系のモデルやlongformerなどの長期系列に特化したモデルの使用 •

    SlidingWindow Transformer – https://www.kaggle.com/competitions/feedback-prize-2021/discussion/313235 • ◯長い系列を取り扱える • ✕ 計算コストの増加 • 計算コスト増加のため不採用(すべてのモデルでmax_length=512を使用) – HTML除去 • ◯計算コストも削減可能 • ✕HTMLの情報が消える, 平文が長い場合は問題の解決にはならない • 採用:HTMLを除去するモデルと除去しないモデルの両方を使用 HTML (前処理無し) Raw Text (HTML除去) 図.token数の統計情報 (deberta-v3-large)
  12. 16 解法 • まとめ:時間的コストも考慮して次の2つのモデルのStackingを採用 – HTML前処理無し+英語モデル(HTML英語モデル) • HTMLを除去せずに生データのまま処理する言語モデル • 英語モデルDeberta-v3-largeの精度が高かったため

    多言語モデルは使用せず – HTML除去+多言語モデル(平文多言語モデル) • HTMLを除去し,平文を処理する言語モデル • 平文は英語以外の言語の場合もあるため,多言語モデルを使用 • Country=USのデータは英語という仮定のもと USデータのみを対象に英語モデル(Deberta-v3-large)を使用 – Deberta-v3-largeは高い精度が期待されるため HTML英語モデル deberta-v3-large deberta-large Roberta-large 平文多言語モデル Xlm-Roberta-large Mbart-large-50 Deberta-v3-large ※全てmax_length=512
  13. • BERT系のモデル -> GBDTによるStacking 17 解法 deberta-v3-large deberta-large roberta-large xlm-roberta-large

    mbart-large-50 deberta-v3-large (US) LightGBM XGBoost CatBoost Mean Feature engineering raw data html content other features Add other features as text Remove html 本パイプライン×4 (random_seed=0,1,2,3) CrossValidationの分割も random_seedで指定
  14. • BERT系のモデル -> GBDTによるStacking 18 解法:テキスト化 deberta-v3-large deberta-large roberta-large xlm-roberta-large

    mbart-large-50 deberta-v3-large (US) LightGBM XGBoost CatBoost Mean Feature engineering raw data html content other features Add other features as text Remove html Goal is {goal}. Country is {coutry}. Duration is {duration} days. Category is {category1}, {category2}. {html_content or raw_text} アピール文とその他の特徴量を テキスト形式で結合. 特徴量はシンプルな英文として追加. (例:”Country is US.”) 本パイプライン×4 (random_seed=0,1,2,3) CrossValidationの分割も random_seedで指定
  15. • BERT系のモデル -> GBDTによるStacking 19 解法:GDBTの入力 deberta-v3-large deberta-large roberta-large xlm-roberta-large

    mbart-large-50 deberta-v3-large (US) LightGBM XGBoost CatBoost Mean Feature engineering raw data html content other features Add other features as text Remove html BERTモデルの出力についての統計量 ・平均,標準偏差,最大,最小 ・モデル全体 ・英語モデル ・多言語モデル ・各モデルの差 その他 ・文字列長(html_content, raw_text) ・トークン数(html_content, raw_text) ・html_tagの数,TF-IDF ・raw_textの言語検出結果(pycld3) ・TargetEncoding ・Categoryでの集約特徴量 など 一部,フォーラム投稿[213tubo, 2022]を利用 本パイプライン×4 (random_seed=0,1,2,3) CrossValidationの分割も random_seedで指定 [213tubo, 2022] https://signate.jp/competitions/754/discussions/cv0825-lb0830-stacking-baseline-1
  16. 21 HTML英語モデル と 平文多言語モデル の性能 • 一部のモデルでHTML英語モデルと平文多言語モデルの性能について調査 – 使用したモデル •

    HTML英語モデル:deberta-v3-large • 平文多言語モデル:xlm-Roberta-large – 以下の3点に着目 • 2つのモデルを組合わせた場合の性能について – 各モデルのスコア(CV, public LB, private LB)の比較 • 多言語データでの性能について – country列の値別のCVの比較 • Token数が多いデータでの性能について – token数別のCVの比較
  17. 22 2つのモデルを組合わせた場合の性能について • HTML英語モデル と 平文多言語モデル ではHTML言語モデルの方が高性能 • 2つの異なるモデルを組合わせること(Ensemble, Stacking)で性能向上

    – CVはEnsembleとStackingの差は無いがLBはStackingの方が良い • countryや文字列長などの特徴量から,上手くモデルを切り替えることを学習できた? CV Public LB Private LB Deberta-v3-large 0.8237 0.8339 0.8281 Deberta-v3-large * 4 0.8341 0.8402 0.8304 Xlm-Roberta-large 0.8096 0.8149 0.8167 Xlm-Roberta-large * 4 0.8197 0.8191 0.8219 Ensemble * 4 0.8360 0.8397 0.8360 Stacking 0.8344 0.8379 0.8403 Stacking * 4 0.8360 0.8455 0.8408 XXX * 4: seed値4パターンのEnsemble Ensemble: 単純平均 Stacking: モデルの予測値+その他特徴量でLightGBM (特徴量とハイパーパラメータ設定はフォーラム投稿[213tubo, 2022]を参考) [213tubo, 2022] https://signate.jp/competitions/754/discussions/cv0825-lb0830-stacking-baseline-1
  18. 23 多言語データでの性能について • country によっては多言語モデルが高い性能を示す – 多言語モデルは英語以外のデータ点の精度向上に貢献している? • ※country =

    言語ではないことに注意 condition CV: xlm-roberta-large * 4 CV: deberta-v3-large * 4 data_len all 0.8192 0.8341 9791 country = US 0.8219 0.8368 6905 country = GB 0.8413 0.8447 1013 country = CA 0.8132 0.8344 456 country = AU 0.7586 0.7636 274 country = DE 0.7914 0.7639 157 country = FR 0.8171 0.8659 151 country = MX 0.8062 0.8333 139 country = IT 0.7105 0.7353 119 country = ES 0.7407 0.7925 81 country = NL 0.8364 0.8302 80 …
  19. 24 Token数が多いデータでの性能について • token数が多いデータについてのHTML除去の効果は確認できず – html_content(前処理無し) でのtoken数 – Token num

    <= 512 より 512 < token num の場合の方がスコア差は小さいが… – token数に関わらずHTML英語モデルが高い性能を示す • 同じ英語モデルで比較すれば何か出る? condition CV: xlm-roberta-large * 4 CV: deberta-v3-large * 4 data_len all 0.8192 0.8341 9791 token num<=512 0.7614 0.7837 4625 512<token num<=1024 0.8617 0.8738 1962 1024<token num 0.8250 0.8353 3204
  20. 25 最終的な提出 deberta-v3-large deberta-large roberta-large xlm-roberta-large mbart-large-50 deberta-v3-large (US) LightGBM

    XGBoost CatBoost Mean Feature engineering raw data html content other features Add other features as text Remove html 本パイプライン×4 (random_seed=0,1,2,3) CrossValidationの分割も random_seedで変更 • そこからモデルを追加して最終的な提出とした – Deberta-large, Roberta-large, mbart-large-50, deberta-v3-large(US)
  21. 26 その他試したこと • Max_length=1024 – Deberta-v3-base で試したが,計算コストの増加のみ • Pseudo Labeling

    (長い時間を費やした) – Pseudo Labelを使用したBERTモデルの学習 • テストデータ9,800件に学習済みモデルによってsoftラベルを付与 • Pseudo Labelデータで事前学習 • 元の訓練データを使用してモデルをfinetune – CVは良化したが,public LBは悪化 • 個別のBERTではLBも良化していた Max_length 実行時間 CV 512 5.7h 0.815 1024 19.8h 0.813 PLの使用 cv Public LB Private LB Stacking * 4 - 0.8370 0.8482 0.8423 Stacking * 4 一部BERT 0.8410 0.8460 0.8429 Stacking * 4 (最終sub) - 0.8369 0.8484 0.8426 PL setting cv Public LB Private LB Deberta-v3-large * 4 - 0.8341 0.8402 0.8304 Deberta-v3-large * 4 Pretrain (1epoch) 0.8380 0.8428 0.8387 Xlm-Roberta-large * 4 - 0.8191 0.8191 0.8219 Xlm-Roberta-large * 4 Pretrain (3epoch) 0.8285 0.8323 0.8243 Roberta-large - 0.8049 0.8257 0.8178 Roberta-large * 4 Pretrain (3epoch) 0.8411 0.8445 0.8337