Self Attention : 말 그대로는 스스로에게 수행하는 Attention 기법으로, 입력 Sequence 가운데 태스크 수행에 의미 있는 요소들 위주로 정보를 추출한다는 뜻입니다.
Attention : sequence 입력에 수행하는 기계 학습 방법의 일종으로 sequence 요소 가운데 중요한 요소에 집중하여 성능을 끌어 올리는 기법입니다.
Self Attention은 Query, Key, Value가 서로 영향을 주고 받으면서 문장의 의미를 계산합니다.
Convolutional Neural Network(CNN, 합성곱 신경망) : Convolution filter(합성곱 필터)라는 특수한 장치를 이용해 sequence의 지역적인 특징을 잡아내는 모델입니다. 하지만 CNN은 Convolution filter 크기를 넘어서는 문맥을 읽어내기 어렵다는 단점이 있습니다.
Recurrent Neural Network(RNN, 순환 신경망) : Source Sequence를 차례대로 처리하는 Sequence 정보를 압축하는데 강점이 있습니다. 하지만 RNN은 Sequence 길이가 길어질수록 정보를 압축하는데 문제가 발생할 수 있습니다. 오래전에 입력된 단어는 잊어버리거나, 특정 단어의 정보를 과도하게 반영하여 전체 정보를 왜곡하는 경우가 자주 발생합니다.
Self Attention의 특징과 장점 : 개별 단어와 전체 입력 Sequence를 대상으로 Attention 계산을 수행해 문맥 전체를 고려하기 때문에 지역적인 문맥만 보는 CNN 대비 강점이 있고, 모든 경우의 수를 고려(단어들 서로가 서로를 1대 1로 바라보게 함)하기 때문에 Sequence 길이가 길어지더라도 정보를 잊거나 왜곡할 염려가 없습니다. 이는 RNN의 단점을 극복한 지점입니다.
Attention 과 Self Attention의 차이점