참고자료

Stanford CS224N NLP with Deep Learning | Winter 2021 | Lecture 7 - Translation, Seq2Seq, Attention

Stanford CS224N NLP with Deep Learning | 2023 | Lecture 8 - Self-Attention and Transformers

16.4. 어텐션 메커니즘

[그림 16-3]의 기본적인 인코더-디코더 네트워크를 통한 번역은 경로가 매우 긺. 특정 표현에 대해 선택된 단어가 다른 모든 선택된 단어들과 함께 실제 사용되려면 여러 단계(GRU, LSTM 셀 등)를 통과해야 함을 의미함. 이를 좀 더 짧게 만들 수 있는 방법에 대한 고민이 있었음.

2014년 드미트리 바흐다나우(Dzmitry Bahdanau)가 발표한 논문에서 혁신적인 아이디어가 제시됨. 각 타임 스텝에서 (인코더에 의해 인코딩된 대로) 적절한 단어에 디코더가 초점을 맞추도록 하는 기술을 소개하였음. 디코더가 출력해야 하는 단어에 맞추어 해당 타임 스텝에서는 인코더에서 동일한 표현의 단어에 주의를 집중하게 됨. 이로써 입력 단어부터 번역까지 경로가 훨씬 짧아졌기에 RNN의 단기 기억 제한성이 훨씬 적은 영향을 미치게 됨.

어텐션 메커니즘은 신경망 기계 번역과 일반적인 딥러닝에 큰 변화를 만들어 내었음. 특히 (30단어 이상의) 긴 문장에 대해 SOTA를 크게 향상시킴.

BELU(Bilingual Evaluation Understudy) ?

[그림 16-7]은 인코더-디코더 모델에 어텐션 메커니즘을 추가한 것임. 기본 인코더-디코더 모델과 달리, 각 타임 스텝의 인코더의 마지막 은닉 상태와 이전 스텝의 타깃 단어만 디코더에 보내는 것이 아니라 인코더의 모든 출력을 디코더로 전송함. 디코더는 당연하게도 모든 인코더 출력을 한 번에 다룰 수 없으므로 이를 집계하여 처리함. 이 집계는 각 타임 스텝에서 디코더의 메모리 셀은 모든 인코더 출력의 가중치 합을 계산하여 주의를 집중할 단어를 결정하게 됨. 가중치 $a_{(t, i)}$는 타임 스텝 $t$에서 $i$번째 인코더 출력에 대한 가중치를 의미함. 이 가중치의 차이로 어텐션 메커니즘에 의한 집중 대상이 결정됨.

디코더의 나머지 부분은 이전의 기본적인 인코더-디코더 네트워크와 동일하게 작동. 타임 스텝마다 메모리 셀이 위의 입력과 이전 타임 스텝의 은닉 상태를 받음. 마지막으로 이전 타임 스템에서 타깃 단어를 전달 받아 학습 또는 추론하게 됨.

그렇다면 가중치 $a_{(t, i)}$는 어디에서 결정되어 제공되는가? 이 가중치는 정렬 모델(Alignment Model) 또는 어텐션 층(Attention Layer)이라고 부르는 작은 신경망에 의해 생성됨. 이 작은 신경망 모델은 인코더-디코더 모델의 나머지 부분과 함께 훈련됨. [그림 16-7]의 오른쪽 도표가 해당 모델의 구조임. 먼저 하나의 뉴런으로 구성된 Dense 층에서 인코더의 모든 출력과 디코더의 이전 은닉 상태를 처리함. 여기서 각 인코더 출력에 대한 점수 (또는 에너지)를 출력하며 이를 $e_{(t, i)}$라고 정의함. 이 점수는 각 출력이 디코더의 은닉 상태와 얼마나 잘 맞는지를 측정함. 모델이 이미 “명사+동사”를 출력했다면 다음 단어로 “명사”를 예상할 것임. 따라서 명사에 해당하는 단어가 높은 점수를 받을 것이며, 결정된 모든 점수가 Softmax 층을 통과해 각 인코더 출력에 대한 최종 가중치가 될 것임. 주어진 디코더 타임 스텝에 대한 모든 가중치의 합은 1이 됨. Softmax 층은 타임 스텝에 각각 적용되지 않기 때문임. 이러한 형태의 어텐션 메커니즘을 바흐다나우 어텐션(Bahdanau Attention)이라고 부름. 인코더의 출력과 디코더의 이전 은닉 상태를 연결하므로 연결 어텐션(Concatenative Attention) 또는 덧셈 어텐션(Additive Attention)이라고도 부름.

입력 문장이 n개의 단어로 이루어져 있고 출력 문장 또한 비슷한 길이라고 가정할 때 이 모델은 n^2개의 가중치를 계산해야 함. 다행히도, 아무리 긴 문장이라도 단어를 수백 수천 개씩 가지고 있지는 않으므로 이차식으로 표현되는 계산 복잡도는 감내할 수 있는 수준임.