본문 바로가기

Study

NLP(자연어처리) - Language Model (언어 모델)

들어가기 앞서 간단히 설명하자면,

 

위의 그림과 같이 Language Modeling 학습을 통해 다음에 어떤 단어가 나올지 예측하는 작업입니다.

 

조금 더 형식적으로는, 다음 단어의 확률 분포를 계산하는 것입니다.

다음 수식에서와 같이 다음 단어는 vocabulary 에 있는 어떠한 단어도 올 수 있습니다.

 

언어모델을 직관적으로 알 수 있는 다른 예 입니다.

 

나는 오늘 늦잠을 자서, 학교에 [     ].

 

우리는 [    ]에 어떤 단어가 올 것인지 쉽게 예상할 수 있습니다. 우리는 지식에 기반하여 나올 수 있는 여러 단어들을 후보에 놓고,  '늦었다'라는 단어의 확률이 가장 높다고 판단하였기 때문입니다.

 

1. Statistical Language Model (SLM, 통계적 언어모델)

    1.1) Conditional Probability (조건부 확률)

        P(A)와 P(B)의 확률은 다음과 같이 나타낼 수 있습니다.

        조금 더 생각해보면 4개의 확률 관계에 대해서 다음과 같이 표현할 수 있습니다.

        이것은 연쇄 법칙(Chain Rule)이라고 하며 일반적인 형식의 수식의 일반화는 다음과 같습니다.

        이 정의를 가지고 문장에서 다음 단어를 예측할 수 있습니다.

 

    

    1.2) Probability of a sentence (문장의 확률)

        다음 문장이 있다고 생각해보겠습니다.     ex) "나는 오늘 늦잠을 자서, 학교에 늦었다."

        그렇다면 위 1.1 을 이용한 문장의 확률은 다음과 같습니다.

        문장의 확률은 앞의 단어가 주어졌을 때 각 단어가 다음과 같이 다음 단어로 나타날 확률을 곱한 것으로 구성됩니다.

        식을 보여드리면 다음과 같습니다. 다음은 "나는 오늘 늦잠을 자서 학교에 늦었다" 문장이 나올 확률을 구한 것입니다.

       

 

    1.3) Count-based approach (카운트 기반 접근)

        다음 문장이 오는 것은 다음과 같이 계산 할 수 있습니다.

        "나는 오늘 늦잠을 자서" 다음에 "학교에" 가 올 확률을 구하는 것입니다.

        총 "나는 오늘 늦잠을 자서"가 100번 나타났을 때 "학교에"가 45번 나타났으면 45% 확률을 가지는 것입니다.

 

SLM 한계

 

Statistical Language Model의 한계점은 방대한 데이터에 해당 문장이 존재해야하며, "나는 오늘 늦잠을 자서" 다음 " 학교에" 와 같이 전체적으로 해당 문장이 나온적이 있어야 확률을 가질 수 있으며 해당 문장이 나타난 적이 없다면 0% 확률을 같는 한계를 가지고 있습니다. 

 

다음으로 제시된 Language Model이 n-gram 방법입니다.

 

2. N-gram

SLM과는 다르게 N개의 단어만을 선택하여 확률을 계산하는 것이 N-garm입니다.

 

    2.1) SLM의 한계 극복

        SLM에서 한계를 극복하기 위해서 "나는" 다음 "오늘", "오늘" 다음 "늦잠을", "나는 오늘" 다음 "늦잠을"와 같이 선택할 수 있는 N을 이용하여 전체 문장이 아닌 예측할 문장의 이전 N개의 단어만을 이용하여 나타난 빈도를 측정하여 확률을 계산 하는 것입니다.

 

그럼에도 불구하고 확률을 계산할 때 Sparsity Problem (희소 문제)가 존재합니다. 기존의 SLM 보다는 0%의 확률이 나오는 것이 줄었지만 여전히 존재하지 않은 문장이 나올 경우에는 0% 확률을 가지고 있습니다.

 

3. Neural Network Based Language Model (인공 신경망을 이용한 언어모델)

 

N-gram Language Model의 한계점을 극복하기위해 분모, 분자에 숫자를 더해서 카운트 했을 때 0이 되는 것을 방지하는 등의 여러 일반화(generalization) 방법들이 존재하지만 본질적으로는 취약점을 완전히 해결하지 못하였고 N-gram 보다는 대체적으로 성능이 우수한 인공신경망을 이용한 언어모델도 존재합니다.

 

희소 문제는 기계가 단어 간 유사도를 알 수 있다면 해결할 수 있는 문제라고 합니다. 어디서 나온 적은 없지만 두 단어가 유사함을 학습하였으면 단어를 대신 선택하여 생성을 할 수 있습니다.

 

인공 신경망 언어모델 키워드 : NNLM

 

 

반응형

'Study' 카테고리의 다른 글

Git 설치하기 (window, 2.31.1)  (0) 2021.04.13
TextRank, PageRank  (0) 2020.07.31
Markov Process  (0) 2020.04.07
Optimizer : RAdam - Rectified Adam  (0) 2020.03.19
Greedy Search  (0) 2020.03.18