기존의 단어 임베딩은 문맥을 고려하지 않고 같은 단어에는 하나의 벡터를 할당했습니다. 단어는 등장하는 맥락에 따라 미묘하게 의미가 달라질 수 있습니다. 때로는 같은 단어가 여러 의미를 갖는 경우 문장 전체의 의도가 달라질 수도 있습니다. 이런 문제점을 해결하기 위해 문맥을 고려한 단어 벡터 기술은 반드시 필요합니다. 이 논문에서는 이 개념을 최초로 도입하였습니다. 사실 문맥을 고려한 벡터는 지난 번에 리뷰한 CoVe에서 먼저 등장한 개념이긴 하지만, ELMo에서 그 기능과 의미가 좀 더 일반화되었기 때문에, 보통 최초라고 여겨지는 것 같습니다. 그럼 구체적으로 ELMo가 무엇인지 Deep contextualized word representations 논문을 리뷰하며 정리해보겠습니다. 번역을 통해 오히려 이해가 어려워지거나, 원문의 표현을 사용하는 게 원래 의미를 온전히 잘 전달할 것이라고 생각하는 표현은 원문의 표기를 따랐습니다. 오개념이나 오탈자가 있다면 댓글로 지적해주세요. 설명이 부족한 부분에 대해서도 말씀해주시면 본문을 수정하겠습니다.
1. Overview
사전 학습된 단어 표현(Pre-trained word representations)은 여러 NLP문제를 푸는 딥러닝 모델의 핵심 요소입니다. 하지만 단어 벡터가 고차원적인 의미를 학습하는 것은 정말 어렵습니다. 이러한 벡터는 의미론, 구문론에서와 같은 단어의 복잡한 성질 뿐만 아니라 단어가 여러 맥락에서 어떻게 다른 의미를 갖는지까지 모델링해야 합니다. 논문에서는 이 두 문제를 해결할 수 있고 기존 모델에도 쉽게 통합할 수 있는 새로운 형태의 deep contextualized word representation을 제안합니다. 이 단어 표현을 사용한 모델은 여러 어려운 자연어 이해 태스크에서도 눈에 띄는 성능 향상을 보였습니다.
제안된 word representations은 기존의 방식들과는 다르게 각 토큰에 할당된 벡터가 입력 전체에 대한 함수입니다. 이러한 벡터는 대규모 말뭉치를 사용하여 coupled language model objective로 학습한 양방향 LSTM에서 유래하여, Embeddings from Language Model, 줄여서 ELMo라고 부릅니다. 여기서 couled objective는 순방향과 역방향 LSTM의 train objective를 모두 포함함을 의미합니다. ELMo representations은 biLM(bidirectional Language Model)의 모든 레이어에 대한 함수라는 점에서 deep하다고 표현합니다. 좀 더 구체적으로는 각 입력 단어에 대하여 쌓인 벡터의 선형 결합을 학습하여 representations을 만들기 때문에 제일 상단의 층만 사용하는 단어 표현보다 성능이 훨씬 뛰어납니다.
논문에서는 internal states라고 표현하는데, 이렇게 LSTM의 각 층에서 얻은 벡터를 결합하는 방식은 더 풍부한 단어 표현을 만듭니다. 실험을 통해서 LSTM의 상위 층에서는 문맥과 관련된 단어의 의미를 잘 포착하고, 하위 층에서는 단어 자체의 의미를 잘 파악한다는 것을 입증하였습니다. LSTM의 모든 층의 신호를 사용하면 학습된 모델이 최종적으로 수행하는 작업에서 가장 유용한 정보를 선택할 수 있어 기존의 방식보다 성능이 우수합니다.
2. Related Work
사전학습된 단어 벡터는 레이블이 없는 대규모의 데이터에서 의미론, 구문론적 정보를 이해할 수 있다는 점에서 매우 유용하며, 여러 NLP 태스크에서 뛰어난 성능 향상을 불러왔습니다. 하지만 기존의 방법은 문맥과 관계없이 하나의 단어에 고정된 벡터를 할당합니다.
이런 문제를 해결하기 위해서 subword information을 사용하여 단어 벡터를 만들거나 각 단어에 대해 별도의 벡터를 학습하는 방법이 제안되었습니다. 논문에서 제안된 방법은 character convolution을 사용하여 subword unit의 이점을 활용하고, 다운스트림 태스크에서 사전에 정의된 클래스를 명시적으로 훈련하지 않고도 다운스트림 태스크의 작업에 통합되어 사용될 수도 있습니다.
또 다른 연구에서는 문맥에 의존하는 단어 표현을 학습하는 방법에 집중하였습니다. $\texttt{context2vec}$는 양방향 LSTM을 사용하여 pivot word 주변의 문맥을 인코딩합니다. CoVe는 지도학습된 신경망 기계 번역 시스템의 인코더를 사용하여 주변 맥락 뿐만 아니라 pivot word 자체의 의미도 포함하여 contextual embeddings를 학습합니다. 이 방법은 대규모 데이터셋의 이점을 사용하지만, MT 데이터셋은 parallel corpora(입력, 타겟 언어의 쌍으로 된 말뭉치)의 사이즈에 제한을 받습니다. 논문에서는 하나의 언어만을 사용하는(monolingual) 데이터를 활용하여 biLM을 약 3천만개의 문장을 통해 학습시킵니다. 또한 이렇게 학습한 deep contextual representations는 NLP의 여러 태스크에서 일반적으로 사용될 수 있습니다.
기존 연구에서 biRNN의 각 층에서는 서로 다른 정보가 인코딩 된다는 것도 알려졌습니다. 예를 들어, Belinkov는 RNN 기반의 인코더-디코더 기계 번역 시스템에서 2개의 레이어를 가진 LSTM의 첫 번째 레이어를 사용하는 것이 두 번째 레이어를 사용하는 것보다 POS 태깅 문제를 잘 해결하는 것을 보였습니다. 저자는 ELMo 또한 비슷한 양상을 보이며 다운스트림 태스크에서는 여러 정보를 잘 혼합하여 태스크를 잘 수행할 수 있다고 하였습니다.
Dai, Le, Ramachandran의 연구에서 언어 모델과 시퀀스 오토인코더를 사용한 인코더-디코더 쌍을 사전 훈련하고 특정 태스크로 지도학습을 수행했습니다. 하지만 논문에서는 레이블이 없는 데이터로 biLM을 사전학습한 후 가중치를 고정하고 태스크에 특화된 모델을 추가하였습니다. 이를 통해 다운스트림 태스크의 학습 데이터의 크기에 따라 더 작은 모델을 사용해야 하는 경우, 더 풍부하게 학습된 biLM의 단어 표현을 활용할 수 있습니다.
3. ELMo
널리 사용되는 단어 임베딩과 달리 ELMo의 단어 표현은 입력 문장에 대한 함수입니다. 이 값은 character convolution과 두 개의 레이어를 가진 biLM의 최상층에서 internal network states의 선형 함수를 사용하여 계산됩니다. 이런 아키텍처는 biLM을 대규모 데이터로 사전학습하고, 기존에 존재하는 다양한 NLP 아키텍처에 손쉽게 통합되어 준지도 학습(semi-supervised learning)이 가능하도록 해줍니다.
3.1 Bidirectional language models
$N$개의 토큰의 시퀀스 $(t_1, t_2, \dots, t_N)$가 주어졌을 때 순방향 언어 모델은 다음과 같이 현재까지의 출력 $(t_1, \dots, t_{k-1})$이 주어졌을 때 다음 토큰 $t_k$가 등장할 확률을 모델링합니다.
당시 SOTA 언어 모델은 문맥과 무관한 토큰의 표현 $\mathbf x_k^{LM}$을 계산하고, 이를 $L$개의 레이어를 가진 LSTM에 통과시킵니다. 각 위치(position) $k$에서 각 LSTM 레이어는 문맥에 의존하는 표현 $\mathbf{\overrightarrow h}^{LM}{k,j}$를 출력으로 내놓습니다. 여기서 $j=1,\dots,L$입니다. LSTM의 최상위 레이어의 출력 $\mathbf{\overrightarrow h}^{LM}{k,L}$는 소프트맥스 레이어와 함께 다음 토큰 $t_{k+1}$를 예측하는 데 사용됩니다.
역방향 LM은 시퀀스를 역순으로 참조한다는 것을 제외하면 순방향 LM과 비슷합니다. 어떤 단어 이후의 문맥이 주어졌을 때 다음과 같이 그 이전 단어를 예측합니다.
그렇다면 위와 마찬가지로 $L$개의 레이어를 가진 역방향 LSTM의 $j$번 레이어는 토큰 $t_k$에 대해 $\mathbf{\overleftarrow h}^{LM}_{k,L}$를 생성합니다. biLM은 순방향과 역방향 LM을 통합합니다. 논문에서는 다음과 같이 순방향과 역방향의 로그 가능도(log likelihood) 함께 최대화하는 공식을 사용합니다.
토큰 표현 $\Theta_x$와 소프트맥스 레이어 $\Theta_s$의 파라미터는 순방향, 역방향에서 함께 사용되었고, 방향에 따른 LSTM의 파라미터만 별도로 유지하였습니다.
3.2 ELMo
ELMo는 biLM의 내부 레이어 표현을 태스크에 특화하여 결합한 것입니다. 원문으로는 task specific combination of the intermediate layer representations in the biLM이라고 되어있습니다. 즉 biLM의 각 레이어의 표현과 다운 스트림 태스크에서 지도 학습된 정보를 잘 혼합한 contextualized representations이 바로 ELMo입니다.
각 토큰 $t_k$에 대하여 $L$-레이어 biLM은 다음과 같이 $2L+1$개의 벡터 표현을 계산합니다.
$\mathbf h^{LM}{k,0}$은 토큰 레이어이며, biLSTM의 각 레이어에서 $\mathbf h^{LM}{k,j}=[\mathbf{\overrightarrow h}^{LM}{k,j};\mathbf{\overleftarrow h}^{LM}{k,j}]$입니다.
다운스트림 모델에 포함하기 위해서 ELMo는 $R$의 모든 레이어를 하나의 벡터 $\mathbf{ELMo}{k}=E(R{k};\mathbf{\Theta}{e})$로 만듭니다. TagLM이나 CoVe에섣와 같이 쉬운 방법은 단순히 최상위 레이어를 선택하여 $E(R{k})=\mathbf{h}^{LM}_{k,L}$와 같이 나타내는 것이겠지만, 조금 더 일반적으로는 다음과 같이 biLM 레이어에 가중치를 부여하여 태스크에 특화된 표현을 계산합니다.
수식 (1)에서 $\mathbf s^{task}$는 소프트맥스-정규화된 가중치이며 scalar 파라미터 $\gamma^{task}$를 통해 task model과 ELMo 벡터의 스케일이 조정됩니다. $\gamma$는 최적화 단계에서도 중요합니다. 각 biLM 레이어의 출력이 다른 분산 표현을 갖는 다는 것을 고려할 때, 때로는 $\gamma$가 레이어 정규화의 역할을 할 수도 있습니다.
3.3 Using biLMs for supervised NLP tasks
사전 학습된 biLM과 지도학습된 아키텍처가 주어지면 biLM을 사용하여 태스크 모델의 성능을 개선하는 것은 어렵지 않습니다. 단순히 biLM을 사용하여 각 단어에 대한 모든 레이어의 벡터 표현을 기록합니다. 그리고 end task model이 이 표현들의 선형 결합을 학습하게 합니다. 구체적인 과정은 다음과 같습니다.
먼저 biLM이 없는 supervised model의 가장 아래에 있는 레이어를 생각해보겠습니다. 대부분의 지도학습된 NLP 모델(supervised NLP model)의 가장 하위 레이어는 공통된 아키텍처를 사용하기 때문에, ELMo를 모두 같은 방법으로 추가할 수 있습니다. 일반적으로 토큰 시퀀스 $(t_1, \dots, t_N)$이 주어졌을 때 사전 학습된 단어 임베딩과 선택적으로 character-based representations을 사용하여 각 위치의 토큰에 대한 문맥과 무관한 토큰 표현 $\mathbf x_k$를 생성합니다. 그리고 모델은 양방향 RNN, CNN, 또는 피드포워드 신경망을 사용하여 문맥에 민감한(context-sensitive) 표현 $\mathbf h_k$를 만듭니다.
Supervised model에 ELMo를 추가하기 위해서, 먼저 biLM의 가중치를 동결(freeze)하고, ELMo 벡터 $\mathbf{ELMO}_k^{task}$와 $\mathbf x_k$를 연결(concatenate)합니다. 그리고 이렇게 연결된 ELMo enhanced representaion인 $[\mathbf{ELMO}_k^{task};\mathbf x_k]$를 task RNN에 통과시킵니다. SNLI나 SQuAD 같은 일부 태스크에서는 출력에도 ELMo를 포함하여 $\mathbf h_k$를 $[\mathbf h_k;\mathbf{ELMO}_k^{task}]$로 대체하면 성능이 한층 더 개선됨을 발견하였습니다. Supervised model의 다른 부분은 변하지 않기 때문에 이러한 추가 작업은 더욱 복잡한 모델에도 적용할 수 있습니다.
마지막으로 ELMo에 드롭아웃을 적절히 추가하고, 일부 경우에는 $\lambda | \mathbf w|^2_2$를 손실 항에 추가하여 ELMo 가중치를 규제하면 더욱 효과적인 것을 발견하였습니다. 이렇게 하면 inductive bias가 적용되어 ELMo 가중치가모든 biLM 레이어의 평균에 가깝게 유지됩니다.
3.4 Pre-trained bidirectional language model architecture
논문의 사전학습된 biLM은 Józefowicz의 아키텍처와 비슷하지만 양방향 학습이 함께 이루어지고, 잔차 연결(residual connection)이 추가되었습니다. 순수한 character-based input representation를 유지하면서 언어 모델의 전반적인 perplexity와 모델 크기, 다운스트림 태스크에서의 연산량에 대한 균형을 맞추기 위해, 최고의 단일 모델인 $\texttt{CNN-BIG-LSTM}$의 임베딩과 은닉 차원을 절반으로 줄여 사용하였습니다.
최종적인 모델은 레이어를 $L=2$개 가진 biLSTM이며 4096 hidden unit과 512 dimension projections, 첫 번째와 두 번째 레이어 사이에 잔차 연결을 갖습니다. 즉 4096차원의 셀이 512차원으로 투영되며 두 LSTM 레이어 사이에는 residual connection이 적용됩니다. Context insensitive type represtation은 두 개의 highway layers가 따라붙는 2048 character n-gram convolutional filter을 사용하고, 선형 레이어를 거쳐 512차원으로 투영됩니다. 학습 데이터 외에 순수하게 단어 자체에 대한 정보를 가진 벡터를 포함하여, 결과적으로 biLM은 각 입력 토큰에 대해 세 개의 벡터 표현을 제공합니다. 1B Word Benchmark를 사용하여 10 에포크 훈련한 후 순방향과 역방향의 평균 perplexity는 39.7이었습니다. 참고로 $\texttt{CNN-BIG-LSTM}$의 perplexity는 30입니다.일반적으로 순방향과 역방향의 perplexity는 거의 동일하지만, 역방향이 조금 더 낮았습니다.
한번 훈련되면 biLM은 어떤 태스크에서든 단어 표현을 계산할 수 있습니다. 일부 경우에는 biLM을 도메인에 특화된 데이터로 훈련하면 perplexity가 눈에 띄게 낮아졌고 다운스트림 태스크 성능도 크게 향상되었습니다. 이는 biLM의 도메인 전이(domain transfer)라고 볼 수 있습니다.
4. Evaluation
아래 표는 ELMo의 여러 NLP 분야 벤치마크에서의 성능입니다. 모든 태스크에서 단순히 ELMo를 추가한 것만으로 6~20% 정도의 에러율을 줄이며 SOTA(state-of-the-art result)에 달성하였습니다. 각 태스크와 벤치마크에서 대해서 조금 더 알아보겠습니다.
Question answering
The Standard Question Answering Dataset(SQuAD)는 크라우드 소싱을 통해 수집한 10만 개 이상의 위키피디아 문서 기반 질문 답변 쌍 데이터입니다. 베이스라인 모델은 Bidirectional Attention Flow model(BiDAF)를 개선한 모델입니다. 이 모델은 풀링 연산을 단순화하고 LSTM 레이어를 GRU로 교체하고, 양방향 어텐션 컴포넌트(bidirectional attention component)에 셀프 어텐션 레이어를 추가하였습니다. 이 베이스라인에 ELMo를 추가하여 기존에 비해 $\textrm{F}_1$ 점수가 4.7% 향상되었고, 베이스라인에 CoVe를 더한 모델보다 1.8% 성능이 개선되었습니다.
Textual entailment
추론(entailment)은 어떤 전제(premise)가 주어졌을 때, 가설(hypothesis)가 참인지를 결정하는 문제입니다. 55만개의 데이터를 가진 The Standard Natural Language Inference(SNLI)를 사용하였습니다. 베이스라인은 biLSTM을 사용하여 전제와 가설을 인코딩하고 행렬 어텐션 레이어(matrix attention layer), local inference layer, 그리고 또 하나의 biLSTM inference composition layer로 이루어진 ESIM 모델을 사용하였습니다. ELMo를 추가하고 서로 다른 랜덤 시드로 5번의 실험을 하였고, 평균적으로 0.7%만큼 성능이 향상되었습니다.
Semantic role labeling
SRL 시스템은 predicate-argument을 모델링합니다. 구체적으로는 누가 누구에게 무엇을 하였는지를 모델링합니다. He의 연구에서는 8-레이어 biLSTM을 사용하여 SRL을 BIO 태깅 문제로 모델링하였습니다. OntoNotes 벤치마크에서 ELMo를 추가한 단일 모델 성능이 3.2% 향상되었고, 앙상블 모델과 비교하여도 1.2% 만큼 성능이 향상되었습니다.
Coreference resolution
상호참조 해결은 텍스트에서 같은 것을 가리키는 서로 다른 개체를 묶는 태스크입니다. 베이스라인 모델은 biLSTM과 어텐션 메커니즘을 사용하여 span representations을 계산하고 소프트맥스를 적용하여 coreference chain을 찾는 mention ranking model로 이루어졌습니다. CoNLL 2012의 OntoNotes coreference 벤치마크에서 ELMo를 추가하여 3.2%만큼 성능이 향상되었고, 앙상블 모델보다도 성능이 1.6% 향상되었습니다.
Named entity recognition
CoNLL 2003 NER 태스크는 네 가지 엔티티 유형($\texttt{PER, LOC, ORG, MISC}$)으로 태그된 Reuters RCV1 말뭉치입니다. 베이스라인 모델은 charcted-based CNN representations으로 사전 학습된 모델이며, 두 개의 biLSTM 레이어와 conditional random field(CRF) loss를 사용하였습니다. 여기서 CRF는 시퀀스 라벨링에 사용되는 확률적 그래프 모델입니다. CRF는 입력 시퀀스에 대한 라벨의 시퀀스를 예측하는 일종의 방향이 없는 그래프라고 생각할 수 있습니다. 이를 NER이나 POS 태깅에 적용하면, CRF는 각 단어에 대한 라벨을 예측합니다. 각 단어에 대해 독립적으로 라벨을 예측하는 분류기와 다르게 CRF는 단어가 나타나는 문맥을 고려합니다. 따라서 인접한 단어의 레이블을 고려하여 레이블의 시퀀스를 생성합니다. 앞서 언급한 CRF loss란 이런 모델을 훈련시킬 때 사용한 손실을 의미합니다. ELMo는 다섯 번의 실험에서 biLSTM-CRF의 성능을 향상시켰습니다. 이전 SOTA 모델이 biLM의 최상층만을 사용했다는 것과 다르게 논문의 모델은 biLM의 모든 레이어의 가중치의 평균을 학습하였습니다.
Sentiment analysis
Standford Sentiment Treeback(SST-5)는 영화 리뷰에 대하여 매우 부정에서 매우 긍정까지 다섯 개의 레이블을 예측하는 문제입니다. 각 문장은 속담이나 모델이 학습하기 어려운 부정 표현 등 다양한 언어학적 현상을 포함하고 있습니다. 베이스라인 모델은 biattentive classification network(BCN)이며, CoVe 임베딩을 사용한 SOTA 모델이었습니다. 베이스라인에서 CoVe를 ELMo로 교체하여 정확도가 1.0%만큼 향상되었습니다.
5. Analysis
저자는 ELMo representations에 대한 ablation study를 진행하였습니다. biLM, MT 인코더, ELMo 중 어떤 것을 사용하든 deep contextual representations를 다운스트림 태스크에서 사용할 때 성능이 향상됨을 증명하였습니다. 그리고 biLM의 상위 레이어와 하위 레이어에서 각각 어떤 문맥을 학습하는지를 연구합니다.
5.1 Alternate layer weighting schemes
biLM 레이어를 결합하는 과정에서 다음 수식의 여러 대안이 있습니다. biLM, MT 인코더, CoVe등을 사용한 이전 연구에서는 단순히 biLM의 마지막 레이어 출력만을 사용하였습니다. 규제 파라미터 $\lambda$ 또한 중요한데, $\lambda=1$와 같이 값이 크게 설정되면 가중치 함수가 단순히 각 레이어의 출력의 평균을 계산하지만, $\lambda=0.001$과 같이 작은 값을 사용하면 레이어 가중치가 다양해집니다.
아래 표는 이 값을 다르게 했을 때에 대한 실험 결과입니다. 각 베이스라인에 마지막 레이어의 contextual representations을 더하기만 하여도 성능이 향상됩니다. biLM의 각 레이어의 출력을 평균내어 사용하면 성능이 추가로 0.3% 향상되고, $\lambda$를 다르게 했을 때는 성능이 또 다시 0.2% 향상되었습니다. ELMo를 사용하는 대부분의 경우 $\lambda$의 값을 작게 하는 것이 더 좋은 결과를 보입니다.
5.2 Where to include ELMo?
논문에서 수행한 모든 태스크의 아키텍처에서는 biRNN의 가장 하위 레이어의 입력으로 단어 임베딩을 사용하였습니다. 하지만 ELMo를 biRNN의 출력에 사용하면 일부 태스크에서는 성능이 향상되는 것을 발견하였습니다. 아래표와 같이 SNLI와 SQuAD에서는 ELMo를 입력과 출력에 모두 사용할 경우, 입력 레이어에만 사용할 때보다 성능이 더 좋았습니다. 반면 SRL에서는 입력 레이어에만 사용할 때 성능이 가장 좋았습니다. 저자는 이에 대한 해석으로 SNLI와 SQuAD 아키텍처에서는 biRNN 다음에 어텐션 레이어가 위치하는데, 어텐션 레이어가 ELMo가 추가된 biLM의 내부 표현에 집중(attend)하기 때문이라고 하였습니다. 반면 SRL은 태스크와 관련된 context representations이 biLM의 representations보다 중요하게 여겨지기 때문에 성능이 향상되지 않습니다.
5.3 What information is captured by the biLM’s representations?
단어 벡터를 단독으로 사용하는 것보다, ELMo를 추가하면 태스크 성능이 향상되기 때문에 biLM의 contextual representations은 단어 벡터는 포착하지 못한 NLP 태스크에 일반적으로 유용한 정보를 잘 인코딩할 것입니다. 직관적으로 biLM이 문맥을 사용하여 의미의 모호함을 해소했음을 알 수 있습니다. 예를 들어 play라는 단어는 여러 의미(polysemous)를 갖습니다. 아래 예시와 같이 GloVe에서는 play라는 단어가 활용된 여러 상황과 가깝게 놓이기는 하지만, 대부분의 경우 스포츠와 관련되어 있습니다. 반면 biLM의 context representation는 형태소 뿐만 아니라 문맥까지 고려하여 이웃한 텍스트를 분류할 수 있습니다.
Word sense disambiguation
문장이 주어지면 1-nearest neighbor approach를 사용하여 타겟 단어의 의미를 예측할 수 있습니다. 이 과정에서 biLM representations가 사용됩니다. 이를 위해서 먼저 biLM은 모든 단어의 representations을 계산하고 각 의미에 대한 평균을 구합니다. 테스트에서는 다시 biLM을 사용하여 주어진 타겟 단어에 대한 representation을 계산하고, 훈련 데이터에서 가장 가까운 의미(nearest neighbor sense)를 가져오고, 훈련 중에 관찰되지 않은 lemma 의 경우 원래 의미를 사용합니다. 아래 표는 WSD에 대한 결과입니다. biLM의 최상위 레이어를 사용한 경우 전반적으로 성능이 더 좋습니다.
POS tagging
biLM이 기본적인 구문을 이해하는지 평가하기 위해서 저자는 POS 태그를 예측하는 선형 분류기의 입력으로 context representation을 사용하였습니다. 선형 분류기는 모델 전체 중 일부만을 차지하기 때문에, 이 작업은 biLM representation을 평가하는 것과 같습니다. 여기서는 WSD와 다르게 biLM의 첫 번째 레이어를 사용할 때 정확도가 더 높습니다
Implications for supervised tasks
두 결과를 종합하면 biLM의 각 레이어가 서로 다른 정보를 표현하고 다운스트림 태스크에서 모든 레이어의 representations를 포함하는게 왜 중요한지를 보여줍니다. 추가로 biLM의 representation이 CoVe보다 더욱 전이가 잘 되며(transferable), 왜 ELMo가 CoVe보다 성능이 좋은지를 확인할 수 있습니다.
5.4 Sample Efficiency
ELMo를 추가하는 것은 학습 데이터의 규모 뿐만 아니라 SOTA 모델이 되기 위해 추가해야 하는 파라미터의 개수면에서도 상당히 도움이 됩니다. 예를 들어 ELMo 없이 훈련한 SRL 모델은 486 에포크 이후에 F1 점수가 가장 높았습니다. 반면 ELMo를 추가하면 10 에포크만 학습하여도 베이스라인의 성능을 넘어섭니다. 게다가 ELMo를 추가한 모델은 아래 그림과 같이 적은 훈련 세트에서도 큰 학습 효율을 보입니다. SRL에서 학습 데이터의 1%만을 사용한 ELMo 모델이 같은 데이터의 10%를 사용한 베이스라인 모델과 같은 성능을 보임을 확인할 수 있습니다.
5.5 Visualization of learned weights
아래 그림은 소프트맥스-정규화된 레이어 가중치입니다. 입력 레이어에서, 태스크 모델은 biLSTM의 첫 번째 레이어를 선호합니다. SQuAD와 coreference에서 특히 이런 현상이 뚜렷하게 보입니다. 출력 레이어에서는 비교적 고른 편이지만, 일반적으로 하위 레이어를 선호하는 경향이 있습니다.
6. Conclusion
논문에서는 biLM을 사용하여 문맥에 의존하는 표현(deep context-dependent representation)을 학습하는 일반적인 접근법을 제안하고, ELMo를 적용한 다양한 NLP 태스크에서 성능이 크게 향상됨을 입증하였습니다. Ablation을 통해 biLM 레이어가 효과적으로 의미(semantic)와 구문(syntactic)에 대한 정보를 인코딩하고, 모든 레이어를 사용하는 게 전반적인 태스크 성능을 향상한다는 것을 발견하였습니다.
7. Further Thinking
이름부터 Deep contextualized word representations인 이 논문은 문맥을 고려한 벡터의 시초라고 여겨질 만합니다. CoVe도 비슷한 개념을 제안했지만, 제가 이해한 바로는 CoVe는 기계 번역 태스크에서 문맥을 고려한 단어의 의미를 학습하고, 이를 전이학습을 통해 다른 태스크에서 사용하지만 일반화 면에서는 ELMo에 미치지 못하는 것 같습니다. CoVe 논문에서는 각 태스크를위한 모델 아키텍처를 새롭게 설계하였지만, ELMo는 단순히 biLSTM representations을 베이스라인 모델의 입력과 출력단에 연결하여 사용됩니다. 물론 이 부분도 BERT에서는 일반화를 문제삼아 조금 더 개선되는 것으로 알고 있지만, CoVe와 비교하면 일반화 정도가 훨씬 뛰어나 보이는 것은 사실입니다. 게다가 ELMo는 Semi supervised learning을 도입하여 학습 데이터 문제도 어느 정도 해결하였습니다. CoVe는 NLP 태스크 중에서는 비교적 많은 데이터를 확보한 MT 데이터를 사용하여 contextualized representation을 학습하지만 이는 여전히 지도학습을 사용한 것입니다. 반면 ELMo는 레이블이 없는 monolingual 데이터를 사용합니다. 이런 점에서 왜 CoVe가 아닌 ELMo가 최초의 deep contextualized representation을 제안한 논문이자 모델로 여겨지는지 알 것 같습니다. 다만 논문에서는 조금 의아하게도 ELMo 아키텍처에 대한 그림이 없어서 실제로 biLSTM과 다운 스트림 태스크의 베이스라인이 어떻게 연결되어 있는지에 대해서 조금 더 알아봐야 할 것 같습니다.
댓글