Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

EHFKSWL

Attention (Seq -to-Seq) 본문

Deep Learning

Attention (Seq -to-Seq)

도란지 2021. 5. 13. 15:49

 

Seq-to-Seq

Sequence-to-sequence 모델은 입력된 sequence로 부터 특정 도메인의 sequence를 출력하는 모델을 말한다. 예를 들어 RNN을 이용한 언어 번역 모델이 여기에 해당한다.

예를 들어 위와 같이 영어 문장 'How is the wheather?'를 번역하는 모델이 있다고 하자. 먼저 번역하고자 하는 문장의 각 단어를 순서대로 받아서 context vector를 만든다. 이 부분이 Encoder 이다. 그리고 context vector와 start를 합쳐서 번역을 시작한다. 위의 그림과 같이 Recurrent 하게 hidden state 와 이전 번역 단어를 합쳐서 다음 단어를 번역한다. End가 나오면 번역을 끝낸다. 번역하는 부분을 Decoder라고 한다.

 

sequence 단위로 번역하는 방법은 문장 전체의 의미를 context vector안에 담을 수 있어 성능이 꽤 좋은 편이다. 그러나 이 방식에는 다음과 같은 두 가지 단점이 존재한다.

  1. 번역하고자 하는 문장의 단어가 많아지면 하나의 Context vector안에 문장의 모든 의미를 담기가 힘들다.
  2. 번역되는 단어는 기존 문장의 특정 단어의 영향을 많이 받을 것인데 이를 반영하기 힘들다. (예를 들어 weather -> 날씨)

특히 1번의 단점으로 길이가 긴 문장에서는 낮은 performance를 보여왔다. 이를 해결하기 위한 방법이 바로 Attention이다. 문장 전체를 보는 것이 아니라 번역의 결과에 큰 영향을 주는 단어들을 집중적으로 학습에 반영하겠다는 것이다. 기존 모델에서는 모든 단어들을 통합하여 context vector로 만들었지만, Attention 모델에서는 input 문장을 sequence of vectors로 만들고 매 decoding마다 그것의 subset을 활용하는 것이 차이다. 쉽게 말해서 문장의 모든 단어들을 decoding state마다 반영한다는 것이다. 어떻게 이게 가능한지 모델을 한번 살펴보자.

먼저 input 위로 bidirectional RNN이 Encoder로 사용됐음을 볼 수 있다. 이 Encoder는 일반적인 RNN을 사용할 수도 있다. RNN의 hidden state s_t는 h_i, a_t,i의 곱하기와 이전 state S_t-1에 대한 함수로 볼 수 있다. 이를 수식으로 표현하면 다음과 같다.

y_i의 정답을 맞추는 것도 maximum likelihood로 생각하여 conditional probability의 확률을 높이는 것에 대한 식이며 여기서 hidden state s_i는 다음과 같고

ci는 아래의 식으로 구할 수 있다.

출처 : Neural Machine Translation

여기서 alpha는 다음과 같이 구한다.

여기서 alignment model의 출력값인 e_ij는 s_i-1 과 h_j로 부터 구할 수 있다. j는 각 단어별 index이고 s_i-1은 이전 hidden state이다. 각 단어별로 Decoder output에 얼마나 영향을 주는지(align 되는지) 학습하겠다는 것이다. 번역되는 단어와 연관이 있는 단어는 다른 단어들에 비해 높은 Alignment score를 가져 결과에 더 영향을 줄 수 있다. 즉 결과를 바꾸는 input에 Attention 하겠다는 것이다. alpha는 각 단어의 score에 대한 softmax이며 각 단어들이 영향을 주는 확률로 생각해 볼 수 있다.

 

bidirectional RNN 모델에서는 h_j를 concatenate하여 사용한다고 한다.

 

참고 논문

Neural Machine Translation

대부분의 사진과 수식은 위의 논문의 그림을 인용하였습니다.

'Deep Learning' 카테고리의 다른 글

Andrew Ng 교수님의 Data-centric 강의 요약  (0) 2021.05.25
Batch Normalization  (0) 2021.05.13