David의 개발 이야기!
Attention 매커니즘에 대해 알아보자! 본문
1. 딥러닝 기반의 기계 번역 발전 과정
기계번역 발전과정은 위 표과 같다.
GPT와 BERT의 차이는 아래와 같다.
GPT : Transformer 의 디코더(Decoder) 아키텍처 활용
BERT : Transformer 의 인코더(Encoder) 아키텍처 활용
2. 기존 Seq2Seq 모델들의 한계점
(1) bottleneck 현상
- seq2seq 는 context vector v에 소스문장의 정보를 압축하는 구조
-> 병목(bottleneck)이 발생하여, 성능하락의 원인이 된다.
(2) 디코더가 context vector를 매번 참고하는 문제
-> 그럼에도 여전히 소스문장을 하나의 벡터로 압축해야함.
[ 문제 정리 ]
=> 하나의 context vector 가 소스 문장의 모든 정보를 가지고 있어야 하므로 성능이 저하된다.
[ 해결 방안 ]
=> 매번 소스 문장에서의 출력 전부를 입력으로 받으면 어떨까?
( 최신 GPU는 많은 메모리와 빠른 병렬 처리를 지원한다.)
3. Seq2Seq with Attention
- Seq2Seq 모델에 어텐션(Attention) 매커니즘을 사용한다.
- 디코더에서 인코더의 모든 출력(outputs)을 참고한다.
본 논문에서는, 양방향(bidirectional) RNN을 사용한다. -> 입력 문장의 순서를 바꾸지 않는다.
기존 seq2seq 논문에서는 입력문장의 순서를 바꾸어야 했다. 언어를 막론하고, 보통 앞쪽 단어에 주어 등이 들어가기 때문에, 앞쪽을 맞추어야 뒤쪽을 맞출 수 있기 때문이다. 이러한 문제를, bidirectional RNN 을 사용해 문제를 해결한 것이다.
=> seq2seq with attention, attention 매커니즘은, 인코더보다는 디코더의 개선에 초점을 맞춘 논문이다!
디코어 파트에서 인코더에서 나온 모든 정보를 attention(활용)하자! 아이디어!
3. Decoder 상세
-> 디코더는 매번 인코더의 모든 출력중에서 어떤 정보가 중요한지를 계산한다.
4. 어텐션 시각화
어텐션(attention) 가중치를 사용해 각 출력이 어떤 입력 정보를 참고했는지 알 수 있다.
'자연어처리' 카테고리의 다른 글
Seq2seq(시퀀스 투 시퀀스)에 대해 알아보자 (0) | 2023.08.24 |
---|---|
LSTM 에 대해 알아보자 (0) | 2023.08.19 |
RNN 에 대해 알아보자 (0) | 2023.08.19 |
N-gram 언어모델에 대해 알아보자 - N-gram Language Model (0) | 2023.08.09 |
자연어처리를 위한 1D CNN 이해하기 - 1D Convolutional Neural Networks (0) | 2023.08.09 |