brunch

You can make anything
by writing

C.S.Lewis

by 알바트로스 Jan 28. 2024

딥러닝은 어떻게 자연어처리를 혁신했을까?

딥러닝 기반 자연어처리(Deep learning based NLP)

지난시간에 배운 통계기반 자연어처리는 규칙기반 자연어처리의 한계를 어느정도 해결해 주었지만, 여전히 치명적인 한계점을 가지고 있었습니다. 바로 희소성 문제(Sparsity)입니다. 데이터 희소성 문제를 간단히 말하자면 단어나 문장이 길어지고 데이터의 양이 증가했을 때 통계기반 자연어처리만으로는 해결이 어렵다는 단점입니다. 


- 희소성 문제(sparsity problem)


출처 : 딥러닝을 이용한 자연어처리 입문


말뭉치(corpus)는 연구를 위한 언어모델의 표본임으로 분명 통계적으로 유의미합니다. 그러나 말뭉치만으로 언어의 모든 정보를 표현하는 것은 사실상 불가능합니다. 조금 더 수학적으로 말하자면 확률을 할당하고자 하는 시퀀스(sequence)에 들어갈 단어가 corpus(말뭉치) 안에 등장하지 않을 때, 통계기반 언어모델은은 확률을 0으로 계산해 버리는 것과 같은 문제를 희소 문제라고 합니다.


예를 들어 위와 같이 기존 방식으로는 사전 입력된 어휘사전에 ‘An adorable little boy’라는 문장이 존재해도 ‘An adorable little boy is’이라는 단어가 없다면 언어모델은 해당 문장을 표현할 수 없게 되어버리는 것이죠. 이에 대해서는 후반부 '언어모델 해부하기'에서 자세히 설명하도록 하겠습니다.


이처럼 기존의 방식은 학습에 많은 양의 텍스트 데이터가 필요합니다. 특히, 전문 분야에 국한된 단어나 특수한 문맥에 대해서는 적절한 단어 표현을 제공하기 어려울 수 있습니다. 또한 통계기반 언어모델은 대량의 텍스트 데이터와 통계적인 모델 학습이 필요하기 때문에, 데이터의 품질과 양, 그리고 모델 학습에 필요한 계산 자원에 의존하게 되는 한계가 있습니다. 앞으로 우리는 딥러닝이 어떻게 자연어처리에 가장 적합한 형태의 해결책을 제시하는지 살펴볼 것입니다.


딥러닝 기반 자연어처리란?(Deep learning based NLP)


딥러닝 기반 자연어처리는 인공신경망(artificial neural network, ANN)을 활용한 딥러닝 모델을 사용하여 자연어를 처리합니다. 딥러닝 기반 자연어처리에서 가장 중요한 개념 중 하나는 단어 임베딩(word embedding)입니다. 단어 임베딩은 단어를 고차원 공간에 벡터로 표현하는 기법으로, 이 과정을 통해 단어 사이의 관계를 공간상의 거리로 표현할 수 있었죠. 예를 들어, '왕'과 '남자', '여왕'과 '여자' 간의 관계를 벡터 연산을 통해 표현할 수 있습니다.


딥러닝 기반 자연어처리의 대표적인 모델에는 '언어모델 해부하기'에서 자세히 배우게될 순환신경망(RNN), 장단기 메모리(LSTM) 그리고 트랜스포머(transformer)등을 포함하는 전이학습모델(transfer learning models) 있습니다. 이 모델들은 주로 연속적인 데이터를 처리하는 데 적합하며, 따라서 자연어처리에 많이 사용됩니다. 


최근 가장 주목받고 있는 딥러닝 기반 자연어처리 기법 중 하나는 트랜스포머 기반의 BERT와 GPT 등의 모델입니다. 어텐션 메커니즘(attention mechanism)에 기반한 BERT(Bidirectional Encoder Representation from Transformer) 모델은 양방향 단어 추측으로 언어의 문맥을 훨씬 더 잘 이해하고, 문장 내에서 단어나 구문 사이의 복잡한 상호 작용을 파악하는 데 유용합니다. 


