362. Google QUEST Q&A Labeling | google-quest-challenge
感谢 Google 和 Kaggle 主办了这场激动人心的比赛。同时,祝贺所有参赛队伍!
看到比赛刚结束就在讨论区出现了这么多优秀的解决方案,我非常高兴。这让我也想与大家分享我自己的解决方案和见解。
在描述建模和后处理之前,让我先解释一下我对本次比赛数据集的假设。
我们看到每个标签都有一组奇怪的离散目标值,例如 {3/9, 4/9, 1/2, 5/9, 6/9, 7/9, 5/6, 8/9, 9/9}。虽然这在一些讨论帖(如 链接)中已经被讨论过,但我对这些目标值是如何生成的有一个不同的假设。我的假设主要包括以下几点:
question_well_written 有 {1, 2, 3},question_type_choice 有 {0, 1},而 answer_satisfaction 有 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}。我假设 question_well_written 的答案值 1、2 和 3 分别对应“否”、“也许”、“是”。question_well_written 分别给出 2、2 和 3 的答案值,则其目标值变为 (2 + 2 + 3) / (3 + 3 + 3) = 7 / 9。question_well_written 的目标值 {3/9, 4/9, 5/9, 6/9, 7/9, 8/9, 9/9}。但这并没有涵盖实际值中的 1/2 和 5/6。我猜测这些值是在某些目标值只有两名评分者的情况下获得的。虽然第 4 点让我对我的假设不太自信,但我仍然相信每个目标有三名评分者比每个目标有超过 10 名评分者更符合现实。
我们可以获得以下信息:
基于此列表,我假设数据集划分如下:
基于此假设,我开始仅使用频率 = 1 的问题进行验证。这将我的单模型 CV 分数从 0.420 变为 0.382,这与我在测试数据集上的分数要接近得多。
在应用基于排名的最小-最大缩放后,我对每个目标使用了二元交叉熵。最小-最大缩放与第 3 名解决方案中提到的相同。使用最小-最大缩放是基于我对目标值的假设。例如,我假设 question_well_written 的 3/9 意味着非常强烈的“否”。
此外,我在最小-最大缩放之前将每个目标值替换为其排名。这提高了模型在目标值分布偏斜的标签上的性能。下图是 answer_well_written 目标值的分布。在这种情况下,区分目标值为 8/9 和 1 的问题比区分目标值为 0.5 和 8/9 的问题对 Spearman's rho 的影响更大。使用基于排名的最小-最大缩放将一组目标值从 {3/9, 4/9, 1/2, 5/9, 6/9, 7/9, 5/6, 8/9, 9/9} 转换为 {0, 0.001, 0.004, 0.008, 0.042, 0.137, 0.233, 0.482, 1.000},并鼓励模型检测那些对 Spearman's rho 产生较大影响的问题之间的差异。我在 CV 中通过基于排名的最小-最大缩放获得了 +0.01 的提升。