ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Coursera] Text Retrieval and Search Engines (MODULE 4)
    개인 프로젝트 A 2024. 7. 22. 11:18

    Module 4에서는 다음 키워드에 대해 배운다. 하나씩 살펴보도록 하자.

    • Cranfield evaluation methodology
    • Precision and recall
    • Average precision, mean average precision (MAP), and geometric mean average precision (gMAP)
    • Reciprocal rank and mean reciprocal rank
    • F-measure
    • Normalized discounted cumulative Gain (nDCG)
    • Statistical significance test

     

    Cranfield evaluation methodology

    모델의 성능을 평가하기 위해 흔히 사용하는 방법이다. 미리 쿼리 및 쿼리와 관련된 문서를 준비한다. 이를 위해서 인적 자원이 소모된다. 모델이 이미 라벨링 된 쿼리를 받았을 때 관련된 문서를 얼마나 잘 검색하는지 확인한다.

     

    Pooling

    평가를 위한 데이터셋을 준비할 때, 쿼리와 관련된 문서를 어떻게 찾을 수 있을까? 무작정 찾는다면 인적 자원 소모가 너무 심할 것이다. 효율적으로 평가 데이터셋을 준비하기 위해 Pooling을 사용한다. A모델, B모델, C모델, D모델에 쿼리를 넣은 후 top-k document를 추출한다. 추출된 문서를 합하여 사람이 평가를 진행할 Pool을 구성한다. top-k document까지만 추출했으므로, 쿼리와 관련이 있으나 관련되지 않는 것으로 평가될 문서도 있을 것이다. 그러나 이는 모든 모델에 동일하게 적용되므로 큰 문제가 되지 않는다. 동일한 원칙하에, Pool을 구성하는 데 사용되지 않은 모델이 평가를 받을 경우 해당 모델은 저평가받을 수 있다.

     

    Precision, Recall, F1

    정밀도(Precision)는 모델이 참이라고 예측한 값 중 실제 참인 값이 얼마나 있는지 측정하는 것이고 회상도(Recall)는 실제로 참인 값 중 모델이 참이라고 예측한 값이 얼마나 있는지 측정하는 것이다. 두 값의 조화평균이 F1이다.

     

    Average Precision, Mean Average Precision (MAP), Geometric Mean Average Precision (gMAP)

    Average precision을 계산하기 위해 아래 공식을 사용한다. P(k)는 k번째 문서의 정밀도를, rel(k)는 k번째 문서가 쿼리와 관련 있는 경우 1, 그렇지 않다면 0을 반환한다. Relevant Documents는 쿼리와 관련 있는 문서의 수이다. 따라서 AP는 정밀도와 회상도를 모두 고려한 값이다.

     

    그런데, 검색 모델을 평가할 때, 쿼리를 하나만 사용하지 않는다. 여러 개의 쿼리에서 AP를 계산하고, 그 AP 값들을 평균 내야 모델의 성능을 알 수 있다. 이를 위해서 Mean Average Precision (MAP) 혹은 Geometric Mean Average Precision (gMAP)을 사용한다. MAP와 비교했을 때, gMAP는 극단적인 값에 덜 민감하다는 장점이 있다.

     

    Reciprocal Rank, Mean Reciprocal Rank

    검색 모델에서 한 가지 특수한 경우를 고려할 수 있는데, 바로  쿼리와 관련된 문서가 단 한 개인 경우이다. 이 경우 관련된 문서의 랭크가 무엇인지가 측정값이 된다. 그러나 랭크(r) 자체를 측정값으로 사용할 경우, 과제를 잘 수행하지 못했을 경우의 극단적인 랭크 값이 미치는 영향이 너무 크게 된다. 따라서 Reciprocal Rank(1/r)를 사용하게 된다. 여러 개의 쿼리에서 Reciprocal Rank를 계산하고 평균을 낸 값이 Mean Reciprocal Rank이다.

     

    Normalized Discounted Cumulative Gain (nDCG)

    지금까지는 관련 있다(1) 혹은 관련 없다(0)로 평가를 진행했다. 그러나 다음과 같이 다수준으로 평가를 진행하고 싶을 수도 있다. 관련성이 높다(3), 관련성이 중간이다(2), 관련성이 낮다(1). 이런 경우 DCG(Discounted Cumulative Gain)를 사용한다. 검색 모델이 세 개의 문서를 가져왔고 각 문서의 관련성은 [3, 2, 1]이라고 하자. 이때, CG는 [3, 5, 6]이 된다. 세 개의 문서에 대한 CG는 결과적으로 6이 된다. 그런데, 해당 값은 랭크의 중요성을 포함하지 못하므로 Dicounting을 적용하게 된다. 이 경우 DCG는 [3, 3+2/log2, 3+2/log2+1/log3]이 되며 세 개의 문서에 대한 DCG는 3+2/log2+1/log3이 된다. 하나의 쿼리에 대한 성능을 평가할 때는 DCG를 사용해도 문제가 없으나, 관련된 문서를 추출하기 쉬운 쿼리와 관련된 문서를 추출하기 어려운 쿼리가 섞인 여러 개의 쿼리에 대한 성능을 평가할 때는, DCG의 평균이 쉬운 쿼리의 영향을 지나치게 받을 수 있다. 따라서 Normalization을 진행하게 된다. Normalization은 모델이 최고의 성능을 냈을 때의 DCG 값인 Ideal DCG로 특정 모델의 DCG를 나누는 방식으로 수행된다. 즉, nDCG = DCG@k/IdealDCG@k이다.

     

    Statistical significance test

    한편으로, 여전히 유의해야 할 점은 A모델의 성능과 B모델의 성능 차이가 우연히 발생했을 수 있다는 점이다. 성능의 차이가 우연히 선택된 쿼리 때문일 수도 있다. 따라서, 통계적 추론을 통해서 A모델과 B모델의 성능 차이가 우연 수준이 아님을 밝히는 것이 중요하다.

     

     

     

    댓글

Designed by Tistory.