Gorio Tech Blog search

Linformer(Self-Attention with Linear Complexity) 요약 설명

|

이번 글에서는 Linformer 논문의 핵심 포인트만 간추려서 기술합니다.

논문에서는 self-attention이 O(n^2)의 time & space complexity를 갖기 때문에 seq가 길수록 bottleneck의 원인이 된다고 지적합니다.

경험적으로 그리고 수식적으로 증명해보면, attention matrix는 low-rank matrix로 분해할 수 있다고 설명합니다. k « seq_len인 k의 size를 갖는 matrix E를 K, V에 곱함으로써 이를 구현할 수 있습니다. (seq_len, d) -> (seq_len, k)

실험 결과를 보면 Linformer는 대체적으로 standard Transformer와 비견할 만한 성능을 보입니다.

요약해보면, sequence의 길이가 꽤 길거나 하는 등의 이유로 training speed를 향상시키면서도 model의 representational capacity를 유지하고 싶을 때, 특별한 제약 조건이 없다면 충분히 시도해 볼 수 있는 방법이라고 판단됩니다. 물론 실제로 데이터에 적용해보기 전까지는 이에 대한 효과를 장담하기는 어렵습니다.

Comment  Read more

Fastformer(Additive Attention Can Be All You Need) 요약 설명

|

이번 글에서는 Fastformer 논문에 대해 간략히 다뤄 보겠습니다.

본 논문은 self-attention의 pairwise interaction 모델링 구조가 굳이 필요한 것인가에 대해 의문을 제시하고 중첩된 additive attention 메커니즘을 통해 충분히 경쟁력 있는 모델을 구현할 수 있다고 주장합니다.

논문 도입부에 나온 줄 글만 봤을 때는 복잡한 과정을 거치는 것으로 생각이 들 수 있지만 실제로는 매우 쉬운 연산의 연속입니다.

중요 아이디어는 다음과 같습니다.

  • 모든 query X key 에 대해 interaction을 계산할 필요가 없다.
  • global query vector와 global key vector를 만든 후 이를 value vector 들과 다시 결합하면 충분하다.
  • global query 및 key vector는 각 query 혹은 key vector 들의 가중합으로 이루어진다.

global query vector는 아래와 같이 구합니다.

[\mathbf{q} = \Sigma_{i=1}^N \alpha_i \mathbf{q}_i]

[\alpha_i = \frac{exp(\mathbf{w}q^t / \sqrt{d})}{\Sigma{j=1}^N exp(\mathbf{w}_q^T \mathbf{q}_j / \sqrt{d})}]

그런데 이는 사실 상 self-attention 메커니즘을 구현한 것과 다름 없습니다. 같은 방식으로 global key vector도 구하고 최종적으로 value vector들과 곱합니다. 마지막 output vector를 만들기 이전에 query vector 값들을 다시 더합니다. 이는 일종의 residual connection 역할을 하는 것으로 보이는데 이러한 구조가 만들어진 것에 대한 논리적 설명이 없는 부분은 매우 아쉽습니다.

일단 연산의 구조로 보았을 때 Vanilla Transformer보다 속도는 빠를 가능성이 높다고 추론해 볼 수 있습니다. 논문에서 제시한 실험 결과도 이를 뒷받침합니다. 그리도 만약 token 사이의 순서가 아주 중요하지 않고 일종의 global context가 중요한 역할을 수행하는, 예를 들어 classificaion task에서는 이러한 구조가 더 적합할 수도 있겠다는 판단이 듭니다. 물론 실제 실험을 진행해봐야 아는 부분이겠지만 구현 자체가 까다로운 알고리즘이 아니기 때문에 하나의 옵션으로 고려할 수 있을 것으로 보입니다.

다만 global vector를 생성하는 부분 외에는 특별히 논리적/수식적 근거를 제시하지 않았다는 점과 Fastformer가 잘 통하는 종류의 실험들을 선별한 것이 아닌가 하는 의문이 든다는 점은 아쉬운 부분이라고 할 수 있겠습니다.

Comment  Read more

Synthesizer(Rethinking self-attention for transformer models) 요약 설명

|

앞으로 Paper Review 카테고리에는 논문들을 비교적 짧고 가볍게 요약하여 정리하는 글들을 올려보고자 합니다.

첫 타자는 Synthesizer라는 논문입니다.

