어텐션의 종류 중 하나.
앞서 배운 닷-프로덕트 어텐션보다 조금 더 복잡하게 설계된 어텐션 메커니즘
전반적인 흐름은 닷-프로덕트 어텐션과 동일하다. 닷-프로덕트 어텐션과의 차이점을 위주로 설명하겠다.
어텐션의 경우 어텐션 스코어를 구하는 방법에 따라 어텐션의 종류가 달라진다.
즉 이 파트가 바다나우 어텐션의 정체성의 핵심이라고 볼 수 있다.
바다나우 어텐션이 왜 바다나우 어텐션이냐 함이 여기에 담겨있다!
닷-프로덕트 어텐션에서 현재 시점t의 디코더 은닉상태를 사용한 것과 달리 이번에는 t-1 시점의 은닉상태를 사용한다.
St-1과 인코더 i번째 은닉상태의 어텐션 스코어 계산 방법
바다나우 어텐션의 어텐션 스코어 계산 방법
(h1,h2,h3,h4를 하나의 행렬 H로 둔 경우)
이때 Wa, Wb, Wc : 학습 가능한 가중치 행렬
닷-프로덕트 어텐션에서 단순히 hi와 St의 내적을 수행한 것과 달리 가중치 행렬이 존재해서 이를 곱해준다.
그림으로 풀어서 이해하면 다음과 같다.
첫번째 행렬: Wc, 두번째 행렬: Wb
하늘색 벡터: WaT
가중합의 결과로 나온 어텐션 값, 즉 결과 벡터는 인코더의 문맥을 포함하고 있다고 하여 컨텍스트 벡터라고 부른다.
기존 LSTM
이해를 위해 기존 LSTM이 St를 구하는 방식을 살펴보자.
ⓐ 이전 시점의 셀로부터 전달받은 은닉상태 St-1
ⓑ 현재 시점의 입력 Xt
LSTM이 디코더였다면 Xt는 임베딩된 단어 벡터
이 두 가지를 가지고 St의 연산을 진행한다.
바다나우 어텐션 메커니즘
ⓐ 이전 시점의 셀로부터 전달받은 은닉상태 St-1
ⓑ 현재 시점의 입력 Xt 과 컨텍스트 벡터를 연결(concatenate)한 현재 시점의 새로운 입력
이 두 가지를 가지고 St를 구한다.