익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
어텐션 메커니즘
편집하기
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
[[파일:어텐션 예시.png|섬네일|어텐션 예시]] 어텐션 메커니즘(Attention mechanism)은 인공신경망에서 입력 시퀀스의 각 요소가 출력에 기여하는 중요도를 동적으로 계산하여 반영하는 기법이다. 원래는 신경망 기계번역(NMT)에서 제안되었으며, 이후 다양한 자연어 처리와 컴퓨터 비전 분야에서 널리 활용되고 있다. ==개요== 전통적인 시퀀스-투-시퀀스(seq2seq) 구조에서는 인코더가 입력 시퀀스 전체를 고정된 길이의 벡터로 요약하고, 디코더가 그 벡터를 바탕으로 출력을 생성하였다. 그러나 긴 문장의 경우 정보 손실이 발생하여 성능이 제한적이었다. 어텐션 메커니즘은 출력의 각 단계마다 입력 시퀀스 전체를 다시 참조하여, 관련성이 높은 부분에 더 높은 가중치를 주고 낮은 부분에는 낮은 가중치를 주는 방식으로 문제를 해결한다.<ref>Bahdanau, D., Cho, K., Bengio, Y., "Neural Machine Translation by Jointly Learning to Align and Translate", 2014</ref> ==원리== 어텐션은 일반적으로 쿼리(Query), 키(Key), 값(Value)의 세 가지 요소를 사용한다. *쿼리(Query): 현재 디코더 상태와 같은 "집중해야 할 대상" *키(Key): 입력 시퀀스 각 요소의 표현 *값(Value): 실제 참조할 입력의 정보 쿼리와 키를 비교하여 유사도를 계산한 후, 이를 확률적 가중치로 변환한다. 그 가중치를 값 벡터와 결합하여 최종적으로 어텐션 출력을 생성한다. ==주요 유형== '''인코더-디코더 어텐션''' * 출력(타겟) 시퀀스의 각 단어를 생성할 때, 입력(소스) 시퀀스의 모든 단어와의 관계를 계산한다. 기계 번역 모델에서 주로 사용된다. '''셀프 어텐션(Self-Attention)''' * 쿼리, 키, 값이 모두 동일한 입력 시퀀스에서 생성된다. 시퀀스 내부의 토큰 간 관계를 학습할 수 있어 트랜스포머 아키텍처의 핵심 구성 요소가 되었다. '''멀티헤드 어텐션(Multi-Head Attention)''' * 셀프 어텐션을 병렬로 여러 번 수행하여 다양한 표현 공간에서 관계를 학습한다. 최종적으로 여러 헤드의 출력을 결합해 더 풍부한 표현을 얻는다. ==응용== 어텐션 메커니즘은 처음에는 기계 번역에서 제안되었으나, 이후 다양한 분야에서 사용되고 있다. *기계 번역, 텍스트 요약, 질의응답 등 자연어 처리 전반 *이미지 분류, 객체 탐지, 이미지 캡셔닝 등 컴퓨터 비전 *음성 인식 및 합성 ==계산 비용 및 효율화 기법== 어텐션 메커니즘은 입력 시퀀스 길이를 n, 은닉 차원을 d라고 할 때, Q와 K의 내적 연산에서 n×n 크기의 어텐션 행렬을 계산해야 한다. 이 때문에 계산량은 n의 제곱에 비례하며, 긴 시퀀스를 처리할 때 연산 비용과 메모리 사용량이 크게 증가한다. 특히 셀프 어텐션(Self-Attention)은 쿼리와 키가 동일한 시퀀스에서 생성되므로 이러한 비용 문제가 두드러진다. 이 한계를 완화하기 위해 다양한 효율화 기법들이 제안되었다. * '''로컬 어텐션(Local Attention)''': 전체 시퀀스가 아니라 일정 범위(윈도우) 안의 토큰들만 참조하여 계산량을 줄인다. (예: Transformer-XL, Longformer) * '''희소 어텐션(Sparse Attention)''': 어텐션 행렬의 연결 구조를 처음부터 제한해 일부 중요한 연결만 유지한다. 이 방식은 모든 토큰 쌍을 계산하지 않기 때문에 연산량 자체를 줄일 수 있다. (예: BigBird) * '''저랭크 근사(Low-rank Approximation)''': 큰 어텐션 행렬을 저차원으로 근사하여 효율적으로 계산한다. (예: Linformer) * '''커널 기반 어텐션(Kernelized Attention)''': softmax 어텐션을 커널 함수로 근사해 계산 복잡도를 n에 비례하거나 n log n 수준으로 줄인다. (예: Performer) * '''토큰 프루닝(Token Pruning)''': 중요도가 낮은 토큰을 완전히 제거하거나 무시해 시퀀스 길이를 줄인다. 정보 손실이 발생할 수 있으나 효율성은 높아진다. * '''토큰 머징(Token Merging)''': 중요도가 낮은 토큰을 단순히 제거하지 않고, 인접하거나 유사한 토큰들을 합쳐 새로운 토큰으로 만든다. 이 방식은 시퀀스 길이를 줄이면서도 정보를 압축해 보존한다. (예: 최근 비전 트랜스포머에서의 패치 병합 기법) 이러한 기법들은 기존 어텐션의 제곱형 복잡도를 완화하여, 긴 문서 처리나 대규모 모델 학습에 널리 활용되고 있다. ==역사== *2014년: Bahdanau 등이 신경망 기계 번역에서 처음 제안 *2015년: Luong 등이 확장된 어텐션 방식을 제시 *2017년: Vaswani 등이 트랜스포머 논문에서 셀프 어텐션과 멀티헤드 어텐션을 도입 *이후 LLM(대규모 언어 모델)과 비전 트랜스포머 등 최신 모델의 핵심 기술로 발전 ==같이 보기== * [[트랜스포머 (인공지능)]] * [[셀프 어텐션]] ==참고 문헌== *Bahdanau, D., Cho, K., Bengio, Y. (2014). Neural Machine Translation by Jointly Learning to Align and Translate. ICLR. *Luong, M., Pham, H., Manning, C. D. (2015). Effective Approaches to Attention-based Neural Machine Translation. EMNLP. *Vaswani, A. et al. (2017). Attention Is All You Need. NIPS. ==각주== <references /> [[분류:인공지능]] [[분류:자연어 처리]]
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록