Deep Contextualized Word Representations
2 minute read

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

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 구조 사용).

이 $(2L + 1)$ 개의 representation 을 다양한 방식으로 조합해 $t_k$ 의 representation 을 구할 수 있다. ELMo 에서는 다음과 같이 weighted average 을 사용한다.

$\gamma^{task}$ 는 scaling 을 통해 최적화 과정을 돕기 위해 도입된 파라미터이다.

Results

nn

Notes

Recent Posts

Lazy learning vs Eager learning
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
Perplexity of Language Models
Matrix Calculus
Inverted Indexing