All about Machine-Learning/NLP

어텐션 메커니즘(Attention Mechanism)의 원리

※ 이 글은 chatGPT를 기반으로 작성한 글입니다.

어텐션 메커니즘

① 어텐션 메커니즘(attention mechanism)은 입력 시퀀스의 각 단어의 출력 시퀀스의 각 단어에 얼마나 연관이 있는지 계산하는 방법이다.

주로 Seq2Seq 모델에서 사용되며, 입력 시퀀스에서 중요한 부분에 집중하여 모델이 더 효과적으로 정보를 처리하도록 돕는다.

 

 

Seq2Seq 모델의 이해

※ 이 글은 chatGPT를 기반으로 작성한 글입니다. Seq2Seq 모델 ① Seq2Seq(Sequence-to-sequence) 모델은 주로 자연어 처리 분야에서 사용되는 딥 러닝 아키텍처다. ㉠ 이 모델은 한 시퀀스를 다른 시퀀스로

hemahero.tistory.com

  ㉠ 이는 인간이 정보를 처리할 때 특정 부분에 집중하는 방식을 모방한 것이다. 

  ㉡ 문장을 번역할 때 전체 문장을 한 번에 번역하지 않고, 각 단어나 구를 집중하여 번역하는 것이 일종의 어텐션 메커니즘이다.

③ 어텐션 메커니즘은 ㉠ 쿼리(query) 벡터, ㉡ 키(key) 벡터, ㉢ 밸류(value) 벡터라는 세 가지 주요 요소를 사용하여 어텐션 스코어(attention score)를 계산한다.

④ 다음은 Word2Vec을 사용하여 문장을 벡터로 변환하고, 이를 기반으로 쿼리, 키, 밸류 벡터를 생성하는 과정의 예시이다.

 

  ㉠  쿼리 벡터

ⓐ 쿼리 벡터는 출력 시퀀스의 각 단어에 대한 정보를 담고 있다.

  • 예를 들어 기계 번역에서 디코더가 "The cat sat on the mat."에서 "cat"이라는 단어를 번역하려고 할 때, "cat"에 해당하는 워드 벡터가 디코더의 현재 쿼리 벡터가 된다.

 

  ㉡ 키 벡터

ⓐ 키 벡터는 쿼리 벡터와 비교되는 대상으로 각 키는 인코더의 출력을 대표하며, 쿼리와의 유사도를 계산하는 데 사용된다.

  • 예를 들어 "The black cat"이라는 문장이 인코더를 통과했다면, 'The', 'black', 'cat' 각각에 해당하는 벡터들이 키 벡터가 된다.

   예를 들어 "The cat sat on the mat." 이라는 문장이 인코더를 통해 생성된 'The', 'cat', 'sat', 'on', 'the', 'mat' 에 해당하는 워드 벡터가 

 

인코더는 입력 시퀀스를 처리하고 각 입력 요소에 대한 표현(키)을 생성한다.

ⓑ 키는 쿼리와 비교되어 어텐션 점수를 계산하는 

 

  ㉢ 밸류 벡터

ⓐ 밸류 벡터는 어텐션 가중치가 적용되는 실제 데이터를 포함한다.

  • 이 벡터들은 인코더의 출력으로, 어텐션 메커니즘에서 최종적인 컨텍스트 정보를 제공한다.

  • 계산된 어텐션 가중치는 각 밸류 벡터에 적용되며, 가중치가 적용된 밸류 벡터들의 가중합으로 컨텍스트 벡터가 생성된다.

키 벡터와 유사하게, 인코더의 출력 벡터들이지만, 이들은 쿼리에 의해 가중치가 부여되어 최종적으로 디코더에 전달되는 정보를 담고 있다.

ⓒ 

는 실제로 집중해야할 데이터를 담고 있다.

인코더의 각 출력 벡터가 밸류로 사용되며, 

 

어텐션 점수(Attention score)

  ㉠ 어텐션 스코어는 쿼리와 키의 유사도를 나타내며, 어떤 인코더의 출력이 현재 디코더의 상태와 가장 관련이 있는지를 결정하는 데 도움을 준다.

계산된 언텐션 

이를 기반으로 각 밸류에 가중치를 부여한다.

가중치를 사용하여 가중합을 계산하고, 최종적으로 디코더에 전달되는 컨텍스트 벡터를 생성한다.

 

어텐션 메커니즘은 인코더의 각 출력에 가중치를 할당하여 디코더가 현재 생성하려는 요소와 관련이 높은 입력 부분에 집중할 수 있도록 한다.

⑦⑧⑨⑩⑪⑫⑬⑭⑮
㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭
ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