본 논문은 dot-product based self-attention이 정말 필요한가?에 대한 물음을 던지고 대안을 제시한 논문입니다. 논문에서 dot product self-attention은 sequence 내에서 single token이 다른 token과의 관계에서 갖는 상대적인 중요성을 결정하는 역할을 수행한다고 설명하며 (당연히 맞는 이야기) 이러한 역할은 논문에서 제시하는 구조로도 충분히 달성할 수 있음을 여러 종류의 실험을 통해 증명하고자 노력합니다. token과 token 사이의 interaction을 굳이 고려하지 않고도 fully global attention weight를 통해 충분히 주요 정보를 포착할 수 있다고 이야기 합니다.

굉장히 흥미로운 아이디어이지만 그 구조가 설명에 있어 아쉬운 부분이 많습니다. 일단 논문에서는 크게 2가지 구조를 제안합니다. Dense SynthesizerRandom Synthesizer가 바로 그것입니다.

[Y_{h, l} = softmax(B_{h, l}) G_{h, l}(X_{h, l})]

대단히 복잡한 식이 아닙니다. 사실 $G$ 함수는 linear transformation 역할을 수행하며 기존의 dot-product attention matrix를 단지 $B$ 라는 parameter matrix로 대체하는 것일 뿐입니다. 이 $B$ 를 계산하기 위해 input token에 의존적으로 학습된다면 이를 Dense Synthesizer라고 하며 어떠한 input token에도 영향 받지 않는 attention weight를 구성한다면 이를 Random Synthesizer라고 합니다. 이 때 이 행렬은 trainable 할 수도 있고, 그저 고정된 상수 값일 수도 있습니다. 논문에서는 행렬을 factorize 한 버전 역시 제시합니다.

자세한 설명은 글 상단에 있는 youtube 영상을 참고하기를 추천합니다. 실험 부분에 대해 자세히 설명하고 있고, 본 논문의 한계점에 대해 명확하게 설명하고 있습니다.

간단히 이 부분에 대해 언급하면 아래와 같습니다.

  • 사실상 synthesizer는 self-attention layer를 feed-forward layer로 치환한 것과 다름 없음
  • 언어 구조가 비슷한 언어 간의 번역 task는 이러한 구조가 잘 기능할 가능성이 높은 task이기 때문에 논문에서 제시하는 구조가 과대 평가되었을 가능성이 높음
  • 아이디어 자체는 좋지만 실질적으로 어떻게 self-attention layer를 대체할 수 있는지 그 장점이 명확하지 않음. 결국 dot-product self-atttention과 mix 한 것이 성능이 가장 좋다고 나옴
Comment  Read more

Learning to Retrieve Videos by Asking Questions 논문 설명

|

이 글에서는 Learning to Retrieve Videos by Asking Questions 논문을 간략하게 정리한다.


Learning to Retrieve Videos by Asking Questions

논문 링크: Learning to Retrieve Videos by Asking Questions

  • 2022년 6월(Arxiv)
  • Avinash Madasu, Junier Oliva, Gedas Bertasius

Abstract

전통적인 text-to-video retrieval은 정적인(static) 환경에서만 진행되어 왔다(첫 query가 주어지고 나면 답을 찾을 때까지 유저와 어떠한 상호작용도 없다). 이는 query가 모호한 경우 적절한 영상을 찾아오는 데 있어 특히 문제될 수 있다. 이 한계를 극복하기 위해 본 논문에서는 Video Retrieval using Dialog(ViReD)를 위한 새로운 framework를 제시하여 유저가 여러 턴에 걸쳐 agent와 상호작용(질문 및 응답)할 수 있게 하여 유저가 정말로 원하는 영상을 찾을 수 있도록 한다.

본 논문에서 제안하는 multimodal question generator는 다음을 사용하여 차후 video retrieval 성능을 높인다:

  1. 유저와의 상호작용 중 마지막 round 동안 얻은 video 후보들
  2. 이전의 모든 상호작용에서 얻은 텍스트 대화 history

이를 조합하여 video retrieval과 연관된 시각적/언어적 단서를 찾는다.

또한 질문을 통해 최대한 많은 정보를 얻기 위해 question generator가 더 의미 있는 질문을 생성하도록 Information-Guided Supervision(IGS) 라는 방법을 제안한다.

AVSD 데이터셋에서 제안하는 모델을 평가하여 괜찮은 성능을 얻고 video retrieval에서 효과가 있음을 보인다.

CCS CONCEPTS

Computing methodologies → Visual content-based indexing and retrieval.

KEYWORDS

interactive video retrieval, dialog generation, multi-modal learning


1. Introduction

처음에 query만 하나 던져주고 원하는 video를 찾아오는 것은 query 자체가 정보가 부족하거나 모호할 수 있기 때문에 제약사항이 많다. 그래서 본 논문에서는 단 한번의 query만 받는 것이 아닌 여러 차례 상호작용을 수행하여 좀 더 정확하게 video retrieval task를 수행하는 것을 목표로 한다.

