논문/Transfomer

Transfomer - Input Embedding & Positional Encoding

cvlab_김준수 2025. 2. 25. 19:38

 

Input Embedding이란? 

사람이 다루는 자연어를 기계가 다룰 수 있는 언어인 연속된 숫자 벡터로 변환하는 것이다. 

 

자세하게 말하자면, 문장을 토큰 단위로 나누어서 각 토큰에 대한 ID를 부여하고, 미리 학습된 임베딩 행렬의 행을 인덱스로 하여 토큰 ID에 대한 벡터를 부여하는 것을 말한다. 

 

 

 

Positional Encoding이란?

 

RNN/LSTM을 사용하지 않기 떄문에 순서에 대한 정보를 얻을 수 없다. 따라서, 임베딩 벡터를 기반으로 순서 정보를 부여하는 것을 말한다. 

 

아래의 Sin/Cos 함수를 이용해서 위치 정보를 할당하는 데 삼각함수를 이용한 이유는 최고 최저점이 일정하고 주기적이면서 계속 이어나가기 때문에 안정적이고 많은 토큰에도 위치정보를 할당할 수 있어서 이다.