RAG에서 중요한 요소는 크게 2가지이다.
첫번째로 사용자가 입력한 쿼리와 관련된 문서를 찾는 것,
두번째로는 검색된 문서 (chunks)를 기반으로 얼마나 질문에 대한 답변을 잘 하는지.
여기서 첫번째 요소인 Information Retrieval 에 대해 평가는 어떻게 해야할까?
이건 정보 검색을 하는데 주로 사용되는 임베딩 모델의 평가와도 관련이 있다.
우선 정보검색은 추천시스템과 아주 유사한 task라고도 볼 수 있다.
사용자가 원하는 정보를 k개 검색해서 사용자한테 추천해주는 system인데
기준을 쿼리와 저장된 chunks 사이의 임베딩 유사도라고 표현하면 이해가 좀 쉬우려나..?
그래서 간단한 평가 metrics은 무엇이 있느냐.. 하면!
우선은 confusion matrix를 기반으로 하는 평가 방법이 있겠다.
머신러닝을 공부한 사람이라면 익숙한 confusion matrix.
이걸 retrieval에 대입해서 생각해보면, actual은 실제로 사용자 쿼리와 관련이 있는 정보.
predicted는 사용자에게 검색된 정보다. 라고 이해하면 되겠다.
- True Positive (TP) = 검색된 정보 중 사용자 쿼리와 관련이 있는 정보.
- False Positive (FP) = 검색된 정보이지만 실제로는 사용자 쿼리와 관련이 없는 정보.
- False Negative (FN) = 실제로는 사용자 쿼리와 관련이 있지만 검색되지 않은 정보.
- True Negative (TN) = 검색되지 않았고, 실제로도 사용자 쿼리와 관련이 없는 정보.
이렇게 볼 수 있다.
그럼 이 confusion matrix를 기반으로 구할 수 있는 metrics는 무엇이 있느냐 하면.
Accuracy, Precision, Recall 정도가 있다.
accuracy는 정확도이며, 모든 정보 중에서 retrieval의 결과와 정답의 일치 비율이다. 이건 IR에서는 잘 사용하지는 않는 것 같다.
$Accuracy = \frac{TP + TN}{TP + TN + FP + FN}$
precision은 정밀도이고, retrieval된 결과 중 관련이 있는 비율이다.
$Precision = \frac{TP}{TP + FP}$
recall은 실제 관련 있는 정보들 중 retrieval된 비율이다.
$Recall = \frac{TP}{TP + FN}$
여기서 @k를 뒤에 붙이는 metrics을 주로 사용하게 된다.
이를테면 Precision@K 는 검색된 상위 k개의 문서 중 관련 문서의 비율을 뜻한다.
$\text{Precision@k} = \frac{\lvert \text{Relevant Documents} \cap \text{Retrieved Documents}@k \rvert}{\lvert \text{Retrieved Documents}@k \rvert}$
예를 들어, 사용자가 검색한 상위 5개 문서 중 3개가 관련된 문서라면, Precision@5 = 0.6이 된다.
이 지표는 시스템이 얼마나 정확히 관련 문서를 반환하는지에 대해서 평가할 수 있다.
Recall@K는 전체 관련된 문서 중에 상위 K개에 포함된 비율을 측정하는 지표이다.
$\text{Recall@k} = \frac{\lvert \text{Relevant Documents} \cap \text{Retrieved Documents}@k \rvert}{\lvert \text{Relevant Documents} \rvert}$
사용자가 검색하고자하는 관련 문서가 10개이고, 이 중 4개를 상위 5개의 검색 결과에 포함시켰다면, Recall@5는 $\frac{4}{10}$으로 0.4가 된다.
Recall은 시스템이 얼마나 포괄적으로 관련 문서를 찾아냈는지에 대해 보여줄 수 있다.
이 외에도 Mean Average Precision(MAP), Normalized Discounted Cumulative Gain(NDCG), Mean Reciprocal Rank(MRR), Hit Rate와 같은 지표를 많이 사용한다.
이건 2편에서 다뤄보도록 하겠다 ㅎㅎ
그럼 오늘은 여기까지.. 오블완!
'오블완 챌린지' 카테고리의 다른 글
KLUE/RoBERTa 토크나이저 토큰 대체하기! (0) | 2024.11.26 |
---|---|
Document Retrieval Evaluation Metrics - 2 (0) | 2024.11.23 |
TopicGPT 사용하기 (0) | 2024.11.21 |
상하목장 오가닉 그릭요거트 리뷰 (3) | 2024.11.19 |
2024.11.12~2024.11.14 EMNLP 학회 후기 (3) | 2024.11.18 |