2020. 2. 10. 18:40ㆍnlp
1) Seq2Seq Pay Attention to Self Attention: Part I
2) Seq2seq Pay Attention to Self Attention: Part 2
Seq2seq vs. Attention Model
- Seq2seq : 하나의 고정길이인 context vector
- Attention Model : n개의 context vector ( n = input 문장에 사용된 총 단어의 개수)
Attention Model의 context vector 계산하는 방법
- α : attention score (단어의 중요도를 의미함)
- h : 은닉 상태
- 모든 은닉상태 * attention score = context vector
Attention score, α 계산하는 방법
- a = Alignment model
- j번째 input 단어와 i번째 output 단어가 얼마나 비슷하냐?
- h_j : Encoder의 j번째 은닉상태
- s_(i-1) : Decoder의 i 직전까지 은닉상태
Bi-directional RNN
RNN의 한계
1) 순서대로 input/output : 따라서 병렬 처리 불가능
cf. Transformer는 병렬 처리함 (한 번에 각 input 단어 넣음)
(그 대신 transformer는 단어 순서 모르니까 positional encoding 필요)
2) 긴 의존관계long-range dependencies 처리 어려움
Transformer Model의 주요 특징
1) Self-Attention
2) Multi-headed
- Input word(source) = <Key, Value>
- output word(target) = <Query>
- Query와 각 Key들의 유사성 계산(score 'e') → 그 Key에 해당하는 각 Value들의 attention score 얻음(attention score, α) → 이 attention score와 Value 벡터를 곱하여 weighted value vector를 구함 → weighted value vector를 모두 더함 → Attention/context vector (c)
Scaled Dot-Product Attention
- Query와 Key 곱하기
- 곱한 결과를 key 벡터 길이의 루트로 나누기
- softmax에 넣기
- 그 결과는 value 벡터와 곱하기
3개의 Attention
Masked Multi-head Attention
- 'Masked' : 현재 포지션 이전 단어는 참조(attend)할 수 있지만, 이후 단어는 참조하지 X
'nlp' 카테고리의 다른 글
BERT 파헤치기 Part 1-2 번역 및 정리 (0) | 2020.02.11 |
---|---|
그림으로 보는 BERT 번역 및 정리 (0) | 2020.02.11 |
그림으로 보는 Transformer 번역 및 정리 (0) | 2020.02.10 |
[seq2seq + Attention] 불어-영어 번역 모델 PyTorch로 구현하기 (0) | 2020.02.10 |
Attention Model 번역 및 정리 (0) | 2020.02.10 |