475. Jigsaw Rate Severity of Toxic Comments | jigsaw-toxic-severity-rating
在比赛的最后一个月,我决定专注于最大化验证集分数。公共排行榜(Public LB)似乎不太有用,因为它只包含 5% 的数据,而且验证集分数与公共排行榜分数之间没有相关性。
我使用了 2 个数据集来训练模型:Ruddit 数据集和有毒评论数据集。我尝试过其他数据集,但它们完全没有提高我的验证分数。
我只使用 “validation_data.csv” 进行验证。
Ruddit 数据集包含元组 (A, B, C, D),其中 “A” 毒性最小,“D” 毒性最大。因此,我利用这些元组创建了样本对 (X, Y),其中 X 的毒性小于 Y。
然后我使用 MarginRankingLoss 训练了 2 个模型:
我使用了分层学习率衰减(从 1e-5 到 1e-4)。训练采用 5 折交叉验证。每个模型训练 3 个 epoch,每个 epoch 结束后保存准确率最高的模型。
我使用该数据集训练回归模型。数据准备步骤:
数据准备完成后,我训练了 3 个模型:
训练模型后,我使用 Optuna 来权衡集成中的模型权重。步骤:
经过一些实验,我获得了最大验证分数 0.709,公共排行榜分数为 0.819。
最终集成 – 模型汇总:
| 序号 | 模型 | 数据集 | 模型数量 |
|---|---|---|---|
| 1 | roberta-large (MarginRankingLoss) | Ruddit | 2 |
| 2 | unitary/unbiased-toxic-roberta (MarginRankingLoss) | Ruddit | 3 |
| 3 | Tfidf + RIDGE | Toxic comments | 3 |
| 4 | unitary/unbiased-toxic-roberta (自定义线性层, MSELoss) | Toxic comments | 3 |
| 5 | unitary/unbiased-toxic-roberta (自定义注意力层, MSELoss) | Toxic comments | 2 |