앞서 시퀀스 투 시퀀스 모델에 대해서 설명하면서 어텐션에 대한 개념을 설명했다.
Transformer의 논문 제목은 "Attention is All You Need"이다.
어텐션만 있으면 다 가능하다. 뭐 이런 뜻이다.
즉, 트랜스포머는 어텐션 기법을 극대화 한 모델이라고 볼 수 있다.
트랜스포머는 RNN의 기반의 모델처럼 한 번에 하나씩 처리하는 문제를 지적했다.
* 순차적으로 처리하면 속도가 너무가 느리다!!!
어텐션을 사용하면서 스피드를 최대한으로 끌어올려보자!!
그래서 트랜스포머는 순차적으로 하지 않고 한 번에 계산을 해버린다.
그전에 모델의 구조부터 살펴보자.
모델의 구조는 6개의 인코더와 6개의 디코더 구조로 되어있다.
여기서 6개는 최적화 수가 아니라 논문에서 사용한 갯 수 이기 때문에
6개가 좋다는 논리적 근거는 없다.
seq2 seq는 하나밖에 없었는데..
여기서 인코더 블록은 각각의 구조는 동일하지만 해당하는 가중치를 공유하지 않는다.
첫 번째 인코더와 두 번째 인코더의 구조는 동일하지만 구조 안에서 학습을 통해서 가중치가 결정됨.
Unmasked vs Masked
인코더(Encoder)는 한 번에 모든 시퀀스를 다 사용해서 마스킹을 사용하지 않는 Unmasked 기법을 사용.
디코더(Decoder)는 시퀀스를 생성할 때 순차적으로 해야 하기 때문에 순서에 따라 Masked가 되어있다.
Self-Attention layer
하나의 단어를 처리를 할 때 단어에 대한 정보를 처리하기 위해서 함께 주어진 인풋 시퀀스의 다른 단어들을
얼마만큼 중요하게 볼 것인가를 계산하는 레이어
*단어들끼리 서로 영향을 미친다.
Feed Forward Neural Network
한꺼번에 적용하는 것이 아니라 각각의 단어에 적용함.
*단어끼리 서로 영향을 미치지 않는다.
Encoder-Decoder-Attention(디코더에만 존재)
최종적인 아웃풋을 산출할 때 인코더에서 주어지는 정보들을 어떻게 반영할 것인가에 대한 레이어
Positional Encoding
포지셔널 인코딩은 인풋 임베딩 벡터와 똑같은 차원으로 이루어져 있고 포지션에 대한 정보를 가지고 있다.
이건 단어의 순서를 고려하기 위해서 생겨난 것이다. RNN 모델은 순차적인 모델이라 순서를 고려하지만
Transformer는 RNN을 사용하지 않기 때문에 포지션 인코딩 값을 미리 계산해서 더해주는 과정이 추가되었다.
이렇게 해서 트랜스포머 구조를 살펴보았다.
순서를 요약해보면
Transformer
1. Input Embedding
2. Positional Encoding + Input Embedding // 포지션 정보를 고려함.
3. Encoding
<인코딩 블록>
Self-attention
Feed Forward Neural Network
<인코딩 블록> x N ( 논문에서는 6번 )
4. Decoding
<디코딩 블록>
Masked Self-attention
Encoder-Decoder-Attention
Feed Forward Neural Network
<디코딩 블록> x N ( 논문에서는 6번 )
5. Linear
6. Softmax
이렇게 요약할 수 있다.
이렇게 구조에 대해서 간단하게 알아보았다(실제론 훨씬 복잡하지만 최대한 간단하게..)
끝..
이미지 출처 : wikidocs.net/22893 , https://jalammar.github.io/
참고 영상 : https://www.youtube.com/watch?v=Yk1tV_cXMMU(고려대학교 산업경영공학과 강필성 교수님 강의)
'Machine learning > NLP' 카테고리의 다른 글
[NLP] Transformer : Masked Multi-Head Attention - part3 (0) | 2021.08.21 |
---|---|
[NLP] Transformer : Self-Attention ( Multi-head-Attention ) - part2 (0) | 2021.08.19 |
[NLP] Sequence to Sequence(시퀀스 투 시퀀스) 코드 (0) | 2021.08.19 |
[NLP] Sequence to Sequence (시퀀스 투 시퀀스), Attention(어텐션) 개념 (0) | 2021.08.18 |
[NLP] 수능 영어지문을 풀어주는 인공지능 (WMD) (0) | 2021.01.30 |