유원준님의 딥러닝을 이용한 자연어 처리 입문의 펄플렉서티(Perplexity, PPL) 글을 요약한 게시글입니다
언어모델의 평가 방법(Evaluation metric of Language Model), Perplexity
PPL은 문장의 길이로 정규화된 문장 확률의 역수로, 문장 W의 길이가 N이라고 했을 때, PPL은 아래와 같다
$PPL(W)=P(w_1,w_2, \cdots, w_N)^{-\frac{1}{N}} = \sqrt{\frac{1}{P(w_1,w_2, \cdots, w_N)}}^N$
문장의 확률에 체인룰(chain rule)을 적용하면 아래와 같다
$PPL(W)=\sqrt{\frac{1}{P(w_1,w_2, \cdots, w_N)}}^N=\sqrt{\frac{1}{\Pi_{i=1}^N P(w_i | w_1,w_2, \cdots, w_{i-1})}}^N$
여기에 n-gram을 적용해볼 수도 있는데, 아래는 bi-gram의 경우의 식이다
$PPL(W)=\sqrt{\frac{1}{\Pi_{i=1}^N P(w_i | w_{i-1})}}^N$
수식을 보면 알 수 있지만 PPL은 낮을 수록 언어 모델의 성능이 좋음을 의미한다
분기 계수(Branching Factor)
분기계수란 선택할 수 있는 가능한 경우의 수를 의미하는데, 즉 PPL 값은 대상 언어모델이 어떤 시점에서 평균적으로 몇 개의 선택지를 가졌는지를 의미한다.
예로, 특정 테스트셋에서 PPL=10이라면, 해당 언어 모델이 다음 단어를 예측하는 모든 시점(time step)마다 평균 10개의 단어를 가지고 어떤 것을 output값으로 낼 지 고민했다고 볼 수 있다
평가 지표로 PPL 사용시 주의할 점
단, PPL이 낮다는 것이 사람이 직접 느끼기에 좋은 언어모델이라는 것을 반드시 의미하지 않는다는 점을 주의하자.
또한 언어 모델의 PPL은 테스트셋에 의존하므로, 두 개 이상의 언어모델 비교 시 정량적으로 양이 많고 학습 데이터와 동일한 도메인의 테스트 셋으로 사용해야 신뢰도가 높다
'인공지능(AI) > 자연어처리(NLP)' 카테고리의 다른 글
End-to-End Memory Networks, 엔드-투-엔드 메모리 네트워크 (0) | 2022.08.18 |
---|---|
Prompt-Based Learning, 프롬프트 기반 학습 (0) | 2022.08.08 |
[NLP] 워드투벡터(Word2Vec) (2) | 2021.10.13 |
[NLP] 단어 표현 방법(Word Representation) (0) | 2021.10.13 |
[NLP] 단어 표현 방법 : Bag-of-Word Model(Bow) (0) | 2021.10.13 |