1st place solution

参加者の皆様お疲れさまでした。
運営様、コンペの開催ありがとうございました。

1st place solutionを共有します。
https://github.com/ktask154/Probspace_Prediction-of-acceptance-of-research-papers-at-international-conferences

※ NLPに関する知見が深いわけではなく運がよかった部分も大きいと感じています。もし、使用不可のモデルや解法を用いている場合ご指摘いただけると幸いです。


計算環境

Colab Pro+


シングルモデル

・microsoft/deberta-v3-base
・microsoft/deberta-v3-small
・microsoft/deberta-base
・facebook/bart-base
・facebook/muppet-roberta-base
・google/electra-base-discriminator
・bert-base-uncased
・roberta-base
・funnel-transformer/medium
・albert-base-v2
・distilbert-base-uncased
・sshleifer/distilbart-cnn-12-6
・EleutherAI/gpt-neo-125m


これらのモデルを使い、基本的に以下のことを行っています。

・入力テキスト : title + abstract
・交差検証 : StratifiedKFold(n=10, target="y")

・Last Hidden State Output : Max Pooling
・epoch : 5
・Loss : BCEWithLogitsLoss
・optimizer : AdamW
・LR : Layer-wise Learning Rate Decay (LLRD)
・敵対学習方法(AWP)
・MLM pretraining 10 epoch (probability=0.15)


アンサンブル

・提出1
Stacking
model : CatBoost
説明変数 : 01予測したシングルモデルの予測結果 + タイトル(アブスト)のワード数+タイトル(アブスト)のキーワード数 + タイトル(アブスト)に含まれているキーワード数

CV : 0.7384

Public LB : 0.7314

Private LB : 0.7332


・提出2
Voting
シングルモデルの1予測された個数をカウントし、閾値(=2)を超えたものを1予測

CV : 0.7394

Public LB : 0.7387

Private LB : 0.7332



効かなかったこと、出来なかったこと

・Multi-sample dropout
・Layer re-initialization
・逆翻訳によるデータの水増し(精度がなかなか上がらない理由の一つとしてデータ数が少ないからではないかと考えていましたが、時間がなく出来ませんでした。)


参考

主にこちらのサイトを参考にコードを作成しました。
https://www.kaggle.com/code/yasufuminakama/pppm-deberta-v3-large-baseline-w-w-b-train
https://www.kaggle.com/code/yasufuminakama/pppm-deberta-v3-large-baseline-inference
https://www.kaggle.com/code/rhtsingh/utilizing-transformer-representations-efficiently
https://www.kaggle.com/code/maunish/clrp-pytorch-roberta-pretrain

Icon18
T.T

1位おめでとうございます

今回のコンペでNLPの面白さと難しさを存分に体感しました。公開いただいたソースコードで勉強させていただこうと思います。

指摘ではなく素朴な疑問で大変恐縮ではあるのですが、
もしよろしければPublic LBのスコアが一番高かった結果ではなく、アンサンブルした結果を提出に選んだ理由をお教えいただけないでしょうか
Public LBのスコアが一番高い結果を選択して惨敗したので、今後のために提出ファイルの選び方を学びたいと考えています。

Icon24
ktask

ありがとうございます。

Public LBのスコアが一番高かった結果ではなく、アンサンブルした結果を選んだ理由に関してですが、cvが高かった2つを選んだためです。
今回コンペは、cvとlbのスコアに相関関係がなくcvよりlbの方がスコアが高かったこと、PublicとPrivateのデータ比の記載がなかったこと、他の参加者が共有してくださっていたコードにcvとlbの乖離があったことから提出が全体的にPublic LBに使われているデータに過剰適合していると考え、cvを重要視して提出ファイルを決めました。

これは個人的な提出ファイルの決め方ですが、
提出ファイルを2つ選べる場合
Public LBに使われているデータが50%程度の場合はbest cvとbest lbの2つ
Public LBに使われているデータが35%以下の(又は記載がない)場合はcvの高い2つ
を選ぶようにしています。

参考になれば幸いです。

Icon18
T.T

非常に丁寧なご回答を頂き、ありがとうございます

うまく予測できているかの指標がわからず、とりあえず出してみてLBの様子を見る手段をとっていましたが、
今後はCVにも着目して取り組んでいきます

Aws4 request&x amz signedheaders=host&x amz signature=0e3d135dd70a444a9e39330b6b76b4b322ebbdbcbe44c17f7c86b1fbfdc99138
ProbSpace_official

ktask様

お世話になっております。ProbSpace運営事務局です。
1st place solutionのご公開、ありがとうございます。

Open Review期間につきましては、5/17までと設定させていただきます。
質疑対応等お手数おかけいたしますが、よろしくお願いいたします。

Aws4 request&x amz signedheaders=host&x amz signature=0e3d135dd70a444a9e39330b6b76b4b322ebbdbcbe44c17f7c86b1fbfdc99138
ProbSpace_official

ProbSpace運営です。
公開後一週間がたちましたが、チーティングに関する質問は特にございませんでしたので、順位確定といたします。

この度は、優勝おめでとうございます!

Favicon
new user
コメントするには 新規登録 もしくは ログイン が必要です。