David의 개발 이야기!

Attention 매커니즘에 대해 알아보자! 본문

자연어처리

Attention 매커니즘에 대해 알아보자!

david.kim2028 2023. 8. 30. 16:49
반응형

1. 딥러닝 기반의 기계 번역 발전 과정

기계번역 발전과정은 위 표과 같다. 

 

GPT와 BERT의 차이는 아래와 같다.

 

GPT : Transformer 의 디코더(Decoder) 아키텍처 활용

BERT : Transformer 의 인코더(Encoder) 아키텍처 활용

 

 

2. 기존 Seq2Seq 모델들의 한계점

(1) bottleneck 현상

Seq2Seq 구조

- seq2seq 는 context vector v에 소스문장의 정보를 압축하는 구조

-> 병목(bottleneck)이 발생하여, 성능하락의 원인이 된다.

 

 

(2) 디코더가 context vector를 매번 참고하는 문제

-> 그럼에도 여전히 소스문장을 하나의 벡터로 압축해야함. 

 

 

context vector를 매번 참고하는 문제

[ 문제 정리 ]

=> 하나의 context vector 가 소스 문장의 모든 정보를 가지고 있어야 하므로 성능이 저하된다.

 

[ 해결 방안 ]

=> 매번 소스 문장에서의 출력 전부를 입력으로 받으면 어떨까? 

      ( 최신 GPU는 많은 메모리와 빠른 병렬 처리를 지원한다.)

 

 

3. Seq2Seq with Attention

- Seq2Seq 모델에 어텐션(Attention) 매커니즘을 사용한다. 

- 디코더에서 인코더의 모든 출력(outputs)을 참고한다. 

 

 

 

본 논문에서는, 양방향(bidirectional) RNN을 사용한다. -> 입력 문장의 순서를 바꾸지 않는다.

기존 seq2seq 논문에서는 입력문장의 순서를 바꾸어야 했다. 언어를 막론하고, 보통 앞쪽 단어에 주어 등이 들어가기 때문에, 앞쪽을 맞추어야 뒤쪽을 맞출 수 있기 때문이다. 이러한 문제를, bidirectional RNN 을 사용해 문제를 해결한 것이다. 

 

bidirectional RNN

 

=> seq2seq with attention, attention 매커니즘은, 인코더보다는 디코더의 개선에 초점을 맞춘 논문이다! 

디코어 파트에서 인코더에서 나온 모든 정보를 attention(활용)하자! 아이디어!

 

3. Decoder 상세

-> 디코더는 매번 인코더의 모든 출력중에서 어떤 정보가 중요한지를 계산한다.

 

 

 

4. 어텐션 시각화

어텐션(attention) 가중치를 사용해 각 출력이 어떤 입력 정보를 참고했는지 알 수 있다. 

반응형
Comments