어텐션 메커니즘을 구체적으로 수식을 이용하여 알아보겠습니다.
어텐션 메커니즘을 이용하기 위해서는 가장 먼저 어텐션 스코어를 구해야 합니다.
어텐션 스코어란 현재 디코더의 시점 i에서 단어를 예측하기 위해, 인코더의 모든 은닉 상태 값(hj)이 디코더의 현 시점의 은닉 상태(si)와 얼마나 관련이 있는지(유사한지)를 판단하는 값입니다. 따라서 어텐션 스코어는 앞의 수식처럼 인코더의 모든 은닉 상태의 값(hj)과 디코더에서의 이전 시점의 은닉 상태(si-1) 값을 이용하여 구할 수 있습니다.
어텐션 스코어가 계산되었다면 이 값을 소프트맥스(softmax) 함수에 적용하여 확률로 변환합니다. 이렇게 계산된 0~1 사이의 값들이 특정 시점(time step)에 대한 가중치, 즉 시간의 가중치가 되며 다음과 같은 수식을 이용합니다.
이제 시간의 가중치(aij)와 은닉 상태(hj)의 가중합을 계산하면 하나의 벡터가 계산되는데, 이것이 컨텍스트 벡터(context vector)입니다. 수식은 다음과 같습니다.