IT용어위키


위치 인코딩

위치 인코딩(位置encoding, Positional Encoding)은 트랜스포머(Transformer) 아키텍처에서 입력 시퀀스의 토큰 순서를 모델이 인식할 수 있도록 추가하는 벡터 표현이다. 순환 신경망(RNN)이나 합성곱 신경망(CNN)과 달리, 트랜스포머의 어텐션 메커니즘은 토큰 간의 순서를 직접적으로 고려하지 않기 때문에 위치 정보를 별도로 주입해야 한다.

개요

트랜스포머는 입력 시퀀스를 병렬적으로 처리하므로, 입력의 순서 정보를 자연스럽게 학습할 수 없다. 따라서 각 토큰 임베딩에 위치 인코딩 벡터를 더하거나(concatenation 대신 보통 덧셈 사용), 다른 방식으로 결합하여 모델이 토큰의 상대적/절대적 위치를 인식하도록 한다.

방식

  • 고정 위치 인코딩(Fixed Positional Encoding)
    • 원 논문에서 제안된 방식으로, 사인(sin)과 코사인(cos) 함수를 이용해 위치를 주기적으로 표현한다.
    • 모든 길이에 대해 일반화가 가능하며, 추가 학습 파라미터가 필요 없다.
  • 학습 가능한 위치 임베딩(Learnable Positional Embedding)
    • 각 위치에 대해 임베딩 벡터를 학습하는 방식.
    • BERT 등 여러 모델에서 사용된다.
    • 최대 길이가 사전에 정해져야 한다는 제약이 있다.
  • 상대적 위치 인코딩(Relative Positional Encoding)
    • 토큰 간 절대적 위치가 아니라 상대적 거리를 반영하는 방식.
    • Transformer-XL, T5, DeBERTa 등에서 사용되며, 긴 문맥 학습에 유리하다.
  • 로터리 위치 임베딩(RoPE, Rotary Positional Embedding)
    • 벡터 공간에서 회전을 통해 상대적 위치를 반영하는 방식.
    • LLaMA, GPT-NeoX 등 최신 대규모 언어 모델에서 널리 쓰인다.

필요성

  • RNN은 순차적으로 입력을 처리하므로 순서 정보가 자연스럽게 내재되어 있다.
  • 반면 트랜스포머의 어텐션은 입력을 집합처럼 다루므로, 위치 정보가 없으면 "나는 밥을 먹었다"와 "먹었다 밥을 나는"이 동일하게 취급된다.
  • 따라서 위치 인코딩을 통해 순서를 명시적으로 제공해야 문장의 의미를 올바르게 학습할 수 있다.

같이 보기

참고 문헌

  • Vaswani, A. et al. (2017). Attention Is All You Need. NIPS.
  • Shaw, P., Uszkoreit, J., Vaswani, A. (2018). Self-Attention with Relative Position Representations. NAACL-HLT.
  • Su, J., Lu, Y., Pan, S., Wen, Y., Liu, Y., Wang, T., Qi, Q., & Sun, M. (2021). RoFormer: Enhanced Transformer with Rotary Position Embedding. ACL.

각주


  출처: IT위키 (IT위키에서 최신 문서 보기)

  * 본 페이지는 IT Wiki에서 미러링된 페이지입니다. 일부 오류나 표현의 누락이 있을 수 있습니다. 원본 문서는 IT Wiki에서 확인하세요!