Hitrate介绍

张开发
2026/4/10 15:44:10 15 分钟阅读

分享文章

Hitrate介绍
Hitrate命中率是一个用于评估召回阶段效果的指标。它的核心逻辑是看系统在召回阶段能不能猜中用户最终真正感兴趣的那些物品。指标定义Hit Rate 关注的是有没有而不是排第几。场景给定一个用户uuu模型生成一个长度为KKK的推荐列表Top-K List正样本用户在测试集中实际产生过交互如点击、购买的物品集合GuG_uGu​(Ground Truth)命中 (Hit)如果推荐列表中的任意一个物品出现在GuG_uGu​中则记为一次 Hit值为 1否则为 0计算方式对所有测试用户取平均值Hit RateK1N∑i1NI(RecListi∩Gi≠∅) \text{Hit Rate}K \frac{1}{N} \sum_{i1}^{N} \mathbb{I}(\text{RecList}_i \cap G_i \neq \emptyset)Hit RateKN1​i1∑N​I(RecListi​∩Gi​∅)其中NNN用户总数RecListi\text{RecList}_iRecListi​给第iii个用户推荐的 Top-K 个物品GiG_iGi​第iii个用户实际喜欢的物品集合I(⋅)\mathbb{I}(\cdot)I(⋅)指示函数条件满足为 1否则为 0示例假设我们要评估Top-5 (K5)的推荐效果用户 A实际喜欢[商品X, 商品Y]模型推荐[商品A, 商品B, **商品X**, 商品C, 商品D]结果Hit(因为推荐列表里包含了商品X)。Hit Rate 贡献 1。注意虽然商品X排在第3位但在 Hit Rate 看来它和排在第1位是一样的。用户 B实际喜欢[商品Z]模型推荐[商品A, 商品B, 商品C, 商品D, 商品E]结果Miss(没包含商品Z)。Hit Rate 贡献 0用户 C实际喜欢[商品M, 商品N]模型推荐[**商品M**, **商品N**, 商品A, 商品B, 商品C]结果Hit。Hit Rate 贡献 1注意即使用户C的两个喜好都命中了Hit Rate 依然只记为 1不会记为 2。如果有 100 个用户其中 60 个用户的推荐列表里至少有一个他们喜欢的物品那么Hit Rate5 60%。优缺点优点直观易懂业务方很容易理解“每 100 次请求中有 60 次我们成功猜中了用户想要的东西”对冷启动友好只要推荐列表里有一个对的就算成功不要求非常精准地排在第一位适合评估召回层从万级池子捞出千级候选的效果计算简单不需要复杂的折扣因子缺点忽略排序位置这是最大的缺陷。把正确物品排在第 1 位和第 5 位对 Hit Rate 的贡献是一样的。但在实际业务中第 1 位的价值远大于第 5 位对比指标NDCG(Normalized Discounted Cumulative Gain) 或MRR(Mean Reciprocal Rank) 会考虑位置权重忽略命中数量用户喜欢 5 个物品你命中 1 个和命中 5 个Hit Rate 都是 1。这无法反映推荐的丰富度或覆盖率对比指标RecallK(召回率) 会计算命中的比例命中数/总正样本数对长尾不敏感如果正样本很多只要命中一个容易的热门物品就能得分可能掩盖模型对长尾物品挖掘能力的不足

更多文章