본문 바로가기
Paper Review/Natural Language Processing

[Paper Review] Deep contextualized word representations(2018)

by BangGeuk 2024. 1. 14.

본 글은 https://arxiv.org/abs/1802.05365 내용을 기반으로 합니다.

혹시 잘못된 부분이나 수정할 부분이 있다면 댓글로 알려주시면 감사하겠습니다.


본 논문은 새로운 유형의 deep contextualized word representation을 소개한다.

deep contextualized word representation
(1) 단어 사용의 복잡한 특성(syntax and semantics)
(2) 이러한 단어가 언어적 맥락에 따라 어떻게 다른지(다의어)

 

문맥을 학습하기 위해 word vector들을 deep bidirectional language model(biLM)의 방법으로 학습한다.

이를 통해, 6가지 NLP 분야 task에서 SOTA 성능을 달성하였다.

1. Introduction

Pre-trained word representation은 NLP에서 핵심 구성 요소이다.

하지만, 높은 퀄리티의 representation을 학습하는 것을 어려운 과제이다.

높은 퀄리티의 representation을 학습하는 것은 앞서 말한 것과 같은 이유로 인하여 어렵다.

(1) 단어 사용의 복잡한 특성(syntax and semantics)

(2) 이러한 단어가 언어적 맥락에 따라 어떻게 다른지(다의어)

본 논문은 위와 같은 두 가지 과제를 직접적으로 해결하고 기존 모델에 쉽게 통합할 수 있으며 NLP 분야에서 SOTA 성능을 달성한 새로운 유형의 deep contextualized word representation을 소개한다.

 

본 논문의 방법은 전통적인 word embedding과 다르다.

Large text corpus에서 한 쌍의 언어 모델 objective로 학습된 bidirectional LSTM에서 얻은 벡터를 사용한다.

이를 ELMo(Embeddings from Language Models) representation라고 부른다.

이전 접근법과 달리 ELMo는 biLM의 모든 내부 layer에 대해 기능을 하기 때문에 deep하다.

구체적으로 말하자면, 각 입력 단어 위에 쌓인 벡터들의 선형 결합을 학습한다.

이러한 내부 상태의 결합은 LSTM의 higer-level에서 문맥 정보를 학습하고 lower-level에서 구문과 같은 문법을 학습한다.

 

ELMo representation은 다양한 실험에서 잘 작동한다는 것을 보여준다.

6가지 task에서 기존 모델에 쉽게 추가할 수 있다.

ELMo representation의 추가한 것만으로도 모든 경우의 오차를 20% 감소시켜 SOTA 성능을 향상시킨다.

ELMo는 신경망 기계 번역 encoder를 사용하여 contextualized representation을 연산하는 CoVe의 성능을 능가한다.

ELMo와 CoVe를 분석한 결과, deep representation이 LSTM의 마지막 레이어만 사용한 것보다 성능이 좋다.

2. Related work

기존 pretrained word vector는 syntactic과 semantic 정보를 잘 포착하여 NLP 아키텍처의 standard 구성요소였다.

하지만, 이러한 방식은 각 단어에 대해 하나의 context-independent representation만 생성할 수 있다.

이전에 제안된 방법은 하위 단어 정보로 워드 벡터를 풍부하게 하거나 각 단어 의미에 대한 벡터를 분리하여 학습하는 방식으로 기존 단어 벡터의 일부 단점을 극복하였다.

본 논문의 방식 또한 문자 단위 컨볼루션을 사용하여 하위 단어 단위의 장점을 가지며 사전 정의된 의미 클래스를 예측하기 위해 명시적인 학습 없이도 다중 의미 정보를 통합한다.

 

다른 최근 연구에서도 context-dependent representation 학습에 중점을 둔다.

Context2vec는 bidirectional LSTM을 사용하여 특정 단어 주변의 문맥을 인코딩한다.

다른 연구에서는 문맥에 중심이 되는 단어까지 포함해서 문맥을 임베딩하고 supervised neural machine translation(MT) 시스템의 인코더에 넣어 계산한 CoVe라는 모델도 있다.

