475. Jigsaw Rate Severity of Toxic Comments | jigsaw-toxic-severity-rating
感谢 Jigsaw 和 Kaggle 举办这场充满挑战且引人入胜的比赛,同时祝贺获奖者以及所有享受这场比赛的朋友们!
我特别喜欢这次比赛的形式,因为它迫使我们寻找一种能在未见数据上具有良好泛化能力的解决方案。
为了获得能在未见数据上泛化的解决方案,我尝试使用:
遗憾的是,我看到 MHS 数据集的时间太晚,未能在比赛中使用它。
我使用 Detoxify 预训练模型作为特征提取器 [毒性 (toxicity), 严重毒性 (severe_toxicity), 身份攻击 (identity_attack)...],因为它们在以往的 Jigsaw 比赛中表现非常好。
我还在 JC/JUC 数据集上针对每个特定目标 [毒性, 严重毒性, 身份攻击 ...] 生成了其他 tf-idf 模型,总共提取了 46 个特征。
一些由 Detoxify 模型提取的单个特征生成的模型在“未见数据”VAL 和 RUD 上表现良好(RUD 上的准确率 > 0.80,VAL 上 > 0.69),而 tf-idf 模型则较弱(RUD 上 < 0.71,VAL 上 < 0.66)。
作为第一次尝试,我使用 RUD(以 RMSE 作为指标)拟合模型,并使用 VAL 调整超参数:这些模型在 VAL 上的准确率在 0.700 到 0.707 之间变化。
然而,通过这种方式,我不确定模型在未见数据上的表现,因此我进一步简化了模型。
我通过选择特征来优化 VAL 上的排名均值,从而建立了一个简单的模型:
该模型包含 11 个 Detoxify 特征和 1 个 tf-idf 特征 提交 1
我进一步剔除了 2 个会降低 RUD 准确率的特征,以生成另一个模型:
该模型仅包含 10 个 Detoxify 特征 提交 2
我宁愿稍微降低 VAL 上的准确率,也希望获得更好的泛化能力(幸运的是,这奏效了!)
| 提交 | VAL | RUD | LB (公开榜) | Private (私有榜) |
|---|---|---|---|---|
| 提交 1 | 0.70858 | 0.80888 | 0.759 | 0.80901 |
| 提交 2 | 0.70652 | 0.82242 | 0.764 | 0.81299 |
以下是我的模型表现:
| 模型 | LB (公开榜) | Private (私有榜) |
|---|---|---|
| Ridge | 0.72559 | 0.78464 |
| RF | 0.74823 | 0.80405 |
| LGB | 0.75595 | 0.80466 |
| XGB | 0.75454 | 0.80159 |
| 提交 1 | 0.75922 |