예를 들어 어떤 “요리하는 영상”을 찾는다는 query를 생각해보자. 전통적인 방식으로는 요리 영상이라면 그냥 다 찾아오고 말겠지만 다음과 같이 지속적인 상호작용을 통해:

  • Q1: “어떤 요리?”
  • A1: “지중해식 요리”
  • Q2: “육류? 채소류?”
  • A2: “채소류”

유저가 더 원할만한 영상을 더 정확하게 찾을 수 있을 것이다.

물론 기존에도 상호작용을 포함한 연구들은 있었다. 그러나 보통은 지나치게 많은 round를 (e.g. >5) 요구하는 등의 문제가 있었다. 저자들은 본 연구에서는 2~3번의 상호작용만으로 목적을 달성할 수 있다고 한다. 여기서 초록에서 언급한 Information-Guided Supervision(IGS) 가 중요한 역할을 한다.


2.1 Multimodal Conversational Agents

특히 image-based visual dialog에서 많은 진척이 있었다. 그러나 대체로 정적인 환경에서 이루어졌다는 단점이 있다.

2.2 Video Question Answering

이미지에 이어 VQA는 영상 또한 다루며 시간적인 정보가 포함되므로 더 도전적인 과제이다. 최근에는 Vx2Text라는 Transformer 기반 multi-modal generative network가 제안되었다.

2.3 Multimodal Video Retrieval

DNN에 기반한 연구, Transformer 기반 모델 등이 제안되어 왔다. 역시 보통은 정적인 환경에서 수행되었다. (계속 본 논문이 상호작용이 있으므로 더 좋다는 주장. 논문에서 필요한 부분이기도 함)

2.4 Interactive Modeling Techniques

  • Ishan et al. 의 논문에서는 VQA를 위한 상호작용 학습 framework를 제안하였다. visual question에 대답하기 위한 정보를 oracle에게 능동적으로 요구한다.
  • 이미지뿐 아니라 비디오에서도 interactive한 모델들이 video browser showdown (VBS) benchmark를 위해 제안되었다.
  • 이러한 연구들은 original search query와 연관된 추가적인 정보를 유저로부터 얻기 위해 interactive한 interfaces를 사용하였다. 이는 attribute-like sketches, temporal context, color, spatial position, cues from the Kinect sensors 등의 정보를 포함한다.
  • 이와 비교하여, 본 논문에서 제시하는 대화 기반 video retrieval framework에서 이들 접근법에 대해 상호보완적이다. 특히, 위에 나열한 단서들(sketches 등)과 대화 내용을 결합하는 것은 분명히 video retrieval 정확도를 높여 줄 것이라 믿는다고 저자들은 밝히고 있다.

3. Video Retrieval using Dialog

여기서는 본 논문에서 제시하는 framework인 ViReD를 소개한다.

task의 목표는

  • 유저의 initial text query $T$와
  • 직전까지 생성된 dialogue history $H_{t-1}$가 주어지면
  • 가장 연관성이 높은 $k$개의 영상 $V_1, V_2, …, V_k$ 을 찾는 것

이전 연구들과의 차이점을 간단히 아래 그림에 나타내었다.

요약하면, video retrieval 모델은 처음 query만 갖고 영상을 찾는 것이 아니라 query와 이전 history를 참조해서 도움이 될 만한 정보를 얻기 위한 질문을 생성하고, 거기에 맞는 답을 생성하고, 이를 여러 차례 반복한 뒤 최종적으로 관련성 있는 영상을 찾는 방식이다.

3.1 Question Generator

Question Generator는 다음 입력을 가지고 있다.

  • initial text query $T$
  • $t-1$ 시점에 찾아놓은 top $k$의 영상
  • 직전까지 생성된 대화 로그(dialogue history) $H_{t-1}$

영상 정보를 매번 처리하긴 힘드니 AVSD 데이터셋에서 학습된 Vid2Sum video caption model을 사용하여 비디오에 대한 요약문을 생성한다. 즉 영상 $V_1, …, V_k$를 요약문 $S_1, …, S_k$로 치환한다.

이들(query, $k$개의 영상 요약문, 대화 로그)을 모두 붙여서 새로운 입력을 얻고,

[X_q = \text{Concat}(T, S_1, …, S_k, H_{t-1})]

이를 autoregressive language model인 BART의 생성 모델에 집어넣는다.

[q_t = \text{BART}_q(X_q)]

3.2 Answer Generation Oracle

사람이 상호작용하며 대답하는 상황을 모방하려 하였다. 여기서 사용하는 방식은 꽤 폭넓게 쓰일 수 있다.

