496. U.S. Patent Phrase to Phrase Matching | us-patent-phrase-to-phrase-matching
首先,我要感谢竞赛主办方举办了这场有趣的比赛。感谢我的优秀队友 @Tifo,我们在过去的一个月里努力讨论和工作,探索新方法。同时也感谢社区提供的优秀 Notebooks 和讨论。
关键在于,在同一个 Anchor 下,不同的 Target 之间存在很强的相关性。(你可以从 GroupKFold 和 KFold 的分数差距中看出这一点)。例如,有些 Target 与原始 Target 相似,有些则与 Anchor 相似。简而言之,将它们添加到上下文中可以更有效地捕捉 Anchor 和 Target 之间的相关性。
我们使用了多种方法来利用这一“魔法”:
anchor 的 Target 分组,例如 'target1, target2, target3, ...'。然后将它们添加到上下文中。anchor 和 context 的 Target 分组。这带来了更相关的 Target。anchor 的 Target 分组。将来自同一个 context 的 Anchor 分组。依次将它们添加到上下文中。将来自同一个 anchor 的 Target 分组,并添加 OOF 分数来描述更具体的定量信息,例如 'target1 23, target2 47, ...'。分数乘以 100,以便可以被识别为一个 Token。
将来自同一个 anchor 和 context 的 Target 分组,并附带分数。
FGM (Fast Gradient Method)
EMA(指数移动平均)
知识蒸馏
我们使用了 5 折 StratifiedGroupKFold(相同的种子 42,按 Anchor 分组)。因此,我们能够有效地使用 OOF 来获得集成分数和模型权重。线性回归比 Optuna 搜索快得多。
当模型数量足够多时,我们的 CV 和 LB(Leaderboard)是完全相关的。
提交地址:https://www.kaggle.com/code/zzy990106/upppm-final
你可以在代码中找到更多细节。