쿼리,키,값 의 셀프 어텐션 메카니즘

Query(Q), Key(K), Value(V)는 셀프 어텐션 메커니즘의 핵심 구성 요소로, 입력 벡터를 세 가지 다른 표현으로 변환하는 과정을 거칩니다. 이 과정은 다음과 같이 이루어집니다:

입력 벡터의 변환

  1. 초기 입력: 먼저 각 단어는 임베딩 과정을 통해 고차원 벡터로 변환됩니다[1].
  2. 선형 변환: 이 임베딩된 벡터는 세 개의 서로 다른 가중치 행렬(Wq, Wk, Wv)과 곱해져 Q, K, V를 생성합니다[5].
  • Q = Wq * 입력벡터
  • K = Wk * 입력벡터
  • V = Wv * 입력벡터
  1. 학습 가능한 파라미터: Wq, Wk, Wv는 모델이 학습하는 파라미터로, 훈련 과정에서 지속적으로 업데이트됩니다[1].

Q, K, V의 역할

  • Query (Q): 현재 처리 중인 단어의 표현으로, 다른 단어들과의 관련성을 찾는 데 사용됩니다[3].
  • Key (K): 모든 단어의 특징을 압축한 값으로, Query와의 유사도를 계산하는 데 사용됩니다[3].
  • Value (V): 실제 정보를 담고 있는 값으로, 최종적으로 attention 가중치와 곱해져 출력을 생성합니다[3].

변환의 의미

  1. 정보 추출: 이 변환 과정은 입력 벡터에서 특정 정보를 추출하고 강조하는 역할을 합니다[7].
  2. 컨텍스트 설정: Q, K, V로의 변환은 모델이 좁은 컨텍스트 내에서 검색과 매칭을 수행할 수 있게 합니다[7].
  3. 정보 중요도 학습: 모델은 이 과정을 통해 임베딩의 어떤 정보가 더 중요한지 학습합니다[7].

계산 과정

  1. 유사도 계산: Q와 K의 내적을 통해 attention 스코어(유사도)를 계산합니다[6].
  2. 스케일링: 이 스코어를 임베딩 차원의 제곱근으로 나누어 스케일링합니다[8].
  3. 소프트맥스 적용: 스케일링된 스코어에 소프트맥스 함수를 적용하여 가중치를 생성합니다[6].
  4. 가중치 적용: 이 가중치를 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

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다