狠狠撸

狠狠撸Share a Scribd company logo
Mobility Technologies Co., Ltd.
kaggle tweet コンペの話
2020/07/09 : 田口 直弥
Mobility Technologies Co., Ltd.
田口 直弥 (@naoya.taguchi)
# データサイエンス G
# DeNA → MoT 出向中
# DeNA 18 新卒
# kaggle master (?*2 ?*5)
# 愛媛
# 魚
# YouTuber (?)
自己紹介
2
自粛してたので冬の写真しかなかった...
Mobility Technologies Co., Ltd.
自己紹介
3
Mobility Technologies Co., Ltd.
今日の話は...
4
https://www.kaggle.com/c/tweet-sentiment-extraction/overview
Mobility Technologies Co., Ltd.
今日の話は...
5
tweet のネガポジの根拠となるフレーズの抽出をしたい
https://www.kaggle.com/c/tweet-sentiment-extraction/overview
Mobility Technologies Co., Ltd.
● 具体例
● どう役立つ?
○ ネガポジ分析をより詳細にできる?
○ kaggle 主催コンペなので...
tweet のネガポジの根拠となるフレーズの抽出
6
sentiment : positive
label : it was yummy
tweet : just finished dinner - it was yummy
PREDICT
GIVEN
Mobility Technologies Co., Ltd.
● データの説明
○ textID: ID。
○ text: 予測をかける tweet。
○ sentiment: tweet の感情に関する情報。
○ selected_text: text の内 sentiment の根拠になるもの。
データ概要
7
Mobility Technologies Co., Ltd.
● データ量
○ train (3.3 MB): 27,481 行
○ public test (307 KB): 3,534 行
○ private test (?): public の約 7/3 倍
データ概要
8
Mobility Technologies Co., Ltd.
● sentiment が結構重要
○ neutral, positive, negative が存在
○ 予測精度に大きく寄与
○ sentiment == neutral の場合、text == selected_text になりがち
データ概要
9
Mobility Technologies Co., Ltd.
● word-level Jaccard Score
○ ex1) pred/GT = I have a pen. / I have a pen. → 1.0
○ ex2) pred/GT = have / I have a pen. → ? = 0.25
Metric
10
pred GT
https://www.kaggle.com/c/tweet-sentiment-extraction/overview/evaluation
pred GT
Jaccard =
Mobility Technologies Co., Ltd.
弊チームのスコア遷移
11
※ 表示チームは private で金圏だったチーム、表示順は public score 順
Mobility Technologies Co., Ltd.12
参加前?
Mobility Technologies Co., Ltd.
弊チームのスコア遷移
13
※ 表示チームは private で金圏だったチーム、表示順は public score 順
Mobility Technologies Co., Ltd.
● metric の実装ミスによる leader board update
○ evaluation page の python code と leader board back end の C# 実装が異
なっていたらしい...
○ Ahmet が python 版では変わらないはずの処理を sub して調べたらしい
(よく見つけたな...)
いくつかの問題があった (らしい)
14
https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/140942
https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/142073
Mobility Technologies Co., Ltd.
● ラベルズレによる配布データ update
○ HTML codes 起因でラベルにズレが発生
いくつかの問題があった (らしい)
15
https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/142291
https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/140847
Mobility Technologies Co., Ltd.
● ラベルズレによる配布データ update
○ index によるラベル付けと HTML code の表示の違い
● ラベルズレの例
○ & → & の違いで 8 文字分ズレている
いくつかの問題があった (らしい)
16
kaggle annotator
tweet をラベル付けして欲しい ...!
ラベルは i 文字目 ~ j 文字目ダヨ
&, <, ...
&amp;, &lt;, ...
Mobility Technologies Co., Ltd.17
序 盤?
Mobility Technologies Co., Ltd.
弊チームのスコア遷移
18
※ 表示チームは private で金圏だったチーム、表示順は public score 順
Mobility Technologies Co., Ltd.
● ほぼ 0 sub merge みたいな形
○ w/ @fuz_qwa, @Kenmatsu4, @yiemon773
いきなりチームマージ
19
Mobility Technologies Co., Ltd.
● 基本的にはよくある NLP の学習パイプライン
○ ラベルと head は問題の解き方による
基礎パイプラインの構築
20
sentiment: positive
text: haha that’s way cool! Good morning
selected_text: haha that’s way cool!
add sentiment & BPE tokenize
training label
make label
text’: <s> positive </s> </s> haha that ‘ s way ….
embedding
...
...
...
...
...
RoBERTa
Head
pred
calc loss & optimize weight
Mobility Technologies Co., Ltd.
● この問題の解き方
○ ① : start/end 方式 (こちらがメジャー)
○ ② : segmentation 方式
基礎パイプラインの構築
21
※ これ以外にも例えば sentiment を予測対象とした場合の attention を使って解くとか色々と
やり方はある (https://www.kaggle.com/cdeotte/unsupervised-text-selection)
text’ : <s> positive </s> </s> haha that ‘ s way cool ! Good morning
start label : 0 0 0 0 1 0 00 0 0 0 0 0
selected_text: haha that‘s way cool!
end label : 0 0 0 0 0 0 00 0 0 1 0 0
text’ : <s> positive </s> </s> haha that ‘ s way cool ! Good morning
label : 0 0 0 0 1 1 11 1 1 1 0 0
selected_text: haha that‘s way cool!
Mobility Technologies Co., Ltd.
● 予測には start/end 方式を使うが、学習時に segmentation 方式の
学習も同時に行う
○ それぞれの loss の比率をうまく調整すると結構スコアが向上
マルチタスク学習
22
RoBERTa
start
head
end
head
segmentation
head
start
label
end
label
segmentation
label
CE loss Lovasz-hinge loss
予測はこっちのみ
Mobility Technologies Co., Ltd.
● cumax 関数 [Shen et al., 2018] の利用
○ softmax 後の確率分布を累積値にし、segmentation に使用
■ 予測に使う start/end head の出力に segmentation loss もかけることができる
○ (これベースでの思いつきではないが) 類似 discussion も存在
■ https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/153747
マルチタスク学習
23
※ 正確にはこのときはスコアの伸びはなかったが、PP と合わせて最終的にスコアの伸びに寄与
https://openreview.net/pdf?id=B1l6qiR5F7
Mobility Technologies Co., Ltd.
● スコア寄与あり
○ LR scheduling
○ Larger batch
■ sentiment の違いによる精度ブレを吸収
○ EMA
■ batch/epoch 毎にモデルの重みを更新前後で重み付き平均。安定化に寄与。
○ 文頭、文末の . や , の数を調整
■ tokenizer の区切りと正解ラベルの整合性が取れない場合が多かった
その他やっていたこと
24
Mobility Technologies Co., Ltd.
● スコア寄与なし
○ head の改良
○ soft labels, start/end distance loss 等
■ start/end フレームワークだと index のズレを考慮しきれない
ex. pred1, pred2 の違いを考慮しきれない
○ start end 反転対策
■ start, end の関係性に明示的な制約のないモデリングになっている
○ different models and tokenizers, manual pre-train
○ pseudo labeling (CV+, LB-)
■ soft, hard, leak free, for valid … 等色々試して CV は上がるが LB 悪化
その他やっていたこと
25
text : I really want to see UP! haha. Tooo cute! (:
label : Tooo cute!
GT start: 0 0 0 0 0 0 0 0 1 0 0 0
pred1 : 0 1 0 0 0 0 0 0 0 0 0 0
pred2 : 0 0 0 0 0 0 0 0 0 1 0 0
Mobility Technologies Co., Ltd.
● スコア寄与なし
○ head の改良
○ soft labels, start/end distance loss 等
■ start/end フレームワークだと index のズレを考慮しきれない
ex. pred1, pred2 の違いを考慮しきれない
○ いくつかの model, tokenizer
○ pseudo labeling (CV+, LB-)
■ soft, hard, leak free, for valid … 等色々試して CV は上がるが LB 悪化
○ ensemble (CV+, LB-)
その他やっていたこと
26
text : I really want to see UP! haha. Tooo cute! (:
label : Tooo cute!
GT start: 0 0 0 0 0 0 0 0 1 0 0 0
pred1 : 0 1 0 0 0 0 0 0 0 0 0 0
pred2 : 0 0 0 0 0 0 0 0 0 1 0 0
全くスコアが伸びない...?
Mobility Technologies Co., Ltd.
● どうやら magic で 0.716 から 0.724 まで上がるらしい
○ 当時の『銅 ~ 銀圏 → 金圏』の大ジャンプ
○ 気付いている人もいたけどうちのチームはたどり着けていなかった...
Magic スレの出現
27
https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/154415
Mobility Technologies Co., Ltd.
● 順位の上がり方から tkm-san は magic を見つけているっぽかった
○ 若干の申し訳無さもありつつ、マージして頂くことに...!
tkm san からのマージ依頼
28
Mobility Technologies Co., Ltd.29
中 盤?
Mobility Technologies Co., Ltd.
弊チームのスコア遷移
30
※ 表示チームは private で金圏だったチーム、表示順は public score 順
Mobility Technologies Co., Ltd.
● (恐らく) kaggle の依頼時とデータ作成時のスペースの扱いズレ
● 明らかにおかしい例を解析したら見えてくる
Magic の概要
31
kaggle annotator
ラベルは 0 文字目 ~ 8 文字目ダヨ
Thank you, I have …
→ Thank you だな
tweet をラベル付けして欲しい ...!
(連続スペース数は 1 つに正規化)
Thank you, I have …
→ Thank you, I have ...
Thank you, I … の 0-8 か
→ 『Thank y』だな!
Mobility Technologies Co., Ltd.
● magic の利用
1. スペース数などに基づく pre-process で selected_text のズレを解消
2. ズレを解消した selected_text を使って学習
3. 予測時にスペース数などに基づいて予測した selected_text をずらす
● ☆ 共通指標で post-process を評価できる kaggle notebook を作成
○ pre-process して作った正解ラベルに post-process をかける
■ 要は model が 100% 予測できた仮定をおいた post-process の開発
○ pre-process 前の selected_text vs post-process 後の予測 text の
Jaccard Score を測り改善したら sub
pre-post processing の開発
32
https://www.kaggle.com/tkm2261/pre-postprosessing-guc
Mobility Technologies Co., Ltd.
● magic 改良 + 手動重み付けアンサンブルで金圏上位まで JUMP!
スコアの大幅改善
33
Mobility Technologies Co., Ltd.34
終 盤?
Mobility Technologies Co., Ltd.
弊チームのスコア遷移
35
※ 表示チームは private で金圏だったチーム、表示順は public score 順
Mobility Technologies Co., Ltd.
● 特にアンサンブルは CV が改善するのに LB が悪くなる...
手詰まり...
36
Mobility Technologies Co., Ltd.
● 他チームがどんどん追い上げてくる...
○ 特に日本人 kaggler 達の勢いが twitter から伝わってきてきつかった...
手詰まり...
37
best fitting にも
抜き返される...
Mobility Technologies Co., Ltd.
● 最終日をギリギリのラインで迎える...
手詰まり...
38
Mobility Technologies Co., Ltd.
● もうほぼ手はなくて、まだやりきれてなかったアンサンブルモデルの追加を
やっていた
努力の成果が...!
39
Mobility Technologies Co., Ltd.40
結 果?
Mobility Technologies Co., Ltd.
● 見事 shake up して 5 位に!
○ kaggle master++
Private での順位
41
Mobility Technologies Co., Ltd.
● 1st (Dark of the Moon)
○ char-based modeling
■ これにより、スペースズレもモデリングできる
■ E2E ではなく stacking により実現
上位解法
42
https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/159477
char-based modeling パイプライン (solution より引用)
Mobility Technologies Co., Ltd.
● 1st (Dark of the Moon)
○ Custom loss (Jaccard-based Soft Labels)
■ ラベルをなまらし、KL divergence を optimize することで外す位置にも loss を
定義できる
■ 2 乗の項は smoothing のためにいれているらしい (?)
上位解法
43
https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/159477
ラベル生成の式 (solution より引用)
生成されるラベル例 (solution より引用)
Mobility Technologies Co., Ltd.
● 1st (Dark of the Moon)
○ Multi-Sample Dropout
■ appendix 参照
○ Sequence Bucketing
■ 系列長の同程度のサンプルをできるだけまとめて batch を作る方法。
高速化に寄与。
○ QUEST 1st の pseudo labeling (https://www.kaggle.com/c/google-quest-challenge/discussion/129840)
■ fold 毎に pseudo labeling して validation set について leak を避けるやり方
■ いろいろ試したがうちのチームでは pseudo labeling が全く上手くいかなかった...
■ appendix 参照
○ Bertweet [Nguyen et al., 2020]
上位解法
44
https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/159477
Mobility Technologies Co., Ltd.
● 2nd (Y.O. & m.y. & hiromu)
○ pre-post processing
○ QUEST 1st の解法にある学習可能な weight を使った中間表現抽出
■ appendix 参照
○ Multi-Sample Dropout
○ Sequence Bucketing
○ Sentiment Sampler
■ sentiment 毎の精度の違いに着目して sampler を作成
上位解法
45
https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/159310
Sentiment Sampler のイメージ (solution より引用)
Mobility Technologies Co., Ltd.
● 2nd (Y.O. & m.y. & hiromu)
○ Reranking-model training
■ start/end 型の推論において、一度 index を予測した後に top-n の index から
それぞれ最良のものを選ぶモデルを再作成
1. top-n を予測し、それぞれについてselected_text との jaccard を計算
2. 1 の予測結果を元に 1 で計算した jaccard を回帰で求めるモデルを作成
3. 2 の jaccard を指標に最良の組み合わせを選ぶ
上位解法
46
https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/159310
Mobility Technologies Co., Ltd.
● 3rd (Muggles united)
○ Reranking
○ E2E の char-level model
上位解法
47
https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/159910
E2E char-based modeling 概要 (solution より引用)
Mobility Technologies Co., Ltd.
● 4th (Podpall)
○ 4 種類のマルチタスク学習
■ 開始?終了 index のラベルを 0.9、両隣を 0.05 として KL-divergence loss で学習
■ segmentation
■ sentiment によって意味付けした semantic segmentation (label 外は neutral)
■ sentiment を当てる (?)
上位解法
48
https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/159499
Mobility Technologies Co., Ltd.
● https://guchio3.hatenablog.com/entry/2020/06/20/115616
ブログ書いたので宣伝
49
Mobility Technologies Co., Ltd.
● https://www.youtube.com/watch?v=gdhqdDwLuU0&feature=youtu.be
YouTube live も宣伝
50
Mobility Technologies Co., Ltd.
● tweet コンペの背景?解法?チームでやったことをまとめました
● 結果は 5 th でした
● 良かったらブログ & YouTube Live 見てみて下さい :)
まとめ
51
Mobility Technologies Co., Ltd.52
APPENDIX
Mobility Technologies Co., Ltd.
Multi-Sample Dropout [Inoue, 2019]
53
● network を分けて多様性をもたせた後 AVG する手法
○ 今回だと head 部分に使うイメージ
○ 最近 NLP コンペでよく見る
https://arxiv.org/abs/1905.09788
Mobility Technologies Co., Ltd.
Quest 1st の学習可能重み付き中間層平均
54
● hidden 0 ~ 11 全ての重み付き平均を head への入力とする
○ 重みも同時に学習する
○ 従来は hidden 0 だけ、や hidden 8 ~ 11 の単純平均など
Bert Layer 0
hidden 0
Bert Layer 11
hidden 11
...
Bert Layer 1
hidden 1
embedded input text
+
w0
w1
w11
head
trainable
Mobility Technologies Co., Ltd.
Quest 1st の pseudo labeling
55
● Cross Validation の fold model 毎に pseudo label を作成
○ fold i の pseudo label が fold i の validation set を学習に使ったモデル
から生成されるのを嫌うやり方
文章·画像等の内容の無断転載及び複製等の行為はご遠慮ください。
Mobility Technologies Co., Ltd.

More Related Content

kaggle tweet コンペの話

  • 1. Mobility Technologies Co., Ltd. kaggle tweet コンペの話 2020/07/09 : 田口 直弥
  • 2. Mobility Technologies Co., Ltd. 田口 直弥 (@naoya.taguchi) # データサイエンス G # DeNA → MoT 出向中 # DeNA 18 新卒 # kaggle master (?*2 ?*5) # 愛媛 # 魚 # YouTuber (?) 自己紹介 2 自粛してたので冬の写真しかなかった...
  • 3. Mobility Technologies Co., Ltd. 自己紹介 3
  • 4. Mobility Technologies Co., Ltd. 今日の話は... 4 https://www.kaggle.com/c/tweet-sentiment-extraction/overview
  • 5. Mobility Technologies Co., Ltd. 今日の話は... 5 tweet のネガポジの根拠となるフレーズの抽出をしたい https://www.kaggle.com/c/tweet-sentiment-extraction/overview
  • 6. Mobility Technologies Co., Ltd. ● 具体例 ● どう役立つ? ○ ネガポジ分析をより詳細にできる? ○ kaggle 主催コンペなので... tweet のネガポジの根拠となるフレーズの抽出 6 sentiment : positive label : it was yummy tweet : just finished dinner - it was yummy PREDICT GIVEN
  • 7. Mobility Technologies Co., Ltd. ● データの説明 ○ textID: ID。 ○ text: 予測をかける tweet。 ○ sentiment: tweet の感情に関する情報。 ○ selected_text: text の内 sentiment の根拠になるもの。 データ概要 7
  • 8. Mobility Technologies Co., Ltd. ● データ量 ○ train (3.3 MB): 27,481 行 ○ public test (307 KB): 3,534 行 ○ private test (?): public の約 7/3 倍 データ概要 8
  • 9. Mobility Technologies Co., Ltd. ● sentiment が結構重要 ○ neutral, positive, negative が存在 ○ 予測精度に大きく寄与 ○ sentiment == neutral の場合、text == selected_text になりがち データ概要 9
  • 10. Mobility Technologies Co., Ltd. ● word-level Jaccard Score ○ ex1) pred/GT = I have a pen. / I have a pen. → 1.0 ○ ex2) pred/GT = have / I have a pen. → ? = 0.25 Metric 10 pred GT https://www.kaggle.com/c/tweet-sentiment-extraction/overview/evaluation pred GT Jaccard =
  • 11. Mobility Technologies Co., Ltd. 弊チームのスコア遷移 11 ※ 表示チームは private で金圏だったチーム、表示順は public score 順
  • 12. Mobility Technologies Co., Ltd.12 参加前?
  • 13. Mobility Technologies Co., Ltd. 弊チームのスコア遷移 13 ※ 表示チームは private で金圏だったチーム、表示順は public score 順
  • 14. Mobility Technologies Co., Ltd. ● metric の実装ミスによる leader board update ○ evaluation page の python code と leader board back end の C# 実装が異 なっていたらしい... ○ Ahmet が python 版では変わらないはずの処理を sub して調べたらしい (よく見つけたな...) いくつかの問題があった (らしい) 14 https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/140942 https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/142073
  • 15. Mobility Technologies Co., Ltd. ● ラベルズレによる配布データ update ○ HTML codes 起因でラベルにズレが発生 いくつかの問題があった (らしい) 15 https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/142291 https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/140847
  • 16. Mobility Technologies Co., Ltd. ● ラベルズレによる配布データ update ○ index によるラベル付けと HTML code の表示の違い ● ラベルズレの例 ○ & → &amp; の違いで 8 文字分ズレている いくつかの問題があった (らしい) 16 kaggle annotator tweet をラベル付けして欲しい ...! ラベルは i 文字目 ~ j 文字目ダヨ &, <, ... &amp;, &lt;, ...
  • 17. Mobility Technologies Co., Ltd.17 序 盤?
  • 18. Mobility Technologies Co., Ltd. 弊チームのスコア遷移 18 ※ 表示チームは private で金圏だったチーム、表示順は public score 順
  • 19. Mobility Technologies Co., Ltd. ● ほぼ 0 sub merge みたいな形 ○ w/ @fuz_qwa, @Kenmatsu4, @yiemon773 いきなりチームマージ 19
  • 20. Mobility Technologies Co., Ltd. ● 基本的にはよくある NLP の学習パイプライン ○ ラベルと head は問題の解き方による 基礎パイプラインの構築 20 sentiment: positive text: haha that’s way cool! Good morning selected_text: haha that’s way cool! add sentiment & BPE tokenize training label make label text’: <s> positive </s> </s> haha that ‘ s way …. embedding ... ... ... ... ... RoBERTa Head pred calc loss & optimize weight
  • 21. Mobility Technologies Co., Ltd. ● この問題の解き方 ○ ① : start/end 方式 (こちらがメジャー) ○ ② : segmentation 方式 基礎パイプラインの構築 21 ※ これ以外にも例えば sentiment を予測対象とした場合の attention を使って解くとか色々と やり方はある (https://www.kaggle.com/cdeotte/unsupervised-text-selection) text’ : <s> positive </s> </s> haha that ‘ s way cool ! Good morning start label : 0 0 0 0 1 0 00 0 0 0 0 0 selected_text: haha that‘s way cool! end label : 0 0 0 0 0 0 00 0 0 1 0 0 text’ : <s> positive </s> </s> haha that ‘ s way cool ! Good morning label : 0 0 0 0 1 1 11 1 1 1 0 0 selected_text: haha that‘s way cool!
  • 22. Mobility Technologies Co., Ltd. ● 予測には start/end 方式を使うが、学習時に segmentation 方式の 学習も同時に行う ○ それぞれの loss の比率をうまく調整すると結構スコアが向上 マルチタスク学習 22 RoBERTa start head end head segmentation head start label end label segmentation label CE loss Lovasz-hinge loss 予測はこっちのみ
  • 23. Mobility Technologies Co., Ltd. ● cumax 関数 [Shen et al., 2018] の利用 ○ softmax 後の確率分布を累積値にし、segmentation に使用 ■ 予測に使う start/end head の出力に segmentation loss もかけることができる ○ (これベースでの思いつきではないが) 類似 discussion も存在 ■ https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/153747 マルチタスク学習 23 ※ 正確にはこのときはスコアの伸びはなかったが、PP と合わせて最終的にスコアの伸びに寄与 https://openreview.net/pdf?id=B1l6qiR5F7
  • 24. Mobility Technologies Co., Ltd. ● スコア寄与あり ○ LR scheduling ○ Larger batch ■ sentiment の違いによる精度ブレを吸収 ○ EMA ■ batch/epoch 毎にモデルの重みを更新前後で重み付き平均。安定化に寄与。 ○ 文頭、文末の . や , の数を調整 ■ tokenizer の区切りと正解ラベルの整合性が取れない場合が多かった その他やっていたこと 24
  • 25. Mobility Technologies Co., Ltd. ● スコア寄与なし ○ head の改良 ○ soft labels, start/end distance loss 等 ■ start/end フレームワークだと index のズレを考慮しきれない ex. pred1, pred2 の違いを考慮しきれない ○ start end 反転対策 ■ start, end の関係性に明示的な制約のないモデリングになっている ○ different models and tokenizers, manual pre-train ○ pseudo labeling (CV+, LB-) ■ soft, hard, leak free, for valid … 等色々試して CV は上がるが LB 悪化 その他やっていたこと 25 text : I really want to see UP! haha. Tooo cute! (: label : Tooo cute! GT start: 0 0 0 0 0 0 0 0 1 0 0 0 pred1 : 0 1 0 0 0 0 0 0 0 0 0 0 pred2 : 0 0 0 0 0 0 0 0 0 1 0 0
  • 26. Mobility Technologies Co., Ltd. ● スコア寄与なし ○ head の改良 ○ soft labels, start/end distance loss 等 ■ start/end フレームワークだと index のズレを考慮しきれない ex. pred1, pred2 の違いを考慮しきれない ○ いくつかの model, tokenizer ○ pseudo labeling (CV+, LB-) ■ soft, hard, leak free, for valid … 等色々試して CV は上がるが LB 悪化 ○ ensemble (CV+, LB-) その他やっていたこと 26 text : I really want to see UP! haha. Tooo cute! (: label : Tooo cute! GT start: 0 0 0 0 0 0 0 0 1 0 0 0 pred1 : 0 1 0 0 0 0 0 0 0 0 0 0 pred2 : 0 0 0 0 0 0 0 0 0 1 0 0 全くスコアが伸びない...?
  • 27. Mobility Technologies Co., Ltd. ● どうやら magic で 0.716 から 0.724 まで上がるらしい ○ 当時の『銅 ~ 銀圏 → 金圏』の大ジャンプ ○ 気付いている人もいたけどうちのチームはたどり着けていなかった... Magic スレの出現 27 https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/154415
  • 28. Mobility Technologies Co., Ltd. ● 順位の上がり方から tkm-san は magic を見つけているっぽかった ○ 若干の申し訳無さもありつつ、マージして頂くことに...! tkm san からのマージ依頼 28
  • 29. Mobility Technologies Co., Ltd.29 中 盤?
  • 30. Mobility Technologies Co., Ltd. 弊チームのスコア遷移 30 ※ 表示チームは private で金圏だったチーム、表示順は public score 順
  • 31. Mobility Technologies Co., Ltd. ● (恐らく) kaggle の依頼時とデータ作成時のスペースの扱いズレ ● 明らかにおかしい例を解析したら見えてくる Magic の概要 31 kaggle annotator ラベルは 0 文字目 ~ 8 文字目ダヨ Thank you, I have … → Thank you だな tweet をラベル付けして欲しい ...! (連続スペース数は 1 つに正規化) Thank you, I have … → Thank you, I have ... Thank you, I … の 0-8 か → 『Thank y』だな!
  • 32. Mobility Technologies Co., Ltd. ● magic の利用 1. スペース数などに基づく pre-process で selected_text のズレを解消 2. ズレを解消した selected_text を使って学習 3. 予測時にスペース数などに基づいて予測した selected_text をずらす ● ☆ 共通指標で post-process を評価できる kaggle notebook を作成 ○ pre-process して作った正解ラベルに post-process をかける ■ 要は model が 100% 予測できた仮定をおいた post-process の開発 ○ pre-process 前の selected_text vs post-process 後の予測 text の Jaccard Score を測り改善したら sub pre-post processing の開発 32 https://www.kaggle.com/tkm2261/pre-postprosessing-guc
  • 33. Mobility Technologies Co., Ltd. ● magic 改良 + 手動重み付けアンサンブルで金圏上位まで JUMP! スコアの大幅改善 33
  • 34. Mobility Technologies Co., Ltd.34 終 盤?
  • 35. Mobility Technologies Co., Ltd. 弊チームのスコア遷移 35 ※ 表示チームは private で金圏だったチーム、表示順は public score 順
  • 36. Mobility Technologies Co., Ltd. ● 特にアンサンブルは CV が改善するのに LB が悪くなる... 手詰まり... 36
  • 37. Mobility Technologies Co., Ltd. ● 他チームがどんどん追い上げてくる... ○ 特に日本人 kaggler 達の勢いが twitter から伝わってきてきつかった... 手詰まり... 37 best fitting にも 抜き返される...
  • 38. Mobility Technologies Co., Ltd. ● 最終日をギリギリのラインで迎える... 手詰まり... 38
  • 39. Mobility Technologies Co., Ltd. ● もうほぼ手はなくて、まだやりきれてなかったアンサンブルモデルの追加を やっていた 努力の成果が...! 39
  • 40. Mobility Technologies Co., Ltd.40 結 果?
  • 41. Mobility Technologies Co., Ltd. ● 見事 shake up して 5 位に! ○ kaggle master++ Private での順位 41
  • 42. Mobility Technologies Co., Ltd. ● 1st (Dark of the Moon) ○ char-based modeling ■ これにより、スペースズレもモデリングできる ■ E2E ではなく stacking により実現 上位解法 42 https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/159477 char-based modeling パイプライン (solution より引用)
  • 43. Mobility Technologies Co., Ltd. ● 1st (Dark of the Moon) ○ Custom loss (Jaccard-based Soft Labels) ■ ラベルをなまらし、KL divergence を optimize することで外す位置にも loss を 定義できる ■ 2 乗の項は smoothing のためにいれているらしい (?) 上位解法 43 https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/159477 ラベル生成の式 (solution より引用) 生成されるラベル例 (solution より引用)
  • 44. Mobility Technologies Co., Ltd. ● 1st (Dark of the Moon) ○ Multi-Sample Dropout ■ appendix 参照 ○ Sequence Bucketing ■ 系列長の同程度のサンプルをできるだけまとめて batch を作る方法。 高速化に寄与。 ○ QUEST 1st の pseudo labeling (https://www.kaggle.com/c/google-quest-challenge/discussion/129840) ■ fold 毎に pseudo labeling して validation set について leak を避けるやり方 ■ いろいろ試したがうちのチームでは pseudo labeling が全く上手くいかなかった... ■ appendix 参照 ○ Bertweet [Nguyen et al., 2020] 上位解法 44 https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/159477
  • 45. Mobility Technologies Co., Ltd. ● 2nd (Y.O. & m.y. & hiromu) ○ pre-post processing ○ QUEST 1st の解法にある学習可能な weight を使った中間表現抽出 ■ appendix 参照 ○ Multi-Sample Dropout ○ Sequence Bucketing ○ Sentiment Sampler ■ sentiment 毎の精度の違いに着目して sampler を作成 上位解法 45 https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/159310 Sentiment Sampler のイメージ (solution より引用)
  • 46. Mobility Technologies Co., Ltd. ● 2nd (Y.O. & m.y. & hiromu) ○ Reranking-model training ■ start/end 型の推論において、一度 index を予測した後に top-n の index から それぞれ最良のものを選ぶモデルを再作成 1. top-n を予測し、それぞれについてselected_text との jaccard を計算 2. 1 の予測結果を元に 1 で計算した jaccard を回帰で求めるモデルを作成 3. 2 の jaccard を指標に最良の組み合わせを選ぶ 上位解法 46 https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/159310
  • 47. Mobility Technologies Co., Ltd. ● 3rd (Muggles united) ○ Reranking ○ E2E の char-level model 上位解法 47 https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/159910 E2E char-based modeling 概要 (solution より引用)
  • 48. Mobility Technologies Co., Ltd. ● 4th (Podpall) ○ 4 種類のマルチタスク学習 ■ 開始?終了 index のラベルを 0.9、両隣を 0.05 として KL-divergence loss で学習 ■ segmentation ■ sentiment によって意味付けした semantic segmentation (label 外は neutral) ■ sentiment を当てる (?) 上位解法 48 https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/159499
  • 49. Mobility Technologies Co., Ltd. ● https://guchio3.hatenablog.com/entry/2020/06/20/115616 ブログ書いたので宣伝 49
  • 50. Mobility Technologies Co., Ltd. ● https://www.youtube.com/watch?v=gdhqdDwLuU0&feature=youtu.be YouTube live も宣伝 50
  • 51. Mobility Technologies Co., Ltd. ● tweet コンペの背景?解法?チームでやったことをまとめました ● 結果は 5 th でした ● 良かったらブログ & YouTube Live 見てみて下さい :) まとめ 51
  • 52. Mobility Technologies Co., Ltd.52 APPENDIX
  • 53. Mobility Technologies Co., Ltd. Multi-Sample Dropout [Inoue, 2019] 53 ● network を分けて多様性をもたせた後 AVG する手法 ○ 今回だと head 部分に使うイメージ ○ 最近 NLP コンペでよく見る https://arxiv.org/abs/1905.09788
  • 54. Mobility Technologies Co., Ltd. Quest 1st の学習可能重み付き中間層平均 54 ● hidden 0 ~ 11 全ての重み付き平均を head への入力とする ○ 重みも同時に学習する ○ 従来は hidden 0 だけ、や hidden 8 ~ 11 の単純平均など Bert Layer 0 hidden 0 Bert Layer 11 hidden 11 ... Bert Layer 1 hidden 1 embedded input text + w0 w1 w11 head trainable
  • 55. Mobility Technologies Co., Ltd. Quest 1st の pseudo labeling 55 ● Cross Validation の fold model 毎に pseudo label を作成 ○ fold i の pseudo label が fold i の validation set を学習に使ったモデル から生成されるのを嫌うやり方