Answer Generator는 다음 입력을 갖고 있다.

  • $i$번째 영상 $V_i$
  • 이 영상에 대해 Question Generator가 생성한 질문 $q_t$

Question Generator와 비슷하게 Vid2Sum을 사용하여 요약문 $S_i$를 얻고, 이어 붙인 다음 역시 BART에 집어넣는다.

[X_a = \text{Concat}(S_i, q_t)]

[a_t = \text{BART}_a(X_a)]

note: BART는 동일한 구조를 갖지만 weights는 다른 question generator와 answer generator, 두 가지 모델이 있다.

이렇게 각 질문 $q$와 대답 $a$를 $t$ round에 걸쳐서 수행하면 dialogue history를 얻을 수 있다.

[H_t = (\lbrace q_1, a_1 \rbrace, \lbrace q_2, a_2 \rbrace, …, \lbrace q_t, a_t \rbrace).]

생성된 dialog history $H_t$는 이후 video retrieval framework의 추가 입력으로 들어가게 된다.

3.3 Text-to-Video Retrieval Model

VRM(video retrieval model) 은 다음 입력을 받는다.

  • initial text query $T$
  • 이전 dialog history $H_t$

출력은

  • $[T, H_t]$와 각 영상 $V^{(i)}$와의 (정규화된) 유사도를 encode하는 확률분포 $p \in \mathbb{R}^N$

[p = \text{VRM}(T, H_t)]

$p_i$는 $i$번째 영상 $V^{(i)}$이 입력된 textual query $[T, H_t]$가 얼마나 연관되어 있는지를 나타낸다.

VRM은 2가지 주요 구성요소를 가진다. $\theta$는 학습가능한 parameter이다.

  1. visual encoder $F(V; \theta_v)$
  2. textual encoder $G(T, H_t; \theta_t)$

학습하는 동안, 수동으로 labeling된 video retrieval 데이터셋 $\mathcal{X} = \lbrace(V^{(1)}, T^{(1)}, H_t^{(1)}), …, (V^{(N)}, T^{(N)}, H_t^{(N)}))$이 있다고 가정한다. $T^{(i)}, H_t^{(i)}$는 각각 영상 $V^{(i)}$에 대한 text query와 dialog history를 나타낸다.

  • visual encoder는 video transformer encoder를 사용하여 visual representation $f^{(i)} = F(V^{(i)}; \theta_v), f^{(i)} \in \mathbb{R}^d$를 얻는다.
  • textual encoder는 DistilBERT를 사용하여 textual representation $g^{(i)} = G(T^{(i)}, H_t^{(i)}; \theta_t), g^{(i)} \in \mathbb{R}^d$를 얻는다.

visual과 textual encoder를 같이 학습시키는데, 목적함수는 video-to-text와 text-to-video matching loss의 합을 최소화하는 것을 사용한다.

  • $B$는 batch size
  • $f^{(i)}, g^{(j)}$는 $i$번째 영상, $j$번째 영상에 대한 text embedding을 나타낸다.

여기서 각 batch 내의 text-video($i, i$) 쌍은 positive, 나머지 전부($i, j$)는 negative로 사용하였다.

추론하는 동안에는,

  • 학습된 textual encoder로 $g = G(T, H_t; \theta_t), g \in \mathbb{R}^{1 \times d}$를 추출한다.
  • $N$개의 모든 영상 $V^{(i)}$에 대해 visual embedding $f^{(i)} = F(V^{(i)}; \theta_v)$를 얻는다.
  • visual embedding들을 전부 쌓아서 single feature matrix $Y = [f^{(1)}, …, f^{(N)}],Y \in \mathbb{R}^{N \times d}$를 얻는다.
  • single textual embedding $g$와 visual embeddings $Y$를 normalized dot product하여 video retrieval 확률분포 $p \in \mathbb{R}^{1 \times N}$을 계산한다.

즉,

[p = \text{Softmax}(gY^\top)]

앞으로는 단순하게 나타내기 위해 $p = \text{VRM}(T, H_t)$와 같이 쓴다.


4. Information-Guided Supervision for Question Generation

상호작용 중 질문을 함으로써 최대한 많은 정보를 얻으려는 노력은 반드시 필요하다. 이때 Question Generator는 다음에 대한 이해를 하고 있어야 한다:

  1. 이미 얻은 정보(e.g. initial query와 dialogue history)
  2. 유저에게 전달할, 잠재적인 가능성이 있는 영상들에 대한 현재 belief 및 모호성(이는 현재까지 찾아놓은 top $k$개의 후보 영상들을 통해 얻는다)
  3. 새로운 질문을 통해 얻게 된 잠재적인 정보 획득(e.g. 특정 질문을 함으로써 획득하게 될 것이라고 기대되는 성능 향상)

