cs [논문리뷰] LARGE-SCALE CONTRASTIVE LANGUAGE-AUDIO PRETRAINING WITHFEATURE FUSION AND KEYWORD-TO-CAPTION AUGMENTATION(CLAP)
본문 바로가기
  • 매일 한걸음씩
  • 매일 한걸음씩
개발/그 외

[논문리뷰] LARGE-SCALE CONTRASTIVE LANGUAGE-AUDIO PRETRAINING WITHFEATURE FUSION AND KEYWORD-TO-CAPTION AUGMENTATION(CLAP)

by 시몬쯔 2024. 1. 20.
728x90

오늘은 오랜만에 멀티모달모델에 대해 리뷰를 해보려고 한다.

대상논문은 CLIP의 오디오버전인 CLAP이며 CLIP이 이미지-텍스트 멀티모달 모델이라면, CLAP은 오디오-텍스트 멀티모달 모델이다. Text의 encoder를 CLIP의 Text encoder를 사용하였으며, 오디오 encoder부분이 CLIP과의 큰 차이이며 기본 로직은 CLIP과 동일하다고 볼 수 있다.

 

Abstract

현재까지 Constrastive Learning(같은 분류의 데이터는 차원축소시 더 가까이두고 다른 분류의 데이터는 더 멀리 두는 학습법)은 멀티모델 representation learning에서 큰 성과를 보여주었는데,

이 논문은 contrastive 언어-오디어 사전학습의 파이프라인을 제시해서 오디어 데이터와 NLP를  결합하여 audio representation을 발전시켰다.

 

이를 위해서 저자들은 두가지를 진행했는데,

1) 오디어-텍스트 633,526쌍의 데이터를 발표했다.

2) contrastive 언어-오디오 사전학습 모델을 만들었다. (오디어 인코더와 텍스트 인코더 활용)

3) 이 모델의 성능을 평가하기 위해 3가지 task (text-to-audio retrieval, zero-shot audio classification and supervised audio classification) 를 진행했고 우수한 성능을 보여주었다. 

 

 

Introduction

오디오 데이터는 텍스트랑 이미지처럼 흔히 쓰이는 데이터타입이지만 오디오 데이터 라벨링은 쉽지 않아 이제까지 효과적인 audio representation을 만드는게 쉽지않았다.

이에 Contrstive learning방법은 인터넷에서 모은 noisy 오디어데이터를 이용해서 학습시키는데에 효과적이였는데, 이전에 나온 text-image데이터를 활용한 CLIP모델과 같은 맥락이다.

 

CLIP은 ground truth pair만 positive sample로 두고 나머지는 negative sample로 둬서 학습했는데, 이는 zero-shot setting에서 데이터라벨링에 제한받지 않고 우수한 성능을 보여줬다. 또, CLIP은 text-to-image retrieval과 text-guided captioning과 같은 downstream task에도 우수한 성능을 보여줬다.

 

Image-text처럼 audio-text도 overlapping 정보가 있는데, 예를들어 audio 분류에서 몇몇의 text description가 audio에 매핑될 수 있고 이러한 text description은 audio representation 학습시 활용될 수 있다. 이런 방식은 간단한 audio-text pair들로 학습될 수 있어서 간편하다.

 

최근 연구들은 contrastive language-audio 사전학습 모델들을 보여주었지만, full strength를 보여주진 않았다. 근거는 다음과 같다. 1) 최근 모델들은 상대적으로 적은양의 데이터셋에서 학습되었고, 2) audio/text 인코더의 하이퍼파라미터에 충분한 연구가 없었다. 3) 모델들은 다양한 길의 오디오를 활용하려고 애썼다.(그랬는데 잘안됐나봄) 4) 대부분의 language-audio 모델연구들은 text-to-audio retrieval에만 초점을 맞추고 downstream task에서의 audio representation는 평가하지 않았다.

 

이에 본 논문에서는 3가지 측면에서 성과를 냈다.

