Attention Is All You Need

이번엔 오늘날의 NLP계의 표준이 된 Transformer를 제안한 논문인 Attenion Is All You Need에 대해서 리뷰해보고자 한다. 대략적인 내용은 이미 알고 있었지만, 디테일한 부분도 살펴보고자 한다.

Author

  • 저자: Ashish Vaswani, 외 7명 (Google Brain)
  • 구글브레인..wow
  • NIPS 2017 accepted

Who is an Author?

{: height=”50%” width=”50%”}

느낀점

  • Multi-Head-Attention을 빠르게 구현하기 위해 Matrix 연산으로 처리하되, Embedding Tensor를 쪼갠 후 합치는게 아닌 reshape & transpose operator로 shape을 변경 후 한꺼번에 행렬곱으로 계산해서 다시 reshape 함으로써 병렬처리가 가능하게끔 구현하는게 인상적이었음
  • 행렬곱할 때 weight 와 곱하는건 weight variable 생성 후 MatMul 하는게 아니라 그냥 다 Dense로 처리하는게 구현 팁이구나 느꼈음
  • 요약: 쪼갠다음에 weight 선언 후 매트릭스 곱? No! -> 쪼갠 다음에 Dense! -> 쪼개면 for loop 때문에 병렬처리 안되잖아! -> 다 계산후에 쪼개자!
  • Attention만 구현하면 얼추 끝날 줄 알았는데 Masking 지분이 70~80%였음
    • Masking은 logical 연산 (boolean)으로 padding 체크해서 하는게 일반적임
    • Masking은 input에도 해주고 loss에도 해줌
    • 마스킹 적용할땐 broadcasting 기법을 써서 하는게 일반적임
    • 아래의 두 경우 모두 가능함
      • ex) (40, 5, 10, 10) + (40, 1, 1, 10) == (batch, head, seq, seq)
      • ex) (40, 5, 10, 10) + (40, 1, 10, 10) == (batch, head, seq, seq)
자세히 보기

Neural Machine Translation in Linear Time

Author

  • 저자:Nal Kalchbrenner, Lasse Espeholt, Karen Simonyan, Aaron van den Oord, Alex Graves, Koray Kavukcuoglu (Google Deepmind, London UK)
  • 딥마인드 (말 다했다)

Who is an Author?

{: height=”50%” width=”50%”}

Abstract

  • 이 당시엔 Novel architecture였다 (2016년, 후에 Attention is all you need 논문에서도 인용함)
  • ByteNet이라고 부름

{: height=”50%” width=”50%”}

자세히 보기

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)를 잘함
자세히 보기