Search
Duplicate

Response Retriever Model의 성능 평가

Created
7/29/2021, 6:25:00 AM
Tags
Empty

1. Hits ratio

Retriever model로 모든 candidate에 대해 rank를 매긴다음, 이중에서 top K 개를 골랐을 때, 이 안에 정답에 해당하는 positive example이 포함되어 있으면 1점, 아니면 0점을 받고, 그것의 평균을 측정한 것

2. Hits@1/K

Hits ratio랑 Hits@1/K랑 글자는 비슷해보이지만 상당히 다른 metric이다.
만약 K가 100이라고 한다면, 99개의 랜덤 선택지와 1개의 정답을 섞어서 후보 100개를 만들고, 이 중에서 retriever model 혹은 reranker model이 정답을 top 1으로 고르는 확률(accuracy)을 나타낸다.
이 방식에서 K값을 바꾸는 것은 학습하고 별 상관이 없음. 왜냐하면 어차피 pair-wise logit의 score로 정답 고르는거라서 학습 상황과는 무관하다.
이는 retriever-reranking에서 이 k값을 마음대로 바꿀 수 있는 이유와 같음.
또한 k값이 커질수록 CrossEncoder인 reranker는 지수적으로 많이 느려질 수 밖에 업음
K값을 키울수록 절대적인 수치가 낮아진다.

Hits@1/all으로 대화 모델의 체감 성능을 평가하기 어려운 이유

정답으로 labeling된 response는 next utterance 하나밖에 없지만, 실제로 자연스러운 대화가 이어질 수 있는 candidate이 무수히 많다. 따라서 꼭 해당 정답이 top1으로 뽑히지 않더라도,

Hits@1/K의 한계

Hits@1/K는 response candidate 들이 너무 sparse하게 분포되어 있으면, 제대로된 체감 성능을 발휘할 수 없게 된다. 즉 랜덤으로 뽑힌 negative candidate이 너무 엉뚱한 발화인 경우, 아주 쉽게 positive를 고를 수는 있지만, 이것이 진짜 실제 상황에서도 과연 문맥에 맞는 적절한 response인지는 알 수 없다.
즉, response candidate의 개수가 절대적으로 부족하면, Hits@1/K 수치 자체는 잘나오더라도, 체감성능에서는 상당히 나쁠 수 있다. 만약 유저가 수집된 데이터를 벗어나는 말을 많이 하고싶어하면, 계속 이상한 응답만 retrieval 되거나, OOD로 판단이 될 것이다.

3. Mean Reciprocal Mean(MRR)

정답에 해당하는 positive example이 몇등에 위치했는지 그 등수 값에 역수를 취하고, 모든 positive example 들의 평균을 취한 것.

역수 평균의 문제

변형: MRR@K

K가 100이라면, 정답 1개와 99개의 랜덤 candidate 중에서, 정답이 몇등에 위치하였는지 측정.
이 방식의 upperbound는 1이고, lowerbound는 Hits@1/K가 된다. 만약 Hits@1/K 값이 0.9 였다면, 1등으로 뽑혔을 확률이 90%이고, 이 경우 MRR값이 1로 측정이 되는 case가 최소 90%라는 것이므로, 무조건 0.9보다 값이 커지게 된다.

4. OOD rate

Response Retirever Model에서는 OOD를 판단하는 것이 매우 중요하다. 현재는 reranker에 MC Dropout을 활용해서 OOD판단을 하고 있는데, 이것을 적절히 활용할 경우 수집되는 response candidate이 많아질수록 점점 더 OOD rate가 낮아지는 것으로써 대화의 coverage 증가를 간접적으로 확인할 수 있음.
전체 데이터로 학습된 모델로 threshold 고정하고 검수된 데이터 기간별 split해서 OOD rate 측정
이 방식은 절대값이 아니라 상대값으로써의 의미만 있음.
이 방식의 문제는, 모델이 오래될수록 최신의 데이터에 대한 OOD rate가 나빠진다는 문제가 있음. 그래서 매번 데이터 추가되면 전체학습시켜서 split된 데이터에 대해 OOD rate을 측정해야함.

OOD의 한계

모델 성능에러와 response부족에러가 섞여있다. 그러나 모델 성능은 fix 되어있으니까 무시하자.
이게 오히려 실제 서비스시에 중요한 성능지표이다. 왜냐하면 OOD발견시 다른 대화 주제가 강제로 시작되기 때문에
TOP