Seq2Seq Bottleneck → Bahdanau Attention
Lecture 2에서는 Token ID를 vector로 바꾸었다. 그러나 문장을 이해하려면 각 vector가 자기 token의 정보만 갖는 것으로는 부족하다. “The animal didn’t cross the street because it was too tired.”에서 it이 무엇을 가리키는지 알려면 다른 위치의 정보를 읽어야 한다. Attention은 현재 위치가 필요한 정보를 다른 위치에서 선택적으로 가져오는 계산이다. 그 필요성이 처음 분명해진 문제 중 하나가 Seq2Seq translation의 fixed-vector bottleneck이었다.
- Source sequence
- Encoder annotations h_j
- 현재 decoder state와 score
- Softmax
- step별 context c_i
Token Interaction
Lecture 3는 Attention & Transformer를 다룬다. Lecture 2의 lookup 이후 vector들이 문맥을 읽고 갱신되는 계산을 설명한다.
Self-Attention
animal/street/it 예시에서 Self-Attention은 접근 가능한 여러 위치의 정보를 한 위치에 섞는다. Darker attention weight 도식은 toy weights로, 실제 checkpoint나 causal explanation의 증거가 아니다.
Fixed Context
기본 fixed-context Seq2Seq에서는 Encoder가 source 을 읽고 하나의 고정 크기 vector 를 Decoder에 넘긴다. Decoder는 source를 그대로 복원하는 것이 아니라 그 요약을 조건으로 target 을 생성한다.
Source가 길어져도 전달 통로의 크기는 그대로다. 출력에서 지금 번역해야 할 단어가 달라져도 같은 요약을 사용하므로, 앞부분의 세부 정보를 다시 선택해 읽기 어렵다. Bahdanau의 RNNencdec baseline에서 source length가 늘수록 BLEU가 하락한 관찰이 이 문제를 보여 준다. 다만 Sutskever et al.의 reversed-source LSTM도 같은 방식으로 반드시 붕괴했다는 주장은 아니다.
Step-Wise Context
Bahdanau Attention은 source의 각 위치에 대한 annotation 를 보존한다. Output step 에서는 직전 Decoder state 을 기준으로, 지금 생성할 내용에 각 source position이 얼마나 맞는지 learned scoring function 로 비교한다.
이 score를 source positions 전체에 걸쳐 Softmax하면 합이 1인 weights가 된다.
그 weights로 source annotations를 가중합하면 이번 step의 context가 나온다.
여전히 각 step에 하나의 context vector를 쓰지만, 같은 를 계속 재사용하는 대신 출력마다 새 를 계산한다. Encoder의 states를 다시 참조할 수 있다는 점이 bottleneck을 완화한다. 이 초기 Attention은 한 sequence 내부를 읽는 Self-Attention보다 Encoder–Decoder 사이의 Cross-Attention에 해당한다.
번역에서 어떤 step은 원문의 명사를, 다른 step은 형용사를 더 많이 읽을 수 있다. 영어와 프랑스어처럼 수식어와 명사의 순서가 달라지면 alignment의 강한 부분도 교차할 수 있다. 대각선에 가까운 패턴은 비슷한 word order, crossed block은 reordering을 보여 주는 단서다. 다만 weight가 크게 보인다는 관찰만으로 모델의 최종 판단에 대한 인과 설명이 완성되는 것은 아니다.
고정 vector 하나에 source 정보를 모두 담아 전달하는 방식에는 한계가 있다. Bahdanau Attention은 output마다 다른 context를 계산하며, 번역의 어순 차이는 alignment에 나타날 수 있다.
Check
고정 c와 step마다 바뀌는 c_i는 decoder가 source를 사용하는 방식에서 어떻게 다른가?
Answer
고정 c는 모든 output이 같은 압축 인터페이스를 공유한다. c_i는 현재 decoder state에 따라 source annotations를 다시 score해 필요한 정보를 가중합한다.
Attention map에서 강한 연결을 보았다는 사실만으로 causal explanation이라고 할 수 없는 이유는?
Answer
관측된 weight pattern만으로 실제 출력의 인과적 기여를 검증한 것은 아니기 때문이다. 강의가 제시한 도식도 toy weights다.