카테고리 없음

[논문] Attention Is All You Need (2017) - 4

yennle 2024. 12. 15. 19:52
728x90

 

 

 

 

4. Why Self-Attention

 

셀프 어텐션 레이어와 순환 레이어, 컨볼루션 레이어에 대한 비교 진행

=> 3가지 조건 (층별 계산 복잡성, 연속 연산, 최장 경로 길이)

 

최대 경로 길이, 각 레이어의 복잡성과 다른 레이어 타입에 대한 시퀀셜한 가동의 최소 수. n은 시퀀스 길이, d는 차원의 표현, k는 컨볼루션의 커널 사이즈, r은 제한된 셀프 어텐션에서의 이웃의 수.

 

 

 

 

1. 각 층에 대한 총 계산 복잡도

 

=> 시퀀스의 길이가 차원보다 작으면($n<d$) self-attention layer > recurrent layer

=> 이런 상황은 최첨단 기계 번역 모델(예: word-piece, byte-pair)에 사용되는 시퀀스 표현에서 자주 발생

 

=> separable convolution의 경우 $O(knd+nd^2)$까지 복잡성을 감소시킴

=> 그러나, $k=n$일 때, separable convolution의 복잡성은

     self-attention layer와 point-wise feed-forward layar의 결합과 동일

 

 

 

2. 병렬적으로 수행 가능한 계산의 양

 

- 연속 연산의 최소 수로 측정됨

 

=> self-attention의 경우, 모든 위치를 연결하는 데 순차적으로 실행되는 연산의 수는 상수값

=> recurrent layer의 경우에는 $O(n)$번의 순차적인 실행을 요구

 

 

 

3. 네트워크의 장기 의존성 사이 경로 길이

 

- 장기의존성을 학습하는 것은 시퀀스 번역 작업에서의 중요한 과제

- 의존성을 학습하는 능력에 중요한 요인은 네트워크에서 횡단해야하는 경로의 길이

- 길이가 짧을수록 장기의존성 학습이 쉬워짐.

*장기의존성(Long-range dependence, LRD) : 통계적 의존성이 시간과 공간을 지나면서 얼마나 쇠퇴하는지를 묘사하는 현상

 

=> self-attention은 각각의 아웃풋에 중점은 둔 입력값 시퀀스의 $r$ 크기의 이웃만 고려하도록 제한 가능.

=> 이렇게 하면 최장 경로의 길이를 $O(n/r)$까지 높힐 수 있음.

 

=> 커널의 크기가 시퀀스의 길이보다 작을 경우(k<n), 단일 컨볼루션은 입력값과 출력값 위치의 모든 짝을 연결하지 않음.

=> 이럴 경우엔, 연속적인 커널(contiguous kernels)은 $O(n/k)$개의 컨볼루션 층을 쌓아야 함.

=> 확장된 컨볼루션(dilated convolutions)은 $O(log_{k}(n))$개의 층을 필요로 함.

=> convolution layer의 경우, k의 요인을 가지기 때문에 일반적으로 recurrent layer보다 비싸다.

 

*확장된 컨볼루션(dilated convolutions) 참고 : https://zzsza.github.io/data/2018/02/23/introduction-convolution/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90