※ 이 글은 chatGPT를 기반으로 작성한 글입니다.
어텐션 메커니즘
① 어텐션 메커니즘(attention mechanism)은 입력 시퀀스의 각 단어의 출력 시퀀스의 각 단어에 얼마나 연관이 있는지 계산하는 방법이다.
② 주로 Seq2Seq 모델에서 사용되며, 입력 시퀀스에서 중요한 부분에 집중하여 모델이 더 효과적으로 정보를 처리하도록 돕는다.
㉠ 이는 인간이 정보를 처리할 때 특정 부분에 집중하는 방식을 모방한 것이다.
㉡ 문장을 번역할 때 전체 문장을 한 번에 번역하지 않고, 각 단어나 구를 집중하여 번역하는 것이 일종의 어텐션 메커니즘이다.
③ 어텐션 메커니즘은 ㉠ 쿼리(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)
㉠ 어텐션 스코어는 쿼리와 키의 유사도를 나타내며, 어떤 인코더의 출력이 현재 디코더의 상태와 가장 관련이 있는지를 결정하는 데 도움을 준다.
계산된 언텐션
이를 기반으로 각 밸류에 가중치를 부여한다.
가중치를 사용하여 가중합을 계산하고, 최종적으로 디코더에 전달되는 컨텍스트 벡터를 생성한다.
어텐션 메커니즘은 인코더의 각 출력에 가중치를 할당하여 디코더가 현재 생성하려는 요소와 관련이 높은 입력 부분에 집중할 수 있도록 한다.
⑥
⑦⑧⑨⑩⑪⑫⑬⑭⑮
㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭
ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜ
'All about Machine-Learning > NLP' 카테고리의 다른 글
트랜스포머 모델 구현 (0) | 2024.01.12 |
---|---|
어텐션 메커니즘과 트랜스포머 모델 (0) | 2024.01.12 |
Seq2Seq 모델의 이해 (0) | 2024.01.12 |
워드 벡터(Word Vector) -CBOW, Skip-gram (0) | 2024.01.06 |
허깅 페이스(Hugging Face) (2) | 2023.12.21 |