주의 집중 (기계 학습)

신경망에서 주의 집중(attention, 어텐션)은 인지심리학에서의 주의를 모방하여 고안된 기술이다. 주의 집중은 입력 데이터 중 일부의 효과를 증강시키며, 다른 일부를 감소시킨다. 이는 네트워크가 데이터 중 비중이 적지만 중요한 데이터에 더 집중하게 하기 위해서이다. 데이터 중 어느 부분을 학습하는 것이 다른 부분을 학습하는 것보다 더 중요한지는 문맥에 따라 결정되며, 이는 경사하강법으로 학습된다. 어텐션이나 이와 유사한 메커니즘은 1990년대에 곱셈 모듈, 시그마 파이 단위, 하이퍼네트워크와 같은 이름으로 도입되었다. 주의 집중의 유연성은 런타임 동안 고정되어 있는 표준 가중치와는 달리, 런타임 도중에 변경될 수 있는 '소프트 가중치'로서의 역할에서 온다. 주의 집중은 뉴럴 튜링 머신의 기억, 미분가능 뉴럴 컴퓨터의 추론 작업, 트랜스포머 계열 모델의 언어 처리, 지각자(perceiver)의 다중 감각 데이터 처리 (소리, 이미지, 영상, 텍스트) 등에 활용된다. 인덱스 i {\displaystyle i} 가 붙은 일련의 토큰이 주어졌을 때, 신경망은 각 토큰에 대하여 w i ≥ 0 {\textstyle w_{i}\geq 0} 이며 ∑ i w i = 1 {\textstyle \sum _{i}w_{i}=1} 인 소프트 가중치 w i {\displaystyle w_{i}} 를 계산한다. 각 토큰에는 i {\displaystyle i} 번째 토큰의 단어 임베딩으로부터 계산된 값 벡터 v i {\displaystyle v_{i}} 가 할당된다. 가중 평균 ∑ i w i v i {\textstyle \sum _{i}w_{i}v_{i}} 이 주의 집중의 출력이다. 쿼리-키 메커니즘은 소프트 가중치를 계산한다. 각 토큰의 단어 임베딩으로부터 각각의 쿼리 벡터 q i {\displaystyle q_{i}} 와 키 벡터 k i {\displaystyle k_{i}} 가 계산된다. 가중치는 내적 q i k j {\displaystyle q_{i}k_{j}} 의 소프트맥스 함수를 취하여 얻는다. 여기서 i {\displaystyle i} 는 현 토큰, j {\displaystyle j} 는 주의가 기울여지는 토큰을 나타낸다. 영어를 프랑스어로 번역하는 기계를 만들려면 기본적인 인코더-디코더를 사용하고 여기에 주의 단위를 접목한다 (하단 다이어그램 참조). 가장 간단한 사례에서, 주의 단위는 순환 인코더 상태(recurrent encoder state)의 내적으로 구성되며 훈련이 필요하지 않다. 실제 모델 학습 상황에서, 주의 단위는 훈련이 필요한 쿼리-키-값(query-key-value)이라고 하는 3개의 완전연결 신경망 층으로 구성된다. 아래 '변형' 섹션을 참고하시오. 주의 가중치를 행렬이라고 보면, 이는 네트워크가 문맥에 따라 초점을 조정하는 방법을 보여준다. 주의 가중치에 대한 이러한 관점은 신경망이 비판받는 "설명가능성" 문제를 해결한다. 단어 순서에 관계 없이 축어 번역(verbatim translation)을 수행하는 네트워크는 이러한 용어로 분석할 수 있는 경우 대각선으로 지배적인 행렬(diagonally dominant matrix)을 갖게 된다. 비대각선 우성(off-diagonal dominance)은 주의 메커니즘이 더 미묘하다는 것을 보여준다. 디코더를 통한 첫 번째 통로에서 주의 가중치의 94%는 첫 번째 영어 단어 "I"에 있으므로 네트워크는 단어 "je"를 제공한다. 디코더의 두 번째 통로에서 주의 가중치의 88%는 세 번째 영어 단어 "you"에 있으므로 "t'"를 제공한다. 마지막 통로에서는 주의 가중치의 95%가 두 번째 영어 단어 "love"에 있으므로 "aime"을 제공한다. 참고: 프랑스어 'je'는 '나', 'aime'은 사랑하다, "t'"는 모음으로 시작하는 동사 앞에 붙어 '너를'이라는 의미이다. 주의 집중에는 여러 가지 변형이 있다. 그 중 일부는 내적, 쿼리-키-값, hard, soft, self, cross, Luong, Bahdanau 등이다. 이러한 변형 주의 집중은 그 효과를 각 타겟 출력에 재분배하기 위하여 인코더 쪽의 입력을 재결합한다. 종종 상관(correlation) 스타일의 내적 행렬은 계수(coefficient)의 re-weighting을 제공한다. (하단 범례 참고) 변환기 (기계 학습) § Scaled dot-product attention Perceiver § Components for query-key-value (QKV) attention Yann Lecun (2020). 《Deep Learning course at NYU, Spring 2020, video lecture Week 6》. 53:00에 발생. 2022년 3월 8일에 확인함.  Graves, Alex; Wayne, Greg; Reynolds, Malcolm; Harley, Tim; Danihelka, Ivo; Grabska-Barwińska, Agnieszka; Colmenarejo, Sergio Gómez; Grefenstette, Edward; Ramalho, Tiago; Agapiou, John; Badia, Adrià Puigdomènech; Hermann, Karl Moritz; Zwols, Yori; Ostrovski, Georg; Cain, Adam; King, Helen; Summerfield, Christopher; Blunsom, Phil; Kavukcuoglu, Koray; Hassabis, Demis (2016년 10월 12일). “Hybrid computing using a neural network with dynamic external memory”. 《Nature》 (영어) 538 (7626): 471–476. Bibcode:2016Natur.538..471G. doi:10.1038/nature20101. ISSN 1476-4687. PMID 27732574. S2CID 205251479.  Vaswani, Ashish; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, Llion; Gomez, Aidan N.; Kaiser, Lukasz; Polosukhin, Illia (2017년 12월 5일). “Attention Is All You Need”. arXiv:1706.03762 [cs.CL].  더 이상 지원되지 않는 변수를 사용함 (도움말) Ramachandran, Prajit; Parmar, Niki; Vaswani, Ashish; Bello, Irwan; Levskaya, Anselm; Shlens, Jonathon (2019년 6월 13일). “Stand-Alone Self-Attention in Vision Models”. arXiv:1906.05909 [cs.CV].  더 이상 지원되지 않는 변수를 사용함 (도움말) Jaegle, Andrew; Gimeno, Felix; Brock, Andrew; Zisserman, Andrew; Vinyals, Oriol; Carreira, Joao (2021년 6월 22일). “Perceiver: General Perception with Iterative Attention”. arXiv:2103.03206 [cs.CV].  더 이상 지원되지 않는 변수를 사용함 (도움말) Ray, Tiernan. “Google's Supermodel: DeepMind Perceiver is a step on the road to an AI machine that could process anything and everything”. 《ZDNet》 (영어). 2021년 8월 19일에 확인함.  “Pytorch.org seq2seq tutorial”. 2021년 12월 2일에 확인함.  Luong, Minh-Thang (2015년 9월 20일). “Effective Approaches to Attention-based Neural Machine Translation”. arXiv:1508.04025v5 [cs.CL].  더 이상 지원되지 않는 변수를 사용함 (도움말) Bahdanau, Dzmitry (2016년 5월 19일). “NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE”. arXiv:1409.0473.  Neil Rhodes (2021). 《CS 152 NN—27: Attention: Keys, Queries, & Values》. 06:30에 발생. 2021년 12월 22일에 확인함.  Alfredo Canziani & Yann Lecun (2021). 《NYU Deep Learning course, Spring 2020》. 05:30에 발생. 2021년 12월 22일에 확인함.  Alfredo Canziani & Yann Lecun (2021). 《NYU Deep Learning course, Spring 2020》. 20:15에 발생. 2021년 12월 22일에 확인함.  Robertson, Sean. “NLP From Scratch: Translation With a Sequence To Sequence Network and Attention”. 《pytorch.org》. 2021년 12월 22일에 확인함.  Dan Jurafsky and James H. Martin (2022) Speech and Language Processing (3rd ed. draft, January 2022), ch. 10.4 Attention and ch. 9.7 Self-Attention Networks: Transformers Alex Graves (4 May 2020), Attention and Memory in Deep Learning (video lecture), DeepMind / UCL, via YouTube Rasa Algorithm Whiteboard - Attention via YouTube