MT 방식은 병렬 말뭉치의 크기로 인해 제한되지만 본 논문에서는 풍부한 단일 언어 코퍼스를 사용한다.

 

이전 연구에서는 deep biRNN이 서로 다른 layer는 서로 다른 특성을 임베딩한다는 것을 보여주었다.

Deep LSTM에서 lower level이 문법적인 측면(품사 태깅)을 학습하면 higer level에서 성능 향상을 시킬 수 있다.

RNN 기반 encoder-decoder 기계 번역 시스템에서 2-layer LSTM encoder의 첫 번째 layer에서 학습된 representation이 두 번째 layer보다 품사 태깅 예측 성능이 더 뛰어나다.

본 논문도 ELMo representation에서 수정된 language model obejctive에 의해 도출된 신호가 유사하다.

이러한 semi-supervision의 유형이 섞여진 downstream task를 위한 모델을 학습시키는데 더 좋은 성능을 보여준다.

 

Dai and Le(2015)와 Ramachandran et al.(2017)은 language model과 sequence autoencoder를 사용하여 encoder-decoder 쌍을 pretrain하고 특정 task에 fine-tuning한다.

이와 대조적으로, 본 논문은 biLM을 unlabeled data에 pretrain한 후 가중치를 수정하고 task별 모델 용량에 추가하여 downstream training data가 더 작은 supervised model에 영향을 주는 경우 크고 풍부하며 보편적인 biLM representation을 활용할 수 있도록 한다.

3. ELMo: Embeddings from Language Models

가장 널리 사용되는 word embedding과 달리, ELMo word representation은 전체 입력 문장에 기능한다.

이러한 word representation은 내부 네트워크 상태의 선형 함수로 character convolution을 갖는 2개의 biLM layer 위에서 계산된다.

이는 biLM이 semi-supervised learning을 할 수 있도록 하고 대규모로 사전학습되어 기존 neural NLP 아키텍처에 쉽게 통합될 수 있다.

3.1 Bidirectional language models

N 개의 토큰(t1, t2,...,tn)으로 이루어진 sequence가 주어지면 forward language model은 현재 토큰을 기준으로 다음 토큰이 나올 확률을 계산한다. forward에 대한 계산 식은 다음과 같다.

최근 SOTA neural language model에서는 context-independent token representation을 계산하고 foward LSTM의 L개의 layer를 통과한다. 각 위치 k에서 각 LSTM layer는 context-dependent representation을 산출한다.

가장 상단의 LSTM layer의 output은 softmax layer와 함께 다음 토큰을 예측하는데 사용된다.

이미지 출처 : https://wikidocs.net/33930

Backward LM은 forward LM과 유사하게 sequence를 역순으로 하여 미래 context가 주어질 때 이전 토큰을 예측하는 방식이며 계산 식은 다음과 같다.

 

그 후, forward 식과 backward 식을 곱한 후 tk가 위치할 최대 우도를 구한다.

위와 같은 식에서 log를 취하면 다음과 같은 식이 나온다.

 

Θx=token representation, ΘLSTM=LSTM layer, Θs=softmax layer 각 파라미터

위 식에서 token representation와 softmax layer에서 사용하는 파라미터는 두 방향 모두 동일한 파라미터를 사용한다.

3.2 ELMo

ELMo는 biLM의 중간 layer representation task별로 결합한다.

각 token에 대해 L-layer biLM은 2L + 1 representation의 집합을 계산한다.

Forward model에서 L개 layer의 output, backward model에서 L개 layer의 output, 최초 단어 vector embedding 1개를 모두 더하면 2L + 1개의 representation을 얻는다. 여기서, hk,0LM은 token layer이다.

 

Downstream 모델을 포함하기 위해, ELMo는 R에서 모든 layer를 하나의 벡터로 합친다.

기존 연구들은 간단하게 마지막 layer만 선택했다.

본 논문은 더 일반적으로 모든 biLM layer에 task별 가중치를 계산하였고 식은 다음과 같다.

