ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ConvBERT:Improving BERT with Span-based Dynamic Convolution
    논문_리뷰 2021. 1. 18. 00:00
    ConvBERT:Improving BERT with Span-based Dynamic Convolution
    Zihang Jiang , Weihao Yu , Daquan Zhou , Yunpeng Chen , Jiashi Feng , Shuicheng Yan

    위 논문은 NeurIPS 2020에서 발표된 논문입니다.

    Abstract

    • BERT와 같은 사전 학습된 언어 모델들은 NLU Tasks에서 우수한 성능을 보였다.
    • BERT는 모든 Self-Attention Heads에서 Global 관점에서 전체 입력에 대해 질의함. but, 몇몇의 Self-Attention Head에서는 학습을 위해 Local Dependency만 필요함. 이는 계산 비용 낭비를 가져옴.
    • 저자들이 제안하는 Convolution Heads와 BERT에서 사용된 Self-Attention Head를 융합한 새로운 Attention Head를 제안함. 이는 Local & Global Context를 모두 효과적으로 학습할 수 있다.

    • 실험 결과 ConvBERT는 기존의 BERT와 ELECTRA 모델보다 성능과 비용면에서 이점을 보여줌.

     

    Introduction

    • BERT와 같이 Comprehensive Representations을 학습하기 위해 Multi-head Self-Attention에 지나치게 의존하는 구조는 계산 비용면에서 낭비가 있다.
      • BERT의 Self-Attention Heads는 non-local operator이지만, 자연어의 고유한 특성상 Local Dependency를 학습해야함.
      • 저자들의 실험 결과 BERT를 Downstream Task를 위한 Fine-Tuning하는 과정에서 Self Attention head 몇 개를 지워도 성능 저하가 일어나지 않았다고 함.

    • 아이디어 : Local Operation으로 Attention Head 몇 개를 대체한다면 낭비를 자연적으로 줄일 수 있지 않을까? & Convolution이 Local Feature Extraction에서 우수한 면을 보이므로 Local Operator로 잘 동작하지 않을까?

    • 방법 : Convolution을 Self-Attention에 통합한 Mixed Attention Mechanism을 제안

    • 아래 그림의 (a)를 보면 Self-Attention은 모든 토큰을 가지고 Global Dependency를 계산하지만, 저자는 현재 토큰의 local span을 가지고 Local Dependency를 포착하고자 함

    • 이를 위해 모든 토큰에 대해 동일한 파라미터를 공유하는 standard convolution을 사용하는 것보다 Dynamic Convolution을 사용하는 것이 토큰 사이의 local dependency를 보다 유연하게 포착할 수 있음.

    • 하지만 Dynamic Convolution은 서로 다른 컨텍스트에 위치한 같은 토큰을 구분하지 못하고 동일한 Kernel을 만들어낸다는 문제가 있다. 예를 들어, 그림(b)에서 can에 해당하는 커널은 모두 동일하다.

    • 이를 해결하기 위해 하나의 토큰을 가지고 커널을 만들지 않고 Span을 사용하여 보다 adaptive convolution kernel을 만들 수 있는 Span-based dynamic convolution을 제안하였다. 그림(c)를 보면 3 개의 can을 통해 만들어진 Kernel이 모두 다른 것을 볼 수 있다.

    • 이렇게 만들어진 Span-based dynamic convolution을 사용하여 global information과 local information 모두 더 잘 capture할 수 있는 Convolutional Self-attention (Mixed Attention)을 만들었다.

    Convolution을 통해 Attention Weights를 얻는 것이 아니라 Kernel를 생성한다.

    • Convolutional Self-Attention으로 만들어진 ConvBERT를 통해 더 적은 비용과 파라미터로 GLUE 벤치마크에서 $BERT_{base}$보다 5.5 높고, $ELECTRA_{base}$보다 0.7 높은 점수를 달성하였다고 한다.

     

    Method

    • Light-weight and dynamic convolution
      • Light-weight convolution : Largely reduces the parameter size ( embedding size k --> d )
      • dynamic convolution : 현재 입력 토큰에 대한 가중치가 부여된 convolution kernel 생성 가능 & 인근 토큰과 convolve하여 새로운 representation embedding 생성하는데 적용 가능
      • dynamic convolution을 통해 생성된 convolution kernel은 입력으로 들어온 하나의 토큰에만 의존하며 local context를 무시하는 문제가 있다. ex) 문맥 상관없이 동일한 토큰은 동일한 kernel을 갖는다.
    • Span-based dynamic convolution
      1. 토큰의 span 범위의 정보를 수집하기 위해 depth-wise separable convolution(아래 그림(c)의 파란색 부분)을 사용하고, dynamic하게 convolution kernel을 생성한다. --> help the kernel capture local dependency more effectively by generating local relation of the input
      2. query $Q$와 span-aware key $K_s$를 point-wise multiplication한 다음 이를 dynamic convolution kernel 생성에 활용
      3. $SDConv(Q,K_s,V;W_f,i) = LConv(V,softmax(W_f(Q \odot K_s)),i)$

    • Mixed Attention
      • Mixed Attention block은 span-based dynamic convolution과 self-attention을 통한 것이다.
      • 두 attention head는 동일한 query와 서로 다른 key를 사용하여 각각 attention map과 convolution kernel을 만듭니다.
      • 수식은 다음과 같습니다. $Mixed-Attn(K,Q,K_s,V;W_f) = Cat(Self-Attn(Q,K,V), SDConv(Q,K_s,V;W_f))$
      • 여기서 사용된 self-attention과 기존 self-attention의 차이는 Key, Query, Value에서 사용된 Linear Layer가 Input Dimention보다 Output Dimention이 작은 Bottleneck으로 디자인되어 있다는 점입니다.
      • $Out_{dim}$ = $\frac{d}{\gamma}$ // $d$ = embedding dimension & $\gamma$ = reduce ratio, 이 과정을 통해 attention head의 수를 줄이고 계산 비용을 줄이는 효과를 얻을 수 있다고 합니다.

    • Grouped feed-forward module
      • transformer model의 굉장히 많은 수의 파라미터는 feed-forward module에서 온다.
      • representation power을 유지하면서 파라미터 수와 계산 비용을 줄이기 위해 Grouped Linear(GL) operator를 제안하였다.
      • $H, H^\prime \in \mathbb{R}^{nxd}, M,M^\prime \in \mathbb{R}^{nxm}, f_{d_1 \rightarrow d_2}$은 $d_1$차원을 받아 $d_2$차원을 출력하는 fully connected layer, $g$는 group number, $\prod$는 means concatenation을 의미합니다.

    Grouped feed-forward 수식

    댓글

Designed by Tistory.