Deep contextualized word representations(ELMo)

요즘 Transformer가 나오면서 NLP관련 모델의 성능이 크게 증가했다.요즘 시대에 그냥 CNN이나 LSTM쓰면 옛날 사람 취급받을 것만 같은.. 또 하나의 breakthrough라고도 할 수 있을 것 같다. Word Representation쪽에서도 비슷한 도약이 있었는데, 그 시작이 ELMo다. 처음엔 그냥 성능을 약간 올려주는 모델인가보다 하고 넘어갔지만, 다양한 연구에서 활용되는 것을 보면서 이를 기반으로 현재는 Bert와 같은 모델도 나오게 되었다. 이젠 안볼수없는 개념이 되었기에, 논문을 통해 다시 한번 정리해보고자 한다.

Author

  • 저자:Matthew E. Peters, Mark Neumann, Mohit Iyyer, Matt Gardner,Christopher Clark, Kenton Lee∗, Luke Zettlemoyer

Abstract

  • Syntax & semantics 정보를 잡아냄
  • 언어적 문맥(linguistic contexts)도 고려함
  • word vectors는 internal states에 대한 deep bidirectional language model(biLM)를 통해 유도됨
  • 이러한 representation은 기존 모델에도 잘 붙여서 쓸수 있고 성능도 많이 올랐음(6개의 도전적인 NLP task에서 SOTA!! 기록; QA, SA 등등)

Introduction

  • word2vec등이 NLP에서 Key component였지만 양질의 표현을 얻기는 도전적인 문제가 있었음
  • syntax & semantics와 linguistic contexts를 모델링해주는게 이상적이라 할 수 있음
  • 이 관점으로 새로운 representation을 제안 하겠음
  • Vector를 LM과 함께 학습된 BiLSTM으로부터 얻어낼 것임
  • 이러한 이유로, ELMo(Embeddings from Language Models) representation이라 칭할 것임
  • internal states를 조합해주는건 매우 풍부한 word representation을 줌
  • higher-level LSTM states는 context-dependent aspects of word meaning을 잘 캡쳐함
  • lower-level states는 aspects of syntax(e.g. POS)를 잘함
  • 기존 word2vec관련 연구는 single context independent representation을 각 단어에 대해서만 얻었음
  • subword등을 통해 이를 개선하려는 연구도 있었
  • 본 논문의 연구 또한 subword unit의 도움을 character convolutions을 통해 얻었음
  • context2vec이라는 context-dependent representation에 대한 연구도 있었음. BiLSTM으로 pivot word 주변의 context를 encoding함. NMT에 쓰인 CoVe라는 임베딩기법도 비슷한 방법임.
  • NMT의 경우 parallel corpora의 한계가 있음. 본 연구에서는 monolingual data로 이러한 문제를 해결하고자함. (30 million sentences)

ELMo: Embeddings from Language Models

  • 대부분의 워드 임베딩과 달리, ELMo는 전체 input sentence에 대한 함수라고 할 수 있음
  • 상위 two-layer biLMs에서 (with Character convolutions) 계산됨
bidirectional language models
  • 기존 LM을 LSTM을 통해 context를 적용한 방법으로 모델링하고, 이때 character CNN도 적용
  • Backward LM의 경우 그냥 거꾸로 한다고 생각하면됨
  • Forward와 Backward의 log likelihood의 합을 maximize 하도록 수식화
ELMo
  • ELMo는 biLM 모델에 있는 중간레이어의 표현(intermediate layer representations)임
  • 각 token (t_k)마다 L-layer biLM에서는 2L+1개의 representation을 계산함 = L(hidden h) * 2(bidirection) + 1(input x)
  • ELMo는 각 layer의 벡터를 다 써도되고, top만 떼서 써도 되긴하는듯(CoVe처럼)

Deep contextualized word representations(ELMo)

https://eagle705.github.io/2018-11-06-ELMo/

Author

Joosung Yoon

Posted on

2018-11-06

Updated on

2022-08-28

Licensed under

댓글