首尔东南圈有一家 Kakao 星级 4.2 的生鱼片店。表面上看并不差。然而,这家店的评论者中,64% 都是缺乏区分力的评价者。他们无论去到哪家店,都会给出 4.5 分以上。应用权重后,Score 会降到 3.38。
同一地区还有一家 Kakao 4.2 的西餐店。这家店有 64 名 Gold 评论者,缺乏区分力的评论占比为 23%。加权 Score 为 4.2,与 Kakao 星级完全一致。
这两家店在 KakaoMap 上同样都是 4.2 分。加权分析却将两者拉开了0.8 分差距。如果你已经在 #1 中确认过,星级评分的准确性取决于评论者的质量,那么这篇文章将进一步说明,这种“质量”是如何被量化的——从权重的设计原理、噪音去除方法,到实地验证,完整拆解整个过程。
可信度由两个轴决定
所有评论者的可信度(credibility)都通过 Volume × Discrimination 这两个因素的乘积来计算。各因素的尺度与基准点,是在分析评论数据分布后有意设定的数值。
对 Volume 采用对数尺度,且上限设为 100 条。10 条时为 0.52,50 条时为 0.85,到 100 条时达到 1.0,之后不再继续上升。无论是写了 300 条评论的评论者,还是写了 1,000 条评论的评论者,Volume 的贡献值都相同。也就是说,评论数越多,可信度确实越高;但超过一定水平后,“写得更多”并不等于“更值得信赖”。
Discrimination 是对评论者区分好店与普通店能力的估计值。理想情况下,应该直接测量每位评论者的评分分布(标准差),但 KakaoMap API 只提供评论者的平均星级与评论数。我们无法访问单个评论者完整的评分分布。因此,我们决定将平均星级作为区分力的近似值。曲线中心值设为 3.2,并设计为越接近两端极值,越趋近于 0。
为什么是 3.2?在 5 分制中,能把平均值维持在 3.2,意味着对好店会给 4~5 分,对普通店则给 2~3 分。评分必须有分散度,才会产生信息。
一个给所有店都打 5 分的评论者,他的 5 分没有信息量。因为他并不会区分这家店是否真的特别。
当然,平均星级并不是完美指标。平均 4.2 的评论者中,也可能有人实际上会广泛使用 1~5 分。但在无法确认每位评论者完整评分分布的情况下,平均星级仍是估算区分力最现实的近似值。我们观察到,3.0~3.5 区间的评论者在不同店铺之间的评分差异最大,因此将中心值定为 3.2。
在这条曲线上,区分力达到 0.5 以上的区间大致是平均 2.0~4.4。Gold 评论者则是其中评论数 50 条以上、平均 2.5~4.2 的评论者。也就是 Volume 0.85 以上、Discrimination 0.65 以上——在两个轴上都位居前列的评价者。这个基准线设定为“在公式中自然获得较高权重的区间”与“经人工审核确认判别质量的区间”的交集。在 175 万条评论中,满足这一条件的评论者共有 12,911 人。
最终权重中还会加上一个基础值(eps)0.05。也就是说,无论评论者的历史记录多么不足,或评分多么极端,都不会被完全忽略。不过,他们的话语权最多也只相当于 Gold 评论者的 1/15。
同样是 5 分,权重却相差 15 倍
来看看这个公式在实际中会造成怎样的差异。两位评论者给同一家店都打了 5 分。一位只有 1 条评论记录,平均 5.0;另一位则去过 200 家店,长期维持平均 3.3。
应用 Volume × Discrimination 后,第一位评论者的权重是 0.07,第二位则是 1.04。相差 15 倍。
只有 1 条评论、平均 5.0 的评论者,同时存在两个弱点:Volume 极低(评论历史不足),Discrimination 也极低(平均值过于极端)。这是两个维度都处于底部的典型案例。
值得注意的是“50 条 / 平均 4.8”的评论者。虽然评论数并不少,但其权重只有 0.29。Volume 高达 0.85,但由于 Discrimination 低,最终权重被削弱。一个去了 50 家店却大多只给 4~5 分的评论者,很难回答“这家店是否真的特别”这个问题。
过滤噪音——缺乏区分力的评论者
仅仅赋予权重还不够。因为系统中还存在一种固有的噪音来源。
缺乏区分力的评论者,是指无论去到哪家店,都倾向于只给高分的评价者。在第 1 节的 Discrimination 曲线中,他们已经会获得较低权重,但这类评论者所占的比例本身,也会成为拉低店铺数据可信度的指标。
探测标准根据评论数设计为3 个阶段。
| 标准 | 平均星级 | 最低评论数 | 逻辑 |
|---|---|---|---|
| 第 1 阶段 | 4.9 以上 | 3 条 | 几乎等于总是打 5 分 |
| 第 2 阶段 | 4.7 以上 | 7 条 | 高平均值,且维持 7 条以上 |
| 第 3 阶段 | 4.5 以上 | 25 条 | 即使达到 25 条仍是极端高分 |
评论数越多,越难维持高平均值。这也是标准采用递进式设计的原因。数据表明,在 3 条评论中维持 4.9,与在 25 条评论中维持 4.5,呈现出相似程度的偏向模式,而各阶段阈值正是从这一观察中推导出来的。
在 81,679 家店中,有 7,507 家(9.2%)的缺乏区分力评论占比超过了 40%。也就是说,大约有 10% 的星级评分,正被这种偏向性所抬高。
不是一个数字,而是三个维度
这个系统不会给出单一分数,而是通过三个独立维度来评价店铺。
第一,加权正向率。即把 4 星以上评论的权重总和,除以全部评论权重总和所得出的比例。它看的不是简单的“4 星以上占比”,而是高可信度评论者所给出的 4 星以上评论占了多少。判定边界设为 75% / 50% / 30%——75% 以上为“美食店”,50% 以上为“不错”,30% 以上为“普通”,低于此则为“注意”。
第二,泡沫指数。如果缺乏区分力的评论占比超过 40%,或 Kakao 星级与加权 Score 的差值超过 0.5 分,就会被标记为“注意”。这个维度用于识别那些 Kakao 星级看似很高、但评论者构成存在偏向的店铺。
第三,数据可信度。依据有效样本量(Neff)与 Gold 评论者人数来判断。对于评论数在 50 条以上的店铺,平均采集评论数为 103 条,但应用权重后,有效样本会压缩为 76.2 条。压缩率为 74.4%。也就是说,在 103 条评论中,真正承载独立信息的,实际上只有 76 条左右。
平均 103 条评论 → 有效 76.2 条
三个维度同时表现良好的店——加权正向率 75%+、泡沫“干净”、数据可信度“高”——才是最值得信赖的美食店。只要其中一个维度发出警告,系统就会同时显示对应原因。也就是说,判定并非依赖单一分数,而是由语境共同构成。
在现场验证——松坡区 (Songpa-gu) 336 家店
为了确认公式是否与实际情况一致,我们检查了松坡区 (Songpa-gu) 内评论数在 50 条以上的 336 家店的分析结果。我们从 KakaoMap 提取了包含评论者评论数、平均星级、星级分布在内的原始数据,并应用了相同的加权公式。
Kakao 星级与加权 Score 呈现出稳定而明显的差异。
| 业种·地区 | Kakao | Score | 差值 | Gold | 泡沫 |
|---|---|---|---|---|---|
| 곱창 (烤肠)·송파 (松坡) | 4.3 | 3.23 | +1.07 | 24 人 | 注意 |
| 生鱼片·잠실 (蚕室) | 3.5 | 2.50 | +1.00 | 17 人 | 注意 |
| 生鱼片店·잠실 (蚕室) | 4.2 | 3.38 | +0.82 | 9 人 | 注意 |
| 中餐·송파 | 4.2 | 4.04 | +0.16 | 76 人 | 干净 |
| 冷面·방이 (芳荑) | 3.9 | 3.85 | +0.05 | 100 人 | 干净 |
| 西餐·송파 | 4.2 | 4.20 | 0.00 | 64 人 | 干净 |
| 寿司·송파 | 4.8 | 4.82 | −0.02 | 9 人 | 干净 |
| 涮涮锅·방이 | 4.5 | 4.42 | +0.08 | 90 人 | 干净 |
在这 336 家店中,最戏剧性的差异出现在 곱창 (烤肠)·송파 (松坡)。Kakao 星级为 4.3,但加权 Score 只有 3.23,差值达到 +1.07。缺乏区分力的评论占比为 32%,泡沫等级为“注意”。也就是说,Kakao 星级把实际味道评价抬高了 1 分以上。
횟집·잠실 (蚕室) 在 Kakao 上是 4.2,但缺乏区分力的评论占比高达 64%。也就是说,每 3 位评论者中就有 2 位无论去哪家店都只给高分。其加权 Score 为 3.38。
相反,同样是 Kakao 4.2 的西餐·송파,则拥有 64 名 Gold 评论者,泡沫等级为“干净”,加权 Score 4.20,与 Kakao 完全一致。而 샤브·방이 的 Gold 评论者达到 90 人,是 336 家店中最多的,相比 Kakao 4.5,其 Score 为 4.42,表现相当稳定。
仅看 Kakao 星级,곱창·송파(4.3)与西餐·송파(4.2)似乎差不多。但加权系统将两者拉开了0.97 分差距。
判定标准的三大核心
“是谁给这家店打了星?”——只要追踪这些评论者的历史与模式,就能在 KakaoMap 上那些原本同星级的店铺之间,看出有意义的差异。175 万条评论,并不是以同样的重量来阅读。这个已应用于 93,515 家店的原则,正是美食店判定的起点。