1) 데이터셋 개선 : LAION-Audio-630K 데이터셋 발표. 633,526쌍의 audio-text pairs.
2) Model design 개선 : 2개의 audio encoder와 3개의 text encoder 활용. feature fusion 매커니즘으로 성능개선 & 다양한 길이의 input 활용가능.
3) Experiment setting 개선 : text-to-audio retrieval task, zero-shot and supervised audio classification downstream task에서 진행.

 

1) 데이터셋 : LAION-Audio-630K

 

 (1) LAION-Audio-630K : 4,325.59시간을 들여 만든 데이터셋이며, human activities, natural sounds and audio effects으로 이루어진 데이터셋이다.

 

 (2) Training Dataset : 데이터의 크기와 타입의 데이터셋에 따라 모델성능이 어떻게 나오는지 보기위해 3가지 training set을 사용했다.

  - AudioCaps+Clotho(AC+CL) : 55K training samples

  - LAION-Audio-630K : 630K의 audio-text pairs

  - Audioset : 1.9million audio samples with only labels

 

 (3) Dataset Format and Preprocessing : 모든 오디오파일들은 mono channel로 전처리되었다.(FLAC format의 48kHz, streo음악의 경우 Left 와 Right의 음악을 평균내는 정도로 변환이 가능하다고 한다.) Tag나 label만 가지고 있는 dataset에는 label을 captions으로 늘렸다. ex) "The sound of label-1, label-2, ... and label-n"의 형태의 caption으로 단순하게 만듦.

 

2) 모델 구조

 

(1) Contrastive Language-Audio Pretraining

 

CLIP과 비슷하게 input data(audio, text)를 처리하기위해 2개의 encoder를 사용한다.

Audio embedding과 text embedding은 각각 encoder f_audio, f_text를 통해 계산된다.

MLP인코더를 통과한 후 벡터를 같은 차원(D)으로 만들기 위한 2-layer multilayer perceptron(MLP) 이며 activation function으로 ReLU를 사용했다.

모델은 audio와 text embeddings pair사이에서 contrastive learning paradigm으로 학습되는데, 아래와 같은 loss function으로 학습된다.

N은 데이터의 수를 뜻하지만 학습단계에서는 batch size를 뜻한다. (보통 batch gradient descent로 학습하기 때문에)

 

(2) Downstream Tasks in Inference Stage

학습 후에 embeddings은 다른 task에 사용될 수 있는데 task는 다음과 같다.

 

 - Text-to-Audio Retrieval : audio embedding은 M개의 text중에 가장 가까운 text embedding을 찾을 수 있다.(cosine similarity)

 - Zero-shot Audio Classifiction : M개의 audio classes에 대해 M개의 prompt text를 만들 수 있는데, 한 audio가 주어졌을때 best match인 text를 찾아낼 수 있다.(embedding과의 cosine similarity를 계산해서)

Contrastive language-audio pretraining의 한가지 장점은 audio의 카테고리가 제한되지 않는다는 것이다. 

- Supervised Audio Classification : 모델 학습후에 audio embedding은 back and finetuning의 projection layer를 추가함으로써 classification에 매핑될 수 있다.

 

(3) Audio Encoders and Text Encoders

 

논문에서는 PANN와 HTSAT를 선택하여 audio encoder를 만들었는데, PANN은 CNN-based audio classification model으로 7개의 downsampling CNN blocks와 7개의 upsampling blocks가 있다. HTSAT는 transformer-based model로 4개의 swin-transformer blocks로 이루어져있다. 

 

Text encoder로는 CLIP transformer(CLIP의 text encoder), BERT 그리고 RoBERTa로 만들었다.

 

Encoder 결과로 나온 output를 512차원으로 만들기 위해 2-layer MLP with ReLU activation을 사용하였다.

 

(4) Feature Fusion for Variable-Length Audio

 

