Machine learning & Deep learning

[Deep learning] Multi-Modal learning Part2

ysk1m 2025. 2. 28. 18:54

part 1에서는 image-text 관련 모델을 중점적으로 보았다면 이번 part에서는 video-text와 관련된 모델을 살펴보겠습니다.

이번 글도 이준석 교수님 강의를 요약해 보았습니다.

Video BERT

VL-BERT와 비슷한 구조로 영상의 ASR(text) 데이터와 1.5초 간격으로 샘플링된 프레임을 입력으로 넣어줍니다.

text가 아닌 뒷부분 데이터(영상)에 대해서 어떻게 학습할지 고민해야 됩니다.

VL-Bert는 image를 object detection을 하여 하나하나 넣어줬습니다. 동영상의 경우 모든 프레임에 대해 object detection을 하기는 힘든데요.

 

그것을 해결하기 위해 Video tokenization을 합니다.

 

이는 프레임을 정확히 labeling 하는 것이 아닌 frame별로 cluster 하여 어떤 cluster에 속하는지 판단하는 정도의 작업입니다.

이 모델은 3가지 Task를 통해 학습할 수 있습니다.

 

첫 번째로 Linguistic-visual alignment task입니다.

Linguistic-visual alignment task은 앞의 [CLS] 토큰으로 영상과 ARS text가 align 되는지 판단하는 것입니다.

 

두 번째는 BERT에서와 동일한 MLM입니다.

 

세 번째는 Masked frame modeling으로 MLM과 비슷하며 단지 영상 프레임에 적용한 것입니다.

 

하지만 이 방법은 clustering을 해야 하기 때문에 end-to-end learning을 못하게 만듭니다.

Contrastive Bidirectional Transformer(CBT)

 

CBT모델은 text와 video에 대해 각각 학습하는 unimodal BERT입니다.

text(ASR)의 경우는 BERT를 이용하여 1차로 학습하고 Video frame은 CBT를 이용하여 1차로 학습하여 둘이 concat을 합니다.

이후 CBT에서 다시 한번 학습합니다.

 

CBT는 NCE(Noise Contrastive Estimator)를 이용한 모델입니다.

 

첫 번째 CBT는 동일한 비디오에서 나오는 frame은 similar(1) 가깝게 해 주고 다른 비디오에서 나온 frame은 dissimilar(0) 멀게 합니다.

 

두 번째 CBT는 위의 ASR(text)와 비디오 frame이 positive pair인지 negative pair인지 판단하는 것입니다.

 

다음은 audio와 관련된 multimodal task에 대해 알아보겠습니다.

 

audio는 x축이 time y축이 주파수 형태인 spetogram 데이터를 이용합니다.

audio에 대한 연구는 엄청 활발히 일어나지 않고 있는 것 같습니다..

 

그럼 audio에 transformer를 적용한 모델에 대해 알아보겠습니다.

Audio Transformer(AST)

VIT처럼 음성신호(spectogram)를 패치별로 나눠서 transformer에 입력해 주는 구조입니다.

음성신호의 경우 이미지와 다르게 대규모의 데이터셋이 부족합니다.

따라서, ImageNet-pretrained ViT로 weight을 초기화하여 사용했고 이는 꽤 좋은 효과가 있었습니다.

VATT

이 모델은 Visual+Audio+Text modality 모두 학습하는 것입니다.

여기서도 동일하게 NCE를 이용하여 contrastive learning을 합니다.

loss function의 구조를 살펴보며 모델에 대해 더 자세하게 이해해 보겠습니다.

 

첫 번째 NCE는 Video와 Audio가 같이 학습되는 것을 알 수 있습니다.

두 데이터는 동시에 일어날 가능성이 높기 때문에 pair로 삼아 학습할 수 있습니다.

 

반면 text에 대한 정보는 그 정보 자체만으로도 이미 suquential 한 특성을 가지고 있고 video 또는 audio와 정확하게 pair를 이룰 수 없어 따로 학습을 해야 합니다. 

 

두 번째 식인 MIL_NCE를 보면 text에 대해 transform 한 후 합하는 것을 알 수 있습니다.

NCE:

$$ \mathrm{NCE}(z_{v,va}, z_{a,va}) = -\,\log \biggl( \frac{\exp\Bigl(\frac{z_{v,va}^{\top}\,z_{a,va}}{\tau}\Bigr)} {\exp\Bigl(\frac{z_{v,va}^{\top}\,z_{a,va}}{\tau}\Bigr) \;+\; \sum_{z_{0}\in N} \exp\Bigl(\tfrac{z_{v,va}^{\top}\,z_{0,a,va}}{\tau}\Bigr)} \biggr). $$

MIL-NCE:

$$ \mathrm{MIL\text{-}NCE}(z_{v,vt}, \{z_{t,vt}\}) = -\,\log \biggl( \frac{\displaystyle \sum_{z_{t},v_{t}\,\in\,P} \exp\Bigl(\tfrac{z_{v,vt}^{\top}\,z_{t,vt}}{\tau}\Bigr)} {\displaystyle \sum_{z_{t},v_{t}\,\in\,P} \exp\Bigl(\tfrac{z_{v,vt}^{\top}\,z_{t,vt}}{\tau}\Bigr) \;+\; \sum_{z_{0}\in N} \exp\Bigl(\tfrac{z_{v,vt}^{\top}\,z_{0,t,vt}}{\tau}\Bigr)} \biggr). $$

 

이렇게 많은 multimodal model에 대해 알아봤지만 사실 CLIP이라는 모델로 모든 것이 종결됐다고 합니다.

대부분 CLIP이라는 모델을 사용한다고..

그럼 CLIP에 대해 알아보겠습니다.

CLIP(Multimodal Metric learning)

간단하게 말해보면 CLIP은 정말 간단한 아이디어(우리가 지금까지 배웠던)를 대규모 데이터셋에 대해 학습시킨 것입니다.

image와 text를 쌍으로 입력하여 contrastive learning을 시키는 것입니다. 

 

서로 외적을 할 때 대각성분에 대해서는 positive pair이기 때문에 점점 1(similar)로 가까워지고 나머지 부분에 대해서는 negative pair이기 때문에 점점 0(dissimilar)으로 가까워집니다.