본문 바로가기
인공지능

어텐션 개념 이해하기 (어텐션과 K, Q, V)

by judy@ 2023. 5. 26.

초기 제안된 어텐션 메커니즘에 기반하여, 개념과 구성, 원리에 대해 정리해보자.

 

목차

- 등장 배경

- 개념

- 원리

- K, Q, V?

- 파생 개념 이해

  * 어텐션 함수

  * self-attention

   * multi-head attention


등장 배경

  • Attention은 주목, 집중의 의미를 가지는 명사로, 여기서도 같은 의미로 사용됨
  • 기계 번역을 위한 딥러닝 모델(구체적으로는 RNN Encoder-Decoder)에 처음 도입하여 세상에 등장함
  • 번역은 A라는 언어로 기술된 글을 같은 의미를 갖으나 B 언어로 표현된 글로 변환하는 것을 말함.
  • A언어로 기술된 글을 이해한 뒤, 그 언어를 B의 언어로 재탄생시키는 원리에서 착안하여, 글을 이해하는 Encoder와 글을 생성하는 Decoder로 구성된 구조가 제안됨. 이 때, Encoder는 이해한 내용(컨텍스트 벡터)를 Decoder로 전달하고, Decoder는 이 의미를 전달할 수 있도록 문장을 생성함.
  • (시퀀스 데이터에서 글은 토큰 단위로 모델에 입력되며, Decoder에서도 토큰 단위로 문장을 생성함.)
  • Encoder가 전달하는 컨텍스트 벡터는 크기가 고정되어 있는데, 이 때문에 입력 문장의 길이가 매우 길어지는 경우 기계 번역이 잘 수행되지 않는 문제가 있었음.
  • 한편, 출력 문장을 토큰 단위로 생성하는 상황에서, 특정 시점의 토큰은 입력 문장의 모든 토큰이 아니라 매우 한정적인 토큰과 의미적 연결성을 가짐. 하지만 컨텍스트 벡터는 입력 문장 전체를 (학습을 통해) 압축한 벡터라 벡터 내에 현 시점 토큰과는 관련 없는 데이터가 혼재되어 영향을 주는 상황임
  • 이런 문제점에서 착안하여, 입출력 데이터의 의미적 연결성(alignment)을 극대화할 수 있는 어텐션 메커니즘을 제안함

개념

  • 어텐션 메커니즘은 현 시점의 출력 토큰과 의미적 연결성을 학습하여 출력 토큰 생성에 반영하는 기법
  • 논문에서는 의미적 연결성을 alignment라고 표현하는데, 정렬이라는 번역이 직관적으로 이해되지 않아 이 용어 칭하여 설명한다.

원리

원 논문에는 Q, K, V의 개념이 포함되어 있지 않으므로, 우선 원리를 파악한 이후에 해당 노테이션들을 매칭하여 의미를 찾아보자

 

출력 문장의 i번째 토큰 yi의 확률(조건부)은 이전 출력 토큰과 현재 상태값, 컨텍스트 벡터를 디코더 모델에 통과시켜 구할 수 있다. 이 때, 모델은 세 종류의 데이터로 yi의 확률을 계산할 때, 최대화되게 학습된다. 이전 출력 토큰과 현재 상태값은 직관적으로 알 수 있다.

조건부 확률

 

컨텍스트 벡터가 바로 어텐션의 개념에서 설명한 “ 입출력 토큰의 의미적 연결성을 학습하여 반영”하기 위한 벡터이다. 즉, 학습한 의미적 연결성을 반영한 값이다. 이 벡터는 아래와 같이 a와 h의 가중합을 통해 구한다. 이 때, h는 입력 토큰의 상태 값으로 연결성을 반영할 대상이고, a가 의미적 연결성을 표현하는 값이다.

컨텍스트 벡터 수식

 

a는 어떤 값(e)에 대하여 소프트맥스를 적용한 값이다. 그리고 e는 이전 상태값과 입력 토큰의 관계를 표현하는 값이다. 원 논문에서는 이 관계를 가중치를 통해 학습하고 있으며, 현재는 코사인 유사도, 내적 등으로 구하기도 한다.

 

즉, e는 이전 상태, 입력 토큰의 관계를 학습하여 현 시점에 생성할 토큰과의 의미적 연결성을 표현한 값이다. 이 연결성은 소프트맥스를 거쳐 확률 a로 계산되고, 이 확률 a와 입력 토큰의 상태를 곱해 연결성을 반영한 컨텍스트를 생성한다. 컨텍스트는 지금 시점에서 중요하게 봐야할 입력 토큰에 대한 정보를 선별적으로 가지게 되며, 이는 출력 토큰 생성에 반영되어 번역 성능 향상에 일조하게 된다.

K, Q, V?

일반적으로 어텐션의 개념을 설명할 때에는 Attention is all you need의 notation에 따라 key, query, value로 표기한다. 위에서 이해한 바와 이 개념을 연결지어보자.

내가 이해한 K, Q, V

  • query (Q): 쿼리는 검색어의 역할을 함. 어텐션 매커니즘에서는 이전 시점의 출력 상태 값 (Si-1)
  • key (K): 키는 쿼리를 통해 검색할 대상을 의미. 어텐션 매커니즘에서는 입력 문장의 상태들 (hs)
  • value (V): 밸류는 검색 결과를 반영할 대상으로 쿼리와 키를 통해 구한 중요도를 반영할 값. 어텐션 매커니즘에서는 입력 문장의 상태들 (hs)

파생 개념 이해

정렬 모델(alignment model) 또는 어텐션 함수 (attention function)

Q와 K를 통해 입력 토큰의 중요도를 구하는 함수. 아래 예시 외에도 여러 어텐션 함수가 있으며, 다른 함수는 https://wikidocs.net/22893에 표로 정리되어 있으니 참고

 

예시 1) 파라미터가 있는 모델

NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE, 2015

예시 2) sclaed dot product

Attention Is All You Need, 2017

 

Self-Attention

K, Q, V가 모두 자기 자신인 메커니즘. Q는 자기자신에 대해 검색하여 다른 문장 간의 의미적 연결성(alignment)이 아닌, 한 문장 내의 의미적 연결성을 탐색함.

 

Multi-head Attention

K, V, Q로 이루어진 위 어텐션 메커니즘을 single head라 하고, 여러 개의 어텐션 메커니즘을 사용하여 관계를 찾아내는 방법. 어텐션을 구하기 직전에 각 head에서 K, V, Q에 학습 가능한 파라미터가 있는 layer를 두어, 각각의 head가 다른 의미적 연결성을 파악하도록 함.

반응형