Deep Learning/Natural Language Processing

[NLP] Pointwise Mutual Information (PMI)

언킴 2023. 4. 3. 11:50
반응형

 

 

전통적인 자연어처리 방식에서는 동시발생 행렬(Co-occurrence Matrix), 즉, 각 단어가 동시에 출현한 빈도를 측정한 행렬을 사용하였다. 그러나, 발생 횟수를 기반으로 하기 때문에 많이 출현하는 The, A, An 등과 같은 단어로 인해 해당 단어와의 유사도가 높게 측정될 수 있다. 이와 같은 문제를 해결하고자 점별 상호정보량(Pointwise Mutual Information, PMI)이라는 척도가 도입된다.

\[ \text{PMI} (x, y) = \log_2 \frac{P(x, y)}{P(x) \cdot P(y)} \]

$P(x)$는 x가 발생할 확률, $P(y)$는 y가 발생할 확률, $P(x,y)=P(x \cap y)$는 x와 y가 동시에 발생할 확률을 의미한다. 이때 PMI 값이 높으면 높을수록 관련성이 높다는 것을 의미한다. $P(x)$의 확률이 높다는 것은 많이 등장한다는 것을 의미하고, 많이 등장하는 경우 $P(x)$가 커지고, 이는 분모에 위치해 있기 때문에 PMI 값이 낮아진다. 

 

그러나 PMI의 분자가 0이 되어 버리면 $\log_20=-\inf$가 되어 버린다. 이와 같은 경우 계산이 불가한 문제를 해결하고자 Positive PMI (PPMI) 방식을 주로 사용한다.

\[ \text{PPMI}(x, y) = \text{max} (0, \text{PMI}(x, y) ) \]

0보다 작은 값, 즉, $-\inf$ 값을 가지게 되면 0이 반환되고, $P(x,y)$가 0보다 큰 값을 가지게 되면 PMI 값을 반환하는 것이다. 

'Deep Learning > Natural Language Processing' 카테고리의 다른 글

[NLP] BERT의 종류  (2) 2022.08.15
Sequence-to-Sequence (Seq2Seq)  (0) 2022.05.12
[NLP] Stemming and Lemmatization  (0) 2022.01.18
[NLP] Tokenization  (0) 2022.01.18
[NLP] Transformer  (0) 2021.10.21