Study/NLP
NLP with DeepLearning (1) - intro
johanjun
2021. 11. 18. 15:56
자연어처리는 딥러닝을 통해서 로켓을 탄 것 같다. 불과 3~4년 전만 해도 구글 번역기로 번역을 돌리면 '피식'하고 웃음이 먼저 났다. 자연어처리를 매우 부자연스럽게 처리한 결과들이 더 많이 보였기 때문이다.
딥러닝이 등장(?)하면서 자연어처리는 어떻게 변했고, 어떤 일들을 할 수 있는지 알아보자.
자연어처리와 한국어
전통적인 NLP | 딥러닝을 통한 NLP |
- 단어를 Symbolic 데이터로 취급 - 통계 기반으로 번역기 모델링 - 연산 속도가 느림 |
- 단어를 연속적인 값으로 변환(embedding) - 신경망을 이용하기 때문에 사람이 이해하기 어려움 |
자연어처리의 시스템을 아주 간략하게 정리하면 세 단계다.
- Encoder 임베딩 계층 : 사람이 쓰는 단어(symbolic) → 신경망이 좋아하는 단어(continuous)
- 딥러닝 연산
- Decoder 생성 계층 : 신경망이 좋아하는 단어(continuous) → 사람이 쓰는 단어(symbolic)
한국어 자연어처리는 여러가지 이유로 쉽지 않다.
- 한국어는 교착어이기 때문에 어간에 접사가 붙어서 단어를 이루며, 의미와 문법적 기능이 정해진다.
ex) 잡다. 잡히다. 잡히시다. 잡히셨다. 잡았다. 잡겠다. 잡더라. 잡혔다. 잡혔겠다. 잡혔겠더라. 잡았겠다. 잡히시었겠더라. - 단어 순서의 규칙이 유연하다.
ex) 나는 밥을 먹으러 간다 = 나는 먹으러 간다 밥을 (이 예시에서 14가지의 조합이 가능하다) - 띄어쓰기가 모호하다. 즉, 띄어쓰기가 안지켜져도 웬만하면 이해가 된다.
- 평서문과 의문문의 차이가 거의 없다.
- 주어가 없어도 된다.
- 동음이의어가 많다.
딥러닝과 자연어처리
자연어처리의 역사에 대해서 요약하면 아래의 표와 같다.
구분 | 특징 |
딥러닝 이전의 NLP | - sub-module이 너무 많아서 복잡하고, 모델 자체가 무거움 |
Seq2Seq 이전의 NLP | - word embedding의 등장 - CNN을 통한 text classification이 가능해짐 => 단어를 인코딩하는 정도로 그침 |
Seq2Seq with Attention | - 벡터를 가지고 원하는 문장을 만드는 것이 가능해짐 |
Era of Attention | - GPT, BERT 등의 등장 |
Pretraining and Fine-Tuning | - Big 모델(대기업)을 기반으로 적절하게 fine-tuning하여(소규모 조직, 개인) 비즈니스에 적용 |
딥러닝의 최신 키워드를 정리하자면 Big Model with Attention과 단순한 챗봇(Question Answering)을 넘어 국가/언어와 도메인을 뛰어넘는 머신 연구라고 할 수 있을 것 같다.
※ 본 포스팅은 패스트캠퍼스 '김기현의 딥러닝을 활용한 자연어처리 입문' 강의를 듣고 정리한 글입니다.