한 줄 정의
문장의 모든 토큰을 동시에 일괄 처리하여 순서 정보가 소실되는 트랜스포머(Transformer) 아키텍처에서, 각 단어 토큰의 상대적 및 절대적 위치 정보를 임베딩 벡터에 수학적으로 추가해주기 위해 입력단에 더해주는 위치 벡터이다.
핵심 요지
- 순서 정보 복원: 순차적으로 처리하여 위치 정보가 내장되는 RNN/LSTM과 달리, 병렬 처리를 위해 데이터를 동시에 짚어가는 트랜스포머의 구조적 한계(단어 순서 분간 불가능)를 극복한다.
- 의미 신호 보존 (조화와 균형): 단순 정수 인덱스 더하기처럼 위치 수치가 너무 커져 단어 고유의 의미 정보(임베딩)를 훼손하는 것을 막고, 신호 세기를 적절하게 보정·제어한다.
- 삼각함수(Sinusoidal) 파동 활용: 주기가 다른 여러 사인(Sin)과 코사인(Cos) 함수 파형의 진폭들을 교차 결합하여 문장 내의 고유한 위치 서명(Signature) 벡터를 부여한다.
- 상대적 위치 학습 지원: 삼각함수의 선형 결합 성질 덕분에 모델이 먼 거리나 상대적인 거리 오프셋()에 따른 단어 간 위치 관계를 매끄럽게 포착할 수 있다.
상세
트랜스포머의 한계와 위치 주입의 당위성
트랜스포머 아키텍처는 모든 단어 토큰을 동시에 집어삼키는 일괄 처리(Simultaneous processing)를 수행하여 대단히 유용한 학습 병렬성(Parallel computing)을 확보했다. 그러나 이 일방통행 및 동시 처리 특성상 “소파 위의 개(dog sat on couch)“와 “개 위의 소파(couch sat on dog)“가 지니는 의미적·구조적 차이를 스스로 식별해내지 못한다.
이를 해결하기 위해 최초 인코더/디코더 입력부에서 단어 고유의 의미 정보를 조밀하게 압축한 단어 임베딩(Word Embedding) 벡터 위에 위치 인코딩(Positional Encoding) 벡터를 1:1로 단순 합산(Sum)하여 신경망에 주입한다.
부적절한 설계 예시와 한계
- 0 벡터 더하기: 위치 변화량이 0이므로 여전히 순서를 식별하지 못한다.
- 단순 정수 더하기 (Position 1 ->
[1, 1], Position 200 ->[200, 200]): 일반적으로 0과 1 사이로 압축 학습되는 의미 임베딩 공간에 비해, 문장이 길어져 뒤로 갈수록 위치 정수 수치가 비대해진다. 결국 모델은 단어 본연의 뜻(“couch”)은 잊어버리고 “200번째 단어”라는 위치 정보에만 집착하게 되어 학습 효율이 곤두박질친다.
사인/코사인 기반 수학적 해결 공식
트랜스포머 원작 논문(Attention is All You Need, 2017)에서는 다음과 같은 삼각함수 공식을 도입하여 짝수와 홀수 차원에 각각 대입함으로써 크기와 범위를 완벽하게 제어했다.
이 방식은 진동 주파수의 길이를 (가장 짧고 촘촘한 파장)에서 (가장 느슨하고 긴 파장)까지 기하급수적으로 다르게 구성하여 격자 형태로 엮는다.
- 고주파 대역: 인접한 이웃 단어 사이의 미세한 1단계 선후 관계를 변별하는 데 기여한다.
- 저주파 대역: 4번째 단어와 40번째 단어처럼 멀리 떨어진 장기 문맥에서의 흐름과 거리를 식별한다.
- 제한된 범위: 삼각함수의 값은 항상
-1과1사이에 위치하므로, 의미 임베딩의 스케일을 전혀 망가뜨리지 않고 일관성 있게 조화를 유지한다.
예시
차원 크기 인 소형 테스트 공간에서, 2번째 위치()에 있는 단어 “dog”의 위치 인코딩 계산 과정:
- :
- :
- :
이 6차원 계산 결과를 모은 [0.909, -0.416, 0.092, 0.995, 0.004, 0.999] 벡터가 “dog”의 원래 의미 임베딩에 더해져 트랜스포머의 어텐션 메커니즘으로 입력된다.