어텐션
Attention · 중급
입력의 각 요소가 출력을 생성하는 데 얼마나 중요한지를 계산해 가중치를 부여하는 신경망 메커니즘을 말한다.
기존 RNN 기반 모델은 입력을 순차적으로 처리하면서 먼 거리의 정보를 하나의 압축된 은닉 상태에 담아야 했기 때문에, 문장이 길어지면 앞부분의 정보가 희석되는 문제가 있었다. 어텐션은 쿼리(query)와 키(key)를 비교해 유사도를 구하고 이를 가중치로 삼아 값(value)들을 합산함으로써, 입력 전체를 한 번에 참조할 수 있게 한다. 트랜스포머의 셀프 어텐션은 같은 시퀀스 안에서 각 토큰이 다른 모든 토큰과의 관계를 동시에 계산해 문맥을 반영하는 방식으로 동작한다. 실무에서는 모델이 긴 문서에서 대명사가 가리키는 대상을 찾거나 코드에서 변수의 정의와 사용처를 연결하는 등 장거리 의존성을 처리하는 상황, 그리고 어텐션 가중치를 시각화해 모델이 어느 부분을 참조했는지 디버깅하는 상황에서 이 개념을 마주친다. 또한 입력 길이가 늘어날수록 어텐션 연산량과 메모리 사용량이 급격히 늘어나는 점이 실무에서 자주 부딪히는 제약이다. 다만 어텐션 가중치가 크다고 해서 그것이 곧 모델의 판단 근거나 설명이라고 단정하기는 어려우니 주의가 필요하다.