이를 위해 RL 방법 등이 도입되었으나 본 문제에서 다루는, 취할 수 있는 action이 너무 많고(자유형식 자연어 질문은 무한하다) 얻을 수 있는 피드백은 한정적인(성능이 몇 %나 향상되었는가) 상황에서는 큰 도움이 되지 못한다. 그래서 본 논문에서는 information-guided question generation supervision (IGS) 를 제안한다.

각 영상 $V^{(1)}, i \in \lbrace 1, …, N \rbrace$에 대해서 사람이 만든 QA가 각 $m$개씩 있다고 가정한다.

[D^{(i)} = \lbrace D_1^{(i)}, …, D_m^{(i)} \rbrace]

AVSD 데이터셋처럼 각 영상에 대해 독립적으로 데이터가 모아져 있다.

여기서 IGS를 통해 “가장 많은 정보를 얻을 수 있는” 질문을 고르는 과정을 거친다.

$T^{(i)}$를 $V^{(i)}$에 대한 textual initial query라 하자. 그리고 $t$번째 round의 dialogue history $H_t^{(i)}$를 얻은 이후 지금까지 골라 놓은 top-$k$ 영상에 대한 요약문 $S_{t, 1}^{(i)}, …, S_{t, k}^{(i)}$을 얻는다.

여기서, 질문/답변 생성기에서 생성한 $(q, a)$를 $D^{(i)}$에 그대로 넣지 않고, retrieval 성능을 가장 높일 수 있을 만한 qa 쌍을 찾아 history에 추가한다.

여기서 argmax의 항은 $p_i$와 같다. 이 과정을 통해 얻은 “best question”은 $t+1$번째 round에서 생성할 question의 target이 된다.

$T, S, H$를 concat해서 $\text{BART}_q$의 입력으로 주게 된다.

target 질문/대답은

[H_{t+1}^{(i)} = H_t^{(i)} \cup \lbrace(q_{t+1}^{(i)}, a_{t+1}^{(i)}) \rbrace]

로 추가되며 $t+2$ round도 비슷하게 진행된다.

여기서 $\mathcal{D}_{t+1} $는

$\mathcal{D}_{t}$에 의존하므로 질문을 생성할 때는 이전 history를 고려하며 생성하게 된다.
즉 각 round마다 이전 기록을 고려하며 가장 informative한 질문을 생성할 수 있게 된다.

또 $\mathcal{D}_1 \cup \mathcal{D}_2 \cup … \cup \mathcal{D}_M $은
question generator($\text{BART}_q$)의 supervised 데이터셋으로 작용한다.


5. Experiments

5.1 Dataset

  • AVSD 데이터셋 사용
  • 7,985 train, 863 val, 1,000 test video

5.2 Implementation Details

5.2.1 Question Generator

  • $\text{BART}_{\text{large}}$ 사용
  • 질문 최대 길이 120
  • size 10의 beam search
  • batch size 32
  • 5 epochs

5.2.2 Answer Generator

  • $\text{BART}_{\text{large}}$ 사용
  • 답변 최대 길이 135
  • size 8의 beam search
  • batch size 32
  • 2 epochs

5.2.3 Video Retrieval Model

  • Frozen-in-Time(FiT) codebase 사용
  • 20 epochs, batch size 16, early stopping for 10 epochs
  • AdamW optimizer($3e^{-5}$)

5.2.4 Vid2Sum Captioning Model

  • 5 epochs, 문장 최대길이 25

5.3 Evaluation Metrics

  • Recall@k($k = 1, 5, 10$), MedianR, MeanR 사용
  • Recall@k는 $k$개의 후보 영상 중 실제 정답 영상이 포함되는지를 가지고 평가함(높을수록 좋다)
  • MeanR과 MedianR은 실제 정답 영상이 후보 영상 중 몇 번째에 나타냈는지 평균과 중간값을 내는 것으로 낮을수록 좋다.
  • 3번씩 실험하여 평균함

5.4 Video Retrieval Baselines

  • LSTM
  • Frozen-in-Time
  • Frozen-in-Time w/ Ground Truth Human Dialog

6. Results and Discussion

6.1 Quantitative Video Retrieval Results

  • Pretraining한 FiT가 LSTM을 크게 앞선다.
  • Dialog의 존재 유무는 차이가 상당히 크다.
  • 몇 턴의 대화(qa)를 사용해야 하는지 실험한 결과 3번이 가장 좋았다. (그래서 표 1에서는 3번으로 실험함)

