정보 검색(Information Retrieval) 평가

JunMyung Lee·2023년 1월 10일
0

데이터

목록 보기
13/14

다양한 형태로 원하는 내용과 관련있는 결과를 얻어내는 것을 정보 검색(Information Retrieval, 이하 IR)이라고 한다.
IR의 정확도 및 효율을 분석하기 위한 평가기준을 알아본다.

  • True Positives(tp) = 선택된 결과(positives)가 관련이 있어서 선택과 정답이 일치하는(true) 경우
  • True Negetives(tn) = 선택되지 않은 결과(negatives)가 관련이 없어서 선택과 정답이 일치하는(true) 경우
  • False Positives(fp) = 선택된 결과(positives)가 관련이 없어서 선택과 정답이 일치하지 않는(false) 경우
  • False Negatives(fn) = 선택되지 않은 결과(negatives)가 관련이 있어서 선택과 정답이 일치하지 않는(false) 경우

tp + tn + fp + fn = 전체 문서

원문 URL

#정확도(accuracy) #정밀도(precision) #재현율(recall) #MRR(Mean Reciprocal Rank) #MAP(Mean Average Precision) #NDCG(Normalized Discounted Cumulative Gain)


정확도

정확도는 모든 컨텐츠 중 IR의 결과가 정답과 일치하는 비율을 구한다. 이는 정밀도나 재현율과 다르게 전체 컨텐츠에 대한 IR의 신뢰도를 판단할 수 있는 근거가 된다.

정확도(accuracy) = (tp + tn) / (tp + tn + fp + fn)

정밀도

정밀도는 IR이 선택한 결과 중 관련이 있는 비율을 구한다. 이는 가장 간단하고 직접적인 평가 기준으로, IR이 선택한 컨텐츠가 얼마나 정확한가를 판단하는 기준이 된다.

정밀도(precision) = tp / (tp + fp)

재현율

재현율은 관련있는 컨텐츠 중 IR이 선택한 비율을 구한다. 정밀도가 선택한 컨텐츠의 정확성을 보는 기준이라면 재현율은 IR이 관련있는 컨텐츠들을 얼마나 놓치지 않고 가져올 수 있는지를 가늠할 수 있는 기준이 된다.

재현율(recall) = tp / (tp + fn)

MRR

MMR은 우선순위를 고려한 평가기준 중 가장 간단한 모델. 사용자가 몇 개의 컨텐츠에 관심이 있었는지, 각 관련 컨텐츠는 어느 위치에 있었는지를 고려하지 않는다. 오직, 가장 상위의 관련 컨텐츠의 위치만을 고려하여 점수를 계산함으로써 가장 관련있는 컨텐츠가 얼마나 상위에 올라가 있는지를 평가한다.

알고리즘

  • 각 사용자마다 제공한 추천 컨텐츠 중 관련있는 컨텐츠 중 가장 높은 위치를 역수로 계산(1/k)한다.
  • 사용자마다 계산된 점수를 모아 평균을 계산한다.
A UserB UserC User
Doc 1Non relevantNon relevantRelevant
Doc 2Non relevantRelevantRelevant
Doc 3RelevantRelevantNon relevant
Result1 / 32 / 11 / 1
  • A User는 Doc 1 -> Doc 2 -> Doc 3 에서 매칭이 되었으므로 1 / 3
  • B User는 Doc 1 -> Doc 2 에서 매칭이 되었으므로 1 / 2
  • C User는 Doc 1 에서 매칭이 되었으므로 1 / 1

이렇게 구해진 모든 사용자 reciprocal rank의 평균값을 계산하면

MMR  = (A User + B User + C User) / User length
0.61 = (  1/3  +  1/2   +  1/1  ) /     3

