Perplexity, PPL
- 두 모델 A, B가 있다고 가정
- 두 모델의 성능을 비교하는 방법
- 다 실행시킨 후 결과를 비교
- 이 방법은 시간이 많이 걸림
- Perplexity : 자신의 성능을 수치화해서 결과를 내놓음
언어 모델의 평가 방법(Evaluation metric) : PPL
- Perplexity : 언어 모델을 평가하기 위한 평가 지표
- 문장의 길이로 정규화된 문장 확률의 역수
- 수치가 높으면 성능이 낮음
- 수치가 낮아야 성능이 좋다는 의미
\[PPL(W) = P(w_1, w_2, w_3, \dots, w_N)^{-\frac{1}{N}} = \\ ^N\sqrt{\frac{1}{P(w_1, w_2, \dots, w_N)}}\]
\[PPL(W) = ^N\sqrt{\frac{1}{P(w_1, w_2, \dots, w_N)}} = \\ ^N\sqrt{\frac{1}{\prod_{i = 1}^N P(wi|w_1, w_2, \dots, w_{i-1})}}\]
\[PPL(W) = ^N\sqrt{\frac{1}{\prod_{i=1}^N P(w_i|w_{i-1})}}\]
분기계수
- PPL은 선택할 수 있는 가능한 경우의 수를 의미하는 분기계수
- 언어모델이 특정 시점에서 평균적으로 몇 개의 선택지를 가지고 고민하는지 의미
- PPL이 낮을수록 모델의 성능이 더 좋다는 의미로 볼 수 있다
- PPL이 10인 경우
- 테스트 데이터에 대해 다음 단어를 예측하는 시점마다 평균적으로 10개의 단어를 가지고 고민했다는 의미
\[PPL(W) = P(w_1, w_2, \dots. w_N)^{-\frac{1}{N}} = (\frac{1}{10}^N)^{-\frac{1}{N}} = \\ \frac{1}{10}^{-1} = 10\]
주의할 점
- PPL값이 낮다 -> 테스트 데이터 상에서 높은 정확도를 보인다
- 사람이 직접 느끼기에 좋은 언어 모델이라는 것을 반드시 의미하진 않음
- 정량적 양이 많고 도메인에 알맞은 동일한 테스트 데이터를 바탕으로 진행해야 신뢰도가 올라감