.box_article .article_cont p code
최신 고성능 모델들은 Transformer 아키텍처를 기반으로 하고 있다.
이전까지는 인코더와 디코더를 포함해 시퀀스를 변형시키는 RNN/CNN 기반 모델을 전적으로 사용
인코더/디코더 구조 + Attention 메카니즘 : 성능 향상
본 논문에서는 Attention 메카니즘에 전적으로 기반을 둔 Transformer 아키텍처 제안
RNN, LSTM, GRU 등의 여러 딥러닝 모델 존재 : sequence 모델링에 효과적으로 이용
그러나, 시퀀스에 포함된 각 토큰들에 대한 순서 정보를 먼저 정렬시킨 후 반복적으로 입력에 넣어 히든스테이트를
갱신시키는 방법으로 동작
문맥 벡터가 인코더의 모든 시퀀스 정보를 포함하고 있으므로 decoding 시 개별 토큰과의 관계파악이 어렵다.
Sequence가 길어지는 경우 RNN의 고질적인 문제 중 하나인 기울기 소실(Gradient vanishing) 위험이 있다.
⇒ 하나의 문맥 벡터가 소스 문장의 모든 정보를 담기 어려움! 성능이 저하된다.
현재 출력 대상에 대해 모든 Encoder의 hidden state를 고려할 수 있다.
Self-attention
대부분의 성능이 좋은 시퀀스 모델 : Encoder-Decoder 구조를 지님
Encoder : n개의 입력 시퀀스를 임베딩 벡터 z로 변환
Decoder : 벡터 z에 대해 m개의 토큰으로 구성된 출력 문장을 만듦
RNN 구조 모델 : 시퀀스의 길이만큼 네트워크에 입력되는 방식
- 이전 단계에서 생성된 symbol을 이용해 다음 번에 나올 출력값을 만드는 방식으로 동작
Transformer 모델 : Encoder-Decoder 구조로 구성
Positional Encoding : RNN을 사용하지 않는 대신 문장 내 포함된 단어들의 위치정보를 인코딩해 입력하기 위해 사용
① 출력된 단어만 Attention 수행하도록 학습 수행 시 mask를 씌워 뒤쪽 단어는 미리 알지 못하도록 만듦
② Multi-Head Attention : Query 값이 Decoder에 있으므로 각각의 출력 단어를 만들기 위해 Encoder 파트에서 어떤 정보를 참고하면 좋을지 attention 수행
③ Feed Forward 수행
④ Linear layer 수행, Softmax 수행해 실제 각각의 출력 문장에 포함된 단어들이 어떤 단어에 해당하는지 구할 수 있음
Scaled Dot-Product Attention
Multi-Head Attention
Transformer에서 Multi-head Attention을 활용하는 곳
① "Encoder-Decoder attention" layer : Query는 이전의 Decoder layer에서, Key와 Value는 Encoder의 출력에서 가져옴
- 출력 단어를 만들기 위해 소스 문장에 포함된 단어 중 어떤 정보에 보다 초점을 맞출지 계산하는 과정!
② Encoder 파트 - "Self-attention" : Query와 Key, Value가 모두 같은 형태.
③ Decoder 파트 - "Self-attention" : "mask"를 씌워 softmax에 들어가는 값이 -∞이 돼 0%가 부여될 수 있도록 함!
- 각 단어가 앞부분의 단어만 참고할 수 있도록 하기 위함
max 함수 : ReLU 활성화를 위해 사용
인코더와 디코더의 각 layer는 모두 FFN을 포함
각 위치별로 선형 변환(linear transformation)하는 것은 동일하지만, layer별로 적용 모수는 모두 다르다.
Seq2seq 모델에서 사용되는 방법과 동일
Input dimension : 특정 문장에 포함된 단어의 개수에 비례
→ Embedding layer를 거쳐 임베딩 차원으로 mapping
Transformer 모델은 Attention mechanism만 전적으로 활용
1. 각 layer마다 계산 복잡도가 줄어든다.
2. Recurrence를 없앰으로써 병렬 처리 가능
3. 장거리 지속성(Long-range dependency)에 대해 효율적 처리
※ 장거리 지속성 : 시간 간격이 증가하거나 점 사이의 공간 거리가 증가함에 따라 두 점의 통계적 의존성 붕괴
4. 해석 가능한 모델 형태로 만듦 : Self-attention의 확률값 출력
Transformer 모델
[NLP 스터디] Improving Language Understanding by Generative Pre-Training 논문 리뷰 (0) | 2021.11.11 |
---|---|
[NLP 스터디] Improving Language Understanding by Generative Pre-Training 논문 리뷰 (0) | 2021.09.30 |
NLP 스터디 1 소개 (0) | 2021.08.27 |
댓글 영역