MRR의 장점

  • 간단하고 쉽다.
  • 제공된 목록 중 가장 상위의 관련된 컨텐츠에만 집중하기 때문에, 사용자에 가장 관련있는 컨텐츠가 최상위에 있는가를 평가할 때 용이하다.
  • 새로운 컨텐츠가 아니라 이미 사용자가 알고 있는 컨텐츠 중 가장 선호할만한 컨텐츠를 보여주고자 할 때 좋은 평가 기준이 된다.

MRR의 단점

  • 제공된 목록 중 하나의 컨텐츠에만 집중하기 때문에 나머지 부분에 대해서는 평가하지 않는다.(2, 3번째 관련 컨텐츠에 대해서는 평가를 하지 않는다.)
  • 관련 컨텐츠의 개수가 달라도 첫 번째 관련 컨텐츠의 위치가 같은 경우 같은 점수를 가지므로 변별력을 가지기 어렵다.
  • 사용자가 컨텐츠에 대해 잘 알지 못해 여러 번 탐색을 해야 하는 경우 살펴봐야 하는(관련있는) 컨텐츠의 개수가 1개 이상일 가능성이 높으므로 좋은 평가 기준이 되기 어렵다.

MRR은 장단점이 뚜렷한 평가 모델로써, 사용자가 원하는 목적이 비교적 뚜렷하고 잘 알고 있는 알려진 컨텐츠를 추천하는 IR(배달 어플리케이션의 배달 음식점 검색)을 평가할 때 좋은 모델이 될 수 있다.

MAP

MMR의 단점을 해결하기 위해 가장 쉽게 생각할 수 있는 방법은 상위 N개까지의 정밀도를 구하는 것(Precision@N)이다.

알고리즘

  • 각 사용자마다 관련된 컨텐츠를 구하여 해당 관련 컨텐츠 위치까지의 목록(sublist)에 대하여 정밀도를 계산한다.
  • 계산된 정밀도 값들에 대하여 사용자별로 평균을 내고, 그 결과를 모두 모아 평균을 계산한다.
Doc 1Doc 2Doc 3Doc 4Doc 5Result
A UserRelevantNon relevantRelevantRelevantNon relevant1 , 3 , 4
B UserNon relevantNon relevantNon relevantRelevantRelevant4, 5
  • A User는 첫 번째 관련 컨텐츠까지 정밀도가 1/1 = 1이고, 다음 관련 컨텐츠인 세 번째 관련 컨텐츠까지 정밀도는 2/3(총 3개 중 2개가 관련된 컨텐츠)이다. 동일한 방법으로 네 번째 컨텐츠까지의 정밀도는 3/4이다.
    • 3개의 정밀도 값 평균을 내면 평균 정밀도인 (1/1 + 2/3 + 3/4) / 3 = 0.8
  • B User는 네 번째 관련 컨텐츠까지 정밀도가 1/4이고, 다음 컨텐츠인 다섯 번째 컨텐츠까지 정밀도가 2/5이다.
    • 2개의 정밀도 값 평균을 내면 평균 정밀도인 (1/4 + 2/5) / 2 = 0.325
MAP  = (A User + B User) / User length
0.56 = ( 0.8   + 0.325 ) /    2

MAP 장점

  • 추천 컨텐츠의 단순한 성능을 평가하는 것이 아니라 우선순위를 고려한 성능을 평가할 수 있다.
  • 상위에 있는 오류(관련없는 컨텐츠)에 대해서는 가중치를 더 주고, 하위에 있는 오류에 대해서는 가중치를 적게 주어 관련 컨텐츠가 상위에 오를 수 있도록 도움을 준다.

MAP 단점

  • MAP는 관련 여부가 명확하지 않은 경우에는 계산하기 어렵다.
  • 1~5점으로 평가하는 평점같이 관련 여부를 판단하기 어려운 경우는 MAP를 사용하기 어렵다.(4~5점은 관련있다고 판단하더라도 3점은 관련 여부를 판단하기 어려울 것이다.)

