자연어 처리 연습노트 입니다. 공부를 하며 작성한 것이기 때문에 틀린 내용이 있을 수 있습니다. 발견하면 알려주세요! 아래 내용은 주로 <한국어 임베딩>에서 가져왔다는 것을 밝혀둡니다. 

가장 기본적인 임베딩 방법인 BoW는 단어의 순서(sequence)를 고려하지 않는다. BoW와 달리 순서를 고려하는 통계 기반 임베딩 방법으로 언어 모델(language model)이 있다. 



Language Model 

language model은 단어 시퀀스에 확률을 부여하는 모델이다. 단어 수준 임베딩을 하는 BoW 기반 임베딩 기법들과 달리 문장 수준 임베딩을 한다. 

잘 학습된 language model은 어떤 문장이 그럴듯한지(확률 값이 높은지), 주어진 단어 시퀀스 다음 단어가 무엇이 오는 게 자연스러운지 알 수 있다. 

예를 들어, '실패는 성공의' 다음에 '어머니'라는 단어가 나타날 확률을 구할 수 있다. (feat. 최대우도추정법

엄밀히 말해, language model은 language generate를 하지 않지만, 실질적으로는 한다고 볼 수 있다. language mode이 하는 sentence scoring을 sentence generating과 동일한 태스크로 볼 수 있기 때문이다. 즉, 모든 가증한 문장에 scoring을 부여해, 점수가 가장 높은 문장을 generate하면 이게 곧 sentence generating이 된다. 예를 들어 '실패는 성공의'라는 표현이 주어졌을 때 그 다음으로 '어머니'라는 단어가 왔을 때 sentence scoring이 가장 높다는 것을 찾아내어 '어머니'라는 단어를 채워넣는다.  

language model의 대표적인 모델로는 ELMo(Embeddings from Language Models), GPT 등이 있다. (이 글의 ELMo 부분 참고)

ELMo 논문 요약 /// We introduce a new type of deep contextualized word representation that models both (1) complex characteristics of word use (e.g., syntax and semantics), and (2) how these uses vary across linguistic contexts (i.e., to model polysemy). Our word vectors are learned functions of the internal states of a deep bidirectional language model (biLM), which is pre-trained on a large text corpus. We show that these representations can be easily added to existing models and significantly improve the state of the art across six challenging NLP problems, including question answering, textual entailment and sentiment analysis. We also present an analysis showing that exposing the deep internals of the pre-trained network is crucial, allowing downstream models to mix different types of semi-supervision signals.




language model에 등장하는 개념들 

Back-off

n-gram 등장 빈도를 n보다 작은 범위의 단어 시퀀스 빈도로 근사하는 방식이다. 예를 들어 7-gram 빈도를 4-gram으로 근사해 보정한다. 

Smoothing

스무딩은 단어 등장 빈도 표에 모두 k만큼 더하는 기법이다. 스무딩을 시행하면 높은 빈도를 가진 문자열 등장 확률을 일부 깎고 학습 데이터에 전혀 등장하지 않는 케인스들에는 작으나마 일부 확률을 부여하게 된다. 


뉴럴 네트워크 기반 Language Model

ELMo, GPT 등 모델은 뉴럴 네트워크 기반 language model이다. 즉 뉴럴 네트워크로 주어진 단어 시퀀스를 가지고 다음 단어를 맞추는(prediction) 과정을 학습한다. 학습이 완료되면 이들 모델의 중간 혹은 말단 계산 결과물을 단어나 문장의 임베딩으로 활용한다.


이같은 language model들은 단어를 순차적으로 입력받아 다음 단어를 맞춰야 하기 때문에 태생적으로 일방향이다. 양방향 학습이 가능한 경우도 있는데 이를 Masked language model이라고 한다. BERT가 Masked language model에 속한다.