학습목표
자연어 처리에서 언어 모델링 문제를 다뤄봅니다.
핵심키워드
- 언어 모델링(Language Modeling)
학습하기
자 앞서서 Text classification들을 몇 개 봤는데요. 이걸 먼저 말했던 이유가, 이런 문제는 실질적으로 CBoW, n-gram 쓰면 정말 굉장히 잘 되거든요. 그런데도 불구하고 얘기를 많이 했던게, Sentence representation을 이해하는데 도움이 되기 때문이었죠. 그런데 Natural Language Processing, NLP에서 큰 파트가 Text classification이나 Text understanding도 있지만, Generating 도 있죠. 지금부터 말한 Language Modeling이 엄밀히 말해서 Generating은 아니지만 먼저 봅시다.
자, 인풋은 문장이고 아웃풋은 인풋 문장의 확률입니다. 확률을 뱉어낸다는건 스코어링이 가능한 거에요. 이건 문장 분류 문재와는 다르게 비감독 학습으로 진행할 수 있겠죠. 물론 지도학습으로 바꿔서 풀 수도 있습니다. 쨋든, 이 확률을, 스코어를 출력한다는게 결국 문장을 Generating하는 것과 Equivalent하다는 것을 우리는 알 수 있죠. 만약 스코어링을 굉장히 잘하는 언어 모델이 있다. 그러면 해당 문장 뒤에 어떤 문장이 올 수 있는지 스코어링을 다 뽑아봐요. 그럼 그중에서 가장 높은 점수를 갖는 문장을 출력해요. 그럼 그게 Generating model이죠. 물론, 모든 가능한 문장을 체크하긴 힘드니까, 모든 문장을 체크하지 않고 어떻게하면 잘 뽑을까 이걸 생각해야되는데, 방법은 스코어링 방식을 살짝 바꿔서, 아주 일부, 문장의 일부를 보고도 스코어링을 할 수 있다면, 조금 더 효율적으로 계산을 할 수 있겠죠. 문장의 시작 단어 몇 개부터 점수가 굉장히 낮다면, 전체 문장이 좋을 확률도 낮아질테니까요. 뭐 이렇게 사실 스코어링과 제너레이팅은 비슷한 측면이 있기 때문에, 이 Language modeling을 잘 이해해야합니다.
'머신러닝 > [딥러닝을 이용한 자연어 처리]' 카테고리의 다른 글
N-Gram Language Models (0) | 2020.04.13 |
---|---|
Autoregressive language modeling (1) | 2020.04.12 |
Questions (0) | 2020.04.10 |
Summary (0) | 2020.04.09 |
Self Attention & RNN (0) | 2020.04.08 |