RGB Image가 resolution으로 다양한 사이즈로 변환될 수 있는 것과는 달리, audio는 원래 다양한 길이를 가지고 있다. 일반적으로 audio encoder에 audio를 넣고 out으로 audio embedding의 평균값을 내서 사이즈를 조정하지만, 긴 audio에서는 너무 비효율적인 방법이다.

 

이 논문에서는 위의 그림과 같이 audio 전처리해서 사용했는데, 방법은 다음과 같다.

(<--이런 전처리는 처음본다..audio에선 흔한건가?)

 

d초를 기준으로,

  - d초보다 짧거나 같은 오디오에 대해서는 오디오를 반복하고 나머지 시간은 zero 값으로 채운다.

   ex) d=10초이고 오디오가 3초짜리인경우 오디오를 3번반복하고 1초는 zero로 채운다.

  - d초보다 긴 오디오에 대해서는 오디오를 d초로 downsampling한다.(저해상도처리하듯이) 이를 global feature라 하자.

   또, 음악을 앞 - 중간 - 뒤로 1/3등분씩하여 각 파트에서 랜덤하게 d초씩 가져온다. 그럼 총 3d길이의 feature가 나오는데, 이를 local feature라 하자.

 

그럼 총 global feature(d) + local feature(3d) => 4d초의 feature가 나온다. 이를 audio encoder의 첫번째 레이어에 넣어 1. initial feature를 뽑고 local feature만 다시 2D-convolution layer with 3-stride에 넣어서  2. 하나의 feature를 뽑는다. => 이 2개의 feature를 AFF에 넣어 알파값을 만든다.

 

결론적으로, global feature와 local feature를 적절히 조합(weighted sum)하여 샘플링한다고 볼 수 있다.

 


(5) Keyword-to-Caption Augmentation

 

몇몇의 dataset은 label이나 tag를 audio에 키워드로 가지고 있는데, 사전학습된 언어모델 T5를 사용해서 keyword의 위에 caption을 달아놓았고, 이 caption에 bias를 제거하는 작업도 하였다. 

ex) man, woman -> person (성별 bias 제거)

 

 

Experiments

 

저자들은 CLAP에 대해 3개의 실험을 진행했다.

1) 다른 audio, text encoder를 학습해서 best combination을 찾았다. - Model design 측면

2) 다양한 dataset size에 대해 학습했다. - Dataset 개선

3) Best 모델을 사용해서 zero-shot과 supervised audio classification 실험을 수행했다. 이를 통해 downstream task의 generalization ability를 측정할 수 있다. - Experiment setting 개선

 

 

<앞서 Introduction 에서 말한 이 논문의 성과들과 하나씩 연결된다.>

1) 데이터셋 개선 : LAION-Audio-630K 데이터셋 발표. 633,526쌍의 audio-text pairs.
2) Model design 개선 : 2개의 audio encoder와 3개의 text encoder 활용. feature fusion 매커니즘으로 성능개선 & 다양한 길이의 input 활용가능.
3) Experiment setting 개선 : text-to-audio retrieval task, zero-shot and supervised audio classification downstream task에서 진행.

 

 

1) Hyperparameters and Training Details

 

오디오 데이터로는 10초길이, 480 hop size, 1024 윈도우사이즈, 64 mel-bins를 사용해서 STFT와 mel-spectrograms을 계산했다. (<--hop, mel-bins, STFT, mel-spectrograms이라는게 뭔지 몰라서 추후 튜토리얼로 익혀 내용추가예정)

 

결과적으로 audio input은 T=1024(오디오의 길이), F=64의 크기이고 text input은 maximum token length of 77의 사이즈이다. Text input은 maximum token length를 77로 둔다.

 

2) Text-to-Audio Retrieval

 

(Audio and Text Encoders) Text-to-audio retrieval에 가장 좋은 audio와 text encoder를 고르기 위한 실험에 대해 설명하자면, 2개의 audio encoder와 3개의 text encoder를 조합했다. -> 이 인코더들은 다른 사전학습된 모델에서 빼옴.

 

