티스토리 뷰

본 포스팅은 "Attention is all you need" 논문의 주요 내용을 정리하였습니다. 

[논문 링크] https://arxiv.org/abs/1706.03762

 

Attention Is All You Need

The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new

arxiv.org

1. 트랜스 포머 모델이란? 

  • 문장 속 단어와 같은 순차 데이터 내의 관계를 추적해 맥락과 의미를 학습하는 신경망
  • 어텐션(attention) 또는 셀프 어텐션(self-attention)이라 말함
  • 주요 논문 키워드 : 인코더/디코더, 어텐션, Multi-head 어텐션 

2. 무엇을 해결하려고 하는가 ? 

  • 병럴 처리 
  • 계산복잡도
  • seq2seq 모델의 한계점
    • 계산 복잡도 
    • RNN 모델에서 병렬 처리가 불가능
    • 장기의존성 문제 : 압력과 출력 사이의 거리가 멀어질 수록, 연관관계가 적어지는 문제
    • Context 벡터(고정 크기의 벡터)에 모든 문장 정보를 압축해서 표현하다보니, 정보 손실로 인한 성능 저하 발생'
    • RNN 또는 CNN 알고리즘 사용

출처: https://velog.io/@cha-suyeon/

  • RNN with attention Model
    • 입력 단어와 연관성이 있는 단어에 가중치를 주어 output word를 출력하는 것 
    • 병렬 처리가 불가능하며, attention 계산까지 더해져 계산 복잡도가 높아진다는 단점
  • attention을 통해 참조해야할 word의 위치 정보를 얻음으로써, RNN with attention 모델의 단점을 극복하고자 함  
  • RNN 또는 CNN 아키텍쳐 없이 오직 Attention에 전적으로 의존한 첫번재 변환 모델

3. 모델 구성 (Model Architecture) 

참고 :  https://omicro03.medium.com/attention-is-all-you-need-transformer-paper-%EC%A0%95%EB%A6%AC-83066192d9ab

 

Attention Is All You Need(transformer) paper 정리

2020.01.20

omicro03.medium.com

트랜스 포머- 모델 아키텍쳐

  • 크게 인코더와 디코더로 구성
  • 인코더
    • 6개의 동일한 레이어로 구성, 각 레잉어는 아래 두개의 sub-layer로 구성
    • 2개의 Sub-layer는 Self-Attention Layer와 Feed Forward network로 구성
    • Self-attention layer
      • Query, Key, Value의 3개의 벡터로 구성되며, 출력값은 Value들의 가중합으로 계산
      • Query : 영향을 받는 단어 
      • Key : 영향을 주는 단어
      • Value :  영향에 대한 가중치 

https://wikidocs.net/162098

           https://wikidocs.net/162098

 

11.3. Multi-head Attention, deep dive

# Multi-head attention mechanism: “queries”, “keys”, and “values,” over and over again 이것은 ...

wikidocs.net

[예시] "Anthony Hopkins admired Michael Bay as a great director."

Q : Michael

K : "Anthony", "Hopkins", "admired", "Michael", "Bay", "as", "a", " great', 'director'

V : 0.06, 0.09, 0.05, 0.25, 0.18, 0.06, 0.09, 0.06, 0.1

Values (가중합)  → (0.06 * "Anthony") + (0.09*"Hopkins") + (0.05*"admired")+(0.25*"Michael") 

+ (0.18* "Bay") + (0.06*"as")+(0.09*"a")+(0.06*"great")+(0.1*"director")

 

  • Scaled Dot-Product Attention
  •  

  • Multi-head attention
    • Self-attention layer를 다중 구현한 것을 의미
    • Self-attention의 경우,자기 자신의 단어에 더 많은 영향을 받음
    • 여러개의 attention을 가진 Head는 각각 무작위로 Query, Key, vlaue가 초기화되므로 각기 다른 표현 가능 
  • Positional Encoding
    • positional encoding 기법으로 각 단어의 상대적인 위치 정보 포함
    • time signal을 가진 embedding을 인풋으로 받음
    • [0,1] 사이로 각 time-step을 할당 

  • 디코더
    • 인코더의 key, value 벡터가 decoder의 encoder-decoder attention layer에 사용

4. 왜 Self-attention이 좋은가? 

  • layer당 전체 계산량이 적음 (복잡도 해결) 
  • 병렬 계산이 가능, 순차적으로 계산이 필요한 RNN과 비교하여 병렬적으로 한번에 많은 계산을 할 수 있음
  • 장기의존성 문제 해결 
  • 장거리 의존성, 학습 속도 면에서 self-attention이 가장 좋음

5. 모델 학습

6. 결과

  • Machine Translation, Model Variations, English Constituency Parsing 대한 실험 결과

  • Base 모델만 해도,  최고의 성능을 보이며, big-model의 경우 SOTA를 상당 수준 경신함

7. attention 시각화

  • Making이라는 단어가 making..more difficult라는 구를 만드는데 중요한 역할을 하는 것을 보여줌

8. 결론

  • RNN과 CNN 없이 오직 Attention에만 의존한 새로운 종류의 모델 
  • 계산량을 줄이고, 병렬화를 적용해 학습 속도가 빠르고, 성능도 SOTA 수준 
  • attention 모델은 자연어 뿐만 아니라 이미지, 오디오, 비디오 등 상대적으로 큰 입력-출력을 요구하는 태스크들에 효과적으로 사용
  • 이후 BERT 모델 개발 

 

'TIL' 카테고리의 다른 글

Airflow개념 및 DAG 코드 구현  (0) 2022.05.29
# [다짐] 글또 7기를 시작하며.  (0) 2022.05.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함