티스토리 뷰

들어가며

본 글은 Deep contextualized word representations을 리뷰한 글입니다.

 

내용

몰랐던 용어 정리

Monolingual corpus

단일 언어 말뭉치

Parallel corpus, multilingual corpus

두 개 이상의 monolingual corora. 말뭉치는 서로 번역본이다. 자료 출처

기존 연구의 한계

사전학습된 word vector는 거대한 규모의 레이블이 되지 않은 텍스트에서 구문(syntactic)과 의미(semantic) 정보를 포착하는데 탁월했기에 question answering, textual entatilment, semantic role labeling과 같은 SOTA NLP 아키텍처에서 표준 구성으로 쓰였다. 그러나 word vector를 학습하기 위한 이런 접근방식은 각 단어에 대해 문맥에 독립된 단일의 표현만 배울 수 있다.

 

Ex) Bank라는 단어는 은행과 강둑이란 전혀 다른 의미를 가지나 Word2Vec이나 GloVe 등으로 표현된 이베딩 벡터들은 이를 제대로 반영하지 못한다. 자료 출처

 

논문에서의 키 아이디어

  • character convolution을 이용해 하위 단어(subword)의 이점을 취한다.
  • 미리 정의된 의미(sense) 클래스를 예측하도록 명시적으로 학습하지 않고 다중 의미 정보(multi-sense information)를 downstream task로 매끄럽게 통합한다.
  • 문맥에 의존적인 표현을 학습하기 위해 Bi-LSTM으로 pivot word 근처의 문맥을 인코딩하거나 pivot word를 표현 자체에 포함시키고 supervised NMT(neural machine translation)나 unsupervised LM(language model)으로 학습시킨다.
    • 이런 접근 방식은 대규모 데이터셋에서 효과적이다.
    • 본 논문에선 크기가 제한적인 parallel corpora 대신 monolingual 데이터로 학습하여 위 이점을 취한다. (약 3천만 문장)

ELMo: Embeddings from Language Models

고퀄리티의 단어 표현은 이상적으로 구문(syntax)과 의미(semantics)와 같은 단어의 쓰임의 복잡한 특성과 이러한 쓰임이 다의어 모델링과 같이 언어의 맥락에 따라 어떻게 다른지 모두 모델링해야 하므로 어렵다. ELMo의 deep contextualized word representation은 이 두 가지를 모두 직접적으로 다룬다.

 

ELMo의 단어 표현은 입련 문장 천제에 대한 함수이다. 이 함수는 내부 네트워크 상태의 선형 함수로 character convolution으로 구성된 2계층 biLM으로 연산한다. 이런 셋업은 biLM이 대규모로 사전 학습되는 준지도 학습을 할 수 있게 하고 현존하는 신명망 NLP 아키텍처에 폭넓게 포함시킬 수 있도록 한다.

 

ELMo 아키텍쳐

Bidirectional language models

이 파트에선 biLM의 구성에 대해 알아볼 것이다.

\((t_{1},t_{2},...,t_{N})\)과 같이 N개의 토큰으로 이루어진 시퀀스가 주어질 때, 순방향 언어 모델은 과거의 \((t_{1},t_{2},...,t_{k-1})\)이 주어진 \(t_{k}\) 토큰으로 시퀀스의 확률을 계산한다. 이 식은 아래와 같이 표현될 수 있다.

\[p(t_{1},t_{2},...,t_{N})=\prod_{k=1}^{N}p(t_{k}|t_{1},t_{2},...,t_{k-1})\]

최신 SOTA neural LM은 문자에 대해 토근 임베딩이나 CNN을 통해 문맥에 대해 독립적인 토큰 표현 \(x_{k}^{LM}\)을 계산한 다음 \(L\) 계층의 순방향 LSTM을 통과시킨다.(본 논문에서도 이렇게 한다는 것을 말하는 것으로 이해했음) 각 포지션 \(k\)에서 각 LSTM 층은 \(k=1,... L\)인 문맥 의존적인 표현 \(\overrightarrow{h_{k, j}^{LM}}\)을 얻는다. 가장 위쪽에 위치한 LSTM층의 출력 \(\overrightarrow{h_{k, L}^{LM}}\)은 소프트맥스를 통해 다음 토큰 \(t_{k+1}\)을 예측하는 데 쓰인다.

