Query(Q), Key(K), Value(V)는 셀프 어텐션 메커니즘의 핵심 구성 요소로, 입력 벡터를 세 가지 다른 표현으로 변환하는 과정을 거칩니다. 이 과정은 다음과 같이 이루어집니다:
입력 벡터의 변환
- 초기 입력: 먼저 각 단어는 임베딩 과정을 통해 고차원 벡터로 변환됩니다[1].
- 선형 변환: 이 임베딩된 벡터는 세 개의 서로 다른 가중치 행렬(Wq, Wk, Wv)과 곱해져 Q, K, V를 생성합니다[5].
- Q = Wq * 입력벡터
- K = Wk * 입력벡터
- V = Wv * 입력벡터
- 학습 가능한 파라미터: Wq, Wk, Wv는 모델이 학습하는 파라미터로, 훈련 과정에서 지속적으로 업데이트됩니다[1].
Q, K, V의 역할
- Query (Q): 현재 처리 중인 단어의 표현으로, 다른 단어들과의 관련성을 찾는 데 사용됩니다[3].
- Key (K): 모든 단어의 특징을 압축한 값으로, Query와의 유사도를 계산하는 데 사용됩니다[3].
- Value (V): 실제 정보를 담고 있는 값으로, 최종적으로 attention 가중치와 곱해져 출력을 생성합니다[3].
변환의 의미
- 정보 추출: 이 변환 과정은 입력 벡터에서 특정 정보를 추출하고 강조하는 역할을 합니다[7].
- 컨텍스트 설정: Q, K, V로의 변환은 모델이 좁은 컨텍스트 내에서 검색과 매칭을 수행할 수 있게 합니다[7].
- 정보 중요도 학습: 모델은 이 과정을 통해 임베딩의 어떤 정보가 더 중요한지 학습합니다[7].
계산 과정
- 유사도 계산: Q와 K의 내적을 통해 attention 스코어(유사도)를 계산합니다[6].
- 스케일링: 이 스코어를 임베딩 차원의 제곱근으로 나누어 스케일링합니다[8].
- 소프트맥스 적용: 스케일링된 스코어에 소프트맥스 함수를 적용하여 가중치를 생성합니다[6].
- 가중치 적용: 이 가중치를 V에 곱하여 최종 출력을 생성합니다[6].
이러한 과정을 통해 셀프 어텐션 메커니즘은 입력 시퀀스 내의 각 요소가 다른 모든 요소와 어떻게 관련되어 있는지를 효과적으로 모델링할 수 있게 됩니다.
Citations:
[1] https://codingopera.tistory.com/43
[2] https://www.youtube.com/watch?v=Yb3g3wjDsX4
[3] https://mvje.tistory.com/258
[4] https://kimmeoungjun.tistory.com/6
[5] https://sebastianraschka.com/blog/2023/self-attention-from-scratch.html
[6] https://ffighting.net/deep-learning-basic/%EB%94%A5%EB%9F%AC%EB%8B%9D-%ED%95%B5%EC%8B%AC-%EA%B0%9C%EB%85%90/attention-and-self-attention-in-deep-learning/
[7] https://epichka.com/blog/2023/qkv-transformer/
[8] https://cn-c.tistory.com/68
답글 남기기