자연어처리(natural language processing, NLP) 분야의 핵심 과제로 자연어이해(natural language understanding, NLU)와 자연어생성(natural language generation, NLG)을 꼽아볼 수 있습니다. NLU는 자연어 형태의 문장을 이해하는 기술을 가리킵니다. NLG는 자연어 문장을 생성하는 기술을 말하죠. 다시 말해 NLU와 NLG는 사람과 기계, 그리고 기계 간 사람이 자연어로 소통하는 데 필요한 기술이라고 보면 됩니다.
본격적으로 NLU를 소개하는데 앞서, ‘이해한다’는 말의 정의부터 되짚어보려고 합니다. 수십 년간 이어져온 철학적 논쟁(튜링 테스트[1], 중국인의 방[2])을 보자면 ‘이해한다’는 행위를 명쾌하게 해석하기란 쉽지 않습니다. 다만 이 글에서는 현재 기술 수준에 근거해 주어진 과제에 적절한 답을 내놓는 기계를 두고 ‘사람의 말을 이해한다’고 정의하고자 합니다.
구글(Google)과 같은 검색 서비스나 카카오미니와 같은 인공지능 스피커처럼 사람과 기계의 상호 작용이 필수인 곳에서 NLU은 핵심 기술이라고 할 수 있습니다. 기계의 이해 능력이 좋아져야지만 사용자가 만족할 만한 수준의 정보나 답을 들려줄 수 있기 때문입니다. 자사가 개발한 NLU 기술을 접목해 기존 키워드 매칭 방식과 비교해 더 나은 검색 서비스를 제공한 구글의 사례가 대표적입니다.
컴퓨터 비전 분야에서는 이미지넷(ImageNet)[3]과 같은 방대한 라벨링 데이터를 사전 학습한 이미지 분류 모델을 다른 이미지 과제(사물 인식 등)에서도 활용합니다. 다양한 데이터를 다량 (사전) 학습한 모델의 매개변수(parameter)를 활용하면, 훈련에 드는 시간과 비용을 획기적으로 줄이면서도 더 좋은 성능을 내는 모델을 만드는 데 큰 도움이 되기 때문입니다. 그런데 NLU에서는 라벨링 데이터를 확보하는 일부터가 난관이었습니다. 많은 양의 텍스트 데이터를 모으기가 어려울뿐더러, 여러 과제를 사전학습하는 데 유용한 라벨링 방식조차 논의되지 못한 상황이었죠.
(더 자세히 보기 - AutoCV1・2에서 우승한 비법을 공개합니다)
그러던 차, 1)비라벨링 데이터만 주어진 상태에서 입력 데이터 일부를 라벨로 사용하거나 사전 지식에 따라 라벨을 만들어 모델을 훈련하는 자기지도학습(self-supervised learning) 방법론이 발전하고, 2)텍스트 훈련에 효과적인 딥러닝 모델 아키텍처가 개발됐으며, 3)GPU와 딥러닝 라이브러리가 발전한 덕분에 많은 양의 비라벨링 텍스트 데이터를 효과적으로 사전 훈련하는 모델 개발이 가능해졌습니다. 이렇게 만들어진 언어 모델(language model)[4]은 NLU와 관련된 다양한 과제 수행에서 기대 이상의 성능을 선보임에 따라 그 가치를 인정받고 있습니다.
[ 그림 2 ] 사전학습을 수행한 언어 모델은 개별 과제에 맞게 미세조정된다.© 최요중 카카오브레인 연구원
이번 글에서는 지난 2018년을 기점으로 폭발적으로 성장한 언어 모델과 최신 NLU 과제의 한계, 올해의 NLU 연구 트렌드에 대한 내용을 다뤄보고자 합니다. 카카오브레인에서 자연어처리 연구를 담당하고 있는 최요중 연구원을 만나 자세한 이야기를 들어봤습니다.
언어 모델이 사람의 말을 얼마나 잘 이해하는지는 어떻게 평가해볼 수 있을까요? 앞에서 설명한 대로, 언어를 이해한다는 행위는 구체적으로 정의하기도, 검증하기도 어렵습니다. 이에 전문가들은 [표 1]에서 제시된 것처럼 정답이 명확하게 주어진 여러 문제를 고루 잘 푸는 모델을 기준으로 삼았습니다. 다양한 과제를 잘 수행한다면 나중에 비슷한 종류의 새로운 데이터에서도 잘 작동한다고 가정했습니다.
[ 표 1 ] 자연어이해의 대표 과제와 예시 © 최요중 카카오브레인 연구원
언어 모델의 성능 평가에는 GLUE와 SuperGLUE라는 벤치마크가 주로 활용됩니다. 기존 9가지 라벨링 데이터셋을 모아 만든 GLUE는 다양한 과제에서 딥러닝 모델이 좋은 성능을 내는지를 살펴보는 데 방점을 둡니다. 2018년 탄생한 사전학습된 딥러닝 기반 언어 모델(ELMo, GPT-1, BERT) 모두 GLUE 벤치마크에서 당시 최고의 성능을 달성했습니다. 그중에서도 BERT를 업그레이드한 버전인 MT-DNN[5]와 RoBERTa는 GLUE 벤치마크를 기준으로 인간보다 뛰어난 성능을 내보이기도 했죠. GLUE보다 ‘더 어려운’ 자연어이해 과제를 모은 벤치마크가 SuperGLUE입니다. 8가지 데이터셋으로 구성된 SuperGLUE도 GLUE와 마찬가지로 다양한 NLU 문제를 해결할 수 있는지를 평가하는 데 주안을 두고 있습니다.
[ 표 2 ] 2018년과 2019년에 탄생한 언어 모델을 정리한 도표
ELMo는 방대한 텍스트 데이터를 (사전) 훈련받은 대규모 언어 모델이 다양한 NLU 과제에서 최고의 성능을 낼 수 있음을 최초로 증명했습니다. ELMo는 양방향 LSTM 아키텍처를 이용해 주어진 단어 시퀀스(sequence)[7] 다음에 오는 단어(순방향) 또는 앞에 오는 단어(역방향)를 예측합니다. 그 결과, ELMo는 6가지 주요 NLU 벤치마크에서 모두 최고의 성능을 갱신하는 데 성공합니다.
기존의 대표적인 단어 임베딩 방식인 Word2Vec[8]과 비교했을 때 ELMo의 장점은 무엇일까요? ‘다리(교량)’, ‘다리(신체 부위)’처럼 문맥에 따라 다른 의미를 가지는 다의어를 하나의 방식으로만 표현하는 Word2Vec과는 달리, ELMo는 다의어를 문맥에 따라 다르게 표현할 수 있습니다. 아울러 주어진 단어 앞뒤 2~5개의 단어만 고려하는 Word2Vec과는 달리, ELMo는 더 넓은 범위의 문맥(128~1,024개의 단어)을 고려할 수 있습니다.
문제는 LSTM과 같은 RNN 모델은 문장이 길수록 계산 속도가 느려지고 거리가 먼 단어 간 관계를 제대로 표현하기 어렵다는 데 있습니다. 이런 한계를 극복하고자 ELMo 이후 탄생한 대부분의 언어 모델은 Transformer[9] 구조를 활용합니다. GPT-1 또한 Transformer의 디코더(decoder)를 이용한 순방향 언어 모델입니다. 그 결과, GLUE에서 ELMo를 크게 넘어섰습니다. 특징 벡터(feature vector)[10]를 다시 단어로 복원하는 디코더 구조상 문장을 좀 더 수월하게 생성할 수 있습니다. 후속으로 나온 GPT-2는 모델 규모를 키워서 문장 생성 과제에 집중한 버전이라고 보면 됩니다.
하지만 ELMo나 GPT와 같은 순방향 또는 역방향 모델에서는 그 구조상 틀린 예측값을 내놓을 가능성이 매우 높습니다. 빈칸에 들어갈 단어를 예측하는 문제를 봅시다([그림 4]). 순방향 모델은 타깃 단어를 예측하기 위해 그 앞에 오는 단어 시퀀스(Jamie walks into a)만 보고, 역방향 모델은 그 뒤에 오는 단어 시퀀스(and orders a cocktail)만을 보죠. 그 결과, 각 모델이 정답지가 아닌 단어를 제시할 확률이 높게 됩니다.
[ 그림 4 ] 언어 모델은 주어진 단어의 문맥을 보는 방식에 따라 구분(순방향, 역방향, 양방향)할 수 있다. (CBOW : 정해진 거리 내 단어를 보고 타깃 단어를 예측하는 방식) © 최요중 카카오브레인 연구원
반면, 타깃 단어 앞뒤 단어 시퀀스를 동시에 함께 보는 양방향 모델은 실제 정답인 bar(바)를 예측할 가능성이 크죠. BERT가 Transformer의 인코더(encoder)만 이용한 완전 양방향 사전훈련 언어 모델(full-directional LM)을 구축하는 데 집중한 이유입니다. 이를 위해 단어 시퀀스의 복잡한 관계를 잘 표현할 수 있도록 학습 문장마다 매번 서로 다르게 무작위로 비운 단어를 예측할 수 있도록 했습니다(masked language model, MLM). 각 문장을 구성하는 단어 중 15%를 [Mask] 토큰으로 변경하는 식으로 말이죠[11].
BERT는 서로 인접한 두 문장 간의 관계를 예측하는 방법(next sentence prediction, NSP)도 학습했습니다. 이를 위해 두 개의 문장 중 두번째 문장이 첫번째 문장의 다음 문장인지를 맞출 수 있도록 관련성이 있는 두 문장(positive example)과 관련성이 없는 문장(negative example)을 1:1의 비율로 학습 데이터셋을 구성했죠. NSP는 대표적인 문장 임베딩 모델인 Skip-Thought Vectors[12]에서 영감을 받은 것으로 보입니다. 주어진 문장의 전후 문장을 함께 학습하면 문장을 유용한 임베딩 벡터로 변환할 수 있음을 보여준 이 연구의 접근 방식과 유사하기 때문입니다.
그 결과, BERT는 GLUE와 SQuAD[13]에서 ELMo와 GPT-1을 뛰어넘는 성능을 뽐냈습니다. 특히 SQuAD 1.1 버전에서는 사람과 비교해서도 손색없는 실력을 선보이는 등 거의 모든 자연어 과제에서 좋은 성능을 내는 범용 모델로 자리하게 됐습니다.
일부 전문가는 BERT의 성능 개선 폭에 한계가 있음을 지적했습니다. MLM 방식에 적응한 BERT가 일부 문장이 비어있지 않은 단어 시퀀스 데이터 훈련에 제대로 적응하지 못할 것이라 본 거죠. 여러 단어를 동시에 예측할 때 해당 단어 간 상관관계를 고려하지 않는 점도 지적됐습니다. ‘[MASK] [MASK] is a large city in the U.S’라는 문장을 예로 들어보겠습니다. 빈칸에 들어갈 단어로 (New, York) 또는 (Los, Angeles)를 직관적으로 예측하는 사람과는 달리, [MASK]를 독립적으로 예측하는 BERT는 (New, Angeles)라는 틀린 값을 내놓을 수 있습니다.
이런 한계를 극복하고자 XLNet은 앞뒤 문맥을 동시에 고려하는 양방향 언어 모델과 예측 단어 간 상관관계를 고려하는 순방향 모델의 장점을 합쳤습니다. 다만 모델이 지나치게 복잡하고, 앞서 언급한 문제가 모델 성능에 미치는 영향에 대한 명확한 근거가 제시되지 않았다는 이유로 업계 내에서는 상대적으로는 덜 사용되는 것으로 분석됩니다.
RoBERTa(A Robustly Optimized BERT)는 BERT보다 성능을 한 단계 업그레이드한 버전입니다. 모델 크기가 클수록 성능을 높일 수 있다는 판단하에 훈련 데이터의 양(13GB→160GB)과 학습 횟수(125,000회→500,000회), 배치 크기(256→8,192), 사전 크기(32,000→50,000)[14] 등을 대폭 늘리는 전략을 취했습니다. BERT의 NSP 과제는 훈련에서 제외했습니다. 실제 의도했던 문장 간 연관 관계를 배운다기보다는, 단순히 두 문장이 같은 문맥을 따르는지를 판단하는 쪽에 가까워 학습 효과가 불분명하다고 봤기 때문입니다.
ALBERT(A Lite BERT)는 이름 그대로 BERT보다 가벼운 모델입니다. 모델 매개변수 수를 줄여 같은 구조의 모델에서의 메모리 사용량을 줄이고 학습 속도를 높였습니다. 우선 각 단어를 저차원의 임베딩 벡터로 먼저 표현하고 나서 이를 다시 모델 은닉층의 차원 수만큼 확장하고[15], 또한 Transformer 인코더 블록 간 매개변수를 공유하도록 했습니다. 그 결과, ALBERT(large)는 BERT(large)와 비교했을 때 매개변수 수는 1/18(3억 3,400만개→1,800만개)로 줄어들고 GLUE 성능을 일정 수준 유지하면서(85.2→82.4) 학습 속도를 1.7배 높였습니다. 뿐만 아니라 BERT의 NSP 대신 두 문장의 연관 관계를 예측하는 과제인 문장 순서 예측(sentence order prediction, SOP)[16]을 훈련해 성능을 더 높였습니다.
T5는 한 모델로 모든 문제를 풀면서도 모델의 규모를 역대급으로 키우겠다는 사고의 집약체라고 볼 수 있습니다. NLU 벤치마크인 GLUE와 SQuAD 등에 포함된 다양한 자연어이해 과제를 사전 훈련했습니다. 여기에 사용한 정제 텍스트 데이터만 700GB(RoBERTa의 4.4배), 모델 매개변수는 110억개(RoBERTa의 32배)에 달하는 규모입니다. 빈칸 하나의 예측값이 다른 빈칸 예측에 영향을 주지 않는 BERT의 한계를 극복하고자 seq2seq[17] 구조의 MLM을 적용했습니다. 그 결과, T5는 SuperGLUE에서 인간과 비슷한 성능을 달성했습니다.
[ 그림 5 ] T5는 seq2seq 구조의 MLM을 활용한다. 이를 토대로 자연어이해 과제 데이터에 미세조정된다. © Google
이처럼 2018년부터 2019년 사이 탄생한 언어 모델이 NLU 벤치마크 기록을 연속적으로 갱신함에 따라, 인간의 언어를 이해하는 딥러닝 모델의 탄생에 대한 학계의 기대감이 점차 높아지고 있습니다. 실제로 ‘2012년에 이어, 또 다른 ‘인공지능 혁명의 순간이 찾아왔다’라는 비유도 나왔습니다. 딥러닝이 풀지 못한 난제 중 하나인 NLU의 실마리가 조만간 풀릴 것이라는 기대감이 한껏 모이고 있다는 의미입니다.
(더 자세히 보기 - 딥러닝이 충분히 탐구하지 못한 언어 관련 5가지 태스크)
구글에 "키아누 리브스는 기혼자인가요(Is Keanu Reeves married)?"라는 질문을 남기면 어떤 답을 얻을 수 있을까요? 키아누 리브스의 미혼 또는 기혼 여부를 알 수 있을 거라는 기대와는 달리, [그림 6]에서처럼 그의 어머니의 세번째, 네번째 재혼 시점에 관한 정보를 얻을 수 있습니다. 자료의 출처인 위키피디아(Wikipedia) 문서 내 일부 단어가 검색어(Reeves, married)와 일치한다는 이유로 해당 문서가 상단에 표시된 것으로 보입니다. 배열된 단어의 패턴을 학습하는 언어 모델을 고려해봤을 때, 기계는 말의 의미를 이해하는 게 아니라 글자의 형태학적 유사성만을 구분하는 정도에만 머물고 있다는 걸 보여주는 단적인 사례인 셈이죠.
[ 그림 6 ] 구글에 “키아누 리브스 결혼”이라고 검색하면, 키아누 리브스 엄마의 결혼 정보가 상단에 뜬다.(2020년 1월 30일 오후 3시 2분 기준) © google
이처럼 GLUE나 SuperGLUE와 같은 최신 벤치마크에서 최고 성능을 달성한 모델이 실제로 자연어를 이해했다고 보기가 어렵다는 정황은 여러 NLU 과제에서 발견되고 있습니다. 학계에서는 이를 두고 ‘영리한 한스 효과(Clever Hans moment)[18]’라 표현하고도 있죠. 과제별 사례를 중심으로 조금 더 자세히 설명해보겠습니다.
특정 지문을 읽고 질문에 대한 적절한 답을 제시해야 하는 기계 독해에서는 [그림 7]처럼 지문 내용과 전혀 관계없는 문장을 마지막에 추가하면 실제 정답과는 전혀 다른 예측값이 출력됩니다. 이는 질문의 키워드가 많이 겹치는 문장 근처에서 답을 찾는 경향성에서 비롯된 것으로 분석됩니다. 이처럼 지문의 사실관계를 제대로 파악하지 않고 일부 단어 조합 패턴만 매칭하는 방식에서는 지문 내용을 조금만 바꿔도 틀린 답을 내게 됩니다.
[ 그림 7 ] 기계 독해 과제에서의 영리한 한스 효과 예제
전제(premise)와 가설(hypothesis)로 구성된 한 쌍의 문장이 있을 때 전제가 참이면 가설도 참인지를 추론하는 자연어 추론 과제에서도 비슷한 현상이 발견됩니다. 두 문장에 등장하는 일부 어휘가 겹친다는 이유만([그림 8-1]으로 어순을 바꿔도 참이라고 예측해버리는 거죠. 이렇게 되면 BERT(base)에서의 추론 정확도는 84%에서 20%까지 떨어집니다. 기존 문장에서 목적어를 주어로 바꾸어 사실 관계를 바꾼 상황([그림 8-2], [그림 8-3])에서는 (출력값이 참인 경우는 제외하고는) 정확도가 80%에서 10% 이하로 떨어지는 사례도 종종 있었습니다. 이는 문장을 구성하는 단어 수와는 관계없이 문장 간 관계를 겨우 3개의 범주로만 분류하는 과제 특성에 기인한 것으로 보입니다.
정리하자면, 실험 데이터에 존재하는 편향(bias)이나 아티팩트(artifact)[19]와 같은 피상적인 단서를 익힌 모델에는 현실 문제를 제대로 풀지 못하는 맹점이 있을 수 있습니다. 현실의 다양한 데이터를 활용한 추가학습을 하지 않은 이상 BERT 이후의 모델의 정확도는 25% 수준에 그치고 말죠. 하지만 그렇다고 해서 지금보다 더 나은 문제 정의 방식에 대해서도 그 누구도 이렇다 할 명쾌한 해답을 제시할 수 없다는 게 현실입니다. ‘BERT는 과제를 푼 게 아니다. 벤치마크를 달성한 것이다(solves benchmarks, not TASKs)’라는 표현이 나오는 건 바로 이 때문입니다.
물론 언어 모델은 사전 학습만으로도 외부 지식(external knowledge)을 일부 습득할 수는 있습니다. 언어 모델 그 자체를 지식 베이스의 일종이라고 볼 수 있다고 한 'Language Models as Knowledge Bases?'라는 논문이 바로 그 근거입니다. 좀 더 쉽게 말하면, 키아누 리브스에 관한 최신 기사를 학습한 모델이라면 키아누 리브스에 관한 모든 정보를 알고 있을 수도 있다는 의미죠. 하지만 NLU에서 언어학적 지식 습득에 주안을 두는 언어 모델이 외부 지식 습득에는 한계가 있을 수밖에 없습니다. 그러므로 좀 더 다양한 곳에서 활용할 수 있는 NLU 모델을 만들기 위해서는 외부 지식을 언어 모델에 내재화하거나, 따로 저장한 외부 지식을 활용하는 학습 메커니즘이 도입되어야 할 것으로 보입니다.
앞서 언급된 일부 한계점을 극복하고자 이후 진행된 연구에서는 관계 기반 질의응답(relation-based question-answering) 과제에서 별도의 지식 그래프(knowledge graph)를 이용해 사실 관계(entity relations)를 표현[20] [21]하려는는 시도가 있었습니다. 이벤트 간의 관계(event relations)[22]를 표현한 추론적 지식 그래프(inferential knowledge graph)를 언어 모델(GPT)과 조합해 추론 능력을 높이려는 시도 있었죠.
모델 학습 및 추론에 드는 시간과 자원을 획기적으로 줄여 언제 어디서나 언어이해 기능을 이용할 수 있도록 하는 경량화 연구인 MobileBERT[23]나, SentenceBERT[24]처럼 검색에 필요한 임베딩 방법론을 연구하는 트렌드를 비춰봤을 때 2020년 올 한해는 현실 속 다양한 NLU 과제를 푸는데 집중한 연구가 다수 진행될 것으로 예상됩니다. 구글에서 자사 검색 서비스에 BERT를 적용한 사례에서처럼 말이죠.
아울러 BERT를 상용화하는 데 수많은 과제를 해결하는 연구도 한층 더 활발할 것으로 보입니다. BERT를 분석한 각종 논문을 살펴보면, 어떤 데이터를 얼마나 사용해야 하는지, 어떻게 하면 모델을 효과적으로 훈련할 수 있을지, 어떻게 해야 편향과 아티팩트에도 흔들리지 않는 견고한 모델을 만들 수 있을지 등이 꾸준히 언급되고 있는 게 바로 그 증거죠. 최신 벤치마크에서 최고의 성능을 달성한 거대한 모델이 연속해서 탄생한 가운데, 각 모델이 무엇을 이해하지 못하는지, 그리고 이를 보완할 방법에는 무엇이 있는지 등을 살펴보는 연구 역시 중요한 축에 해당할 것으로 보입니다. 더 잘 이해하는 모델인지를 평가하고자 SuperSuperGLUE와 같은 최신 벤치마크도 탄생하겠죠.
최요중 연구원은 “2012년 이미지넷 혁신에 비견할 만한 수준의 기술 발전이 NLU에도 찾아왔다. 이제는 영리한 한스 효과를 거론하며 실제 모델이 인간의 말을 이해하는지를 검증하려는 단계까지 와 있는 상태”라며 “앞으로도 단순히 벤치마크에서의 최신 성능을 달성하는 모델을 만드는 수준을 넘어서 인간이 마주할 수 있는 현실 속 문제를 푸는 데 집중한 NLU 모델을 만드는 데 집중하는 연구로 이어질 것으로 보인다”고 말했습니다.
👏음성 및 자연어 처리 분야 리서치 사이언티스트・리서치 엔지니어 모집 영입공고 : https://kakaobrain.com/career