역방향 언어 모델은 시퀀스가 거꾸로인 것만 제외하면 순방향 언어 모델과 유사하다. 이전 토큰을 미래 문맥으로 예측하는데 이의 식은 다음과 같다.

\[p(t_{1},t_{2},...,t_{N})=\prod_{k=1}^{N}p(t_{k}|t_{k+1},t_{k+2},...,t_{N})\]

순방향에서와 비슷하게 각 역방향 LSTM 층은 \((t_{k+1},t_{k+2},...,t_{N})\)이 주어진 \(t_{k}\)의 토큰 \(\overleftarrow{h_{k, j}^{LM}}\)을 얻는다.

biLM은 앞서 본 순방향과 역방향 LM을 합친다. 논문에서의 수식은 순방향과 역방향 모두의 log likelihood를 최대화하며 식은 다음과 같다.

\[\sum_{k=1}^{N}(\mathrm{log}p(t_{k}|t_{1},...,t_{k-1};\Theta_{x},\overrightarrow{\Theta}_{LSTM},\Theta_{s})+\mathrm{log}p(t_{k}|t_{k+1},...,t_{N};\Theta_{x},\overleftarrow{\Theta}_{LSTM},\Theta_{s}))\]

토큰 표현의 매개변수 \(\Theta_{x}\)와 소프트맥스 레이어의 매개변수 \(\Theta_{s}\)는 정방향과 역방향에서 동일하고 LSTM은 각 방향별로 매개변수를 별도로 유지한다.

 

ELMo

이 파트에선 biLM 레이어의 선형 조합인 단어 표현을 학습하기 위한 새로운 접근 방식에 대해 알아볼 것이다.

ELMo는 biLM의 중간층 표현의 태스크별 조합이다. 각 토큰 \(t_{k}\)에서 \(L\) 계층의 biLM은 \(2L+1\) 개의 표현 집합을 계산한다. \(h_{k, 0}^{LM}\)은 토큰 층, \(h_{k, j}^{LM} = [\overrightarrow{h_{k, j}^{LM}};\overleftarrow{h_{k, j}^{LM}}]\)은 각 biLSTM 층일 때 다음과 같이 정의한다.

\[R_{x}=\left\{x_{k}^{LM},\overrightarrow{h}_{k, j}^{LM},\overleftarrow{h}_{k, j}^{LM}|j=1,...,L\right\}=\left\{h_{k, j}^{LM}|j=0,...,L\right\}\]

ELMo는 다운스트림 모델에 적용시키기 위해 \(R\)의 모든 레이어를 단일 벡터인 \(ELMo_{k}=E(R_{k};\Theta_{e})\)로 축소한다. 축소하기 위해선 간단하게 가장 위의 레이어를 선택할 수도 있지만 논문에선 좀 더 일반화하여 태스크별로 모든 biLM 레이어에 가중치를 부여한다.

\[ELMo_{k}^{task}=E(R_{k};\Theta^{task})=\gamma^{task}\sum_{j=0}^{L}s_{j}^{task}h_{k, j}^{LM}\]

여기서 \(s^{task}\)는 softmax-normalized weights이고 \(\gamma^{task}\)는 스케일 하는 파라미터(scalar parameter)로 태스크에 따른 모델이 ELMo 벡터 전체를 스케일 할 수 있도록 한다. \(\gamma\)는 특히 최적화(optimization) 과정을 돕기 위해 중요하다. 

 

결과

ELMo를 활용하면 모두 성능이 개선되는 것을 확인할 수 있다.

 

GloVe는 스포츠로써의 play에만 집중하는 반면 biLM은 소스 문장의 문맥 표현을 잘 캐치하고 있다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함