본 논문은 1)단어의 복잡한 특성(complex characteristics of word use. e.g.,syntax and semantics)과 2)언어학적 문맥에 따른 사용의 차이(how these uses vary across linguistic contexts. i.e.,to model polysemy)를 모두 표현할 수 있는 새로운 타입의 deep contextualized word representation(문맥정보를 학습할 수 있는 word 표현)를 소개한다.
본 논문의 word vector는 대규모 text corpus를 이용한 bidirectional language model(biLM. 양방향 언어모델) 구조로 학습을 진행했다.
(결과적으로 ELMo는 context를 반영한 word representation을 임베딩하는 사전 훈련 모델)
이러한 representation(사전 훈련 모델)은 기존 모델에 쉽게 추가(부착)할 수 있으며, 6개의 어려운 NLP problem에 대해 큰 성능 향상을 이끌어냈다.
또한 pre-trained network의 internals(내부)를 관찰함으로써, 다운스트림 모델이 다양한 유형의 semi-supervision signals을 혼합할 수 있다는 분석 결과도 제시한다.
1. Introduction
Word2vec, GloVe 와 같은 Pre-trained word representation을 사용하여 embedding을 수행하는 것은 자연어 처리 문제에서는 핵심적인 과제였다.
그러나 퀄리티가 좋은 representations을 찾는 것은 어려운 일이고,
퀄리티가 좋은 representations이 되기 위해서는 1)단어의 복잡한 특성(complex characteristics of word use. e.g.,syntax and semantics)과 2)언어학적 문맥에 따른 사용의 차이(how these uses vary across linguistic contexts. i.e.,to model polysemy)를 모두 표현할 수 있어야 한다.
본문에서는 모두 표현할 수 있는 새로운 타입의 deep contextualized word representation(문맥정보를 학습할 수 있는 word 표현)를 소개한다.
새로운 타입의 deep contextualized word representation은 2가지 문제를 직접 해결하고, 기존 모델에 쉽게 융합할 수 있으며, language understanding problems에 어려움을 겪고 있는 모든 case에서 기술 수준을 크게 향상시켰다.
본 논문의 representations은 각 토큰에, 전체 input 문장의 fuction인 representation이 할당된다는 점에서 전통적인 word type 임베딩과 다르다(기존 방법은 0~t-1, 즉 현재 위치 기준 문장의 앞부분만 참조했지만, 본 논문에서 제시하는 방법은 뒷부분까지 참조).
대규모 텍스트 말뭉치에 대한 한 쌍(앞뒤에서)의 language model(LM)로 훈련된 bidirectional LSTM에서 파생된 벡터를 사용합니다(n번째 output에 대해 양 방향에서 예측하는 형태).
이러한 이유로, 논문은 이를 ELMo(Embeddings from Language Models) representations이라고 부르겠다.
문맥에 맞는 단어 벡터를 학습하기 위한 이전의 접근 방법들과 다르게, ELMo는 biLM의 모든 내부 레이어에 대해 학습이 이루어진다는 점에서 심층적이다.
구체적으로, ELMo는 각 end task에 대한 각 input 단어의 위에 쌓인 벡터의 선형 결합을 학습하여, top LSTM 레이어만 사용하는 것보다 성능이 현저히 향상됐다.
higher-level LSTM states(상위 레이어. 즉 output layer와 가까워질수록)는 context-dependent를 포착한다(문맥에 따라 달라지는 단어의 의미를 잘 파악한다는 의미).
반면, lower-level states는 단어의 styntax(문법. 구조적 특징)을 잘 포착한다.
이러한 두 신호를 동시에 노출하면(활용하면), 학습된 모델이 각 end task에 가장 유용한 semi-supervision 타입을 선택할 수 있으므로 매우 유용하다(task에 맞게 활용할 수 있다는 의미).
ELMo는(pre-trained 모델로써) 6개의 어려운 NLP problem에서, 기존 모델에 쉽게 추가(부착)할 수 있다.
ELMo representations을 추가하는 것만으로도 최대 20%의 relative error 감소를 포함하여 모든 경우에서 기술 수준이 크게 향상되었다.
학습된 모델과 코드는 공개적으로 사용 가능하며, ELMo가 다른 많은 NLP 문제에서도 유사한 이점을 제공할 것으로 기대한다.
2. Related work
단어의 syntactic(구문) 및 semantic(의미) 정보를 포착하기 위해, 기존에 unlabeled text로부터 pretrained word vector를 만드는 단어 벡터 학습 방식은(그동안의 연구), 각 단어에 대해 문맥을 잘 이해하지 못하는(context-independent) 하나의 representation만 허용해왔다.
(즉, Introduction에서 말한 high quality representations이 되기 위한 2번째 조건인 '언어학적 문맥에 따른 사용의 차이'를 학습하지 못해왔다는 의미)
이전 연구에 따르면 deep biRNN의 여러 계층이 서로 다른 유형의 정보를 인코딩하는 것으로 나타났습니다.
예를들어, (Belinkov et al.,2017) 2 layer LSTM 인코더의 첫 번째 계층에서 학습한 표현이 두 번째 계층보다 POS 태그를 더 잘 예측하고(lower-level states가 syntatic 정보를 잘 포착함을 증명),
(Melamud et al.,2016) 단어 문맥을 인코딩하기 위한 LSTM의 top layer는 단어 의미(sense)의 representations을 학습하는 것으로 나타났다.
이러한 다양한 유형의 semi-supervision을 혼합하는 것은, 다운스트림 작업의 모델을 학습하는 것에 매우 유용할 수 있다.
3. ELMo: Embeddings from Language Models
가장 널리 사용되는 단어 임베딩(Pen-nington et al., 2014)과 달리, ELMo의 word representations은 전체 입력 문장(entire input sentence)에 대한 fuction이다(sliding window가 없다는 의미로 해석).
ELMo는 내부 네트워크 상태의 선형 함수(Sec. 3.2)로서 character convolutions(Sec. 3.1)이 있는 two-layer biLMs의 top에서 계산된다.
이러한 설정을 통해 biLM이 대규모로 pre-trained하는 semi-supervised learning을 수행할 수 있게하며(Sec. 3.4), 기존의 다양한 neunal NLP 아키텍처에 쉽게 융합할 수 있게한다(Sec. 3.3).
3.1. Bidirectional language models
N 개의 token sequence(-)가 주어졌을 때, 순방향 언어 모델(forward language model)은, history(t1,...,tk−1)가 주어졌을 때의 token tk의 확률을 모델링하여 시퀀스의 조건부 확률을 계산한다.
(history는 이전에 등장한 token으로 해석 가능. 즉, k번째 token은 1~k-1 token을 이용해 구한다는 의미)
(\invamalg은 t1,...,tk−1까지 모두 곱하라는 기호)
2018년 당시 최신 neural language model들은 (token embeddings 또는 문자단위 CNN을 통해)context-independent(문맥을 파악하지 못하는) 토큰 representation xkLM을 계산한 다음, 이를 순방향 LSTM의 L(마지막) 레이어 계층에 넣어주는 방법을 사용했다.
각 위치 k에서, 각 LSTM layer는 context-dependent(문맥을 파악하는) representation hk,jLM을 output으로 출력한다.
(j는 layer의 인덱스. 1~L)
LSTM의 top(마지막) layer는 hk,LLM을 output으로 출력하며, 이는 Softmax layer를 통과해 다음 token t(k+1)을 예측하는데 사용된다(실질적으로 사용되는 것은 hk,LLM).
(Backward LSTM layer j(인덱스)는 tk+1,...,tN이 주어졌을 때, representations hk,jLM을 생성(화살표를 반대로 보냈으면, L을 j로 안 바꿔도 되는거 아닌가?))
biLM은 순방향과 역방향 LM을 모두 결합한 것이다.
이 공식은 순방향과 역방향의 log likelihood를 공동으로 최대화하는 것을 목표로 한다(덧셈).
ELMo는 양방향 간에 완전히 독립된 파라미터를 사용하는 대신에 일부 가중치를 공유한다(양방향의 token representation의 파라미터(θx)와 Softmax layer의 파라미터θs를 일부 공유).
3.2. ELMo
ELMo는 biLM의 중간 레이어 representation을 task specific하게 조합한 것이다(higer-level과 lower-level의 중간 값 사용).
각 시점의 token tk에 대해, L-layer biLM은 2L+1 prepresentations의 집합을 얻을 수 있다.
2L+1에서 1은 입력 token x에 대한 token layer representation xkLM=hk,0LM이고, 2L은 1~L개의 forward representation hk,jLM와 L개의 backward representation hk,jLM이다.
(j는 layer index, k는 token index)
위의 모델을 downstream에 적용하기 전에 먼저 모든 layers를 하나의 vector R로 압축시켜줘야 한다(선형 결합한 하나의 벡터.
이를 수식으로 표현하면 ELMok=E(Rk;θe)
예를 들어, 마지막 레이어 하나(j=L)만 선택할 경우 E(Rk)=hk,LLM가 된다.
이를 일반화한 수식은 위와 같다.
최종 representation은 선형 결합한 하나의 벡터로 임베딩 된다.
그 뒤, 특정 테스크에 적합하게 조정될 수 있도록, task-specific 한 weighting 을 구한다.
3.3. Using biLMs for supervised NLP tasks
target NLP 작업에 대해 사전 학습된 biLM과 supervised architecture가 주어지면, biLM을 사용하여 작업 모델을 개선하는 것은 간단한 프로세스이다.
1) biLM을 학습시켜 각 단어에 대한 layer representations를 기록하고,
2) downstream이 pretrain 된 모델의 선형결합을 학습하도록 하면 된다.
대부분의 supervised NLP 모델은 lowest 계층에서 공통된(일반적인) 아키텍처를 사용하므로 일관된 방식으로 ELMo를 추가할 수 있다.
(t1,...,tN)의 토큰이 주어졌을때, 사전훈련된 워드 임베딩으로(=ELMo를 부착하여) context-independent representation xk을 만들 수 있다.
그런 다음 모델은, bidirectional RNN, CNN 또는 피드 포워드 네트워크를 사용하여 컨텍스트에 context-sensitive(dependent. 문맥을 이해하는) representation hk를 형성합니다.
ELMo를 supervised 모델에 추가하기 위해서는, 먼저BiLM 가중치를 고정(freeze)하고, input layer 에 ELMo layer 를 추가, ELMo 출력과 기존 input token 을 결합(concatenation)하여 NLP 모델에 입력)
ELMoktask와 x{t}를 concat한 뒤, 강화된(ElMo가 적용된. concat된) representation $[x{k};ELMoktask]$을 RNN에 넣어주면 된다.
ELMo에 적당한 양의 dropout을 추가하는 것이 이점이 있다는 것을 발견했다.
그리고 경우에 따라, loss에 λ∣∣w∣∣22(가중치 벡터 w의 L2 norm의 제곱) 추가함으로써 ELMo 가중치를 regularize(정규화)하는 것이, ELMo 가중치에 유도적 편향이 가해져 모든 biLM 레이어의 평균에 가깝게 유지하게 만드는 이점이 있다는 것도 발견했다.
3.4. Pre-trained bidirectional language model architecture
기존에 존재하던 forward LM인 CNN-BIG-LSTM과 비교한 ELMo의 구조에 대한 차이점
양방향 동시 학습 가능
biLSTM layer 에 residual connection 추가
LSTM unit = 4096, output dimension = 512
10 epoch만큼 학습시킨 결과, 기존 모델의 forward perplexity가 30.0에서 39.7로 증가하였다.
4. Evaluation
ELMo representation 추가한 것만으로 다양한 NLP task 에서 SOTA 성능을 보여주었음을 제시한다.
Question answering
Textual entailment
Semantic role labeling
Coreference resolution
Named entity extraction
Sentiment analysis
5. Analysis
5.1에서 ELMo를 사용하는 것이 기존에 top layer만 사용하는 것보다 성능향상이 된 것을 확인할 수 있다.
5.3은 biLM에서 포착된 다양한 유형의 contextual 정보를 탐색하고 두 가지(higer/lower) intrinsic(내재적 평가)를 사용하여, syntax 정보는 낮은 계층에서 더 잘 표현되는 반면 semantic 정보는 더 높은 계층에서 캡처된다는 것을 보여주며, biLM이 CoVe보다 더 풍부한 표현을 일관되게 제공한다는 것을 보여준다.
또한 ELMo representation을 부착하는 위치에 따라 서로 다른 효과를 내는 것을 분석했고(5.2-task, 5.4-training set size),
5.5에서는 ELModml weight가 task에 걸쳐 학습하는 것을 시각화했다.
5.1. Alternate layer weighting schemes
(5.1. ELMo를 사용하는 것이 기존에 top layer만 사용하는 것보다 성능향상)
CoVe 등의 기존 모델에서는 최종 출력만을 사용하여 representation 을 수행하였다.
ELMo 또한 최종 출력만을 사용한 결과를 제시한다.
최종 출력만을 representation 으로 사용하였을 때도, baseline model보다 좋은 성능을 보이는 것을 확인할 수 있다
또한, ELMo 와 같이 결합된 출력을 사용했을 때 항상 더 좋은 성능을 보인다.
5.2. Where to include ELMo?
(5.2. ELMo representation을 부착하는 위치에 따라 서로 다른 효과를 내는 것을 분석-task)
SQuAD와 SNLI task에서, 입력과 출력 모두 ELMo 를 부착한 것이 더 좋은 성능