여기서 stask는 sofmax-normalized weight이고 rtask는 scalar parameter로 최적화에 중요한 역할을 한다.

각 층의 출력 값을 연결한 후, 가중치를 곱하여 모두 더한다. 그 후, 벡터의 크기를 결정하는 scalar parameter를 곱한다.

3.3 Using biLMs for supervised NLP tasks

Pre-trained biLM과 특정 NLP task를 위한 supervised 아키텍처가 주어지면, biLM을 사용하여 task 모델을 사용하는 것은 단순한 구조이다.

본 논문은 biLM을 시행하여 각 단어에 대한 모든 layer representation을 기록한 후, end task model이 이러한 representation을 선형 결합을 학습하도록 학습한다.

이미지 출처 : https://wikidocs.net/33930

ELMo를 supervised model에 추가하기 위해, biLM의 가중치를 freeze하고 ELMo vector ELMotask를 xk와 연결한 다음 [xk; ELMoktask]를 RNN에 넣는다.

일부 task에서는 ELMo를 RNN의 output에도 포함하고 hk 대신 [hk; ELMoktask]로 바꾸는 것이 더 좋다.

마지막으로, ELMo에 적절한 dropout을 추가하는 것이 좋고 때때로 loss에 를 더해 ELMo 가중치를 정규화하는 것이 좋다.

이는 모든 biLM layer의 평균에 가깝도록 ELMo 가중치에 inductive bias를 부과하는 것이다.

3.4 Pre-trained bidirectional language model architecture

본 논문에서 pre-trained biLM는 양방향으로 학습하고 LSTM layer 사이에 residual connection을 추가한다.

언어 모델의 복잡성과 모델 크기 및 downstream task에 대한 계산 요구사항의 균형을 맞추기 위해 단일 최고 모델인 CNN-BIG-LSTM의 모든 embedding과 hidden dimension들을 이등분한다.

최종모델은 512 dimension인 L=2 biLSTM를 사용하고 첫 번째에서 두 번째 layer 사이에 residual connection을 추가하였다.

결과적으로, biLM은 각 입력 토큰에 대해 세 가지 representation(biLM의 representation 2개, context insensitive embedding representation)을 제공한다.

 

Pretrained biLM은 어떠한 task에서든 representation을 계산할 수 있다.

몇몇 경우에서 biLM을 domain specific data에 대해 fine tuning하면 복잡성을 줄이고 downstream task 성능이 향상된다.

이는 biLM의 domain trasfer이라고 할 수 있다.

4. Evaluation

Table 1은 다양한 6가지 NLP task에서의 ELMo 성능을 보여준다.

6가지 NLP task에서 단순히 ELMo만 추가해도 SOTA 성능을 달성한다.

Table 1. Test set comparison of ELMo enhanced neural models with state-of-the-art single model baselines across six benchmark NLP tasks.

 

Question answering

Stanford Question Answering Dataset(SQuAD)는 100,000개 이상의 question-answer 쌍이 포함된다.

 

Textual entailment

Textual entailment은 주어진 전제로 가설이 참인지 거짓인지 결정하는 task이다.

Stanford Natural Language Inference(SNLI) corpus는 약 550,000개의 가설/전제의 쌍을 제공한다.

 

Semantic role labeling

Semantic role labeling(SRL)시스템은 문장 성분의 의미역을 결정하는 것으로 "누가 언제 어디서 무엇을"에 대한 대답으로 문장 성분 구조를 맞춘다.

 

Coreference resolution

Coreference resolution은 어떤 개체를 표현하는 다양한 text의 mention들을 clustering하는 task이다.

 

Named entity extraction

Named entity extraction은 개체명 인식으로 이름을 가진 개체를 인식하여 corpus로부터 어떤 단어가 사람, 장소, 조직 등을 의미하는 단어인지를 찾을 수 있다.

The CoNLL 2003 NER task는 네 가지 entity 유형(Person, Location, Organisation, Miscellaneous)이 태그된 Reuters RCV1 corpus로 구성된다.

 

