マイクロF1=0.94が役に立たない分類器を隠す理由:マルチラベル問題の分析
DeepPavlov
DiscordのAIモデレーションを例に、集約されたマイクロF1スコアが稀だが重要なクラスでの失敗を隠すことを示す。著者はマルチラベルタスクでKISS原則を盲目的に従うことへの警告を発し、クラス不均衡、損失関数の選択、チェックポイント選択指標が実際のモデル品質に与える影響を説明する。
著者は、ruBERT tiny2モデルに基づくDiscord用のAIモデレーションを開発しています。このモデルは、15個のラベル(SAFE、TOXIC、ADVERTISEMENT、SPAM、SCAM、THREAT、EVASION、FLOODなど)を用いたマルチラベル分類のためにファインチューニングされています。データセットには約100万件のラベル付きサンプルが含まれています。トレーニング後、モデルはテストでマイクロF1=0.9358、マクロF1=0.8396を達成しました。この約0.1の差は、各クラスごとにメトリクスを確認する必要があることを示していました。その結果、稀なクラス(例えば、35,000サンプルのEVASION)が頻出クラス(400,000サンプルのSAFE)の量に埋もれてしまい、マイクロF1ではそれらのエラーを反映しないことが判明しました。この不均衡に対処するため、BCEWithLogitsLossでpos_weightを使用しました。詳細な分析により、TOXICの再現率が約0.78であり、モデルが有毒なメッセージのかなりの部分を見逃していることが明らかになりました。FLOODとIMAGE_SCAMのクラスはテスト分割にはほとんど存在しませんが、それらの処理はテキスト分類器ではなく、システムの他のコンポーネントに委ねられています。また、著者は、トレーニング損失に基づいて最良のチェックポイントを選択すると過学習につながることも指摘しています。最適なバリアントは損失ではなくマクロF1を使用して見つかりました。主な教訓は、KISSの原則は実装に適用されますが、タスクには適用されないということです。クラスの不均衡、メトリクスの違い、各クラスごとの適合率と再現率の分離、エラーのコストは無視できません。次のステップは、各クラスごとにしきい値を個別に調整することです。
出典: Habr — хаб NLP —
原文
