Attention이란? AI가 필요한 정보에 집중하는 원리

지난 글에서는 LSTM이 셀 상태와 게이트를 이용해 필요한 정보를 오래 유지하는 방법을 알아봤습니다. 하지만 문장이 길어질수록 모든 정보를 하나의 기억에 압축해 전달하는 일은 여전히 어렵습니다.

Attention(어텐션)은 현재 처리하는 대상과 관련이 큰 입력을 직접 찾아 더 많이 참고하는 방식입니다. 쉽게 말하면 모든 내용을 똑같이 보는 대신, 지금 필요한 부분에 집중하는 것입니다.

업로드 중: 총 2089553바이트 중 2089553바이트가 업로드되었습니다.

왜 Attention이 필요할까?

긴 문장을 번역할 때 마지막까지 읽은 하나의 상태에 모든 내용을 담으려 하면 앞부분의 세부 정보가 약해질 수 있습니다. Attention은 출력할 단어마다 입력 전체를 다시 살펴보고 관련된 위치에 서로 다른 중요도를 부여합니다.

예를 들어 “고양이가 의자 위에서 잠을 잔다”를 번역하며 ‘잔다’에 해당하는 표현을 만들 때, 모델은 ‘고양이’와 ‘잠을 잔다’에 더 높은 비중을 둘 수 있습니다. 이 중요도를 어텐션 가중치라고 합니다.

Attention의 세 가지 요소


Attention은 보통 Query, Key, Value라는 세 요소로 설명합니다.

  • Query(쿼리): 지금 찾고 싶은 정보, 즉 질문입니다.
  • Key(키): 각 입력이 어떤 정보를 담는지 비교하기 위한 표식입니다.
  • Value(값): 실제로 가져와 조합할 내용입니다.

도서관에 비유하면 Query는 찾는 주제, Key는 책의 분류 정보, Value는 책 안의 실제 내용입니다. 찾는 주제와 분류 정보가 잘 맞는 책일수록 더 자세히 참고합니다.

Attention은 어떻게 계산될까?

  1. 현재 Query를 모든 Key와 비교해 관련도 점수를 구합니다.
  2. 점수를 정규화해 합이 1인 가중치로 바꿉니다.
  3. 각 Value에 해당 가중치를 곱합니다.
  4. 가중치가 적용된 Value들을 더해 문맥 벡터를 만듭니다.

관련도가 높은 입력은 결과에 크게 반영되고, 낮은 입력은 적게 반영됩니다. 모델은 정답을 잘 예측하도록 학습하면서 Query·Key·Value를 만드는 가중치를 조정합니다.

문장 번역 예로 이해하기

“나는 어제 사과를 먹었다”를 다른 언어로 번역한다고 생각해보겠습니다. ‘먹었다’를 만들 때는 ‘사과’와 ‘먹었다’가 중요하고, 시간을 나타내는 표현을 만들 때는 ‘어제’가 더 중요할 수 있습니다.

즉 Attention의 집중 위치는 한 번 정해지는 것이 아닙니다. 어떤 출력을 만들고 있는지에 따라 매 단계 달라집니다.

Self-Attention은 무엇일까?

Self-Attention(셀프 어텐션)은 같은 입력 안의 요소들이 서로를 참고하는 방식입니다. 문장의 각 단어가 다른 모든 단어와의 관련도를 계산해 문맥을 반영한 새로운 표현을 만듭니다.

“그것은 은행에 있었다”에서 ‘은행’이 금융기관인지 강둑인지 판단하려면 주변 단어가 중요합니다. Self-Attention은 각 단어가 주변과 먼 위치의 단어까지 직접 비교하도록 돕습니다.

Attention의 장점

  • 멀리 떨어진 요소 사이의 관계를 직접 계산할 수 있습니다.
  • 출력마다 참고할 입력 위치를 다르게 선택할 수 있습니다.
  • Self-Attention은 여러 위치의 계산을 병렬로 수행하기에 RNN 계열보다 유리한 면이 있습니다.
  • 가중치를 살펴보면 모델이 어디를 참고했는지 일부 단서를 얻을 수 있습니다.

다만 어텐션 가중치가 곧 완전한 설명을 뜻하는 것은 아닙니다. 모델의 판단 과정을 이해할 때는 다른 분석 방법과 함께 신중하게 해석해야 합니다.

Attention의 한계

입력의 모든 위치를 서로 비교하는 기본 Self-Attention은 길이가 늘어날수록 계산량과 메모리 사용량이 크게 증가할 수 있습니다. 또한 관련도 계산이 항상 사람의 상식과 일치하는 것은 아니며, 충분한 데이터와 적절한 학습이 필요합니다.

RNN·LSTM과 무엇이 다를까?

  • RNN/LSTM: 입력을 순서대로 처리하며 상태를 다음 단계로 전달합니다.
  • Attention: 현재 필요한 정보와 입력 전체의 관련도를 계산해 선택적으로 조합합니다.

두 방식은 서로 배타적이지 않습니다. 초기 번역 모델에서는 RNN이나 LSTM에 Attention을 결합했으며, 이후에는 Self-Attention을 중심으로 구성된 Transformer가 등장했습니다.

한눈에 정리하기

  • Attention은 현재 작업과 관련이 큰 입력에 더 높은 가중치를 줍니다.
  • Query는 질문, Key는 비교 기준, Value는 가져올 내용입니다.
  • 가중치가 적용된 Value를 합쳐 문맥 정보를 만듭니다.
  • Self-Attention은 같은 입력의 요소들이 서로를 참고합니다.
  • 긴 입력에서는 계산량과 메모리 부담이 커질 수 있습니다.

다음 글에서는 Self-Attention을 중심으로 문장을 병렬 처리하는 Transformer(트랜스포머)의 전체 구조를 알아보겠습니다.

댓글

이 블로그의 인기 게시물

AI의 학습 과정

AI란 무엇일까?

머신러닝 - AI는 어떻게 스스로 규칙을 찾을까?