KaggleのJigsawコンペにチーム参加して、32位で銀メダルでした。public 58位からは上昇しましたが、金メダル圏内にはもうひと押し足らずという結果でした。
discussionにチームメイトのKazSappさんが投稿した通り、解法は6モデルの重み付き平均です。
1. bert base uncased 2. rnn 3. rnn (data augmented by translation) 4. rnn (data augmented by old toxic competition) 5. bert base cased 6. bert base multilingual cased w = [0.39193463, 0.14464678, 0.03892303, 0.06871146, 0.317778, 0.038006]
重みは、Kaggle Tokyo Meetup #5 の「Home Credit Default Risk - 2nd place solutions」で知った Scipy Nelder-Mead を用いて CV 最適化しています。
public kernel含めて多くのチームはidentity_columnsの欠損値を0で穴埋めしていたと思いますが、僕らのチームに特徴的なアプローチとしてRNNで予測した値で欠損値を補完していました。今回のデータセットにおける identity_columns の欠損値は単にアノテータ(評価者)がいなかったという意味で、必ずしも0を意味しないと考えたからです。このアイディアはKazSappさんが思いついたもので、こういった自分の手持ちにはなかった手法に辿りつけるのがチーム戦の良いところだなと改めて感じました。
同じくチームメイトのtakuokoさんも、embeddingに関する知見をdiscussion投稿しています。
金メダルを取れなかった点は悔やまれますが、Bertの強さを身に沁みて実感するなど、学びが多いコンペでした。