You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Learning to Rank数据拆分:查询的最优处理及数据集划分方案咨询

Learning to Rank 训练/测试集划分方案选择

在Learning to Rank(LTR)场景中,数据划分的核心是不能破坏「查询-文档-相关性」的关联逻辑,还要保证评估结果能真实反映模型的泛化能力。下面直接对比两种常见方案,并给出最优选择:

两种核心划分方案对比

1. 按查询ID完整拆分(将整个查询分配到训练/测试集)

这种方案是把每个查询及其所有关联文档作为一个整体,要么全进训练集,要么全进测试集——比如按8:2的比例随机挑选查询ID分组,或者按查询的领域、热度分层抽样,保证训练/测试集的查询分布一致。

优势:

  • 完全贴合真实推理场景:实际使用时,模型面对的都是从未见过的新查询,这种拆分方式下的测试结果,能直接反映模型处理新查询的排序能力。
  • 彻底避免数据泄露:不会出现同一个查询的部分文档在训练集、部分在测试集的情况,模型必须学会基于查询语义的通用排序逻辑,而不是记住特定查询的文档特征。
  • 保留完整的相关性分组:每个查询的各相关性层级(比如完全相关、部分相关、不相关)文档都完整保留,测试时能准确评估模型对整个查询结果的排序质量(比如NDCG、MAP这类指标的计算更准确)。

局限:如果你的数据集查询总数很少,可能会导致训练/测试集的数据量不均衡,或者测试集覆盖的查询场景不够全面。

2. 单个查询内拆分文档

这种方案是对每个查询,把它的关联文档按比例拆分(比如70%训练、30%测试),同一个查询的文档会分散在两个集合里。

优势:能最大化利用现有数据,适合查询数量极少、按查询拆分后训练集数据量不足以支撑模型训练的场景。

局限:

  • 存在数据泄露风险:模型在训练时已经见过同一个查询的部分文档,测试时可能会依赖这些已知信息排序,导致评估结果虚高,无法反映真实泛化能力。
  • 不符合真实场景:实际业务中不会出现“同一个查询已经处理过部分文档”的情况,这种拆分的测试结果参考价值很低。
  • 破坏相关性结构:拆分后测试集可能缺失某个相关性层级的样本,比如某查询的“完全相关”文档全进了训练集,测试时没法评估模型对这类高相关文档的排序能力。

最优方案结论

优先选择「按查询ID完整拆分」的方案,这是LTR领域的标准做法,能保证评估结果的真实性和可靠性。

只有当查询数量极少、按查询拆分后训练集数据量完全不够用的时候,才考虑单个查询内拆分文档,但要明确这种方式的评估结果存在偏差,只能作为模型调优的初步参考,不能作为最终上线的性能依据。

额外注意:拆分时尽量采用分层抽样,保证训练集和测试集的查询类型、相关性标签分布一致,避免因分布偏差导致评估结果失真。

内容的提问来源于stack exchange,提问作者Seasers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 03:50:35