클로이의 데이터 여행기

비전공자가 이해한 'Attention' 본문

자연어처리

비전공자가 이해한 'Attention'

징느K 2019. 12. 5. 16:59

 

안녕하세요. 이번 포스팅에서는 Attention을 다뤄보려고 합니다.

 

1. Attention이란?

- sequence 중 중요한 feature를 더욱 중요하게 고려하여 학습하는 모델 

: 사람이 정보처리를 할 때, 모든 정보를 기억하지 않듯 '인간처럼 기억하자'가 컨셉

 

 

2. Attention과 RNN의 차이점

- RNN은 모든 정보를 하나의 context vector에 담음

  : 입력 sequence의 길이가 매우 길면, 앞부분에 나왔던 token의 정보가 희석

 

- Attention은 중간중간에 나오는 output도 활용

 : 문맥에 따라 encoder의 weight가 결정되어 Dynamic한 Context Vector로 활용 

 

3. Attention 예시

Attention 간략 설명

 

RNN에서는 context vector에 해당하는 'h3'만 활용하여 학습했다면, 

Attention에서는 각 step에서 나오는 output인 'h1,h2,h3'를 기반으로 학습합니다.

 

이를 통해 각각의 attention weight를 얻을 수 있게 되고, 긴 sequence에서 어떤 부분이 중요한지 알 수 있습니다.

뿐만 아니라, 문맥에 따라 동적으로 attention weight가 할당되기 때문에 dynamic context vector를 획득하게 됩니다.

 

 

4. Attention의 한계점

 

- 병렬처리 불가로 인해 속도가 느림

: 이전 state가 끝나야만 다음 state를 갈 수 있는 RNN을 기반으로 하기 때문

 

 

 

이상입니다.

이 포스팅은 Tacademy의 '자연어 언어모델 BERT'를 수강하고 작성되었습니다.

비전공자 관점에서 이해한 만큼만 작성되었으니 부족하더라도 너른 이해 부탁드립니다.

읽어주셔서 감사합니다'◡'



 

 

Comments