6.2 Video Question Answering Results

  • VX2TEXT와 ViReD가 좋은 성능을 보인다.
  • Question Generator를 Human subject로 대체하였을 때 성능을 아래 표에서 비교하였다. Human subject로 대체하였을 때도 비슷하게 작동한다는 것은 본 논문에서 제안하는 시스템이 실제 상황과 잘 맞으며 신뢰도 있게 작동한다는 것을 의미한다고 한다.

6.3 Ablation Studies

  1. IGS가 있을 때는 없을 때보다 R1 metric으로 4.3%만큼 좋다.
  2. Question Gnerator에서 Retrieved Video를 사용한 경우 R1에서 3.9%만큼 향상되었다.
  3. Question Gnerator에서 Video input은 4개가 적당하다.
  4. 언어모델은 BART large가 가장 좋았다.

6.4 Qualitative Results

요건 그림을 살짝 보는 것이 낫다.

각 round별 dialog는 video retrieval 성능을 높이고 있음을 주장하고 있다.


7. Conclusions

  • dialog를 사용한 비디오 검색을 위한 대화형 프레임워크인 ViReD를 제안하였다.
  • dialog를 사용했을 때가 그렇지 않을 때보다 훨씬 효과적임을 보였다.

요약하면, 이 논문의 방법은

  1. 개념적으로 간단하고,
  2. AVSD 데이터셋에 대한 대화형 비디오 검색 작업에 대한 SOTA를 달성하고
  3. human subject와 같은 실제 환경으로 일반화할 수 있다.

추후 연구는 다른 VL task로도 확장하는 것이다.


Comment  Read more

BART 논문 설명(BART - Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension)

|

이 글에서는 Facebook AI에서 발표한 BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension 논문을 간략하게 정리한다.


BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension

논문 링크: BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension

  • 2019년 10월(Arxiv)
  • Mike Lewis, Yinhan Liu, Naman Goyal et al.

Abstract

seq-to-seq 모델을 사전학습시키기 위한 denoising autoencoder인 BART를 제안한다. BART의 학습은

  1. 임의의 noising function으로 텍스트를 변형시킨 것과
  2. 이를 원래대로 복원하도록 모델을 학습시키는 것으로 이루어진다.

BART는 Transformer 기반 표준 NMT 구조를 가지며 BERTGPT 및 많은 사전학습 schemes를 일반화한 모델이라 할 수 있다.
본 논문에서는 많은 noising 기법들을 평가하여 문장의 순서를 임의로 섞는 것과 in-filling scheme(spans of text가 하나의 mask token으로 치환됨)을 사용할 때 가장 성능이 좋음을 발견하였다. BART는 특히 텍스트 생성에 대해 fine-tuned되었을 때 효율적이지만 이해력 테스트에서도 잘 작동한다. GLUE와 SQuAD에서 RoBERTa 이상의 성능을, 6 ROUGE score을 더 높게 얻고 abstractive dialogue, question answering, and summarization tasks에서 SOTA를 달성하는 등 성과가 좋다.

또한 ablation 실험 등을 진행하여 모델의 성능 등을 입증한다.


1. Introduction

Self-supervised 접근법은 NLP task에서 괄목할 만한 성과를 많이 내었다. 가장 성공적인 방법은 MLM 및 그 변형들이었다. 그러나 이러한 방법들은 특정 task에만 집중하여 일반화하기 어려웠다.

본 노문에서는 아주 넓은 범위에 사용할 수 있는, seq-to-seq 모델로 만든 denoising autoencoder인 Bidirectional and Auto-Regressive Transformers, BART를 제안한다. 초록에서 말한 것처럼 BERT, GPT 등의 학습 방법을 일반화한 방식을 사용했음을 아래 그림에서 볼 수 있다.

이 방식의 이점은 noising할 떄 별 제약없이 다양한 function을 사용할 수 있다는 것이다.

(초록과 같은 내용이라 일부 생략)

BART는 fine-tuning에 대해 새로운 방식을 생각할 수 있게 한다. Machine Translation에 대해 새로운 scheme을 제안하는데 BART는 몇 개의 추가적인 transformer layer 위에 놓인다. 이 layer들은 특히 외국어를 noised 영어로 번역하도록 학습되고 이는 BART에 전해지고, 따라서 BART를 pre-trained target-side language model로 사용하게 된다. 이 접근법은 WMT Romanian-English benchmark에서 강력한 back-translation MT baseline을 1.1 BLEU score만큼 앞지른다.


2. Model

BART는 임의로 변형된 문서를 원래대로 되돌리는 denoising autoencoder이다. 구현은 corrupted text에 대한 bidirectional encoder와 left-to-right autoregresisve decoder로 구성된 seq-to-seq 모델로 이루어졌다. 사전학습을 위해서는 원본 문서에 대한 NLL loss를 사용하였다.

