인프런 커뮤니티 질문&답변
Q, K, V 초기 임베딩
작성
·
14
·
수정됨
0
안녕하십니까, 강사님.
트랜스포머에 대한 세심하고 깊이 있는 강의를 준비해주셔서 감사합니다. 강의 정말 유익하게 잘 듣고 있습니다.
Self-Attention의 learnable parameter 단계로 넘어가면서 몇 가지 궁금한 점이 생겨 질문드립니다.
초기 token embedding은 어떤 방식으로 설정되는 것인가요?
Query, Key, Value를 구하기 위해 초기 token embedding에
(3, 3)형태의nn.Linear를 곱하여 각각(6, 3)으로 변환하는 과정의 의미가 궁금합니다.
기존 token embedding을 그대로 사용하지 않고 이렇게 변환하는 이유가 무엇인지 알고 싶습니다.
조금 더 구체적으로는, 이렇게 선형 변환을 적용하면 기존 임베딩의 의미가 무시되거나 손실되는 것은 아닌지 의문이 있습니다.
답변 1
0
안녕하십니까,
강의를 잘 듣고 계시다니, 너무 기분 좋습니다 ^^
초기 token embedding은 어떤 방식으로 설정되는 것인가요?
=> 초기 token embedding은 word2vec과 같이 미리 pretrained 된 embedding을 사용하지 않는 이상, 학습이 되지 않아서 제대로 된 단어의 의미를 표현하지 못합니다. 그래서 초기 embedding값은 정규 분포와 같은 값의 형태를 가지고는 있지만, 제대로된 단어 의미를 나타내지는 못하고 이후 모델이 학습을 하면서 점차 단어 의미를 다차원 벡터로 표현할 수 있게 됩니다.
2-1 Query, Key, Value를 구하기 위해 초기 token embedding에 (3, 3) 형태의 nn.Linear를 곱하여 각각 (6, 3)으로 변환하는 과정의 의미가 궁금합니다.
기존 token embedding을 그대로 사용하지 않고 이렇게 변환하는 이유가 무엇인지 알고 싶습니다
=> query, key, value는 반드시 입력 token embedding에 학습 파라미터가 적용된 선형변환 형태로(즉 nn.Linear 적용하여 변환) 적용되게 됩니다. Transformer와 같은 NLP 모델은 문장의 문맥과 구성, 단어간의 관계 및 구성등의 요소를 모델의 학습을 통해서 얻어 질 수 있는데, 이를 위해 query, key, value를 token embedding 자체로 적용하지 않고, 학습 파라미터가 적용된 선형 변환 형태로 만든 다음에 내적을 구하는 방식으로 관계 유사도를 만들게 됩니다.
즉 Transformer 모델에 학습 데이터(학습 말뭉치 문장)을 점진적으로 학습 시키면서 점점 향상된 문맥의 의미를 query, key, value의 학습 파라미터를 통해 학습 하면서 얻게 되는 것입니다.
2-2 조금 더 구체적으로는, 이렇게 선형 변환을 적용하면 기존 임베딩의 의미가 무시되거나 손실되는 것은 아닌지 의문이 있습니다.
=> 전 섹션인 embedding에서도 보셨겠지만, embedding 자체도 학습 파라미터를 가지고 있습니다. 때문에 embedding값도 학습을 하면서 계속 최적화되면서 변경이 됩니다. 그래서 모델이 학습을 하면서 embedding의 학습 파라미터, query, key, value의 학습 파라미터들이 계속 최적화 되면서 문장의 문맥, 단어간 관계등을 가장 잘 표현해 줄 수 있는 값으로 최적화 되는 것입니다.
요약드리자면, embedding, query, key, value 모두 다 학습 파라미터를 가지고 있으며, 이들이 학습을 수행하면서 최적으로 변경되면서 문장의 문맥 의미들을 잘 파악할 수 있도록 Self Attention 메커니즘이 구성되어 있는 것입니다.
감사합니다.




