데이터과학/자연어처리

[자연어처리][Metric] Perplexity

섭구
반응형

Perplexity

PerplexityBLEU, ROUGE와 더불어 언어모델의 Generation 성능을 판단할 수 있는 지표입니다.

Machine translation, text summarization과 같은 Generation task의 성능 비교를 위해 주로 사용됩니다.

 

단어 \(\{w_{1}, w_{2}, w_{3}, ... , w_{N}\}\)로 구성된 문장의 Perplexity는 다음과 같은 수식으로 나타낼 수 있습니다.

$$Perplexity=\sqrt[N]{\frac{1}{P(w_{1}, w_{2}, w_{3}, ... , w_{N})}}=\sqrt[N]{\frac{1}{\prod_{i=1}^{N}P(w_{i}| w_{1}, w_{2}, ... , w_{i-1})}}$$

분모의 \(P(w_{1}, w_{2}, w_{3}, ... , w_{N})\)는 문장에 대한 Generation probability를 의미하는데, 이를 조건부 확률의 Chain rule을 활용하여 \(\prod_{i=1}^{N}P(w_{i}| w_{1}, w_{2}, ... , w_{i-1})\)와 같이 나타낼 수 있습니다.

 

전체적인 식을 보았을 때, Perplexity는 문장에 대한 Generation probability역수의 기하평균을 구한다는 것을 알 수 있습니다.

이는 Perplexity가 문장 생성 확률의 역수를 단어의 수\((N)\)로 정규화 함을 의미합니다.

따라서 문장의 발생 확률이 높을수록 해당 문장에 대한 Perplexity 값은 낮아집니다.

 

Perplexity의 어원을 고려하여 조금 더 직관적인 설명을 드리도록 하겠습니다.

Perplexity는 '당혹감', '혼란'을 의미하는 단어입니다.

문장 발생확률의 역수는 발생할 수 있는 가짓수가 됩니다.

따라서 Perplexity가 높다는 것은

"발생할 수 있는 문장의 가짓수가 많다" = "혼란스럽다" = "원하는 결과를 얻지 못할 가능성이 크다"

로 해석될 수 있습니다.

 

언어모델의 평가 관점에서 생각해 본다면

테스트 데이터에 존재하는 문장에 대한 모델의 Perplexity가 낮다는 것은,

해당 정답 샘플에 대한 발생 확률이 높아 언어 모델이 잘 학습되었음을 의미합니다.

 

반대로 테스트 데이터에 존재하는 문장에 대한 모델의 Perplexity가 높다는 것은,

해당 정답 샘플에 대한 발생 확률이 낮아 언어 모델이 잘 학습되지 못하였음을 의미합니다.

 

Variations

Perplexity를 n-gram 언어모델의 형태로도 확장하여 계산할 수 있습니다.

출처 : https://towardsdatascience.com/perplexity-in-language-models-87a196019a94

 

대중적으로 사용되는 1~3 gram Perplexity의 예시는 다음과 같습니다.

 

1) Unigram Perplexity(1-gram)

$$Unigram-perplexity=\sqrt[N]{\frac{1}{\prod_{i=1}^{N}P(w_{i})}}$$

 

2) Bigram Perplexity(2-gram)

$$Bigram-perplexity=\sqrt[N]{\frac{1}{\prod_{i=1}^{N}P(w_{i}| w_{i-1})}}$$

 

3) Trigram perplexity(3-gram)

$$Trigram-perplexity=\sqrt[N]{\frac{1}{\prod_{i=1}^{N}P(w_{i}| w_{i-1},w_{i-2})}}$$

 

 

 

마무리

Perplexity는 언어 모델이 얼마나 정확하게 문장을 생성하는지 판단할 수 있는 성능지표입니다.

Perplexity는 테스트 세트 문장의 발생 확률의 역수를 단어 수로 정규화 하여 계산됩니다.

따라서 Perplexity가 높다는 것은 언어모델이 매 순간 골라야할 가짓수가 많아 혼란스러워 함을 의미합니다.

Text Generation task에서 매우 대중적으로 사용되는 지표인 만큼 잘 알아두면 좋을 것 같습니다.

 

 

 

반응형