返回列表

9th place Solo Gold solution

666. Make Data Count - Finding Data References | make-data-count-finding-data-references

开始: 2025-06-11 结束: 2025-09-09 文献与知识发现 数据算法赛
第 9 名单独参赛金牌解决方案

第 9 名单独参赛金牌解决方案

作者: Geremie Yeo (Grandmaster)
发布日期: 2025-09-10
竞赛排名: 第 9 名

这次比赛是我获得的第一个单人金牌(也是第一个单人奖牌🎉)

简要总结

登录号 (Accessions)

  • MDC 语料库 v4 (仅限 eupmc)
  • 提取包含 ACC_ID 的句子,并使用 Qwen3-Embedding-0.6B 计算与以下 seed_sentence 的句子相似度:
    "DNA Deposition\nThe following information was supplied regarding the deposition of DNA sequences:\nThey are available at\nGenBank: PRJNA664798. BioSample: SAMN16233641, SAMN16233642, SAMN16233643, SAMN16233644, SAMN16233645."
    如果相似度 >= 0.667 且包含 "submit" 或 "deposit",则标记为 Primary,否则为 Secondary。

后处理 (Postprocessing)

  • 由于训练集中文章 74/89/111 存在 ENA/Proteins 的误报 (FPs),我采取了对冲策略,将每篇文章的此类预测数量限制为 64 个(以防其中也有真阳性 TPs)。
  • 删除 PDF 文本中落在范围内的任何 ACC_ID(例如,KT123456-KT123489 如果预测到了,会删除多达 34 个 ACC ID)。

DOI

  • MDC 语料库 v3
  • 步骤 1:使用 Qwen2.5-7B 结合周围上下文提取 DOI 链接。
  • 步骤 2:使用 Qwen2.5-32B 从论文开头提取标题、作者、出版年份。
  • 步骤 3:使用 Qwen2.5-32B 分类 Data vs Literature。
  • 步骤 4:使用 Qwen2.5-32B 分类 Primary vs Secondary。将所有 DRYAD 设置为 Primary
  • 步骤 5:仅针对 DRYAD ID,追加那些存在于语料库中但不在文章中的预测,并将其分配为 Primary

代码

设计选择

  • 我决定不对登录号 (Accession IDs) 使用概率解决方案,因为在手动分析大多数 PDF 后,我没有发现任何我认为分类器能表现良好的真实模式。数据非常嘈杂。仅使用一个简单的规则 设 S = 包含 ACC ID 的句子。如果 S 中包含 deposit 或 submit,则为 Primary,否则为 Secondary 就能捕捉到 95% 的 Primary 登录号。随后,我使用嵌入相似度来过滤掉那些可能碰巧包含关键词但无关的误报句子。
  • 对于 DOI,我使用了 Qwen2.5-32B-Instruct。除了测试 72B 模型外,没有做任何模型更改,但 72B 太慢无法用于实验,且没有提供太多改进。我曾想过生成合成数据来微调 LLM 进行分类,但我的交叉验证 (CV) 结果显示,GPT-5、Claude 4 和 Grok 3 的表现都与 Qwen2.5-32B-Instruct 相似,所以我放弃了这个想法,只专注于通过适当的上下文工程进行零样本 (zero-shot) 推理。

最终提交的方案

  • (1) 公共榜:0.853, 私有榜:0.729 (将所有 BioSample/BioModels 设为 Primary)
  • (2) 公共榜:0.797, 私有榜:0.745 (没有上述规则)

最佳未提交方案:公共榜 0.802, 私有榜 0.750

失败的想法

  • 使用出版日期与数据集创建日期来分类 Primary/Secondary —— 这并没有改善 CV。
  • 使用 Qwen 32B 以 2048 个 token 为块扫描文章以识别登录号/DOI(类似于 NER)。这既没有改善 CV 也没有改善 LB。
  • 我不知道为什么,但在训练数据中,登录号 (Accession IDs) 和 DOI 似乎只有 1 个自由度。我尝试删除那些有预测 DOI 的文章中的登录号,但分数下降了。
  • 分类推理 (Reasoning for classification)。
  • 使用不同的 PDF 解析器(例如 Marker)。
  • 用于上下文工程的语义/关键词搜索。

附注

我的公共榜分数卡在 0.64 长达一周。这令人沮丧,但我知道要获得不错的结果,我需要深入调试为什么我的分数失败,而不是放弃并退回到公开可用的想法上。我不再看排行榜,把过去一年因缺乏进步而觉得自己不会成功的想法抛在脑后,只专注于调试直到成功。最终,我找到了根本原因,并在五天内将公共榜分数提高到了 0.82。正如雷·达里奥 (Ray Dalio) 在《原则》中所说,没有挣扎就不会成功。

同比赛其他方案