Skip to content

[Q&A for CMU Neural Networks for NLP 2018]

angrypark edited this page Jul 23, 2018 · 14 revisions

A Simple (?) Exercise: Predicting the Next Word in a Sentence

Section 1: Models of Words

Distributional Semantics and Word Vectors

  • Q. skip-gram 공식의 PMI가 무엇일까?

Q. What is perplexity?

Perplexity(이하 PPL)는 어떤 시점에서 정답을 선택하기 위해 선택해야 하는 후보의 평균 갯수를 의미합니다. PPL이 60이라면 매 순간마다 60개의 후보를 내야 정답을 고를 수 있다는 말이죠. 정보 이론에서, PPL은 어떤 확률 분포나 확률 모델이 하나의 실제 관측치를 얼마나 잘 예측하는 지를 보여주는 척도로 쓰입니다.

우리가 해결해야 할 문제가 문장을 읽고 다음에 나올 단어를 예측하는 문제이고, 우리가 가진 단어의 갯수가 20,000개라고 가정해 봅시다. 만약 모든 단어의 출현 확률이 같다면(그럴리는 없겠지만) 다음 단어의 선택 가능의 수는 모두 동일하므로 20,000개를 후보로 둬야 정답이 나오게 됩니다. 이 때의 PPL은 20,000이 되는 것이죠. 다만 우리가 좀더 나은 Language model을 만들어서 다음에 선택할 수 있는 단어의 갯수가 평균적으로 30개정도 나왔을 때 정답을 찾을 수 있다면, PPL은 30이 되고, 더 나은 모델이라고 평가할 수 있죠.

수식으로 생각하면 더 쉬워집니다. PPL은 다음과 같은 식인데요, $$ PPL = 2^{H(p)} = 2^{-\sum_{x}p(x)\log_2p(x)} $$ 여기서 $x$는 선택가능한 하나의 경우의 수이고, $p(x)$는 해당 probability model이 예측하는 $x$의 확률입니다. 모든 $p(x)$가 단순 random picking인 $1/x$이라면 $PPL$$x$가 되지만, 완벽한 모델이 만들어져서 $p(x)$가 1개 빼고 다 0이 된다면 1이 됩니다.

  • perplexity vs cross-entropy?

    간단합니다. 위의 식에서 $H(p)$가 곧 cross-entropy 값입니다. 즉 다음과 같습니다. $$ PPL = 2^{-cross entropy} $$

  • perplexity가 낮다 == 모델의 성능이 좋다?

    이는 probability distribution의 PPL을 볼 것이냐와 probability model의 PPL을 볼 것이냐에 따라 조금 달라집니다. 해당 task 자체의 난이도를 평가하기 위해서 probability distribution의 PPL을 보게 되는데, 예를 들면 "다음 주사위의 숫자를 맞추기" vs "다음 동전의 면을 맞추기" 라고 두 개의 task를 비교할 때, 전자는 PPL이 최대 6이고, 후자는 PPL이 최대 2이므로 후자가 더 쉬운 task입니다. 다른 관점에서, 같은 task 내에 여러 probability model들이 있을 때, A라는 모델이 B라는 모델보다 PPL이 더 낮다면, A라는 모델이 B라는 모델보다는 성능이 좋다고 할 수 있죠.

Clone this wiki locally