위 표에서 보듯이, mAP@10 측면에서 좋은 성과를 내는 encoder를 확인할 수 있다.

(HTSAT가 audio encoder에서 우수한 성능을 보였고, text encoder에서는 RoBERTa가 BERT보다 좋은 성능을 보여줬다. RoBERTa가 overfitting이 덜되고 CLIP은 overfitting이 많이 되기 때문이라고 한다.)

 

(Dataset Scale) 위 표의 결과에 따라, 저자들은 HTSAT-RoBERTa 조합을 선택해서 실험을 했고, 결과는 다음과 같다. 

 

결과를 보면, 모델이 더 많은 데이터를 가지고 학습한다면 generalization은 더 잘되겠지만, dataset의 분포 자체를 바꿔버려서 trade-off가 있다고 한다.(특정 audio type에서만 잘됨.)

 

(Keyword-to-Caption and Feature Fusion) feature fusion 매커니즘(global feature와 local feature조합함)과 keyword-to-caption augmentation(keyword위에 캡션달고, bias제거)을 모델에 추가할 때, 둘 중 하나는 성능을 개선시키는데 결과는 다음과 같다.

 

Feature Fusion은 Clotho dataset에서 잘되는데 이 데이터가 10초보다 긴 오디오 데이터가 많기 때문이다.(10초보다 작으면 0으로 패딩해서 의미가 없기 때문)

하지만, AudioSet을 keyword-to-caption augmentation해서 학습데이터셋에 넣으면 AudioCaps에서는 잘되고 Clotho에서는 잘 안되는데, 이를 통해 두 매커니즘간에도 trade-off가 있음을 알 수 있다.

 

 

3) Zero-shot and Supervised Audio Classification

 

(Zero-shot Audio Classification) 모델의 generalization과 robustness를 연구하기 위해 저자들은 zero-shot 오디오 분류 실험도 했다. Metric으로는 top-1 accuracy를 선택했고 audio-to-text retrieval을 통해 audio를 분류했다.( audio class label로부터 "This a sound of label."  이라는 텍스트를 만들어 매칭)

 

(Supervised Audio Classification) 저자들은 또 FSD50K와 VGGSounddatasets에 audio encoder를 fine-tuning해서 supervised audio classification을 수행하는데, FSD50K 데이터셋에는 mAP을 metric으로 사용했다.

 

위 테이블에서 볼 수 있듯이, SoTA의 성능을 보여주었다. -> Keyword-to-Caption(K2C)가 더 성능을 좋게 만들었으며(text embedding space를 "enrich"하게 만들었다고 표현)Feature Fusion은 다양한 길이의 audio를 다룰 수 있게 만들었을 뿐만 아니라 이전의 모델보다 더 나은 성능을 보여주었다.

 

 

Conclusion and Future work

1) Dataset(LAION-Audio-630)

2) keyword-to-Caption augmentation

3) Feature fusion

을 통해 더 audio understanding을 잘하게 만들었고, task performance를 향상시켰으며 다양한 길이의 input data를 다룰 수 있게 했다. 

 

 

==================================================

오랜만에 딥러닝 모델 관련 논문을 읽어보았고, 또 audio data를 다루는 논문은 처음 읽어봤는데 여러 용어들이 낯설지만 추후 세미나, 튜토리얼 세션을 통해 지식은 쌓을 수 있을 것 같다.

또, 예전에 CLIP이 나왔을 때 정말 신기했는데 CLIP의 encoder를 가져다가 audio쪽에도 활용하는 게 신기하다. 잘만들어놓은 모델은 부분적으로 떼다가 많은 곳에 사용할 수 있다. 이래서 다들 generalization을 중요하게 여기나보다. 

728x90

'개발 > 그 외' 카테고리의 다른 글

[논문리뷰] TabNet : Attentive Interpretable Tabular Learning  (0) 2023.06.04

댓글