Transformer
-
[코드리뷰] Transformer의 positional_embeddingData miner/Information Retrieval 2022. 11. 2. 21:59
논문을 구현한 코드에서 단어 토큰들의 위치 정보를 임베딩 하기 위한 여러 방식들이 있는데, "absolute", "relative_key", "relative_key_query"가 그에 해당한다. - 'absolute'의 경우 - position_embeddings이란 이름으로 토큰 시퀀스의 위치 인덱스를 나타내는 정수형 타입의 텐서값을 받아 임베딩한다. (max embedding 크기 X hidden size) - word_embeddings, token_type_embeddings, position_embeddings의 값은 추후에 합산되어 학습되므로 이들의 임베딩 hidden size는 동일하다. Embedding X by Y 에서 Y값이 동일하다는 의미. - 한편 토큰 시퀀스의 위치 인덱스의 경우..
-
#The Positional Encoding 를 어떻게 하는 것인가? #Transformer_모델Data miner/Information Retrieval 2020. 3. 14. 21:44
Self-attention이 있는 Transformer의 후속 모델들은 positional encoding도 transformer의 방식을 따른다. 본 포스팅은 Positional Encoding부분을 자세하게 다루고자 한다. "Attention is all you need"라는 논문에서 cos, sin함수를 활용하여 토큰의 위치정보를 보완한다고 하는데, 이게 어떻게 이뤄지는 건지 궁금했었다. 논문에서는 cos, sin함수를 활용했다고만 언급되어 있다. 이 부분을 읽으면서 들었던 생각은, 단순히 문장에 속한 단어 토큰에 1,2,3, ..., 등의 정수를 붙여주면 안되나? 2π라는 주기와 최대 최소값을 가지고 있는 cos, sin함수를 굳이 활용하는 이유가 있을까라는 의문점이 들었다. 먼저 위치정보를 정수..