'SLM'에 해당하는 글 2건

언어 모델


언어 모델(Language Model) 은 단어 순서나 문장이 적합한지를 판단하고 확률을 할당한다. 


  • 통계 기반 언어 모델(SLM: Statistical Languagel Model) : n-gram
  • 인공신경망 기반 언어 모델 : Perceptron, 피드 포워드 신경망 언어 모델 (NNLM: Neural Network Language Model), GPT, Bert


현재는 GPT 나 Bert 같은 인공신경망 기반의 언어 모델이 주로 쓰이나 n-gram 도 꾸준히 자연어 처리에 사용된다.



카운터 기반의 통계적 접근


카운터 기반의 통계학적 언어 모델(SLM) 은 문서에서 이전 단어와 다음 단어의 출현 수를 계산한다. An adorable little boy 가 문서에서 100번 등장하고 다음에 is 가 30번 등장했다면, An adorable little boy 다음에 is 가 나타날 확률은 다음과 같이 나타낼 수 있다.


P(is|An adorable little boy) = count(An adorable little boy is) / count(An adorable little boy) = 30%


카운터에 기반한 확률은 코퍼스 데이터에 위 문장이 존재하지 않는다면 확률은 0 이 되므로 희소 문제(sparsity problem)가 발생하는 단점이 있지만 n-gram 이나 스무딩, 백오프 같은 일반화(generalization) 기법을 사용하여 희소 문제를 완화할 수 있다.



N-gram 언어 모델


코퍼스에서 긴 문장의 확률을 구하려 할 때 발생하는 희소 문제에서, 긴 문장을 줄이면 희소 문제 발생률을 낮출 수 있다. N-gram 은  N  개의 연속적인 단어 나열을 의미한다. "An adorable little boy is spreading smiles" 문장으로 n-gram 을 만들어 보면 아래와 같이 나눌 수 있다.


  • unigrams (N : 1)  an, adorable, little, boy, is, spreading, smiles
  • bigrams (N : 2) an adorable, adorable little, little boy, boy is, is spreading, spreading smiles
  • trigrams (N : 3) an adorable little, adorable little boy, little boy is, boy is spreading, is spreading smiles
  • 4-grams (N : 4) an adorable little boy, adorable little boy is, little boy is spreading, boy is spreading smiles
  • ...


예를 들어 'An adorable little boy is spreading _____' 처럼 spreading 다음의 단어를 예측하고 싶을 때 4-gram 을 사용하면 밑줄을 포함한 앞 단어들의 카운팅 작업을 하게 되며,  다음과 같은 식으로 표현할 수 있다.


P(w|boy is spreading) = count(boy is spreading w) / count(boy is spreading)


boy is spreading 이 문서에서 1,000번 등장하고, boy is spreading 다음에 insults가 500번, smiles 가 200번 등장했다면, insults 의 확률이 50% 로 높은 확률을 가지게 된다. 전체 문장을 고려한 언어 모델보다 카운터는 늘릴 수 있지만, 정확도가 떨어질 수 있다는 것을 알았다.


N-gram 의 n 을 어떻게 설정하느냐에 따라 카운터/성능/정확도가 달라질 수 있다. 

- n 이 커질수록, 카운트 수는 적어지고, 모델 사이즈가 커진다.

- n 이 작을수록, 카운트 수는 많아지지만, 정확도가 현실의 확률분포와 멀어진다. 


언어나 코퍼스에 따라 달라지겠지만 펄플렉서티 지표에 의하면, 일반적으로 가장 효율적인 n 은 4 로 측정되고 있다.


펄플렉서티(PPL: perplexity) 는 언어 모델의 성능을 평가하기 위한 내부 평가 지표로 perplexity(헷갈림) 의 수치가 낮을수록 성능이 좋음을 나타낸다.




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

조건부 확률이란 주어진 사건(B)이 일어났다는 가정 하에 다른 한 사건(A)이 일어날 확률(P or Pr)을 뜻하며, P(A|B)로 표기한다. 이 때 사건 A가 발생할 확률은 B에 따라 달라진다.


자연어 처리에서 조건부 확률은 언어 모델에서 적합한 단어를 추론하는데 사용될 수 있다. 예를 들어 "나는 학교에 (     )." 라는 문장에서 괄호 안에 어떤 단어가 들어가는 것이 가장 확률이 높은지 등을 파악할 때 사용될 수 있다.


조건부 확률에 나타나는 사건과의 상관 관계를 수식으로 표현하면 다음과 같다.


P(B) = B 사건이 발생할 확률

P(A) = A 사건이 발생할 확률

P(A∩B) = P(A,B) = P(A)P(B|A) = B 와 A 사건이 모두 발생할 확률

P(A|B) = P(A∩B)/P(B) = B 사건이 발생하고 A 사건이 발생할 확률

P(A,B,C,D) = P(A)P(B|A)P(C|A,B)P(D|A,B,C) = D, C, B, A 사건이 모두 발생할 확률 (조건부 확률의 연쇄법칙)

P(x1,x2,x3...xn) = P(x1)P(x2|x1)P(x3|x1,x2)...P(xn|x1...xn-1)



예제1)


전체 중고차 중 70% 가 에어컨이 있고,

전체 중고차 중 40% 가 CD 플레이어가 있다.

전체 중고차 중 90% 가 둘 중 하나 이상을 가지고 있다.

에어컨이 없는 중고차 중 CD 플레이어도 없을 확률은?

에어컨이 없는 중고차 P(B) 중 CD 플레이어도 없는 중고차 P(A) 의 확률 P(A|B)


---------------------------------------------------------------------


공식 P(A|B) = P(A,B)/P(B)

P(B) = 에어컨이 없을 확률 = 0.3

P(A,B) = 둘다 없는 확률 = 0.1

P(A|B) = P(A,B)/P(B) = 0.1 / 0.3 = 1/3


예제2)


"An adorable little boy is spreading smiles" 문장의 확률은?

(문장의 확률은 이전 단어로부터 다음 단어가 등장할 확률들의 곱으로 구성된다.)


---------------------------------------------------------------------


공식 P(x1,x2,x3...xn) = P(x1)P(x2|x1)P(x3|x1,x2)...P(xn|x1...xn-1)

P(An adorable little boy is spreading smiles) =

P(An)×

P(adorable|An)×

P(little|An adorable)×

P(boy|An adorable little)×

P(is|An adorable little boy)×

P(spreading|An adorable little boy is)×

P(smiles|An adorable little boy is spreading)




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,