AI 트렌드
2018-2020 NLU 연구 동향을 소개합니다
2020/02/26 by 이수경, 최요중

자연어처리(natural language processing, NLP) 분야의 핵심 과제로 자연어이해(natural language understanding, NLU)와 자연어생성(natural language generation, NLG)을 꼽아볼 수 있습니다. NLU는 자연어 형태의 문장을 이해하는 기술을 가리킵니다. NLG는 자연어 문장을 생성하는 기술을 말하죠. 다시 말해 NLU와 NLG는 사람과 기계, 그리고 기계 간 사람이 자연어로 소통하는 데 필요한 기술이라고 보면 됩니다.

[ 그림 1 ] 자연어처리는 크게 자연어이해와 자연어생성으로 나눠볼 수 있다. © 최요중 카카오브레인 연구원

본격적으로 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 연구 트렌드에 대한 내용을 다뤄보고자 합니다. 카카오브레인에서 자연어처리 연구를 담당하고 있는 최요중 연구원을 만나 자세한 이야기를 들어봤습니다.


2018-2019 : 언어 모델의 폭발적 성장

언어 모델이 사람의 말을 얼마나 잘 이해하는지는 어떻게 평가해볼 수 있을까요? 앞에서 설명한 대로, 언어를 이해한다는 행위는 구체적으로 정의하기도, 검증하기도 어렵습니다. 이에 전문가들은 [표 1]에서 제시된 것처럼 정답이 명확하게 주어진 여러 문제를 고루 잘 푸는 모델을 기준으로 삼았습니다. 다양한 과제를 잘 수행한다면 나중에 비슷한 종류의 새로운 데이터에서도 잘 작동한다고 가정했습니다.

[ 표 1 ] 자연어이해의 대표 과제와 예시 © 최요중 카카오브레인 연구원

언어 모델의 성능 평가에는 GLUESuperGLUE라는 벤치마크가 주로 활용됩니다. 기존 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개의 단어)을 고려할 수 있습니다.

[ 그림 3 ] ElMo와 GPT, BERT의 아키텍처를 도식화한 그림 © Google

문제는 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가지 태스크)


최신 NLU 연구가 지닌 한계

구글에 "키아누 리브스는 기혼자인가요(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개의 범주로만 분류하는 과제 특성에 기인한 것으로 보입니다.

[ 그림 8 ] 자연어 추론 과제에서의 영리한 한스 효과 예제 (출처 - 1 2 3 4)

정리하자면, 실험 데이터에 존재하는 편향(bias)이나 아티팩트(artifact)[19]와 같은 피상적인 단서를 익힌 모델에는 현실 문제를 제대로 풀지 못하는 맹점이 있을 수 있습니다. 현실의 다양한 데이터를 활용한 추가학습을 하지 않은 이상 BERT 이후의 모델의 정확도는 25% 수준에 그치고 말죠. 하지만 그렇다고 해서 지금보다 더 나은 문제 정의 방식에 대해서도 그 누구도 이렇다 할 명쾌한 해답을 제시할 수 없다는 게 현실입니다. ‘BERT는 과제를 푼 게 아니다. 벤치마크를 달성한 것이다(solves benchmarks, not TASKs)’라는 표현이 나오는 건 바로 이 때문입니다.

물론 언어 모델은 사전 학습만으로도 외부 지식(external knowledge)을 일부 습득할 수는 있습니다. 언어 모델 그 자체를 지식 베이스의 일종이라고 볼 수 있다고 한 'Language Models as Knowledge Bases?'라는 논문이 바로 그 근거입니다. 좀 더 쉽게 말하면, 키아누 리브스에 관한 최신 기사를 학습한 모델이라면 키아누 리브스에 관한 모든 정보를 알고 있을 수도 있다는 의미죠. 하지만 NLU에서 언어학적 지식 습득에 주안을 두는 언어 모델이 외부 지식 습득에는 한계가 있을 수밖에 없습니다. 그러므로 좀 더 다양한 곳에서 활용할 수 있는 NLU 모델을 만들기 위해서는 외부 지식을 언어 모델에 내재화하거나, 따로 저장한 외부 지식을 활용하는 학습 메커니즘이 도입되어야 할 것으로 보입니다.


2020년 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