Sentiment analysis

Stanford Sentiment Tree bank(SST-5)의 세분화된 감정 분류 task는 다섯 가지 레이블(매우 부정적에서 매우 긍정적까지) 중 하나를 선택하여 문장을 설명하는 task이다.

5. Analysis

본 section은 논문의 주장을 입증하고 ELMo representation의 흥미로운 측면을 설명하기 위한 ablation analysis를 제시한다.

Ablation analysis란 모델이나 알고리즘의 feature들을 제거해 나가면서 feature가 모델에 얼마나 영향을 미치는지 확인해보는 것이다.

5.1 Alternate layer weighting schemes

앞서 설명한 biLM layer를 결합하기 위해 위와 같은 식을 사용하였다.

이전 연구들에서 contextual representation은 biLM이나 MT encoder의 마지막 layer만 사용하였다.

 

Table 2. Development set performance for SQuAD, SNLI, SRL comparing using all layers of biLM to just the top layer.

5.2 Where to include ELMo?

본 논문의 모든 task 아키텍처는 ELMo를 input에만 적용하였다.

Table 3에서 볼 수 있듯이 output layer에도 적용하면 전반적으로 성능 향상된다.

SQuAD, SNLI는 Input & Output 둘 다 적용할 때 성능이 좋고 SRL은 Input에만 적용할 때 성능이 좋다.

SQuAD, SNLI는 biRNN 이후 바로 attention layer를 사용하므로 이 layer에 ELMo를 추가하면 내부 representation에 직접 접근할 수 있도록 해준다.

SRL의 경우, task별 context representation이 biLM보다 더 중요하기 때문에 이러한 결과가 나올 수 있다.

Table 3. Development set performance for SQuAD, SNLI and SRL when including ELMo at different locations in the supervised model.

5.3 What information is captured by the biLM's representations?

ELMo를 적용한 task에 향상된 성능을 보이면서 biLM이 contextual representation을 잘 학습하여 NLP task에 유용하다.

biLM은 context로 word의 의미를 명확하게 해석한다.

Table 4와 같이 기존 방법인 GloVe vecotr를 사용하여 "play"의 nearset neighbors는 스포츠 관련 의미에 집중되어 있다.

본 논문의 biLM은 원본 문장에서 품사와 단어 의미를 모두 명확하게 구분할 수 있다.

Table 4. Nearest neighbors to "play" using GloVe and the context embeddings from a biLM.

5.4 Sample efficiency

ELMo는 샘플링의 효율성도 증가한다.

SRL Baseline 모델은 ELMo 없이 486 epoch을 통해 최고 성능을 달성하였지만 ELMo를 추가한 모델은 10 epoch으로 기존 최고 성능을 초과한다.

또한 적은 training set으로도 ELMo를 추가한 모델이 좋은 성능을 보여준다.

Figure 1은 baseline 모델과 ELMo를 추가한 모델의 성능 비교 그림이며 x축은 training set 비율이다.

Figure 1. Comparison of baseline vs ELMo performance for SNLI and SRL as the training set size is varied from 0.1% to 100%.

5.5 Visualization of learned weights

Figure 2는 각 task별로 softmax-normalized parameter를 시각화한 것이다.

ELMo가 input에 사용되면 first LSTM layer가 가중치가 높고 output에 사용되면 하위 layer가 약간 더 높다.

Figure 2. Visualization of softmax normalized biLM layer weights across tasks and ELMo locations.

6. Conclusion

본 논문은 biLM에서 고품질의 deep context-dependent representation을 학습하기 위한 일반적인 접근법에 대해 소개하고 ELMo를 다양한 NLP task에 적용할 때 큰 개선을 보임을 보여주었다.

그리고 ablation과 통제된 실험을 통해 biLM layer가 문맥 내의 단어에 대한 다양한 유형의 구문 및 의미 정보를 효율적으로 인코딩하고 모든 layer를 사용하는 것이 전반적인 task에 성능 향상이 된다는 것을 확인하였다.