AI 공부 기록 블로그

[논문 리뷰] VATT: Transformers for Multimodal Self-Supervised Learning from Raw Video, Audio and Text 본문

논문 리뷰

[논문 리뷰] VATT: Transformers for Multimodal Self-Supervised Learning from Raw Video, Audio and Text

dhgudxor 2022. 5. 6. 17:22

 

 

논문은 2021년 NeurIPS에서 발표된 논문이며, multi-modal data(비디오-오디오-텍스트)를 Transformers 모델을 이용해 각 representation 벡터를 추출하고 self-supervised learning 방법인 contrastive learning을 통해 여러 다운스트림 태스크에서 좋은 성능을 보인 논문입니다. 

 

  본 논문에 대한 리뷰는 제가 이해한 내용을 바탕으로 작성하였습니다. 오역이나 잘못된 내용이 있으면 지적해주시면 감사하겠습니다 :) 


1. Introduction

  주변에서 흔히 볼 수 있는 visual 데이터의 경우 대부분 라벨이 부여되지 않고, 구조화되어있지 않습니다. 모델 학습을 위해 라벨링이 된 이미지나 비디오 데이터를 수집하는 것은 비용적 측면과 시간적 측면에서 매우 비효율적입니다. 이러한 특징은 Transformers 모델을 이용한 대규모의 데이터 학습을 어렵게 만듭니다. 이에 대해 저자는 디지털 세계에서 널리 이용되는 visual 데이터의 동일한 시간대에 나타나는 cross-modality (audio와 text) 정보를 supervision으로 사용하여 modality에 대한 self-supervised learning 방법을 제안합니다. 이는 modality의 representation vector를 잘 표현할 수 있을 뿐만 아니라, pre-trained 과정을 통해 Transformers 모델의 사전 지식을 학습하는 데 활용할 수 있습니다. 또한 저자가 제안한 model-agnostic 방법과 drop token 방법은 multi-modal 학습의 연산량을 줄일 수 있으며 여러 down stram 태스크에서 SOTA의 성능을 보여주었습니다. 

2. Approach

<그림 1> 전체적인 모델 구조

  먼저 VATT 모델의 전체적인 구조는 위의 그림과 같습니다. RGB frame의 Video, Audio, one-hot word 벡터 형태인 Text 데이터가 각각 토큰화, Position Embedding을 통해 트랜스포머 인코더의 입력으로 들어가게 됩니다. 이후 각 modality 마다의 출력 결과인 Projection head를 쌍으로 contrastive learning 수행하여 각 modality의 representaiton을 업데이트해 주게 됩니다. 이에 대한 세부 과정을 자세히 살펴보도록 하겠습니다. 