참고
[1] 영국의 수학자 겸 컴퓨터공학자인 앨런 튜링(Alan Turing)이 고안했다. 한 공간에 격리된 사람이 서신을 통해 사람과 컴퓨터와 대화를 주고받았을 때 그 둘을 구분하지 못하면 시험을 통과한다.
[2] 튜링 테스트로 기계에 지능이 있음을 판정할 수 없다는 것을 보여주고자 존 설(John Searle)이 고안한 사고 실험이다. 중국어로 수많은 질문과 답변을 적어 놓은 책방이 있다고 보자. 중국어를 하나도 할 줄 모르는 사람도 비슷한 모양의 문자열 질문을 찾아 그에 맞는 답을 찾아낼 것이다. 그렇다고 해서 이 사람이 중국어를 안다고 볼 수는 없을 것이다. 존 설은 이 실험을 토대로 기계 또한 단순 명령을 실행하는 알고리즘과 설계에 따를 뿐, 어떤 의미를 이해하고 행동하는 것은 아니기에 진정한 지능이라고 볼 수 없다고 주장했다.
[3] 1000개 종류의 일반 사물 이름으로 라벨링한 128만 1167장의 이미지 데이터셋
[4] 언어라는 현상을 모델링하고자 특정 단어 시퀀스(또는 문장)에 확률을 할당하는 모델
[5] 사전학습 단계에서 BERT가 제안한 언어모델링뿐만 아니라 GLUE의 여러 과제도 학습한 모델
[6] long short term memory의 약자. RNN의 셀(cell)을 세 가지 게이트로 구성된 메모리 블록(memory block)으로 대체한 구조를 가리킨다. 이전 상태에서 넘어온 새로운 정보를 얼마나 반영할지(output gate), 어떤 정보를 얼마나 입력할지(input gate), 어떤 정보를 얼마나 출력할지(forget gate)를 가중치를 통해 결정한다. 이는 가장 기본적인 구조이며, 모델마다 그 구조가 조금씩 다르다.
[7] 연속된 입력 데이터. 문장은 문법과 같은 규칙을 따르는 일련의 단어 집합이라는 점에서 시퀀스의 대표적인 사례라고 볼 수 있다.
[8] 단어를 임베딩 벡터로 표현하는 하나의 방법이다. 같은 맥락에 놓인 단어는 가까운 의미를 가진다는 가정하에, 한 단어와 함께 출연하는 단어를 가까운 벡터 공간에 표현한다.
[9] 컨볼루션(convolution)이나 순환(recurrence) 기법 대신, 모든 단어가 현재 결과에 기여하는 정도를 반영할 수 있도록 각 입력 단어가 출력 상태에 연결하는 어텐션(attention) 신경망 구조를 활용한 모델이다. 어텐션을 이용해 거리가 먼 단어 간의 관계를 효과적으로 표현이 가능한 덕분에 학습 성능이 좋아졌다.
[10] 특징을 표현하는 차원을 가진 벡터
[11] 좀 더 자세히 설명하자면 다음과 같다. 문장을 구성하는 단어 15% 중 1)80%에는 [mask]를 씌운다, 2)10%는 임의의 단어로 바꾼다, 3)10%는 그대로 둔다. RoBERTa를 비롯한 이후 발행된 논문에서는 전체 문장을 구성하는 단어 15%에 일괄적으로 [mask]를 적용한다.
[12] RNN 기반 seq2seq 아키텍처상에서 입력받은 문장의 이전 문장과 이후 문장을 생성하는 방법을 학습하는 문장 임베딩 모델
[13] 기계 독해 능력을 평가하기 위한 벤치마크 중 하나. 1.1 버전과 2.0 버전이 있으며, 2.0 버전에는 지문에 직접적인 답이 언급되지 않은 문제가 추가돼 있다. BERT는 1.1 버전에서 인간 수준을 뛰어넘는 최고 성능을 달성했다. 이후 등장한 BERT 기반 모델과 XLNET은 2.0 버전에서 인간 수준을 뛰어넘는 최고 성능을 달성했다.
[14] 텍스트에서 추출한 토큰 순서대로 번호를 매겨 둔 데이터베이스
[15] 만약 30,000개의 단어를 1,024차원의 임베딩 벡터로 표현하면 모델의 총 매개변수 수는 30,720,000개(1024*30,000)나 된다. 하지만 본문의 방식을 적용하면 3,971,072개(30,000*128+128*1024)로 대폭 줄어든다.
[16] NSP에서는 두 문장이 같은 주제에 관한지를 판단하는 주제 예측 문제에 가깝다. 이에 저자는 자신들이 제안한 SOP를 통해 두 문장의 연관 관계를 더 잘 표현할 수 있다고 판단한 것으로 보인다. SOP의 학습 데이터는 순서를 따르는 두 문장(positive example)과 순서를 뒤바꾼 문장(negative example)으로 구성돼 있다.
[17] 단어 시퀀스를 입력받아 임베딩 벡터를 생성하고, 이 벡터를 이용해 또 다른 단어 시퀀스를 생성하는 인코더-디코더 구조의 모델
[18] 20세기 초 독일에서 화제가 된 ‘한스’라는 말은 4 곱하기 3을 물어보면 발을 열두 번 구르는 식으로 산수 문제를 푸는 영리한 말로 유명했다. 이후 한스가 답을 맞히는 방식이 밝혀졌다. 한스는 산술을 잘하는 말이 아니었다. 그저 그 자리에 있었던 사람들의 표정과 반응의 미세한 변화를 감지하는 데 뛰어난 말이었다. 이처럼 피실험자의 반응을 조종하거나 간접적으로 단서를 제시해 답을 맞히게 하는 현상을 두고 영리한 한스 효과라고 부르게 됐다.
[19] 데이터를 수집할 때 사람이 라벨링을 하는 과정에서 의도치않게 생겨나는 패턴을 총칭한다.
[20] https://arxiv.org/abs/1908.06725 (AMS)
[21] https://arxiv.org/abs/1909.05311 (Graph-Based Reasoning)
[22] ‘민수는 애완동을 가지고 싶었다’→’민수는 고양이를 입양했다’라는 예제에서 보듯이 이벤트 간의 자연스러운 선후 관계 또는 인과 관계 등을 그래프로 표현해 언어 모델의 추론 능력을 높이는 방법이 연구되고 있다.
[23] 사전학습된 BERT 모델의 자연어이해 성능을 유지하면서도 모델 크기를 ¼ 이상 축소 해 모바일 환경에서 사용할 수 있도록 만든 모델
[24] 검색(retrieval)과 같은 응용 분야에서는 많은 양의 문서에 대한 임베딩 벡터를 미리 계산해두어야 주어진 쿼리와 빠르게 비교할 수 있다. 그런데 기존의 BERT는 비교 대상(검색어와 문서)을 동시에 입력해야지만 유사도를 측정할 수 있다. 만약 1억 건의 문서가 있다면, 검색어와 문서를 각각 1억 개의 쌍으로 구성해 모델에 입력해야 한다는 의미다. 이런 비효율적인 문제를 해결하고자 1억 건의 문서를 미리 임베딩 벡터로 구현해두고, 새로운 검색어에 대해서만 임베딩 벡터를 생성해 두 벡터를 비교하는 방식이 바로 SentenceBERT다.
이 글을 쓴 사람들
samantha.lee
이수경 | 작성,편집
지난 2016년 3월 알파고와 이세돌 9단이 펼치는 세기의 대결을 취재한 것을 계기로 인공지능 세계에 큰 매력을 느꼈습니다. 인공지능을 알고 싶어하는 사람들을 위한 콘텐츠를 쓰고자 카카오브레인에 합류했습니다. 현재는 분야별 인공지능 전문가와 함께 기술 콘텐츠를 생산하는 재미에 푹 빠져 있습니다. 인공지능을 만드는 사람들의 이야기와 인공지능이 바꿀 미래 사회에 대한 글은 누구보다 쉽고, 재미있게 쓰는 사람이 되고 싶습니다.
yj.cheese
최요중 | 감수
수학과 컴퓨터과학을 전공하면서 머신러닝을 처음 접했습니다. 머신러닝이 무엇을, 어떻게, 왜 해결하는지에 두루 관심이 있습니다. 카카오브레인에서는 주로 딥러닝을 활용한 자연어처리 관련 연구를 진행하고 있습니다.