서울 동남권에 카카오 별점 4.2인 횟집이 있다. 겉으로는 나쁘지 않아 보인다. 그런데 이 가게 리뷰어의 64%가 변별력 없는 평가자였다. 방문하는 가게마다 4.5점 이상을 주는 사람들이다. 가중치를 적용하면 Score는 3.38로 떨어진다.
같은 지역에 카카오 4.2인 양식집이 있다. 이쪽은 Gold 리뷰어가 64명, 변별력 없는 리뷰 비율 23%. 가중 Score 4.2. 카카오 별점과 정확히 일치한다.
두 가게는 카카오맵에서 동일한 4.2점이다. 가중 분석은 이 둘을 0.8점 차이로 분리해냈다. #1에서 별점의 정확도가 리뷰어의 질에 달려 있다는 것을 확인했다면, 이번 글에서는 그 '질'을 어떻게 수치화하는지 — 가중치의 설계 원리, 잡음 제거 방법, 현장 검증까지 전 과정을 다룬다.
신뢰도는 두 축으로 결정된다
모든 리뷰어의 신뢰도(credibility)는 Volume × Discrimination, 두 요소의 곱으로 계산한다. 각 요소의 스케일과 기준점은 리뷰 데이터의 분포를 분석한 뒤 의도적으로 설정한 값이다.
Volume에는 로그 스케일을 적용하고, 상한을 100건으로 잡았다. 10건이면 0.52, 50건이면 0.85, 100건에서 1.0에 도달하며 그 이상은 더 올라가지 않는다. 300건을 쓴 리뷰어든 1,000건을 쓴 리뷰어든 Volume 기여분은 동일하다. 리뷰 수가 늘수록 신뢰도가 높아지되, 일정 수준 이후로는 "더 많이 썼다"가 곧 "더 믿을 만하다"는 아니라고 판단했기 때문이다.
Discrimination은 리뷰어가 좋은 가게와 그렇지 않은 곳을 구별하는 능력의 추정치다. 이상적으로는 리뷰어별 점수 분포(표준편차)를 직접 측정해야 하지만, 카카오맵 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점만 주는 리뷰어에게서는 "이 가게가 특별한가"라는 질문에 대한 답을 얻기 어렵다.
잡음을 걸러내다 — 변별력 없는 리뷰어
가중치를 부여하는 것만으로는 충분하지 않다. 시스템에 고유한 잡음원이 존재하기 때문이다.
변별력 없는 리뷰어는 방문하는 가게마다 높은 점수만 주는 패턴을 보이는 평가자다. Section 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%를 넘거나 카카오 별점과 가중 Score의 차이가 0.5점을 초과하면 '주의'다. 카카오 별점은 높지만 리뷰어 구성이 편향된 가게를 탐지하는 축이다.
셋째, 데이터 신뢰도. 유효 표본 크기(Neff)와 Gold 리뷰어 수를 기준으로 판단한다. 리뷰 50건 이상 가게의 평균 수집 리뷰는 103건이지만, 가중치를 적용한 유효 표본은 76.2건으로 압축된다. 압축률 74.4%. 103건의 리뷰 중 독립적인 정보를 실질적으로 담고 있는 것은 76건인 셈이다.
평균 103건 리뷰 → 유효 76.2건
세 축이 동시에 양호한 가게 — 가중 긍정률 75%+, 거품 '깨끗', 데이터 신뢰도 '높음' — 가 가장 신뢰할 수 있는 맛집이다. 한 축이라도 경고를 발하면 해당 사유가 함께 표시된다. 단일 점수가 아닌 맥락이 판정을 구성하는 방식이다.
현장에서 검증하다 — 송파구 336곳
수식이 현장과 일치하는지 확인하기 위해, 송파구 소재 가게 중 리뷰 50건 이상인 336곳의 분석 결과를 점검했다. 카카오맵에서 리뷰어의 리뷰 수, 평균 별점, 별점 분포를 포함한 원본 데이터를 추출하고 동일한 가중치 공식을 적용한 결과다.
카카오 별점과 가중 Score는 일관되게 달랐다.
| 업종·지역 | 카카오 | 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곳 중 가장 극적인 차이는 곱창·송파에서 나타났다. 카카오 별점 4.3이지만 가중 Score는 3.23. 갭 +1.07. 변별력 없는 리뷰 비율 32%, 거품 등급 '주의'다. 카카오 별점이 실제 맛 평가를 1점 이상 부풀리고 있었다.
횟집·잠실은 카카오 4.2이지만 변별력 없는 리뷰 비율이 64%에 달했다. 리뷰어 3명 중 2명이 어디를 가든 높은 점수만 주는 패턴이었다. 가중 Score 3.38.
반면 같은 카카오 4.2인 양식·송파는 Gold 리뷰어 64명, 거품 등급 '깨끗', 가중 Score 4.20으로 카카오와 정확히 일치했다. 샤브·방이는 Gold 리뷰어가 90명으로 336곳 중 가장 많았고, 카카오 4.5 대비 Score 4.42로 안정적이었다.
카카오 별점만으로는 곱창·송파(4.3)와 양식·송파(4.2)가 비슷해 보인다. 가중 시스템은 이 둘을 0.97점 차이로 분리해낸다.
판정 기준의 핵심 세 가지
"누가 이 가게에 별점을 줬는가" — 그 리뷰어의 이력과 패턴을 추적하면, 카카오맵에서 동일한 별점이었던 가게들 사이에서 유의미한 차이가 드러난다. 175만 건의 리뷰를 같은 무게로 읽지 않는 것. 93,515개 가게에 적용된 이 원칙이 맛집 판정의 출발점이다.