NLP

PPL (Perplexity)

oneonlee 2024. 4. 5. 16:15
반응형

PPL (Perplexity)

PPL은 언어 모델 (Language Model)을 평가하기 위한 평가 지표 중 하나로써, 언어 모델이 예측한 예측값에 대해 "얼마나 헷갈리는지에 대한 정도" 를 수치로 나타낸 것이라 이해할 수 있다. 예를 들어, PPL이 10이라면 "10만큼 헷갈리는 것" 이고, PPL이 3000이라면 "3000만큼 헷갈리는 것" 이다. 예시에서 추론할 수 있듯이, PPL은 낮을수록 언어 모델의 성능이 좋다는 것을 의미한다.

Basic Notation

  • 문장 $S$는 $N$개의 단어로 이루어짐 (문장 $S$를 이루고 있는 각각의 단어들은 $w_1, w_2, \cdots, w_N$)
  • $P_{LM}(S) = P_{LM}(w_1, w_2, \cdots, w_N)$은 $LM$ (Language Model)이 $S = w_1, w_2, \cdots, w_N$를 예측할 확률을 의미함
    • $P_{LM}(w_1, w_2, \cdots, w_N)$는 조건부 확률에 따라 $P_{LM}(w_N | w_{N-1}, \cdots , w_1) \cdots P_{LM}(w_3|w_2, w_1) \cdot P_{LM}(w_2|w_1) \cdot P_{LM}(w_1)$로 나타낼 수 있고, 이것을 정리하면 $\prod_{i=1}^{N} P(w_{i}|w_1, w_2, \cdots, w_{i-1})$와 같음

Expression of PPL

PPL은 $P_{LM}(S)$과 관련이 있으며, $P_{LM}(S)$를 정규화한 확률의 역수 값이다. 이를 수식으로 나타내면 아래와 같다.

$$PPL(S) = P_{LM}(S)^{- \frac{1}{N}} = P_{LM}(w_1, w_2, \cdots, w_N)^{- \frac{1}{N}} = \prod_{i=1}^{N} P(w_{i}|w_1, w_2, \cdots, w_{i-1}) ^{- \frac{1}{N}} $$

이것은 cross-entropy loss $J( \theta )$의 $\exp$를 취한 값과 같다.

$$PPL(S) = \prod_{i=1}^{N} ( \hat{y}_{i+1})^{- \frac{1}{N}} = \exp ( \frac{1}{N} \sum^{N}_{i=1} - \log \hat{y}_{i+1} ) = \exp ( J( \theta ) ) $$

Reference

반응형