ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Attention Is All You Need
    카테고리 없음 2026. 5. 4. 19:15
    반응형

    type: paper
    source: https://arxiv.org/abs/1706.03762


    Attention is All you Need

    항목 내용
    저자 Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, I. Polosukhin
    연도 2017
    arXiv 1706.03762
    분야 Computer Science
    인용 수 174686 (Semantic Scholar 기준, 작성일 기준)

    1. 배경 및 문제 정의

    이 논문은 시퀀스 모델링(Sequence Modeling, 단어·문장처럼 순서를 가진 데이터를 다루는 분야)과 변환(Transduction, 한 시퀀스를 다른 시퀀스로 바꾸는 작업, 예: 번역) 문제에서 표준으로 자리잡았던 RNN(Recurrent Neural Network), LSTM(Long Short-Term Memory), GRU(Gated Recurrent Unit) 기반 아키텍처의 구조적 한계를 지적하면서 출발한다.

    RNN 기반 모델의 구조적 한계는 다음과 같다.

    RNN 모델은 입력과 출력 시퀀스의 심볼 위치에 따라 계산을 순차적으로 수행한다. 즉, 시점 tt의 은닉 상태 hth_t를 계산하려면 반드시 직전 시점의 은닉 상태 ht1h_{t-1}과 현재 입력이 모두 준비되어 있어야 한다. 이러한 본질적 순차성(Inherently sequential nature)은 단일 학습 예시 내부에서의 병렬화를 원천적으로 불가능하게 만든다. 시퀀스 길이가 길어질수록 메모리 제약이 심해져 배치 크기를 줄여야 하고, 이는 학습 효율을 직접적으로 떨어뜨린다.

    기존에는 이 문제를 우회하기 위해 다음과 같은 시도가 있었다.

    • 팩터라이제이션 트릭(Factorization tricks): 큰 가중치 행렬을 작은 행렬의 곱으로 분해하여 계산량을 줄이는 기법.
    • 조건부 계산(Conditional computation): 입력에 따라 일부 계산만 선택적으로 수행하는 기법.

    이러한 최적화는 계산 효율을 일부 개선했으나, 순차 계산이라는 근본적인 제약은 그대로 남아있었다.

    CNN(Convolutional Neural Network) 기반의 시퀀스 모델 역시 한계를 가진다. CNN 기반 모델에서는 두 위치 간의 신호를 관계 짓는 데 필요한 연산 수가 두 위치 사이의 거리에 비례(또는 로그 비례)하여 증가한다. 이 때문에 멀리 떨어진 토큰 사이의 의존성, 즉 장거리 의존성(Long-range Dependencies)을 학습하기가 어렵다.

    한편 어텐션 메커니즘(Attention Mechanism)은 입력과 출력 시퀀스 내 요소 간의 거리에 상관없이 의존성을 직접 모델링할 수 있게 해주어, 다양한 시퀀스 모델링 태스크에서 필수 구성 요소로 자리잡았다. 하지만 대부분의 사례에서 어텐션은 RNN과 결합되어 보조적으로만 활용되어 왔다.

    이 논문은 이러한 흐름을 한 단계 끊어내고, 재귀(Recurrence)와 컨볼루션(Convolution)을 모두 배제한 채 오직 어텐션 메커니즘만으로 입력과 출력 사이의 전역 의존성(Global dependencies)을 모델링하는 새로운 아키텍처인 Transformer를 제안한다.

    2. 핵심 아이디어 및 기여

    Transformer의 핵심 기여는 다음과 같이 정리할 수 있다.

    1. 순수 어텐션 기반 인코더-디코더 구조: 재귀 연산을 완전히 제거하여 시퀀스 내 모든 위치 간의 계산을 동시에 수행할 수 있게 했다.
    2. 대규모 병렬화: 시퀀스 내 모든 위치 쌍의 어텐션을 행렬 곱으로 한 번에 계산하므로 GPU 병렬 처리 효율이 매우 높다.
    3. 학습 시간 단축: 8개의 P100 GPU로 12시간만 학습해도 기존의 SOTA(State-of-the-art) 번역 품질을 달성한다.
    4. 번역 품질의 새로운 SOTA 달성: WMT 2014 영어-독일어 태스크에서 28.4 BLEU(Bilingual Evaluation Understudy, 기계 번역 자동 평가 지표), 영어-프랑스어 태스크에서 41.8 BLEU를 기록했다.
    5. 다른 태스크로의 일반화 가능성: 영어 구문 분석(English Constituency Parsing) 등 번역 외 태스크에서도 뛰어난 일반화 성능을 보였다.

    3. 모델 아키텍처

    Transformer는 기존 시퀀스 변환 모델의 표준이었던 인코더-디코더(Encoder-Decoder) 구조를 따른다. 인코더는 입력 시퀀스 (x1,,xn)(x_1, \ldots, x_n)을 연속 표현(Continuous Representation) (z1,,zn)(z_1, \ldots, z_n)으로 변환하고, 디코더는 이 zz를 바탕으로 출력 시퀀스 (y1,,ym)(y_1, \ldots, y_m)을 한 번에 한 토큰씩 자기회귀적(Auto-regressive)으로 생성한다. 자기회귀적이라는 말은, 직전 시점까지 만들어진 출력을 다음 시점의 입력으로 사용한다는 뜻이다.

    Transformer의 핵심은 인코더와 디코더 모두 스택된 셀프 어텐션(Stacked Self-Attention)과 위치별 완전 연결 계층(Point-wise Fully Connected Layer)으로만 구성된다는 점이다.

    Figure 1: Transformer 인코더-디코더 모델 아키텍처

    Figure 1: Transformer 인코더-디코더 모델 아키텍처

    이 그림은 Transformer의 전체 구조를 한눈에 보여주는 다이어그램이다. 왼쪽이 인코더, 오른쪽이 디코더이며, 각각 동일한 블록을 N=6N=6번 쌓는 형태로 구성된다. 인코더의 각 블록은 멀티 헤드 셀프 어텐션(Multi-Head Self-Attention)과 위치별 피드 포워드 네트워크(Position-wise Feed Forward Network) 두 개의 서브 레이어로 이루어지며, 디코더 블록에는 마스킹된 셀프 어텐션과 인코더-디코더 어텐션이 추가된다. 모든 서브 레이어 주위에는 잔차 연결(Residual Connection)과 레이어 정규화(Layer Normalization)가 적용되는데, 이 그림은 이 모든 구조가 순환 없이 어텐션과 피드 포워드만으로 구성되어 있음을 시각적으로 명확히 드러낸다.

    3.1 인코더와 디코더 스택

    인코더는 동일한 구조의 레이어 6개(N=6N=6)를 쌓아서 만든다. 각 레이어는 두 개의 서브 레이어로 구성된다.

    1. 멀티 헤드 셀프 어텐션 메커니즘
    2. 위치별 완전 연결 피드 포워드 네트워크

    각 서브 레이어 주위에는 잔차 연결이 적용되고, 그 결과에 레이어 정규화가 뒤따른다. 즉, 각 서브 레이어의 출력은 다음과 같이 표현된다.

    LayerNorm(x+Sublayer(x))\text{LayerNorm}(x + \text{Sublayer}(x))

    여기서 Sublayer(x)\text{Sublayer}(x)는 해당 서브 레이어 자체가 수행하는 함수이다. 잔차 연결을 가능하게 하기 위해 모델 내부의 모든 서브 레이어와 임베딩 레이어는 동일한 차원 dmodel=512d_{\text{model}} = 512의 출력을 만들어낸다.

    디코더 역시 동일한 구조의 레이어 6개를 쌓는다. 디코더의 각 레이어는 인코더에 있는 두 서브 레이어 외에 인코더 출력을 입력으로 받는 멀티 헤드 어텐션 서브 레이어를 추가로 가진다. 디코더에서도 인코더와 같은 방식으로 잔차 연결과 레이어 정규화를 적용한다.

    또한 디코더의 셀프 어텐션 서브 레이어는 마스킹(Masking)을 통해 미래 위치를 참조하지 못하도록 수정된다. 출력 임베딩이 한 칸 오른쪽으로 시프트되어 있는 것과 결합하여, 위치 ii의 예측이 위치 ii 이전의 알려진 출력에만 의존하도록 보장한다.

    3.2 어텐션

    어텐션 함수는 쿼리(Query)와 키-값(Key-Value) 쌍의 집합을 출력으로 매핑하는 함수로 기술할 수 있다. 쿼리, 키, 값, 출력은 모두 벡터이며, 출력은 값들의 가중 합으로 계산된다. 각 값에 부여되는 가중치는 쿼리와 해당 키의 호환성 함수(Compatibility Function)로부터 얻어진다.

    Figure 2: Scaled Dot-Product Attention의 연산 흐름

    Figure 2: Scaled Dot-Product Attention의 연산 흐름

    이 그림은 Scaled Dot-Product Attention의 내부 연산 순서를 플로우차트로 보여준다. 입력 쿼리 QQ와 키 KK의 행렬 곱을 먼저 수행한 뒤, dk\sqrt{d_k}로 나누는 스케일링 단계, (디코더에서만 사용되는) 마스킹 단계, 소프트맥스 단계를 거쳐 값 VV와 곱해 최종 출력이 만들어지는 과정을 각 블록으로 표시한다. 이 시각화는 어텐션 계산이 단순히 행렬 곱과 정규화의 조합으로 이루어진다는 점, 그리고 모든 위치를 행렬 단위로 동시에 처리할 수 있어 병렬화가 자연스럽게 가능하다는 점을 한눈에 드러낸다.

    3.2.1 Scaled Dot-Product Attention

    논문에서 사용한 어텐션은 "Scaled Dot-Product Attention(스케일드 닷-프로덕트 어텐션)"이다. 입력은 차원 dkd_k의 쿼리·키와 차원 dvd_v의 값으로 구성된다. 쿼리와 모든 키의 내적(Dot Product)을 계산한 뒤 dk\sqrt{d_k}로 나누고, 소프트맥스(Softmax) 함수를 적용하여 값에 대한 가중치를 얻는다. 실제로는 쿼리들을 행렬 QQ로, 키와 값들을 각각 행렬 KK, VV로 묶어 다음과 같이 한 번에 계산한다.

    Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V

    여기서 각 변수의 의미는 다음과 같다.

    • QQ: 쿼리 행렬. 어떤 정보를 찾을지 묻는 역할.
    • KK: 키 행렬. 각 위치가 어떤 정보를 갖고 있는지 표시하는 역할.
    • VV: 값 행렬. 실제로 가중합되어 출력으로 나오는 콘텐츠.
    • dkd_k: 키와 쿼리의 차원. dk\sqrt{d_k}로 나누는 이유는 차원이 커질수록 내적 값의 분산이 커져 소프트맥스가 매우 작은 그래디언트(Gradient)를 갖는 영역으로 밀려가는 것을 막기 위함이다.

    가장 흔히 사용되는 어텐션 함수에는 가산 어텐션(Additive Attention)과 닷-프로덕트(곱) 어텐션이 있다. 닷-프로덕트 어텐션은 본 논문의 알고리즘에서 스케일링 인자 1/dk1/\sqrt{d_k}만 추가된 형태이다. 가산 어텐션은 단일 은닉층을 가진 피드 포워드 네트워크로 호환성 함수를 계산한다. 두 방법은 이론적 복잡도는 비슷하지만, 닷-프로덕트 어텐션이 고도로 최적화된 행렬 곱 연산을 활용할 수 있어 실제로는 훨씬 빠르고 메모리 효율적이다.

    3.2.2 Multi-Head Attention

    단일 어텐션을 dmodeld_{\text{model}} 차원에서 수행하는 대신, 쿼리·키·값을 각각 학습된 서로 다른 hh개의 선형 사영(Linear Projection)을 통해 dkd_k, dkd_k, dvd_v 차원으로 사영한 뒤, 각 사영본에 대해 어텐션을 병렬로 수행하는 것이 더 효과적이다. 이렇게 얻은 hh개의 출력 벡터를 이어 붙인 뒤(Concatenate) 다시 한 번 사영하여 최종 출력을 만든다.

    Figure 3: Multi-Head Attention 구조

    Figure 3: Multi-Head Attention 구조

    이 그림은 멀티 헤드 어텐션이 여러 개의 Scaled Dot-Product Attention을 병렬로 쌓아 올린 구조임을 보여준다. 각 헤드는 자체적으로 학습된 선형 사영을 통해 서로 다른 표현 부분 공간(Representation Subspace)을 보고, 각 헤드의 출력이 이어붙여진 뒤 한 번 더 선형 변환을 거쳐 최종 결과로 나온다. 이 구조 덕분에 모델은 한 번의 어텐션으로는 평균화되어 사라질 수 있는 다양한 종류의 관계(예: 구문적 관계, 의미적 관계 등)를 동시에 포착할 수 있다.

    수식으로 표현하면 다음과 같다.

    MultiHead(Q,K,V)=Concat(head1,,headh)WO\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h)W^O

    headi=Attention(QWiQ,KWiK,VWiV)\text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)

    여기서 WiQRdmodel×dkW_i^Q \in \mathbb{R}^{d_{\text{model}} \times d_k}, WiKRdmodel×dkW_i^K \in \mathbb{R}^{d_{\text{model}} \times d_k}, WiVRdmodel×dvW_i^V \in \mathbb{R}^{d_{\text{model}} \times d_v}, WORhdv×dmodelW^O \in \mathbb{R}^{hd_v \times d_{\text{model}}}는 각각 학습되는 사영 행렬이다. 본 논문에서는 h=8h = 8개의 병렬 어텐션 헤드를 사용하고, 각 헤드의 차원은 dk=dv=dmodel/h=64d_k = d_v = d_{\text{model}}/h = 64로 설정한다. 각 헤드 차원이 줄었기 때문에 전체 계산 비용은 단일 헤드 어텐션과 비슷하다.

    3.2.3 모델 내 어텐션의 적용

    Transformer는 멀티 헤드 어텐션을 세 가지 서로 다른 방식으로 사용한다.

    1. 인코더-디코더 어텐션: 쿼리는 이전 디코더 레이어에서, 키와 값은 인코더 출력에서 가져온다. 디코더의 모든 위치가 입력 시퀀스의 모든 위치를 참조할 수 있게 한다. 전형적인 시퀀스 투 시퀀스 모델의 인코더-디코더 어텐션을 모방한 것이다.
    2. 인코더 셀프 어텐션: 키, 값, 쿼리가 모두 같은 곳, 즉 직전 인코더 레이어의 출력에서 온다. 인코더의 각 위치가 직전 레이어의 모든 위치를 자유롭게 참조할 수 있다.
    3. 디코더 셀프 어텐션: 디코더의 각 위치가 자기 자신을 포함하여 그 시점까지의 모든 위치를 참조할 수 있게 한다. 자기회귀적 성질을 보존하기 위해 미래 위치로의 정보 흐름을 막는 마스킹을 적용한다. 구체적으로 소프트맥스 입력에서 잘못된 연결에 해당하는 모든 값을 -\infty로 설정한다.

    3.3 위치별 피드 포워드 네트워크

    어텐션 서브 레이어 외에도, 인코더와 디코더의 각 레이어에는 완전 연결 피드 포워드 네트워크가 포함된다. 이 네트워크는 각 위치에 동일하게, 그러나 위치마다 별개로 적용된다. 두 개의 선형 변환과 그 사이의 ReLU(Rectified Linear Unit) 활성화 함수로 구성된다.

    FFN(x)=max(0,xW1+b1)W2+b2\text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2

    각 레이어 안에서는 동일한 가중치를 사용하지만, 레이어가 다르면 가중치도 다르다. 입력과 출력의 차원은 dmodel=512d_{\text{model}} = 512이고, 내부 은닉 차원은 dff=2048d_{ff} = 2048이다.

    3.4 임베딩과 소프트맥스

    다른 시퀀스 변환 모델과 마찬가지로, 학습된 임베딩(Embedding)을 사용해 입력 토큰과 출력 토큰을 차원 dmodeld_{\text{model}}의 벡터로 변환한다. 또한 디코더 출력을 다음 토큰의 확률로 변환하기 위해 학습된 선형 변환과 소프트맥스 함수를 사용한다. 본 모델에서는 두 임베딩 레이어와 사전-소프트맥스 선형 변환 사이에서 동일한 가중치 행렬을 공유하며, 임베딩 레이어에서는 이 가중치에 dmodel\sqrt{d_{\text{model}}}을 곱한다.

    3.5 위치 인코딩

    Transformer에는 재귀나 컨볼루션이 없기 때문에, 모델이 시퀀스의 순서 정보를 활용하려면 토큰의 상대적 또는 절대적 위치 정보를 별도로 주입해야 한다. 이를 위해 인코더와 디코더 스택의 입력 임베딩에 위치 인코딩(Positional Encoding)을 더한다. 위치 인코딩은 임베딩과 동일한 차원 dmodeld_{\text{model}}을 가지므로 단순히 합산할 수 있다. 본 논문에서는 다음과 같은 사인·코사인 함수를 사용한다.

    PE(pos,2i)=sin(pos/100002i/dmodel)PE_{(pos, 2i)} = \sin(pos / 10000^{2i/d_{\text{model}}})

    PE(pos,2i+1)=cos(pos/100002i/dmodel)PE_{(pos, 2i+1)} = \cos(pos / 10000^{2i/d_{\text{model}}})

    여기서 pospos는 토큰의 위치, ii는 차원 인덱스이다. 즉, 위치 인코딩의 각 차원은 서로 다른 주기의 사인파에 대응되며, 파장은 2π2\pi부터 100002π10000 \cdot 2\pi까지 기하급수적으로 증가한다. 이러한 함수를 선택한 이유는, 임의의 고정된 오프셋 kk에 대해 PEpos+kPE_{pos+k}PEposPE_{pos}의 선형 함수로 표현될 수 있어 모델이 상대적 위치를 쉽게 학습할 수 있을 것으로 기대되기 때문이다.

    4. 셀프 어텐션의 우위 (Why Self-Attention)

    이 절에서는 셀프 어텐션 레이어를 RNN, CNN과 다음 세 가지 기준에서 비교한다.

    1. 레이어당 총 계산 복잡도
    2. 병렬화할 수 있는 계산량(필요한 최소 순차 연산 수)
    3. 네트워크 내 장거리 의존성 사이의 경로 길이

    장거리 의존성을 학습하는 것은 많은 시퀀스 변환 태스크에서 핵심적인 과제이다. 의존성 학습 능력에 영향을 주는 핵심 요소 중 하나는, 신호가 네트워크에서 앞뒤로 전달되어야 하는 경로의 길이이다. 입력과 출력 시퀀스에서 임의의 두 위치 사이의 경로가 짧을수록 장거리 의존성을 학습하기가 쉬워진다.

    비교 결과, 셀프 어텐션 레이어는 모든 위치를 일정한(Constant) 수의 순차 연산으로 연결하지만, 재귀 레이어는 O(n)O(n)의 순차 연산을 필요로 한다. 시퀀스 길이 nn이 표현 차원 dd보다 작을 때, 셀프 어텐션 레이어는 재귀 레이어보다 빠르며, 이는 최신 기계 번역 모델에서 사용하는 문장 표현(예: 워드피스, 바이트페어 인코딩)에서 흔한 경우이다.

    또한 셀프 어텐션은 더 해석 가능한(Interpretable) 모델을 만든다는 부수적 이점이 있다. 어텐션 분포를 시각화해보면 개별 어텐션 헤드가 서로 다른 작업을 수행하도록 학습되며, 그중 다수가 문장의 구문적·의미적 구조와 관련된 행동을 보임이 관찰된다.

    5. 학습 설정

    5.1 학습 데이터와 배치

    학습은 표준 WMT 2014 영어-독일어 데이터셋(약 450만 개의 문장 쌍)에서 수행되었다. 문장은 바이트페어 인코딩(Byte-Pair Encoding, BPE)을 사용해 인코딩되었으며, 약 37,000개의 토큰을 공유하는 소스-타겟 어휘를 사용했다. 영어-프랑스어 태스크에서는 약 3,600만 문장으로 구성된 더 큰 WMT 2014 EN-FR 데이터셋을 사용하고, 32,000개의 워드피스(Word-piece) 어휘로 토큰을 분할했다. 비슷한 길이의 문장 쌍을 함께 묶어 배치를 구성했고, 각 학습 배치는 약 25,000개의 소스 토큰과 25,000개의 타겟 토큰을 포함했다.

    5.2 하드웨어와 일정

    8대의 NVIDIA P100 GPU를 장착한 단일 머신에서 학습했다. 본 논문에서 기술한 하이퍼파라미터를 사용한 베이스 모델은 한 학습 스텝당 약 0.4초가 걸렸다. 베이스 모델은 총 100,000 스텝(약 12시간) 동안 학습되었다. 빅 모델은 한 스텝당 1.0초가 걸렸으며, 300,000 스텝(약 3.5일) 동안 학습되었다.

    5.3 옵티마이저

    Adam 옵티마이저를 β1=0.9\beta_1 = 0.9, β2=0.98\beta_2 = 0.98, ϵ=109\epsilon = 10^{-9}로 사용했다. 학습률은 다음 공식을 따라 변화시켰다.

    lrate=dmodel0.5min(step_num0.5,step_numwarmup_steps1.5)lrate = d_{\text{model}}^{-0.5} \cdot \min(\text{step\_num}^{-0.5}, \text{step\_num} \cdot \text{warmup\_steps}^{-1.5})

    이는 처음 warmup_steps\text{warmup\_steps} 동안에는 학습률을 선형적으로 증가시키고, 그 이후에는 스텝 수의 역제곱근에 비례하여 감소시키는 전략이다. 본 실험에서는 warmup_steps=4000\text{warmup\_steps} = 4000을 사용했다.

    5.4 정규화

    학습 중 다음 세 종류의 정규화를 사용했다.

    1. 잔차 드롭아웃(Residual Dropout): 각 서브 레이어의 출력에 잔차 합산과 정규화 전에 드롭아웃을 적용했다. 또한 인코더와 디코더 스택의 임베딩과 위치 인코딩의 합산 결과에도 드롭아웃을 적용했다. 베이스 모델에서는 Pdrop=0.1P_{drop} = 0.1을 사용했다.
    2. 레이블 스무딩(Label Smoothing): ϵls=0.1\epsilon_{ls} = 0.1 값으로 레이블 스무딩을 적용했다. 이는 모델이 더 불확실하게 학습되도록 만들어 퍼플렉시티(Perplexity)는 다소 손해를 보지만 정확도와 BLEU 점수는 향상시킨다.

    6. 실험 결과

    6.1 WMT 2014 번역 태스크

    WMT 2014 영어-독일어 번역 태스크에서 빅 Transformer 모델(Transformer (big))은 28.4 BLEU를 기록했다. 이는 기존에 보고된 모든 모델(앙상블 포함)을 2.0 BLEU 이상 능가하는 새로운 SOTA 점수이다. WMT 2014 영어-프랑스어 태스크에서 빅 Transformer 모델은 41.8 BLEU를 달성했고, 이는 이전에 발표된 모든 단일 모델을 뛰어넘으며 기존 SOTA 모델 학습 비용의 1/4 미만으로 얻어낸 결과이다. (※ Results 본문에는 41.0으로도 표기되어 있어 논문 내부 불일치가 있으며, Table 2와 Introduction에서 정본으로 사용된 41.8을 채택)

    베이스 모델(Transformer (base))은 영어-독일어에서 26.3 BLEU, 영어-프랑스어에서 38.1 BLEU를 기록하여, 모델 규모를 키우면 성능이 추가로 향상됨을 확인할 수 있다. 베이스 모델은 5개의 체크포인트(10분 간격으로 저장)를 평균하여 만든 단일 모델이고, 빅 모델은 마지막 20개 체크포인트의 평균을 사용한다.

    6.2 모델 변형 (Ablation)

    논문에서는 어떤 구성 요소가 성능에 얼마나 중요한지를 측정하기 위해 베이스 모델의 다양한 변형들을 학습시키고, 영어-독일어 번역의 개발 셋(newstest2013)에서 성능 변화를 관찰했다.

    핵심적으로 관찰된 사항은 다음과 같다.

    • 헤드 수와 차원의 조합: 헤드를 너무 적게(예: 1개) 가진 단일 어텐션은 8 헤드보다 0.9 BLEU 낮다. 동시에 헤드를 너무 많이 두는 것도 품질을 떨어뜨린다.
    • 키 차원 dkd_k의 영향: 어텐션 키 크기 dkd_k를 줄이면 모델 품질이 손상된다. 이는 호환성을 결정하는 일이 단순하지 않으며, 단순 닷-프로덕트보다 더 정교한 호환성 함수가 도움이 될 수 있음을 시사한다.
    • 모델 크기: 일반적으로 모델이 클수록 성능이 좋다.
    • 드롭아웃: 드롭아웃이 과적합을 방지하는 데 매우 도움이 된다.
    • 위치 인코딩 방식: 사인·코사인 위치 인코딩을 학습된 위치 임베딩으로 대체해도 베이스 모델과 거의 동일한 결과가 나온다.

    6.3 영어 구문 분석

    Transformer가 다른 태스크로도 일반화되는지를 확인하기 위해 영어 구문 분석(English Constituency Parsing) 실험을 수행했다. 이 태스크는 출력이 강한 구조적 제약을 따르고, 입력보다 길이가 상당히 길어진다는 특성 때문에 도전적이다. 또한 RNN 시퀀스 투 시퀀스 모델은 작은 데이터 환경에서는 SOTA에 도달하지 못한다고 알려져 있다.

    월스트리트 저널(WSJ) 부분의 펜 트리뱅크(Penn Treebank)에서 약 4만 개 학습 문장으로 학습한 4-레이어 Transformer는, 작업별 튜닝이 거의 없는 상태에서도 BerkeleyParser를 포함한 이전에 보고된 모든 모델보다 좋은 성과를 보였다. 더 큰 반-지도 학습(Semi-supervised) 환경에서도 Transformer가 매우 우수한 성능을 내어 일반화 능력이 입증되었다.

    7. 어텐션 시각화 분석

    어텐션이 단순한 가중 합산을 넘어 실제로 의미 있는 언어적 구조를 학습하는지를 확인하기 위해, 학습된 모델의 어텐션 분포를 시각화한 결과가 제시된다.

    Figure 4: 5번째 인코더 셀프 어텐션 레이어에서의 장거리 의존성 추적 예시

    Figure 4: 5번째 인코더 셀프 어텐션 레이어에서의 장거리 의존성 추적 예시

    이 그림은 6개 레이어 중 5번째 레이어의 인코더 셀프 어텐션에서 동사 "making"이 자신의 먼 의존어들을 끌어와 "making...more difficult"라는 구문을 완성해가는 과정을 보여준다. 서로 다른 색은 서로 다른 어텐션 헤드를 의미하며, 단일 헤드가 아니라 여러 헤드가 함께 장거리 의존성을 분담해 추적하고 있다는 점이 시각적으로 드러난다. (※ 크롭된 그림 상단의 토큰 라벨이 세로로 겹쳐 일부 식별이 어려울 수 있으나, 색깔로 구분되는 어텐션 선이 동사로부터 멀리 떨어진 단어로 뻗어나가 구문을 잇는 패턴이 핵심이다.) 이 시각화는 셀프 어텐션이 RNN처럼 시퀀스를 따라 정보를 전달하지 않고도 거리에 무관하게 장거리 의존성을 직접 포착할 수 있다는 주장을 뒷받침한다.

    Figure 5: 5번째 레이어에서 상호 참조 해결에 관여하는 두 어텐션 헤드 - 전체 어텐션

    Figure 5: 5번째 레이어에서 상호 참조 해결에 관여하는 두 어텐션 헤드 - 전체 어텐션

    이 그림은 마찬가지로 6개 레이어 중 5번째 레이어에서 상호 참조 해결(Anaphora Resolution, 대명사가 어떤 명사를 가리키는지 결정하는 문제)에 관여하는 것으로 보이는 헤드 5의 전체 어텐션 분포를 보여준다. 단어 "its"를 비롯한 토큰들이 자신과 의미적으로 연관된 명사구로 어텐션을 집중시키는 패턴이 색의 진하기로 표현된다. 이 그림은 셀프 어텐션 헤드가 단순한 표면적 인접 관계가 아닌, 의미적 참조 관계와 같은 추상적 언어 현상을 학습한다는 점을 보여준다.

    Figure 6: 5번째 레이어에서 상호 참조 해결 - 'its' 단어에 대한 헤드 5와 6의 분리된 어텐션

    Figure 6: 5번째 레이어에서 상호 참조 해결 - 'its' 단어에 대한 헤드 5와 6의 분리된 어텐션

    이 그림은 같은 5번째 레이어의 헤드 5와 헤드 6에서 "its" 단어 한 개에 대한 어텐션만 따로 분리해 보여준다. 두 헤드 모두 "its"라는 단어가 자신의 선행사로 보이는 명사구에 매우 날카롭게(Sharp) 어텐션을 집중하고 있는 것이 특징이다. 즉, 어텐션이 넓게 퍼지지 않고 한두 단어에 집중되는 분포를 보이며, 이는 모델이 상호 참조 해결을 위한 분명한 가설을 형성하고 있음을 시사한다.

    Figure 7: 5번째 레이어의 인코더 셀프 어텐션 헤드들이 보여주는 문장 구조 관련 행동 (예시 1)

    Figure 7: 5번째 레이어의 인코더 셀프 어텐션 헤드들이 보여주는 문장 구조 관련 행동 (예시 1)

    이 그림은 6개 레이어 중 5번째 레이어의 인코더 셀프 어텐션에 있는 두 헤드가 문장 구조에 관련된 서로 다른 작업을 수행하도록 학습되었음을 보여준다. 한 헤드는 특정 구문 단위(예: 명사구의 시작·끝)에 집중하는 패턴을, 다른 헤드는 다른 종류의 구조적 관계에 집중하는 패턴을 보인다. 색상으로 구분되는 어텐션 선이 토큰 사이를 다양한 방식으로 연결하는 모습이 드러난다.

    Figure 8: 5번째 레이어의 인코더 셀프 어텐션 헤드들이 보여주는 문장 구조 관련 행동 (예시 2)

    Figure 8: 5번째 레이어의 인코더 셀프 어텐션 헤드들이 보여주는 문장 구조 관련 행동 (예시 2)

    이 그림은 동일한 5번째 인코더 레이어의 또 다른 두 헤드에서 관찰되는 문장 구조 관련 패턴을 보여준다. 그림에서 나타나는 어텐션 연결의 형태는 헤드별로 분명히 다르며, 각 헤드가 서로 다른 언어 현상에 특화되어 있음이 시각적으로 드러난다. 이러한 다양한 분업 패턴은 멀티 헤드 구조가 표현 다양성을 만들어내는 데 실질적인 역할을 한다는 주장을 뒷받침한다.

    8. 결론 및 의의

    이 논문은 어텐션만으로 구성된 최초의 시퀀스 변환 모델인 Transformer를 제안하며, 인코더-디코더 아키텍처에서 가장 흔히 사용되던 재귀 레이어를 멀티 헤드 셀프 어텐션으로 대체했다. 번역 태스크에서 Transformer는 RNN이나 CNN 기반 모델 대비 학습 속도가 훨씬 빠르며, WMT 2014 영어-독일어와 영어-프랑스어 태스크 모두에서 새로운 SOTA를 달성했다. 특히 영어-독일어 태스크에서는 보고된 모든 앙상블을 능가하는 단일 모델 성능을 보였다.

    저자들은 어텐션 기반 모델의 미래에 대해 다음과 같은 방향을 제시한다.

    • 다른 모달리티로 확장: 텍스트 외에 이미지, 오디오, 비디오와 같이 큰 입출력을 다루는 문제로의 확장.
    • 국소·제한된 어텐션: 큰 입출력을 효율적으로 다루기 위한 국소적(Local) 또는 제한된(Restricted) 어텐션 메커니즘.
    • 덜 순차적인 생성: 출력 생성 자체를 덜 순차적으로 만드는 연구 방향.

    학습과 평가에 사용된 코드는 tensor2tensor 저장소를 통해 공개되었다.

    참고: 핵심 선행 연구

    이 논문은 다음과 같은 연구 흐름 위에 위치한다.

    • 순차 시퀀스 모델링과 그 한계: LSTM, GRU와 같은 게이팅 RNN(Gated RNN)을 활용한 시퀀스 모델링 및 신경망 기반 기계 번역 연구가 대표적 선행 연구로, 순차 계산이라는 본질적 제약을 공유한다.
    • 컨볼루션 기반 시퀀스 모델: Extended Neural GPU, ByteNet, ConvS2S와 같이 시퀀스 변환에서 순차 계산을 줄이려는 시도들이다. 이들은 입력·출력 위치 모두에 대한 표현을 병렬 계산하지만, 두 임의 위치 간의 신호 결합에 필요한 연산이 거리에 따라 증가한다는 한계를 가진다. Transformer는 이 거리 의존 비용을 어텐션 가중 위치 평균을 통해 상수로 줄이되, 멀티 헤드 어텐션으로 평균화로 인한 해상도 손실을 보완한다.
    • 셀프 어텐션과 그 응용: 셀프 어텐션(때로는 인트라-어텐션이라 불림)은 단일 시퀀스 내에서 서로 다른 위치들을 연결해 그 시퀀스의 표현을 계산하는 메커니즘이다. 독해(Reading Comprehension), 추상 요약(Abstractive Summarization), 텍스트 함의(Textual Entailment), 태스크 독립적 문장 표현 학습 등에 성공적으로 사용되어 왔다.
    • 엔드 투 엔드 메모리 네트워크: 시퀀스 정렬 재귀 대신 재귀적 어텐션 메커니즘을 사용하며, 단순 언어 질의 응답과 언어 모델링 태스크에서 좋은 성능을 보인다는 것이 입증되었다.

    Transformer는 이러한 흐름의 정점에서, 입력·출력 표현을 계산하기 위해 시퀀스 정렬 RNN이나 컨볼루션을 사용하지 않고 전적으로 셀프 어텐션에 의존하는 최초의 변환 모델로 위치한다.

    반응형
Designed by Tistory.