- Authors : Matthew E. Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, Luke Zettlemoyer
- Reference : Deep Contextualized Word Representations (NAACL 2018)
Motivation
Pre-trained word representation 은 많은 NLP task 에서 사용되고 있지만 단어의 문법적, 의미적 특징을 담고 있으면서 문맥적인 의미까지 풍부하게 반영하지는 못하는 경우가 많다.
기존의 Language Modeling task 에 흔히 사용된 LSTM 구조에서 $h_{t}$ 는 $x_{<t}$ 까지의 history 를 (적어도 이론적으로는) 담고 있다. 그래서 단순히 $h_t$ 를 $x_t$ 의 contextualized representation 으로 사용하는 방법을 고려해볼수도 있다.
하지만 이 방법의 문제는 $x_t$ 까지의 input 만 $h_{t}$ 를 모델링하는데에 사용된다는 점이다. 실제 어떤 단어의 의미는 그 단어 이전에 등장한 단어뿐 아니라 이후에 등장한 단어들과도 관련이 깊다. 이 문제점을 해결하기 위해 ELMo 는 두개의 독립적인 LSTM language model 을 사용한다.
Differences
- Forward LM, Backward LM 을 동시에 고려한 biLM 모델을 학습하고, 두 LM 의 hidden state 를 concatenate 해 단어의 embedding 으로 사용한다.
- Top layer 만 사용했던 기존 방법론 (CoVe) 과 달리 Representation 을 만드는데에 LSTM 구조의 모든 internal layer 를 사용한다.
Method
Forward LM, Backward LM 을 동시에 고려한 biLM 모델을 학습한다. (ELMo : Embeddings from Language Models)
이 모델을 multi layer LSTM 로도 확장할 수 있다. $L$-layer biLM 모델을 가정할 때 토큰 $t_k$ 의 representation 을 얻기 위해 다음과 같이 총 $(2L + 1)$ 개의 representation 을 계산할 수 있다. 여기서 $\mathbf{x}_k^{LM}$ 은 context 와 independent 한 단어의 embedding 이다 (character 에 대해 CNN 구조 사용).
\[R_k = \{\mathbf{x}_k^{LM}, \overrightarrow{\mathbf{h}^{LM}_{k,j}}, \overleftarrow{\mathbf{h}_{k,j}^{LM}} \vert j=1, \cdots L\}\]이 $(2L + 1)$ 개의 representation 을 다양한 방식으로 조합해 $t_k$ 의 representation 을 구할 수 있다. ELMo 에서는 다음과 같이 weighted average 을 사용한다.
\[\mathbf{ELMo}_{k}^{task} = E(R_k; \Theta^{task}) = \gamma^{task}\sum_{j=0}^{L}{s_j^{task}\mathbf{h}_{k,j}^{LM}}\]$\gamma^{task}$ 는 scaling 을 통해 최적화 과정을 돕기 위해 도입된 파라미터이다.
Results
- 여섯개의 NLP task 에서 SOTA result 를 얻었다.
- 학습된 $s_j$ weight 값을 시각화해보았을때 task 에 따라 값이 큰 layer 가 다르게 나타났고, 이를 통해 각 layer 에서 서로 다른 정보를 담당한다는 점을 확인할 수 있다 (문법적인 정보는 주로 lower layer 에서, 의미적인 정보는 주로 higher layer 에서).
- biLM 을 통해 얻은 representation 은 문맥적 정보를 잘 반영한다.
- ELMo representation 을 활용할 경우 하나의 task 에서 같은 수준의 performance 를 좀 더 효율적으로 얻을 수 있었다. 학습에 요구되는 epoch 의 수나 training set 의 크기를 줄일 수 있었음.
Notes
- 여담이지만 저자들이 처음에 이 논문을 ICLR 에 냈을때는 아이디어가 너무 간단하다는 혹평을 받고 reject 됐다고 한다. 그런데 NAACL 2018 에 다시 내고 Best Paper Award 를 받았음..