2.1 Architecture

표준 seq-to-seq Transformer을 기반으로 하되 OpenAI GPT처럼 ReLU를 GeLU($\mathcal{N}(0, 0.02)$)로 바꿔 사용하였다. base 모델은 6 layer encoder, large 모델은 12개를 사용하였다.

구조는 BERT와 비슷하지만, 차이점은

  1. decoder의 각 layer는 encoder의 final hidden layer와 cross-attention을 수행한다.
  2. BERT는 word-prediction을 위해 추가적인 feedforward net을 사용하지만 BART는 그렇지 않다.

전체적으로 BART는 BERT보다 10% 정도 더 많은 pamameter를 갖는다.

2.2 Pre-training BART

Corrupted document를 원복하는 방식으로 사전학습을 진행하는데 reconstruction loss는 decoder의 출력과 원본 문서 간 cross-entropy를 쓴다.

사전학습에 사용한 방법은 다음 5가지이다.

  1. Token Masking: BERT의 것과 같다.
  2. Token Deletion: token을 [MASK] token으로 바꾸는 대신 아예 없애버리는 것으로 모델은 사라진 위치를 찾아야 한다.
  3. Text Infilling: 그 길이가 $\lambda=3$ poisson 분포를 따르는 여러 개의 text spans를 뽑는다. 각 span은 하나의 [MASK]으로 대체된다. SpanBERT에서 제안된 방식이지만, 다른 점은 SpanBERT에서는 다른 분포에서 샘플링을 하며 정확히 같은 길이의 [MASK] token으로 대체한다. Text infilling은 모델이 span에서 얼마나 많은 token이 사라졌는지 예측해야 한다.
  4. Sentence Permutation: 문서를 여러 부분으로 나누어 임의로 섞는다. 모델은 원래 순서를 맞춰야 한다.
  5. Document Rotation: 특정 지점을 잘라서 문서를 그 지점부터 시작하도록 변형한다. 모델은 원래 시작점을 찾아야 한다.

3. Fine-tuning BART

BART가 생성한 representation은 downstream applications에서 여러 방식으로 사용될 수 있다.

3.1 Sequence Classification Tasks

같은 입력이 encoder와 decoder 모두에 주어지고, final decoder token의 final hidden state는 새로운 multi-class linear classifier에 입력으로 주어진다. 이는 BERT의 CLS token과 연관되어 있지만 BART에서는 이 추가적인 token을 에 추가하여 decoder에서 token의 representation이 decoder states를 처리할 수 있게 했다. (그림 3.a)

3.2 Token Classification Tasks

SQuAD의 answer endpoint classification와 같이 전체 문서를 encoder와 decoder에 주고 decoder의 top hidden state를 각 단어의 representation으로 사용하였다. 이 representation은 token을 분류하는 데 사용된다.

3.3 Sequence Generation Tasks

BART는 autoregressive decoder를 갖고 있으므로 abstractive question answering나 summarization와 같은 생성 task에 바로 적용할 수 있다. 둘 모두 정보를 입력에서 변형된 상태로 복사되며 이는 denoising pre-training objective와 긴밀한 연관이 있다. 여기서 encoder 입력은 input sequence, decoder는 출력을 autoregressive하게 생성한다.

3.4 Machine Translation

BART 모델 전체를 하나의 encoder처럼 생각해서 MT에도 적용할 수 있게 하였다. (그림 3.b)

정확히는, BART의 encoder embedding layer를 랜덤초기화된 새로운 encoder로 교체하였다. 모델은 end-to-end로 학습되며 새로운 encoder가 외국어 단어를 BART아 de-noise할 수 있는 영어 입력으로 mapping하도록 학습된다. 새로운 encoder는 원래 BART 모델와 다른 vocab을 쓸 수 있다.

source encoder는 2단계로 학습하는데 둘 모두에서 BART 모델의 출력의 cross-entropy loss를 backpropagate한다.

  1. BART를 freeze하고 새로운 encoder, BART positional embeddings, BART encoder의 첫 layer의 self-attention input projection matrix만 update한다.
  2. 이후 반복횟수를 조금만 하여 전체를 update한다.

4. Comparing Pre-training Objectives

목적함수 비교, 데이터셋 및 Task 설명이다.

4.1 Comparison Objectives

여러 pre-training objectives를 최대한 동일하고 공정한 환경에 놓고 비교를 진행했다고 한다.

비교대상: Language Model, Permuted Language Model, Masked Language Model, Multitask Masked Language Model, Masked Seq-to-Seq

