Hit@1 是什么?只看排名第一名的命中率指标
Hit@1 是一个排序类评测指标,衡量模型给出的第一名结果,有多大比例正好是正确答案。打个比方:你在地图软件里搜"最近的咖啡店",只点列表第一条,Hit@1 要回答的就是这一条有多大概率是你要去的那家。第二名、第三名再准也不算分,只认第一名。写法上有 Hit@1 和 Hits@1 两种,指的是同一个东西。
它是怎么算的
先说它背后的通用指标 Hits@k。模型对每道测试题给出一串按得分从高到低排好的候选答案,看标准答案排在第几。综述里的定义是:正确答案排进前 k 名的测试样本占全部样本的比例。k 取 1,就是 Hit@1。
举个假设的例子:测试集有 100 道题,模型第一名答对了 70 道,Hit@1 就是 70%。如果另外 15 道题的正确答案排在第二或第三名,那么 Hit@3 就是 85%。k 越大越宽松,所以 Hit@1 永远不会高于 Hit@3 和 Hit@10。
这个差距有时很大。在 Trans4E 论文报告的学术知识图谱 hasTopic 关系上,TransE 的 Hits@1 是 0.043,Hits@10 是 0.355。也就是说模型经常"差一点点",答案在前十里,却不在第一。
它和 MRR(平均倒数排名)常常一起出现。MRR 给排第二的答案 0.5 分,给排第三的 0.33 分,Hit@1 对第二名一分不给,所以更严。另一个弱点是只看前 k 位:正确答案排第 2 和排第 2000,在 Hit@1 里同样是 0 分。好处是好懂,一句话就能解释。
从哪来的
我没有找到一篇公认的"首次提出 Hit@1"的论文,所以只说能确认的脉络。它最早大量出现在知识图谱补全(链接预测)里:给定"头实体 + 关系",让模型给所有候选尾实体打分,再看正确答案排第几。2013 年 Bordes 等人在 NeurIPS 发表 TransE(Translating Embeddings for Modeling Multi-relational Data),评测用的是平均排名和 hits@10,这套排序评测此后被大量工作沿用。后来的 ConvE 论文(Dettmers 等人)同时报告 MRR 和 Hits@10、@3、@1,也沿用了 Bordes 2013 提出的 filtered 设置,即排名前先把图谱里其他已知为真的三元组从候选里去掉。现在的综述把 MRR 和 Hits@k(k 取 1、3、10)当作链接预测的标准指标。
现在在哪用
大模型时代,Hit@1 在知识图谱问答(KGQA)里最常见。Reasoning on Graphs(RoG,Luo 等人,2023 年 10 月上传 arXiv)在 WebQSP 和 CWQ 两个以 Freebase 为知识库的数据集上,用 Hits@1 和 F1 做指标,骨干模型是 LLaMA2-Chat-7B。它对 Hits@1 的解释很直白:看每个问题的第一个预测答案对不对。
之后的工作基本延续这个口径。KnowPath 用 GPT-3.5 Turbo 和 DeepSeek-V3 做骨干并报告 Hits@1,SGR 则测试了 ChatGPT 和 GPT-4,其中 GPT-4 在 WebQSP 上是 0.826。2025 年的 Reason-Align-Respond 在摘要里写的 Hit@1 是 WebQSP 93.3%、CWQ 91.0%。这些数字来自各自的实验设置,不同论文之间不宜直接比大小。
在 RAG 检索评测里,Hit@1 也说得通:检索器返回的第一个片段是不是相关片段。开发工具里的叫法则不统一,TorchKGE 提供 hit_at_k,默认 k=10。
容易混的地方
第一,Hit@1 和 F1 不是一回事。很多问题有多个标准答案,Hit@1 只检查第一个预测是否在答案集合里,F1 才看答案覆盖得全不全。模型只答出五个答案中的一个,Hit@1 可以是满分,F1 却很低。有论文把 Hit@1 直接叫作"匹配准确率",单答案任务里它确实就是 Top-1 准确率。
第二,Hit Rate 和 Recall 的叫法很乱。召回率的标准定义是前 k 个结果里的相关项数除以全部相关项数;Hit Rate@k 只问前 k 个里有没有至少一个相关项。有文章把二值化的 Recall@K 直接称为 Hit Rate@K。每个问题只有一个标准答案时,Recall@1 和 Hit@1 数值相同。有的评测工具连 k 都没有,Future AGI 文档里的 hit_rate 就是检查整个返回列表里有没有匹配项,而且按字符串完全相等来判断。
第三,别忽略候选集和设置。raw 与 filtered 的结果不同,候选实体有几十个还是上百万个,难度也完全不同。再看测试集大小:WebQSP 测试集是 1,639 题,多答对一题约抬高 0.06 个百分点,小数据集上的零点几个点的差距,别太当真。
我们 AI主线 的建议是:看到 Hit@1,先问三件事,候选集有多大、是否 filtered、测试集有多少题。做 RAG 时,如果下游模型会读前 5 个片段,Hit@1 对检索的要求其实比实际需要更严,再看看 Hit@5 会更贴近真实情况。