---
# System prepended metadata

title: 1st place solution

---

# 1st place solution
運営の方々、コンペを開催いただきありがとうございました。1st place splutionを共有します。既に公開されている他の方の解法と同様にstudio-ousia/luke-japanese-largeを利用しました。また、少量のデータによるコンペということもあり後段の後処理に力を入れました。

## モデル
アンサンブルはせず、シングルモデルで10foldに分割しました。データ数が少ないためアンサンブルするよりも細かく分割して少しでも訓練データを増やしたかったためです。modelのサイズ制限の対象にならないように、10 model を用いました。

特徴量として言語モデルの[CLS]の埋め込み表現(768次元)と、文字単位のTFIDFのベクトル(128次元)を結合したものを用いました。一度SVRなしで学習してから、追加でSVRでstackingしました。
<img src="https://i.imgur.com/0fHKjBV.png" width=50%>

言語モデルはコンペデータを使ってMLMタスクで追加finetuneしたものを用いました。


## 後処理
かなり力を入れました。モデルの予測と正解ラベルが異なる訓練データをスプレットシートで眺めて、モデルがよく間違えやすい入力の傾向を探りました。

傾向としてはやはり表面上の特徴をもとに推論されている傾向が強かったです。

- 予測ではヘイトスピーチではないがヘイトスピーチの例
```
"プログラムは仕事にできないにゃ・・・
やるとしても設計やるべきや。ゲーム会社の人も「プログラマーはねーわ」って皆言ってたわ
「職人」って読んで特別階級にしつつ、その実汚れ仕事全部押し付ける差別階級やからね"
```
- 予測ではヘイトスピーチだがヘイトスピーチではない例
```
在日朝鮮人は韓国でも差別受けて日本でも差別受けとるんか
```

そこで訓練データで予測に失敗していたデータをもとにモデルが学習できていないヘイトスピーチだと確定できそうな表現、逆にヘイトスピーチではなさそうな表現を収集して後処理に利用しました。




## スコア

|手法|CV|LB|PB|
|:-|:-|:-|:-|
|SVRあり|0.773462|0.760180|0.796208|
|SVRなし|0.771474|0.753363|0.773584|


## Not Work
- pseudo-labeling
- luke-japanese 以外の日本語言語モデル
- lightgbm などの言語モデル以外ベースのモデル
- FGMやAWPなどの adversalial trianing



