개요
해당 포스팅 시리즈는 “Unerstanding Deep Learning” 책을 학습하는 과정을 기록하는 스터디 노트이다. 이번에는 12장, Transformers를 다룬다.
Positional Encoding

Figure 12.5에 이런 그림이 있다. Positional encoding을 통해서 self-attention이 input의 permutation을 반영할 수 있게 한다는 내용에서 나온 것이다. 이때 이게 왜 쓰이는 건지는 알겠는데 이 그래프가 무엇을 의미하는지는 잘 이해가 되지 않았다. 좀 더 찾아보고 고민해보니 사실은 아주 간단한 것임을 알 수 있었다.

책에서 이러한 그림을 볼 수 있는데 각 token의 sequence를 표시한 것이다. 마찬가지로 Figure 12.5도 동일하게 token의 나열을 각 dimension이 보이게 나열한 것이고 이때 sine wave와 유사한 패턴을 적용하여 permutation이 서로 다르게 받아들일 수 있도록 하는 것이다.
Absolute vs Relative Position Encoding
Positional encoding과 관련해서 absolute와 relative로 각각 나누어 비교하는 부분이 있는데 이제 정확히 무엇을 의미하는지 몰랐다. 좀 더 알아보니 쉬운 예시를 통해 한 번에 이해할 수 있었다. absolute position은 말 그대로 절대적인 위치 기반이라서 어떤 단어의 위치를 절대적으로 표현한다. 예를 들어 157번째의 단어임을 모델에게 전달한다. 반면 Relative는 주변 단어로부터의 상대적인 위치를 전달할 수 있어서 -2번째와 같이 그 단어로부터 2개 전이라고 전달할 수 있다. 그렇기 때문에 단어 하나의 absolute position보다 두 단어의 relative position이 더 중요하다고 하는 것이다.
One-hot vector

Figure 12.9에서 input embedding을 만들기 위해 vocabulary embedding에 one-hot vectors가 담긴 matrix를 곱한다는 내용이 있다. 이때 one-hot vector가 정확히 무엇을 의미하는지 몰랐는데 추가적으로 검색해보니 간단한 개념이었다. One-hot vector는 다른 entry가 모두 0이고 하나의 entry만 1인 vector로 이를 곱해서 matrix에서 특정 column만 가져올 수 있다. Figure 12.9에서는 이를 통해 필요한 word embedding을 vocabulary embeddings로부터 가져오는 것이다.
Reference
[1] Prince, S. J. D. (2023). Understanding Deep Learning. The MIT Press. Retrieved from http://udlbook.com