4.2 Tasks

  • SQuAD: Wikipedia paragraphs을 사용하는 extractive question answering task이다. 정답은 주어진 document context에서 추출된 text spans이다.
  • MNLI: 한 문장이 다른 문장을 수반하는지 아닌지를 판단하는 bitext classifitation task
  • ELI5: long-form abstractive question answering dataset
  • XSum: 매우 추상적인 요약문을 포함하는 news summarization dataset
  • ConvAI2: context와 persona 조건을 갖는 dialogue response generation task
  • CNN/DM: news summarization dataset로 요약은 보통 source sentence와 깊은 연관이 있다.

4.3 Results

task에 따라 편차가 있지만, 전체적으로 봤을 때 BART + text infilling(혹은 여기에 Sentence shuffling까지) 방식이 좋다는 것을 확인하였다.


5. Large-scale Pre-training Experiments

최근 연구들을 보면 모델 크기가 클수록 성능이 좋아진다. BART도 비교 실험을 진행하였고, RoBERTa와 같은 크기로 맞추어 실험하였다.

5.1 Experimental Setup

  • 12 layer encoder/decoder
  • hidden size 1024
  • RoBERTa와 비슷하게 batch size는 8000, 반복수는 50만
  • Documents는 GPT-2와 같이 same byte-pair encoding 사용
  • text infilling과 sentence permutation을 사전학습 scheme으로 사용
  • 학습단계에서 10%를 dropout
  • 학습 데이터로 160GB 분량의 news, books, stories, web text 사용

5.2 Discriminative Tasks

표 2는 BART의 성능을 SQuAD, GLUE task에서 다른 모델과 비교한 결과이다. 전반적으로 RoBERTa와 비슷하다.

5.3 Generation Tasks

생성 task에서도 비교 실험을 진행하였다.

Summarization

  • CNN / DailyMail의 요약은 source sentences들과 비슷한 경향이 있다. Extractive 모델은 특히 이를 잘 다루지만 BART가 더 우세하다.
  • 이에 반해 XSum은 매우 추상적이며 extractive 모델은 여기서 힘을 쓰지 못한다. BART는 점수 수치상 매우 크게 앞선다.

Dialogue

모델은 이전 context와 텍스트로 명시된 persona에 기반해서 응답을 생성해야 하는 task이다.

Abstractive QA

장문의 자유형식 응답 문장을 생성하는 task에서도 기존 모델과 비교한 결과인데 3가지 metric 모두에서 앞서는 결과를 보여준다. 그러나 데이터셋 자체는 challenging한데 answers는 질문에 의해 weakly specified하기 때문이라 한다.

5.4 Translation


6. Qualitative Analysis

표 7에서 BART의 결과를 볼 수 있다.

  • WikiNews 기사에서 가져온 예시들로 모델의 학습 데이터에 있을 가능성을 제거한 상태이다.
  • 첫 문장은 대체로 기사를 요약하는 내용이므로 이를 빼고 진행하였다.
  • 모델의 출력은 꽤 유창하고 문법적으로 별 문제가 없다. 그러나 상당히 추상적이며 일부 구절은 그대로 가져온 부분이 있다.
  • 조금 부족하기는 하나 BART의 사전학습 방식이 자연어 이해와 생성을 꽤 잘 한다는 결과라 볼 수 있다고 저자들은 주장하고 있다.

  • Transformer, ELMo, OpenAI GPT, BERT
  • UniLM은 BERT를 mask의 ensemble로 fine-tune한 것으로 일부는 오직 왼쪽방향 context만 허용되었다. BART와 같이, UniLM은 generative task와 discriminative task 모두에 사용될 수 있다. 차이점은 UniLM의 예측은 조건부 독립이지만 BART는 autoregressive하게 진행된다.
  • MASS는 아마도 BART와 가장 비슷한 모델이다. 연속된 span of token이 maked되고 이를 추론하는 사전학습 방식으로 진행되지만 token들이 전혀 겹치지 않게 encoder와 decoder에 들어가 discriminative task에 약하다.
  • XL-Net은 순서가 섞인 masked token을 auto-regressive하게 예측하는 방식으로 BERT를 확장했다. 이는 왼쪽과 오른쪽 context를 모두 고려할 수 있게 한다. 이에 반해 BART의 decoder는 왼쪽에서 오른쪽 방향만 사전학습 단계에서 고려한다.

8. Conclusions

Corrupted documents를 원래대로 복원하는 사전학습 방식을 가진 BART를 제안하였다. Discriminative task에서 RoBERTa와 비슷한 성능을 보이면서도 text generation task에서는 SOTA를 달성하였다. 추후 연구에서는 또 새로운 사전학습 방식을 탐구할 예정이라 한다.


Comment  Read more