1. 좋은 추천 알고리즘이란 무엇인가?
기업에서 추천 시스템을 사용하는 목적은 상황별로 매우 다르다. 그렇기 때문에 '좋은 추천 알고리즘'을 한 마디로 정의하기란 쉽지 않다.
다만 보편적으로 비즈니스 관점에서 개선 (수익 증대, CTR 향상 등) 을 가져다 준다면 '좋은 알고리즘'이라고 말 할 수 있다. 이렇게 추천 알고리즘을 시스템에 적용한 뒤의 결과나 변화를 위주로 알고리즘을 평가하는 방식을 온라인 평가 라고 한다.
하지만 추천 모델을 만들고 나서 무턱대고 시스템에 적용한 후 피드백을 기다리기에는 너무나 큰 위험이 따른다. 그래서 오프라인 평가를 하기 전, 추천 알고리즘을 단순히 하나의 '모델'으로 바라보고 그 성능을 확인 해 보아야 하는데, 이를 오프라인 평가라고 한다. 모델러는 오프라인 평가를 통해 자신이 만든 모델이 썩 괜찮은지 가늠해 볼 수 있다.
2. 오프라인 평가 지표
추천 알고리즘은 크게 1) 예측 기반 추천 알고리즘과 2) 랭킹 기반 추천 알고리즘 으로 구분할 수 있다.
만약 A 플랫폼에서 서로 다른 두 알고리즘을 사용해서 고객이 좋아할만한 과일 3개를 추천해준다고 하자. 이 때 두 알고리즘을 다음과 같은 차이점을 가진다.
| 예측 기반 추천 알고리즘 | 랭킹 기반 추천 알고리즘 | |
| 추천 결과 예시 | 레몬, 귤, 사과 추천 | 1)레몬 2)귤 3)사과 순으로 추천 |
| 순서 의미 여부 | 없음 레몬을 귤보다 더 좋아할 것이다 (X) |
있음 레몬을 귤보다 더 좋아할 것이다 (O) |
| 모델 평가 | 귤을 레몬보다 더 좋아해도 잘 맞춘 모델임 | 귤을 레몬보다 더 좋아한다면 틀린 모델임 |
예측 기반 추천 알고리즘은 (순서 없이) 상품을 추천해주는데 반해, 랭킹 기반 추천 알고리즘은 (선호도 순서대로) 상품을 추천해준다. 따라서 알고리즘별로 적합한 지표를 구분하여 평가에 활용해야 한다.
1) 예측 기반 추천 알고리즘 평가 지표
(향후 추가 예정)
2) 랭킹 기반 추천 알고리즘 평가 지표
NDCG@K (Normalized Discounted Cumulative Gain)
추천한 K개의 아이템에 대해, 가장 이상적인 순서대로 아이템이 추천되었을 때 (IDCG) 대비, 현재 순서대로 아이템을 추천한 것(DCG)이 얼마나 좋은지 수치화 한 것이다. (1에 가까울수록 좋은 알고리즘) 이 때 랭킹별로 Discount(일종의 가중치)가 계산되어 상위 추천 아이템을 잘 추천할수록 좋은 알고리즘이라고 판단한다

- Relevance
아이템이 사용자에게 얼마나 유의미한지를 나타내는 지표로, Relevance가 높은 상품이 상위에 추천되는 것이 이상적(Ideal)이라고 생각할 수 있다. 이 Relevance는 정의하기 나름인데, 예를 들어 인터넷 쇼핑몰같은 경우, 특정 상품의 상세페이지 체류 시간, 장바구니/찜 지정 여부 등을 사용해서 Relevance를 정의할 수도 있다.
- Cumulative Gain (CG)
추천한 @K 개 아이템들의 Relevance 합으로, 아무런 가중치 없이 그냥 더한 것이다.

- Discounted CG (DCG)
추천한 @K 아이템들의 Discounted Relevance 합으로, 가중치 때문에 하위 순위 아이템일수록 중요도가 낮아진다

- Ideal DCG (IDCG)
Relevance 순서대로 @K 아이템들이 추천될 때의 DCG값으로, 모든 가능한 경우에서의 최대 DCG값이다. 상기 예제에서는 레몬, 사과, 귤 혹은 사과, 레몬, 귤 순으로 추천되었을 때의 DCG값이 이에 해당한다.

- Normalized DCG (NDCG)
현재 추천 알고리즘이 추천해준 순서대로 계산한 DCG를 이상적인 상황에서의 IDCG로 나누어 계산한다.

'ML' 카테고리의 다른 글
| XGBoost (eXtreme Gradient Boosting) (0) | 2025.07.22 |
|---|---|
| Lift Chart (이익 도표) (2) | 2025.06.22 |
| 머신러닝 사상 (0) | 2025.06.06 |
| 빅데이터분석기사 필기 : 40시간 독학 합격 후기 (8) | 2025.06.05 |
| 스택(Stack), 큐(Queue) (3) | 2025.06.03 |