seq2seq에서 long term dependecy 문제를 해결하고자 add on module로 attention을 도입
이제는 LSTM, GRU 구조를 self-attention을 통해 attention으로 모두 변경 - transformer
이 과정에서 순서를 고려하기 위해 positional encoding이라는 테크닉을 활용
기존의 RNN에서는 멀리 있는 정보를 전달할 때 정보 유실.. 변질 등의 issue 해결.. → attention이 하지 않았나 ?
Bi directional RNNS
문장의 순서를 바꿔서 진행을 한 것도 고려를 해서 앞의 문장도 고려하겠다는 의미 ..?
각 time step의 단어가 encoder, decoder 역할을 모두 할 수 있도록 3개의 선형 변환을 통해 각각의 역할이 수행되도록 나눠주는 느낌..
query : decoder의 $h_t$ 역할
key : encoder의 $h_t$ set
value : query와 key를 통해 얻어온 가중치와 연산을 해 최종 사용하는 벡터 모음
query, key : 내적을 할 수 있도록 차원이 동일해야 함!
key, value : 개수가 동일해야 함