데이터 스터디/DL

[논문 읽기] Neural Machine Translation by Jointly Learning to Align and Translate (Attention)

케이와이엠 2023. 11. 14. 18:08

Attention

1. seq2seq의 한계

seq2seq란?

  • 인코더 - 디코더라 불리는 두 개의 순환 신경망을 활용해 각각 입력 시퀀스를 벡터화하고 새로운 시퀀스를 출력하는 모델. ex) 기계번역

1) 압축에 따른 정보 손실 문제

  • 인코더가 문장(시퀀스)을 길이에 상관 없이 하나의 고정된 크기의 벡터(Context Vecor)에 모든 정보를 압축하여 정보 손실 발생.

 

2) RNN의 기울기 소실 문제

  • 기울기가 일정 수준 이하로 작아지면 장기 의존 관계 학습이 어려움.
  • ex) 하이퍼볼릭 탄젠트 함수의 미분 → x가 0에서 멀수록 작아짐.

따라서, 입력 시퀀스(문장) 이 길어져도 출력의 정확도를 지킬 수 있는 기법 필요 → 어텐션!

 

 

2. 어텐션(Attention)

어텐션의 기본 아이디어

  • 매 시점마다 전체 입력 시퀀스를 참고하기.: 순환 신경망이 잊은 정보를 리마인드시켜주는 도우미 함수라고 생각하면 편한듯.
  • → 이 때, 필요한 부분을 집중(attention)해서 본다.

어텐션 함수

Attention(Q, K, V) = Attention Value
  • 주어진 Q에 대해 모든 K의 값 V를 Q-K간 유사도만큼 가중합.
  • seq2seq+ 어텐션 모델에서 Q,K,V는..
    • Q(Query) : t 시점에 디코더 셀에서의 은닉 상태
    • K(Key) : 모든 시점의 인코더 셀의 은닉 상태들
    • V(valyes) : 모든 시점의 인코더 셀의 은닉 상태들 (값)
  • attention output계산을 위한 가중합은 value(encoder hidden state)가 가지는 정보의 선별적 사용으로 해석할 수 있고, query(decoder hidden state)는 이 정보가 어디에 집중할 지를 결정한다.

 

3. 닷-프로덕트 어텐션(Dot-Product Attention)

개요 : 어텐션 스코어 → 어텐션 분포 → 어텐션 값 → 값 연결

 

1. 어텐션 스코어 : Enc-Dec 은닉 상태 간 유사도

  • 디코더의 시점 t에서 은닉 상태 & 인코더의 시점 i에서 은닉 상태를 곱합니다.
    • 출력으로 나오는 스칼라가 인코더-디코더의 은닉 상태 간의 유사도가 된다.
    • e_t는 어텐션 스코어 모음 for 모든 인코더 시점.

2. 어텐션 분포 : 어텐션 가중치의 모음값

  • 어텐션 스코어를 softmax 함수에 통과시켜 비율로 변환
    • 각 인코더 시점 i에서 은닉 상태가 s_t와 얼마나 관련 있는지 비율로 나타남.
    • 특정 시점에서 인코더의 은닉 상태는 해당 시점에 입력된 단어(x_i)와 이전 은닉 상태(h_i-1)을 입력으로 받기 때문에 해당 시점 입력 단어의 의미를 크게 담고 있다.
      • → 디코더 t시점 단어와 인코더 i시점 단어의 관계를 많이 담고 있다고도 말할 수 있음.

3. 어텐션 값을 구하고 연결 및 변환 : 새로운 s_t 만들기

  • 만들어진 어텐션 가중치 모음 a_t와 디코더의 기존 은닉 상태 s_t를 연결 (concatenate)
  • 출력의 형상 유지를 위해 가중치 행렬을 곱한다.(편향은 그림 생략)
  • 이를 tanh함수에 통과시키면 새로운 은닉 상태 s_t가 된다.