이와 같이 MAP는 MRR과는 다르게 상위 N개의 추천 컨텐츠에 대하여 평가를 할 수 있고, precision@N과는 다르게 추천 컨텐츠의 우선순위를 고려하여 점수를 계산할 수 있다.

MAP은 전반적으로 훌륭한 평가 모델이 될 수 있다. 만약 컨텐츠의 관련 여부를 이분법으로 나눌 수 있다면 MAP은 좋은 평가 모델이 될 것이다. 하지만, 사용자에게 더 관련이 있는 컨텐츠를 상위에 노출시키고 있는지에 대해 평가하고 싶다면 다음에 설명하는 NDCG라는 평가 모델을 활용해야 한다.

NDCG

NDCG는 관련 여부에 대해 이분법적으로 구분하는 것이 아니라 더 관련있는 컨텐츠는 무엇인가?에 대해 집중하여 더 관련있는 컨텐츠를 덜 관련있는 컨텐츠보다 더 상위에 노출시키는지에 대해 평가한다.

알고리즘

  • 모든 추천 컨텐츠들의 관련도를 합하여 CG(cumulative gain)을 구한다.
  • CG에서 추천 컨텐츠들의 관련도를 합하였다면, DCG는 각 추천 컨텐츠의 관련도를 log함수로 나누어 값을 구한다. log함수 특성상 위치 값이 클수록(하위에 있을 수록) DCG의 값을 더 작아지게 함으로써 상위 컨텐츠의 값을 점수에 더 반영할 수 있게 한다.
  • DCG 값에 관련도를 더 강조하고 싶다면, 2^관련도 - 1과 같이 관련도의 영향을 증가시킬 수 있다.
  • 사용자마다 제공되는 추천 컨텐츠의 DCG와는 별개로 IDCG(이상적인 DCG)를 미리 계산해놓는다.
  • 각 사용자의 DCG를 IDCG로 나누어서 사용자별 NDCG를 구한다.
  • 사용자별 NDCG의 평균을 구하여 해당 IR의 NDCG를 구한다.

이해가 명확하게 되질 않으므로 예시를 들 수 없었다. 해서 일단 원문의 내용을 넣었고, 원문에는 상세히 작성되었으니 확인해보자

NDCG 장점

  • 기존 방법과는 다르게 다양한 관련도에 대한 평가가 가능하다.
  • 이분법적인 관련도에도 뛰어난 성능을 보인다.
  • log 함수를 이용하여 하위 컨텐츠에 대한 영향을 줄임으로써 좋은 성능을 보인다.

NDCG 단점

  • 사용자와의 관련성을 파악하기 어려운 상황에는 문제의 소지가 있다. 사용자가 컨텐츠에 대한 평가를 하지 않는다면(평점을 입력하지 않는 경우) 해당 관련도를 어떻게 처리해야 할지에 대해 정의해야 한다. 0점 처리해도 문제가 될 것이고, 평균 값을 이용해도 문제가 될 수 있다.
  • 사용자의 관련 컨텐츠가 없다고 판단될 경우, 임의로 NDCG를 0으로 설정해주어야 한다.
  • 보통 K개의 NDCG를 가지고 IR을 평가하는데 IR에서 제공한 컨텐츠가 K보다 부족한 경우, 부족한 관련도를 최소 점수로 채워서 계산해야 한다.

보다시피 NDCG는 특별한 경우가 아니고서는 훌륭한 평가 기준이 될 수 있다. 다만, 특별한 경우에 대해서 예외처리를 해주어야 하고 관련도에 대한 기준을 상황마다 명확하게 세워야 한다. 이런 부분을 감안하더라도 평점 기반의 추천 서비스에서 NDCG를 활용하면 좋은 평가를 할 수 있는 것이라 생각된다.

profile
11년차 검색개발자 입니다. 여러 지식과 함께 실제 서비스를 운영 하면서 발생한 이슈에 대해서 정리하고 공유하고자 합니다.

0개의 댓글