2
• Seq2Seq 모델 문제점
1. 하나의 Context vector에 인코더의 모든 정보를 압축하기 때문에 정보 손실이 발생함
2. RNN 기반의 모델이 갖는 기울기 소실(Vanishing gradient) 문제 존재함
• Attention의 아이디어
• 디코더에서 각 출력 단어를 예측하는 매 시점마다 인코더의 전체 문장을 참고하도록 함
• 인코더의 전체 문장을 참고 할 때 문장의 각 단어에 대한 가중치를 계산하여 참고함
3
• Attention(Q, K, V) = Attention Value
• Q = Query, K = Key, V = Value
• Attention Function
1. 입력된 Query와 각 Key의 유사도를 Value에 반영함
2. 모든 Value의 합을 계산함
3. 계산된 합이 Attention Value
4. KEY, VALUE: ENCODER HIDDEN STATE
5. QUERY: DECODER HIDDEN STATE
4
• 여러 Attention 모델 중 가장 수식적으로 단순한 모델
• Attention score 계산 방식을 제외하면 타 Attention 모델과 동일함
• 주요 학습 방식
1. 매 예측 시점(t) 마다 인코더의 hidden state들과 디코더 t 시점의 hidden state 사이의 유사도
측정
2. 유사도를 softmax 함수를 통해 0~1 사이의 가중치로 변환
3. 가중치와 인코더를 조합하여 Attention Value 생성
4. Attention Value와 t 시점의 hidden state를 Concatenate 후 출력층에 입력함
t 시점
각 단어의 가중치
5
• Attention Score
- 단어 간 유사도를 계산하는 척도
- Dot-Product Attention 에서는 두 벡터 간의 내적을 통해 계산함
- t 시점의 디코더 hidden state와 모든 인코더 hidden state들과 Attention score 계산
- Attention Score를 Softmax 함수를 통해 0~1 사이의 가중치로 변환 (Attention 가중치)
6
• Attention Value
- 인코더의 각 hidden state들과 Attention 가중치를 가중합하여 Attention Value 계산함
+ + + =
7
• Calculate Output
- Attention Value와 t 시점의 디코더 hidden state를 Concatenate
- Concatenate된 벡터를 학습 가능한 가중치 행렬과 곱하여 하이퍼볼릭탄젠트 함수를 거치게 함
- 𝑠𝑡를 출력층에 입력함
8
• Calculate Output
- Attention Value와 t 시점의 디코더 hidden state를 Concatenate
- Concatenate된 벡터를 학습 가능한 가중치 행렬과 곱하여 하이퍼볼릭탄젠트 함수를 거치게 함
- 𝑠𝑡를 출력층에 입력함
9
• Attention 모델의 종류
- Attention 모델은 Attention score 계산 방법에 따라 달라짐
- 현재까지 제시된 Attention score 계산 방법은 아래와 같음
10
- 그림 출처: https://wikidocs.net/22893
- 논문: Bahdanau, Dzmitry and Cho, Kyunghyun and Bengio, Yoshua, “Neural
Machine Translation by Jointly Learning to Align and Translate”, arXiv, 2014