Mean Reciprocal Rank(MRR)
검색 모델 평가 지표 중 가장 간단한 모델이라고 할 수 있다. Reciprocal은 역수라는 뜻으로 해당 알고리즘의 핵심이 되는 방법이다. 사용자마다 클릭한 컨텐츠 중 가장 상위 랭크에 위치한 컨텐츠의 순위를 구하고 이를 역수로 바꾸어 평균을 낸다. 아래 예시처럼 User 1은 제공된 컨텐츠 중 3번째를 클릭하였으므로 1/3, User 2는 2, 3번째 컨텐츠를 클릭하였는데 그 중 더 상위 랭크인 2번째 컨텐츠를 선택하여 1/2로 계산한다. 이를 모두 합산하여 유저수로 나누어 평균을 내준다. 이렇게 하면 유저가 낮은 랭크의 컨텐츠를 선택할수록 MRR은 낮아지므로 좋은 검색을 제공하지 않고 있다고 할 수 있을 것이다.
MRR은 보다시피 굉장히 간단한 계산을 통해 검색 결과를 평가할 수 있다는 장점이 있다. 아무래도 가장 상위 컨텐츠만 고려하기 때문에 사용자가 이미 해당 컨텐츠를 알고 있을 경우에 유용하다. 반대로 상위 컨텐츠를 제외하고 나머지는 고려하지 않기 때문에 사용자가 컨텐츠를 잘 알지 못해 여러 번 탐색해야 하는 경우는 좋지 못하다.
mean Average Precision(mAP)
mAP는 각 사용자마다 클릭한 상품들을 대상으로 N번째까지의 정밀도를 계산하고 이를 평균내는 방법이다. 여기서는 Precision 즉 정밀도가 중요한 개념이다. 정밀도는 내가 True라고 분류한 컨텐츠 중에 실제 True인 비율을 뜻한다. 밑의 예를 살펴보면 User 1은 1, 3, 4번째 컨텐츠를 선택했는데, 이들 각각에 대해 N번째까지의 정밀도를 계산해보면 각각 1번째는 총 1개의 컨텐츠 중 한개를 클릭했으므로 1/1, 3번째까지는 3개 중 2개를 선택했으므로 2/3, 마지막 4번째까지는 4개 중 3개를 선택했으므로 3/4이다. 이를 평균내면 0.8이고 다른 사용자들에 대해서도 이를 똑같이 적용하고 총 사용자 수로 나눠 전체 평균을 계산한다.
이렇게 되면 우선순위를 함께 고려하여 성능을 평가할 수 있게 되지만 클릭한 상품에 대해 고객의 선호도가 존재한다면 해당 선호도의 수준은 반영하기 어렵다. 따라서 이분법적인 평가가 아니라 개인화 추천을 위해서라면 다른 평가 방법을 사용하는 것이 좋다. 하지만 대부분의 경우에는 좋은 평가 모델이 될 수 있어 많이 쓰는 방법이다.
normalized Discounted Cumulative Gain(nDCG)
MAP와 거의 비슷한 지표이지만 조금 더 정밀하게 고객의 선호도 수준까지 반영하여 관련있는 컨텐츠를 노출시킬 수 있게 도와준다.
위의 식을 간단하게 살펴보면 각 검색어에 대해 관련도 점수를 구하고 이를 log로 나눈다. 이렇게 하면 관련도(rel)가 높은 첫번째 검색어에 대해 더 높은 가중치를 줄 수 있다. (log는 값이 커질수록 같이 증가하고, log가 분모에 위치하기 때문에 관련도가 높은 값이 대해서 더 높은 점수를 부여할 수 있게 된다) 만약 rel에 더 가중치를 주고 싶다면 지수함수를 통해 영향력을 증가시킬 수 있다. 그리고 이를 가장 추천이 잘 된 것이라고 판단한 미리 계산해놓은 IDCG로 나누어주면 NDCG를 구할 수 있다.
보다시피 굉장히 정밀하고 좋은 평가 지표이다. 이분법적인 관련도가 아니라 넓은 범위의 더 세세한 추천이 가능하다는 장점이 있다. 하지만 그만큼 계산이 복잡하고 무엇보다 아이템에 대한 평점이 없는 경우라면 사용할 수 없다. 사용자가 컨텐츠에 대한 평가를 하지 않는다면 이를 어떻게 처리해야 하는지 일일이 정의해주어야 한다.