요즘 멀티모달에 빠져있다. 간단하게 블로그에도 개괄적인 멀티모달러닝에 관해 정리하면 좋을 것 같아서 포스팅을 하려고 한다. 😉 아마 text-to-image 같은 stable diffusion을 이용한 분야가 요즘 너무 핫해서, 다들 한번 쯤은 들어봤을 분야이지 않나 싶다.
이 게시글에서는 아주 아주 직관적이고 기초적인 부분만 다룬다.
# Multimodal learning의 목적?
멀티모달 (Multimodal)은 기본적으로 여러개의 데이터 형태 (소리, 이미지, 비디오, 음성) 등을 의미한다. 우리가 살고있는 세상은 생각해보면 여러개의 modality로 이루어져 있고, 당연히 uni-modal input으로 만든 모델보다 multimodal 모델이 강력한 파워를 가질 수밖에 없다. 이들을 통합해서 딥러닝 모델의 input으로 넣고 한번에 처리하려면 어떻게 해야할까?
# Multimodal Representation
위 motivation을 미루어 봤을 때, 기본적으로 멀티모달 모델은 이렇게 하나의 space에 여러개의 modality data를 align 시키는 것을 목적으로 한다. 그래야 이들의 knowledge를 결합해 inference를 할 수 있을 것이기 때문이다.
하지만 서로 다른 modality의 데이터를 합치려고 하니, 이들의 feature space가 아래처럼 매우 상이한 문제가 발생한다. 이는 Heterogeneity gap이라고 부르는 아주 유명한 문제이다.
따라서 우리는 위와 같은 heterogeneity gap을 줄이면서, 서로 다른 modality를 같은 공간에 동시에 매핑하고 싶다.
그래서 아래 방법들은 이러한 gap을 어떻게 줄이면서 어떻게 "잘" 공통된 space에 매핑할지에 대한 고민이다.
# Joint representation
그렇다면 어떻게 이들을 통합할것인가? 보통 직관적인 방법으로는 각 modality에서 feature vector를 뽑고 이들을 concat하는 방법을 고안할 수 있을 것이다. 아래와 같이 말이다.
예를들어서 아래와 같은 모델 구조가 있을 수 있다. 아래 처럼 각 모달리티 데이터를 처리하고, merge하는 과정이 포함되어 있는 아키텍처이다. 아주 단순하다.
아래의 예시는 비디오와 오디오의 information에 대한 feature를 추출하고, 이를 merging network를 이용해 합치는 구조인데, 역시 위와 비슷한 아키텍처임을 알 수 있다.
특히 단순한 concat을 넘어 두 modality를 결합하는 방법 중에 흔히 쓰이는건 아래와 같은 외적 (outer product)이다. 이러한 계산은 두 modality $x$와 $q$에 대한 각각의 요소별 연산이 가능하지만, 역시 computation 적으로 비효율적이다. 계산 시간도 계산량이 비례한다.
이를 해결하기 위한 방법으로는 Count Sketch projection을 이용한 방법들이 있다. 외적에 count sketch 함수를 취해서 계산량을 줄이는 방법이다. 더 궁금하신 분은 MCB pooling 논문을 참고하시길
위 concat 기반의 joint representation 방법들은 modality의 융합이 편리하다는 장점이 있지만, 같은 space 내에 매핑했음에도 분리된 representation을 얻을 수 있다는 단점이 있다.
# Coordinated Representation
위 joint representation 방법에서 나아가서, 쌍을 이루는 modality의 similarity는 크도록, 아니면 작도록 하는 cross-modal ranking 방법으로 representation을 표현할 수도 있다.
하지만 위 과정들은 거의 multimodal dataset의 label을 필요로한다. 하지만 비디오나 오디오를 라벨링 하는 것은 매우 어려우므로, 우리는 label의 영향력을 줄이는 self-supervised learning으로도 multimodal feature space를 표현할 수 있다. 아래는 이 과정에서 transformer를 사용한 VATT (Transformers for multimodal self-supervised learning for raw video, audio and text, 2021) paper의 아키텍처이다.
위 과정에서 우리는 transformer에서 추출된 video, audio, text feature들을 multimodal projection head에서 contrastive learning으로 학습시킨다. 연관이 있는 modality 끼리는 positive sample로 간주하고 가까이 있도록 하고, 그렇지 않으면 멀어지게 하는 기법이다. loss는 NCE-loss를 사용한다고 한다.
다음에는 디퓨전 관련 포스팅으로 돌아오겠다!
# References
'Computer Vision💖 > Vision + Language' 카테고리의 다른 글
[VQA] Zero-shot VQA + Domain Adaptation VQA 분야 개괄 (0) | 2023.08.01 |
---|---|
[XAI] Generating Visual Explanations(2016) - 이미지 분류에 대한 설명을 생성하는 알고리즘 (0) | 2021.08.15 |
[XAI] OpenAI CLIP 논문 리뷰[3] - Domain Generalization (2) | 2021.07.19 |
[XAI] OpenAI CLIP 논문 리뷰[2] - Zero shot & Representation learning (0) | 2021.07.17 |
[XAI] OpenAI CLIP 논문 리뷰[1] - 전반적인 아키텍처 (1) | 2021.07.15 |