2-1) Tokenization & Positional Encoding

  먼저 주어진 video, audio, text 데이터들이 트랜스포머 인코더에 입력으로 들어가기 위해 시퀀스에 해당하는 입력값마다 토큰화 과정을 거쳐야 합니다. Temporal-Height-Width로 이루어진 video clip 데이터의 경우의 각 패치 단위로 나누어 주고 (t,h,w,3) learnable weight $\textbf{W}_{vp}\in\mathbb{R}^{t\cdot h\cdot w\cdot 3\times d}$를 곱해주어 video modality가 d차원이 되도록 linear mapping을 수행시켜 줍니다. 또한 $T'$ 길이로 이루어진 audio waveform 데이터의 경우에도 ($t'$, 1)의 패치단위로 나누어주고 learnable weight $\textbf{W}_{ap}\in\mathbb{R}^{t^{'}\times d}$를 곱해 d 차원이 되도록 만들어 줍니다. 마찬가지로 One-Hot 벡터로 이루어진 텍스트 데이터($v$, 1)의 경우에도 learnable weight $\textbf{W}_{tp}\in\mathbb{R}^{v\times d}$를 곱해 d차원이 되도록 만들어 줍니다. 이때 트랜스포머 모델 같은 경우 Multi-head attention, N개의 layer 수 등으로 매우 많은 연산량이 요구됩니다. 이를 줄이기 위해 모델 입력에 들어가기 직전 Video와 Audio inputs에 DropToken을 사용합니다. 여기서 Video와 Audio 데이터의 경우 Text에 비해 입력 데이터들이 연속적으로 이루어져 높은 중복성을 갖기 때문에 두 입력에 대해서만 droptoken을 사용합니다. 저자의 실험에서는 랜덤하게 50%의 토큰들을 drop 하였을 때 모델의 정확도와 연산량 간에 좋은 trade-off 관계가 나타났다고 합니다. 

2-2) Transformer Encoder

  모든 modality에 대해 토큰화가 완료되게 되면 각 modality에 위치 정보를 알려주는 positional encoding을 함께 더해 트랜스포머 인코더의 입력으로 들어가게 됩니다. 이를 수식으로 표현하면 아래와 같습니다.

 

  이때 $x_{AGG}$ 의 경우 입력 시퀀스 전체에 대한 정보들을 합쳐주는 special aggregation token으로 BERT 모델의 <CLS> 토큰과 같은 역할을 하게 됩니다. $x_{AGG}$ 토큰을 통해 modality들 간에 common space로 맵핑시켜주거나, downstream 태스크에서 분류 문제를 해결하기 위해 사용될 수 있습니다. 

  저자가 논문에 사용한 트랜스포머 모델의 경우 GPT2에서 제안한 방법처럼 layer-normalization을 먼저 수행하고, Multi-Head Attention과 MLP 레이어를 통과하도록 설계하였습니다. 이때 각 modality마다 트랜스포머 모델을 적용하는 Modality-Specific 방법과 modality 들에 대해 하나의 트랜스포머 모델을 적용하는 Modality-Agnostic 방법을 사용할 수 있습니다. 전자의 방법을 사용했을 때 모델의 성능이 더 좋았지만, 각 modality 들에 통합된 하나의 트랜스포머 모델을 적용한 후자의 방법도 연산량을 줄이며 좋은 성능을 보였습니다. 

 

<그림 2> Transformes Encoder

2-3) Common Space Projection

  modality마다 트랜스포머를 통과해 결과가 출력되면 (video - audio), (video - text)를 self-supervised learning을 수행하기 위해 공통의 공간(common space)으로 맵핑시켜주어야 합니다. 먼저 (video - audio)를 학습하기 위해 각각의 출력$z_{out}$을 linear projection($g_{v->va}$, $g_{a->va}$)을 통해 512차원으로 만들어 줍니다. (video - text)를 학습하기 위해 256차원으로 맞추어 주는데, 아래 그림과 같이 video의 modality의 경우 직전에 linear projection 수행한 결과$g_{v->vt}$를 한번 더 projection 시켜서 text modality$g_{t->vt}$와 같은 차원에서 학습이 가능하도록 만들어 줍니다.

 

<그림 3> Common space mapping

2-4) Multimodal Contrastive Learning

  이제 (video - audio), (video - text) 쌍을 학습하기 위해 Contrastive Learning을 수행하게 됩니다. Contrastive Learning의 경우 self-supervised 방법으로 기존의 pretext task(e.g patch location prediction, image rotation prediction, solving jigsaw puzzles 등)에 발전되어 나온 학습 방법입니다. 중심이 되는 anchor 데이터를 기준으로 positive와 negative 샘플을 추출해 positive 샘플은 anchor와 가깝게 학습을 수행하고 negative 샘플은 anchor와 멀어지게 학습하는 일종의 metric learning 방법입니다.

  VATT에서 positive pairs는 video의 동시간대 스트림 되는 modality(audio, text)가 가 되며, 다른 시간대에 스트림 된 modality는 negative pairs가 됩니다. 수식으로는 아래와 같이 표현됩니다.

  먼저 두 modality pair 간에 cosine similarity를 계산을 수행하게 되는데, 중심이 되는 modality와 positive pairs로 샘플링된 modality의 벡터가 같은 방향을 향하고 있으면 cosine similarity 값이 1이 나타납니다. 반대로 negative pairs로 샘플링된 modality의 벡터는 중심 벡터와 서로 다른 방향을 향하고 있어 cosine similarity 값이 0에 가깝게 나타납니다. 주어진 NCE loss가 최소화되기 위해선 positive pairs의 분자와 positive + negative pairs가 더해진 분모의 크기가 같아져야 합니다. 이에 따라 모델은 positive pairs 벡터들은 유사해지도록 학습하고, negative pairs 벡터들은 유사하지 않도록 학습을 수행하게 됩니다. 하이퍼파리미터 $\tau$의 경우 cosine similarity를 통해 계산된 값들이 exp() 함수로 인해 한쪽으로 치우쳐지지 않도록 scaling 해주는 역할을 합니다.

  Multiple Instance Learning NCE loss(MIL-NCE)의 경우 텍스트 데이터가 비디오에 비해 연속적이지가 않은 특징이 있습니다. 이에 따라 video clip으로부터 가장 가까운 text clips 5개를 샘플링하여 positive pair로 가정하고 같은 방법으로 NCE loss를 계산하게 됩니다. 

 