반면 GPT(Generative Pre-trained Transformer)는 그 명칭에서도 알 수 있듯이 언어 생성에 특화되어 있죠. 예를 들어, GPT는 주어진 문맥에서 다음에 오게 될 단어를 예측하는 방식으로 학습됩니다. 따라서 이전에 나온 단어나 문장의 의미를 이해하고, 그에 따라 적절한 단어를 예측하는 능력을 가지고 있습니다. 이러한 모델은 번역, 질의응답, 감정 분석 등 다양한 자연어처리 작업에 활용되며, 훨씬 자연스러운 대화를 생성할 수 있지요. 후반부에 배우게 될 BERT와 GPT를 비롯한 전이학습 기반 언어모델 아키텍쳐는 딥러닝 기술 덕분에 구현이 가능했습니다.


딥러닝 기반 자연어처리는 규칙기반과 통계기반 자연어처리가 가진 한계를 넘어선 성능을 보이지만, 여전히 해결해야 할 문제들이 있습니다. 예를 들어, 딥러닝 모델은 대량의 데이터와 많은 계산 자원을 필요로 하며, 모델의 내부 작동 방식이 블랙박스와 같이 알기 어렵다는 문제가 있습니다. 이러한 문제들에 대한 연구와 개발이 계속 진행되고 있으며, 이를 통해 더욱 향상된 자연어처리 기술이 나올 것으로 기대됩니다.


언어모델(Language Model)이란?


지금까지 규칙기반, 통계기반 그리고 딥러닝 기반 자연어처리의 개념에 대해 소개했습니다. 이 모든 과정들은 언어모델(Language Model)을 이해하기 위함이었습니다. 언어모델이란 통계학 이론과 딥러닝을 활용하여 연속되는 단어의 집합으로 이루어진 문장 시퀀스(sequence)의 각 단어에 확률을 할당해주는 모델입니다. 즉 문장을 시계열 데이터(time series data)와 같은 하나의 연속되는 데이터의 집합으로 간주하고, 전체적인 문맥 속에서 자연스러운 단어가 들어갈 확률을 계산하는 방식으로 작동하는 것이죠.


언어 모델(Language Model)이란?(출처 : wikidocs)


언어모델은 음성인식, 오타교정, 번역 등 다양한 자연어처리 태스크에 활용됩니다. 언어모델의 작동방식을 직관적으로 설명하기 위해 오타교정을 예로 살펴보도록 하겠습니다. 예를 들어 ‘학생들이 샌드위치를 허겁지겁’이라는 단어의 집합이 있다고 가정할 때 뒤에 들어갈 말은 [먹었다]가 될 확률이 가장 높습니다. 누군가가 실수로 ‘학생들이 샌드위치를 허겁지겁 [덮었다].’라는 문장을 입력한다면 오타 교정기는 언어모델을 활용하여 문장 시퀀스의 각 단어에 들어갈 확률을 계산해 [먹었다]로 수정해줄 것입니다.


언어모델 활용의 예시(출처 : wikidocs)


언어모델은 크게 통계기반 언어모델(Statistical Language Model, SLM)과 딥러닝 기반 언어모델(Deep learning Language Model, DLM)로 구분할 수 있는데, 나중에 배우게 될 LLM 역시 딥러닝 기반 언어모델의 일종으로 볼 수 있습니다. 그러나 언어모델이 점차 거대화 되고 커다란 모델이 자연어처리의 새로운 표준이 되어가고 있는 트렌드를 반영하여 이 책에서는 전이학습기반(Transfer learning Language Model, TLM)을 또 다른 카테고리로 나누어 설명하였습니다. 

이전 22화 확률과 통계로 언어를 표현하는 인공지능
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari