Hitrate介绍

Hitrate(命中率)是一个用于评估召回阶段效果的指标。它的核心逻辑是看系统在召回阶段能不能"猜中"用户最终真正感兴趣的那些物品。

指标定义

Hit Rate 关注的是有没有,而不是排第几

  • 场景:给定一个用户 uuu,模型生成一个长度为 KKK 的推荐列表(Top-K List)
  • 正样本:用户在测试集中实际产生过交互(如点击、购买)的物品集合 GuG_uGu (Ground Truth)
  • 命中 (Hit):如果推荐列表中的任意一个物品出现在 GuG_uGu 中,则记为一次 Hit(值为 1),否则为 0
  • 计算方式:对所有测试用户取平均值

Hit Rate@K=1N∑i=1NI(RecListi∩Gi≠∅) \text{Hit Rate}@K = \frac{1}{N} \sum_{i=1}^{N} \mathbb{I}(\text{RecList}_i \cap G_i \neq \emptyset) Hit Rate@K=N1i=1NI(RecListiGi=)

其中:

  • NNN:用户总数
  • RecListi\text{RecList}_iRecListi:给第 iii 个用户推荐的 Top-K 个物品
  • GiG_iGi:第 iii 个用户实际喜欢的物品集合
  • I(⋅)\mathbb{I}(\cdot)I():指示函数,条件满足为 1,否则为 0

示例

假设我们要评估 Top-5 (K=5) 的推荐效果:

  • 用户 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 Rate@5 = 60%

优缺点

优点:

  1. 直观易懂:业务方很容易理解,“每 100 次请求中,有 60 次我们成功猜中了用户想要的东西”
  2. 对冷启动友好:只要推荐列表里有一个对的就算成功,不要求非常精准地排在第一位,适合评估召回层(从万级池子捞出千级候选)的效果
  3. 计算简单:不需要复杂的折扣因子

缺点:

  1. 忽略排序位置:这是最大的缺陷。把正确物品排在第 1 位和第 5 位,对 Hit Rate 的贡献是一样的。但在实际业务中,第 1 位的价值远大于第 5 位
    • 对比指标NDCG (Normalized Discounted Cumulative Gain) 或 MRR (Mean Reciprocal Rank) 会考虑位置权重
  2. 忽略命中数量:用户喜欢 5 个物品,你命中 1 个和命中 5 个,Hit Rate 都是 1。这无法反映推荐的丰富度覆盖率
    • 对比指标Recall@K (召回率) 会计算命中的比例(命中数/总正样本数)
  3. 对长尾不敏感:如果正样本很多,只要命中一个容易的热门物品就能得分,可能掩盖模型对长尾物品挖掘能力的不足
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值