<참고>&nbsp;cosine similarity

3. Experiments

  VATT 모델을 학습하기 위해 HowTo100M 데이터 셋으로부터 136M 크기의 video-audio-text 데이터를 사용하였으며, 유튜브의 비디오를 10초 클립 단위로 자른 AudioSet 데이터 셋으로부터 text를 제외한 2백만개의 video-audio 데이터를 사용하였다고 합니다. 추가로 트랜스포머의 모델을 medium-base-small로 model specific 하게 설정하고 배치 사이즈를 2048로 하였을 때, 256개의 TPU(v3)에서 3일 정도의 학습 시간이 걸렸다고 합니다. 저자는 다양한 태스크에 대해서 실험을 진행하였는데, 이에 대해 주요 몇 가지만 살펴보도록 하겠습니다.

  먼저 pre-trained된 VATT 모델을 video action recognition 태스크에 맞게 fine-tuning을 진행하고 기존의 모델들과 성능을 비교해보았습니다. 아래 표를 보시면 model specific 방법 중 VATT-Large 모델을 적용하였을 때 SOTA의 성능을 보여주고 있습니다. 맨 아래 model agnositc 방법의 경우에도 VATT-Base와 비슷한 성능을 보여 단순히 하나의 트랜스포머 모델만을 사용해도 좋은 성능을 나타낼 수 있음을 암시하고 있습니다. 

 

<표 1> Fine-tunning 결과

 

  다음으로 modality 들을 t-SNE를 통해 2차원 평면에 시각화한 결과입니다. 첫 번째와 세 번째 그림인 model-specific과 model-agnositc의 경우 트랜스포머 모델의 입력으로 들어가기 직전 modality들은 뚜렷이 구분된 것을 알 수 있습니다. 반면 트랜스포머 모델을 통과한 후 시각화 결과를 보았을 때, modality들간에 비교적 잘 어우러져있는 것을 알 수 있습니다. 이를 통해 VATT 모델이 서로 다른 modality들의 정보들을 잘 표현되도록 학습한다는 것을 알 수 있습니다.

 

<그림 4> Feature visualization

  마지막으로 데이터의 저해상도와 고해상도 환경에서 DropToken을 사용했을 때 정확도와 연산량을 비교한 결과입니다. DropToken을 사용하지 않고 고해상도의 이미지를 학습했을 때 모델의 성능은 좋아지는 것을 알 수 있습니다. 하지만 이때 고해상도 이미지에서 DropToken을 50%를 사용했을 때 저해상도에서 DropToken을 사용하지 않았을 때보다 좋은 성능을 보이고 있습니다. 이를 통해 고해상도 이미지에서 DropToken의 사용은 연산량은 줄이고 어느 정도의 성능은 보장할 수 있음을 알 수 있습니다. 

<표 2> DropTken 사용 결과

4. Conclusion

  논문의 내용을 간략히 정리하자면 video-audio-text의 modality 들의 representaions를 잘 표현하기 위해 self-supervised learning을 사용하였으며, 그중 contrastive learning 방법을 사용했습니다. 특히 저자가 제안한 audio와 video 입력에 대해 DropToken의 경우 연산량을 줄이며 좋은 성능을 보임을 알 수 있었습니다. 하지만 개인적인 의견으론 DropToken을 사용하더라도 여전히 테라바이트의 연산량이 요구되기에 개인이 실제로 사용이 가능할지 의문이 들었습니다.

Comments