Transformer mechanism 1

bakjinho·2025년 2월 2일

1. Query와 Key 텐서

어떤 정보를 가진 Query 텐서가 있다.
여러 개의 Key 텐서들이 존재하며, 예를 들어 Key 텐서가 4개 있다고 가정한다.

Query와 Key의 변환 과정

  1. Query 텐서는 ( Wq ) (Weight Query)를 통과한다. (Query는 단순히 변환만 수행)_
  2. Key 텐서는 ( W_k ) (Weight Key)를 통과한다.
  3. Key 텐서는 추가적으로 ( W_v ) (Weight Value)도 통과한다.

이 과정에서 Query, Key, Value가 각각의 Weight 행렬을 거쳐 변환된다.


2. Query와 Key의 내적 연산

Query와 Key를 내적(dot product) 하면 두 정보의 유사도를 계산할 수 있다.

“연관될수록 내적 값이 크다.”

하지만 내적한 결과는 음수가 나올 수도 있고, 합이 1이 아닐 수도 있다.
따라서 적절한 변환을 거쳐 양수로 만들고, 합이 1이 되도록 정규화해야 한다.


3. Weight 정규화 과정 (Softmax 연산)

내적 값들을 정규화하는 과정은 다음과 같다.

  1. exp() 함수를 적용하여 음수를 양수로 변환

    • 원래 값이 작으면 exp() 적용 후에도 작은 값을 유지
    • 원래 값이 크면 exp() 적용 후 더 큰 값을 유지
    • 이 과정을 통해 음수 문제를 해결하고, 값의 크기 비율을 유지할 수 있다.
  2. 전체 합이 1이 되도록 정규화

    • 각각의 값을 exp() 결과값들의 합으로 나눔
    • 즉, Softmax 연산을 수행하여 확률 분포를 만든다

Weight의 성질

  • Weight는 반드시 양수이어야 한다.
  • Weight의 총합은 1이어야 한다.

이 과정이 Self-Attention에서 사용되는 핵심적인 정규화 방법이다.


4. Weighted Sum의 의미

Weighted Sum을 수행하는 이유

Weighted Sum을 수행하는 이유는 정보의 weight가 클수록 해당 정보를 많이 반영하기 위해서이다.

그렇다면, Weighted Sum의 정보는 Query일까, Key일까?

  • Attention의 결과는 Key 정보들의 가중치 합이다.
  • 하지만, Query의 정보도 간접적으로 반영되었다.
  • 즉, Attention의 정보는 Key들의 혼합 정보이다.
  • 이때 가중치(Weight)는 Query와 Key의 유사도에 의해 결정된다.

결론적으로, Attention은 Query의 정보를 반영하여 Key들의 정보를 가중합한 결과를 반환하는 연산이다.


5. Attention의 개념 정리

  1. Query 정보가 주어지면, Key들 중 관련도가 높은 정도(Weight)를 구한다.
  2. 구한 Weight를 사용하여 Weighted Sum을 수행한다.
  3. 결과적으로, Query와 관련된 Key의 혼합 정보를 얻게 된다.

이것이 Attention의 가장 기본적인 개념이다.

이 연산을 수행하면 주어진 Query가 가장 관련성이 높은 Key 정보에 집중(Attention)하여 정보를 추출할 수 있다.


6. 한계점: 동음이의어 구별 문제

이러한 Attention의 개념만으로는 동음이의어(예: "배"가 "과일"인지 "보트"인지)를 구별하는 데 문제가 발생할 수 있다.

왜냐하면, Attention은 주어진 Query와 Key의 단순한 유사도를 기반으로 작동하기 때문이다.
하지만 문맥(Context) 을 고려하지 않으면 같은 단어라도 다른 의미를 가진 경우 이를 정확히 구분하지 못할 수 있다.


이 문제를 해결하기 위해, Transformer 모델에서는 Multi-Head Attention을 사용하여 다양한 시각에서 정보를 분석한다.

7. Attention의 핵심 개념 요약

  1. Query, Key, Value를 각각 변환(Wq, Wk, Wv 통과)한다.
  2. Query와 Key를 내적하여 유사도를 계산한다.
  3. Softmax 정규화를 통해 가중치를 구한다.
  4. 가중치를 적용하여 Key들의 정보를 가중합(Weighted Sum)한다.
  5. 결과적으로, Query와 관련성이 높은 Key들의 정보를 반영한 값을 얻는다.


profile
hello world!

0개의 댓글