Transformer 2. Attention 매커니즘이 추가된 인코더-디코더

2022. 3. 29. 10:06STUDY/Model

RNN based Encoder-Decoder with ATTENTION


전통적인 RNN기반의 인코더-디코더의 특징에서

" Context vector가 고정된 크기다. 따라서 긴 입력문장의 경우 모든정보 압축이 힘들다. " 라고 하였다.

해당 문제점을 보완하기 등장한 매커니즘이 Attention이다.

 

 

 


Attention


Attention이란

  • 디코더에서 출력단어를 예측하는 매시점마다, 인코더에서의 출력결과를 다시한번 참고하는것
  • 해당 시점에서 예측해야할 단어와 연관이 있는 입력단어 부분을 집중(Attention)하여 보는 것
  • 내가 생각하는 표현 : 모든 관계를 파악하는것이 Attention 이다.
    1:1로 element간의 관계를 확인하는 과정이 Attention에 있기 때문

Attention을 적용한 인코더-디코더 모델 특징

  • 고정된 Context vector를 사용하지 않음
    --> 문장 길이에 따라 Context vector가 달라진다.
  • 단어를 번역할때마다 동적으로 인코더 출력값에 Attention 매커니즘을 수행하여 효율적번역수행
  • 여전히 RNN셀을 사용해 순차적으로 계산한다는 점에서 속도가 느리다.
    물론 속도 뿐만아니라, Gradient Vanishing 문제 존재

 


Attention Mechanism


Attention 종류가 다양하나, 대표적인 Dot-product Attention을 설명

전체순서는 다음과같다. 

  • Attention score
    --> Dot product를 통해 Attention score 도출
  • Attention Distribution 
    --> Softmax 함수를 통해 구함
    --> 각각의 값은 Attention weight라고 한다.
  • Attention Value
    --> Attention weight와 인코더의 은닉상태를 가중합
    --> Attention Value를 Context Vector라고 함.
  • 연결
    --> Attention Value + 디코더의 은닉상태 
  • 신경망 추가

 

 

 

 

 

출처

https://www.youtube.com/watch?v=mxGCEWOxfe8&list=WL&index=2

https://wikidocs.net/24996