331. Jigsaw Unintended Bias in Toxicity Classification | jigsaw-unintended-bias-in-toxicity-classification
我创建了一个 Notebook 来展示我是如何计算损失函数的。我在基于 LSTM 的模型、Bert-Base 和 GPT2 中使用了相同的损失函数。
10个基于 LSTM 的模型集成结果:~0.9415
5个基于 Bert-Base 的模型集成结果:~0.9462
3个基于 GPT2 的模型集成结果:~0.9425
总体得分:~ 0.94725
=======================
以下是我对损失函数的思考过程:
目标函数包含 4 项,每一项代表一种类型的 AUC。下面的公式是分数的简化版本,不涉及任何根号幂运算:
OverAll_AUC + 1/9 Sum(Subgroup(i) AUC) + 1/9 Sum(BPSN(i) AUC) + 1/9 Sum(BNSP(i) AUC)
(1) 每个样本都参与了其中的某些项 -> 参与了 3 项的样本比参与了 2 项的样本更重要,因为对该样本给出糟糕的评分会对总体评分产生更大的影响。
(2) AUC 本身代表模型为随机选择的正样本分配的分数高于随机选择的负样本的概率。如果我们想根据一定数量的正负样本及其分数来估计这个概率,我们可以组成所有 (p, n) 对的集合,并计算 score(p) > score(n) 的对所占的比例。在这里,每个正样本参与了 1/正样本数量 的配对。负样本也是如此。因此,这个数值可以代表每个正负样本对 AUC 的影响。如果一个集合中只有 2 个正样本,给这些样本中的每一个分配糟糕分数的影响,要比有 200 个正样本时的影响大得多。
以这种方式分配权重的另一个作用是平衡正负样本数量的影响。如果负样本的数量远高于正样本,在分配权重后我们将得到:
sum(正样本权重) = sum(负样本权重)
这可以消除模型中的一种偏差来源。如果模型看到某个子组的正样本比例高于数据集中的整体正样本比例,模型可能会偏向该子组。但在按照上述方式分配权重后,模型会看到每个子组的正负样本是平衡的(有一个问题是,在这个数据集中,每个样本可能属于多个子组,所以我计算的最终权重并不是 100% 平衡的)。
(1) 和 (2) 给出了我使用的损失函数,其中每个样本的权重是:该样本对总体分数中每一项的影响之和。