bananabanana
参加者の皆様,お疲れさまでした.
運営の方,トピック公開してくださった方々,ありがとうございました.大変勉強になりました.
3位の解法です.遅くなってしまってすみません.
自然言語のデータを扱うコンペは初めてでいろいろと調べながらコードを書いていました.
普通はこういう手法を使うんだよ,などありましたらぜひ教えて下さい.
https://github.com/nakayama-r/Probspace-kiva-3rd
希望金額
DESCRIPTION_TRANSLATEDに希望金額が記載されている場合があり,たいていはその希望金額通りに融資が行われているようです.
最初はDESCRIPTION_TRANSLATEDに記載されている数字で一番大きいものを希望金額として抽出していました.
これでも大幅に精度は改善したのですが,収入額や年齢,購入予定の品物の個数などを抽出してしまっているものも多くあったので以下のようにもう少し丁寧にやることにしました.
類似度がしきい値よりも大きかったsentenceに書かれた数値を希望金額として抽出する.
あとは,学習データでLOAN_AMOUNTと希望金額の対応関係からUSDとの交換レートを求めてCURRENCYごとに中央値を取り,最終的な通貨交換レートとしました.
またその交換レートを使って希望金額をUSDに変換した値も特徴としました.
類似度のしきい値はかなりいいかげんにCURRENCYごとに0.2~0.4くらいにしています.
こんなことをして交換レートを求めなくても公開されている情報使ったほうが正確じゃないかなと思ってトピックで質問しましたが外部データは利用不可でした.
(融資を募っている期間中にレートが上下してしまうので予測に使ってほしくない,とかでしょうか.)
類似文章のLOAN_AMOUNT
テストデータでは,類似度の大きい5つの文章のLOAN_AMOUNTをそれぞれ追加して予測し,5つの予測値のmedianを最終的な予測とする.(Test Time Augmentationみたいなものです.)
CURRENCYの他に,同一のACTIVITY_NAME,CURRENCY_POLICY+CURRENCY_EXCHANGE_COVERAGE_RATE+CURRENCY特徴でも同じ手順で類似文章のLOAN_AMOUNTを追加しました.
元ネタはhttps://www.kaggle.com/c/ventilator-pressure-prediction/discussion/285282
以下の5つのモデルを最終的なaveragingに利用しました.
- 使用した特徴量 :上記の全て
- Loss : Psuedo-Huber Loss
- 使用した特徴量 :生データ,TAGSのOneHot化,CLIPによる画像特徴,希望金額,類似文章のLOAN_AMOUNT
- カテゴリ変数はすべてTarget Encordingしました.
- Loss : Psuedo-Huber Loss
以下のBERT系列のモデルは全てDESCRIPTION_TRANSLATEDを入力し,その出力にその他の特徴をconcatして予測Headに入力しています.
- https://huggingface.co/facebook/bart-base
- 使用した特徴量 :DESCRIPTION_TRANSLATED
- Loss : L1 Loss
- encoderの最終層以外は重みを固定してfinetuning
- https://huggingface.co/bert-base-cased
- 回帰ではなくLOAN_AMOUNTの金額を400クラスに分割して分類問題として予測
- 使用した特徴量 :生データ,TAGSのOneHot化,CLIPによる画像特徴,希望金額,類似文章のLOAN_AMOUNT
- Loss : focal Loss
- 最終3層以外は重みを固定してfinetuning
- 各層のCLSトークンをConcatenateして予測Headに入力
- https://huggingface.co/distilbert-base-cased
- 使用した特徴量 :生データ,TAGSのOneHot化,CLIPによる画像特徴,希望金額,類似文章のLOAN_AMOUNT
- Loss : Psuedo-Huber Loss
- 最終層以外は重みを固定してfinetuning
- 各層のCLSトークンをConcatenateして予測Headに入力
上記5つのモデルを加重平均したもので,CV:191.671867,Public:250.08713, Private:246.06379でした.
画像は使う予定はなかったのですが最終日試したCLIPの特徴でCVが大幅に改善しました.
蓋を開けてみると学習データにoverfitした様子でしたがaveragingの際の多様性には寄与していたようです.
ProbSpace_official
bananabanana様
3rd Place solutionの公開、ありがとうございました。 オープンレビュー期間については、2/27までと設定させていただきます。
どうぞよろしくお願いいたします。