[ICLR 2023] CLIP-VIP: Adapting Pre-Trained Image-Text Model to Video-Language Alignment

이런 분들께 이 논문을 추천드립니다.

  • CLIP과 같은 이미지 사전학습 모델을 대규모 비디오 데이터셋에서 추가 사전학습 시키는 방법이 궁굼하신 분
  • Subtitle과 Caption으로 다른 성질의 text 데이터 간의 domain gap을 해결한 방식에 흥미가 있으신 분

이 논문을 깊게 이해하려면 다음 지식이 필요합니다.


안녕하세요. 백지오입니다.

열일곱 번째 X-REVIEW는 오랜만에 CLIP을 Video domain에 확장하는 연구입니다. 이 논문은 CLIP을 대규모 비디오 데이터셋에서 추가 사전학습 시킬 때 발생하는 문제를 해결하기 위한 방법인 CLIP-ViP를 제안합니다.

대규모의 이미지와 텍스트 쌍에서 사전학습을 수행한 CLIP이 많은 image task에서 좋은 성능을 보임에 따라 CLIP을 video task에서도 활용하고자 하는 연구들이 많이 수행되었고, 몇몇은 좋은 결과를 보이기도 했습니다.

그러나 이러한 모델들은 이미지에서 학습된 CLIP을 그대로 사용하였기에, 비디오-텍스트 데이터를 이용한 추가 사전학습(post-pretraining)을 통해 비디오 도메인에 CLIP을 더 최적화하고자 하는 연구들이 수행되었는데요. 이러한 연구들은 어째서인지 그다지 좋은 결과를 보이지 못하였다고 합니다.

따라서 본 논문은 CLIP이 비디오-텍스트 데이터에서 post-pretraining을 잘하지 못하는 이유를 찾고, 이를 해결하고자 합니다. 저자들은 여러 실험을 통해, 데이터셋의 규모(scale)와 비디오-텍스트 데이터셋에서 language source 간의 domain gap이 성능에 큰 영향을 미치는 것을 발견하였는데요.

이러한 발견을 기반으로 video-text 에서의 post-pretraining을 위한 방법인 Omnisource Cross-modal Learning method equipped with a Video Proxy mechanism on the basis of CLIP, CLIP-ViP를 제안합니다. 이 방법을 통해 Text-Video Retrieval 성능이 크게 개선되었으며, SOTA를 달성할 수 있었다고 합니다.

Introduction

이미지-텍스트 도메인에서 학습된 CLIP을 비디오-텍스트에서 post-pretraining 할 수 있다면 video task에서의 fine-tuning에 요구되는 학습량을 줄이고 성능을 한층 개선할 수 있겠지만, 막상 이러한 시도들은 큰 성과를 보이지 못하고 있었습니다.

Howto100M에서 얻은 프레임들을 CLIP에 입력하여 얻은 frame-level feature를 MeanPooling 하여 video-level feature를 얻는 CLIP4Clip과 같은 방법들에서 이러한 시도가 있었지만, zero-shot이나 파인튜닝에서 이러한 방법의 성능은 오히려 image-text pre-train 모델을 그냥 사용하는 것에 비해 낮았다고 합니다.

본 논문에서는 image-text pre-training 모델은 video-language representation learning에 효과적으로 적용하는 방법을 연구합니다.먼저, video를 사용한 post-pretraining을 방해하는 요소들을 찾기 위한 사전 실험을 수행하여 데이터셋의 규모와 데이터 상의 language source 간의 domain gap이 문제임을 발견하였습니다. 이어서 이러한 문제를 해결하기 위한 CLIP-ViP 구조를 제안하였습니다.

CLIP-ViP 구조의 특징은 다음과 같습니다.

  • 먼저, language domain gap을 최소화하기 위해 auxiliary caption을 사용합니다.
  • 이를 위해 image captioning 모델을 통해 각 영상의 중간 프레임에 대한 caption을 생성하였습니다.
  • ViT기반 이미지 인코더를 최소한으로 수정하면서도 영상에서도 잘 작동하도록 고안한 video proxy token과 proxy-guided video 어텐션 메카니즘을 사용합니다.
  • 이를 통해 적당한 양의 파라미터와 계산량만 증가시키면서도 ViT의 generalization과 확장성을 증가시켰다고 합니다.
  • caption-frame과 video-subtitle 데이터 간의 cross-modal representation learning을 잘 하기 위해 Omnisource Cross-modal Learning (OCL) 방법을 사용합니다.

본 논문의 contribution은 다음과 같습니다.

  • video post-pretraining on pre-trained image-text model을 방해하는 요소를 찾은 첫 논문입니다.
  • 위 요소들을 극복하며 효과적으로 학습을 수행할 수 있는 CLIP-ViP를 제안하였습니다.
  • SOTA를 달성하였습니다.

Related Work

주로 이미지를 설명하는 대체 텍스트로 구성되는 image-text 데이터와 달리, video-text 데이터는 주로 자막(subtitle)으로 구성됩니다. 이때 대체 텍스트에 비해 자막에는 훨씬 많은 noise가 존재하게 됩니다. 구독, 좋아요 요청이나 영상과는 무관한 얘기가 있기도 하고, 영상과 자막이 다루는 내용이 시간적으로 다르기도 하죠.

본 논문에서는 이러한 video-subtitle 데이터들의 단점을 회피할 방법을 제안합니다.

Preliminary Analysis

저자들은 먼저 video-language post-pretraining의 결과가 좋지 않은 이유를 파악하기 위해 사전 실험을 진행합니다.

Post-Pretraining with Different Data Scales

먼저 저자들은 CLIP-ViT-B/32 모델을 baseline 삼아 CLIP4Clip과 frame-level feature 들의 Mean Pooling을 수행하는 방식으로 video-text 데이터셋에서의 post-pretraining을 수행하는 실험을 진행하였습니다. WebVid-2.5M과 HD-VILA-100M, HD-VILA-10M 데이터셋에서 실험을 진행하였고 post-pretraining 이후에 모델을 MSR-VTT에서 파인튜닝한 결과를 측정하였다고 합니다. 모든 실험에서 iteration은 HD-VILA-100M의 1 에포크와 맞췄으며 영상당 12 프레임을 추출해서 사용했습니다.

그림 1.에서 보이는 것처럼, post-pretraining이 오히려 성능을 감소시키는 경향이 있었으며 특히 크기가 작은 데이터셋에서 그러한 경향이 뚜렷했습니다. 한편 데이터셋의 크기가 큰 HD-VILA-100M에서는 조금이나마 성능이 개선되었는데, 이는 CLIP이 4억 개의 대규모 데이터에서 학습된 것에 비하여 post-pretraining 데이터가 적기 때문으로 보았습니다.

Language Domain Gap with Downstream Data

사전학습 데이터와 downstream 데이터가 같은 도메인인 것이 더 좋겠지만, 대부분의 Video-Text task에서 text가 영상을 설명하는 속성 (캡션 등)을 갖는 반면 본 논문에서 사전학습에 사용하는 HD-VILA-100M 데이터셋은 자동 생성된 자막을 사용하고 있습니다. 이로 인해 영상과의 무관성(irrelevance), 시간적 비정렬(misalignment), 자동 생성 오류(Automatic Speech Recognition Error)의 단점을 갖게 되는데요.

저자들은 이러한 사전학습 데이터와 downstream task 간의 language domain gap을 이해하기 위해, 두 language feature의 inconsistency를 계산해 보았습니다.

먼저, CLIP Text 인코더로 두 데이터셋의 텍스트 feature를 추출한 후, 사전학습 데이터와 downstream 데이터의 text feature를 합칩니다. 그다음, 합쳐진 feature들을 K-means로 두 개의 클러스터로 군집화했다. 마지막으로 클러스터링 된 라벨과 실제 두 데이터셋 라벨 간의 Normalized Mutual Information (NMI)를 구하였습니다. NMI가 크다는 것은 그만큼 두 종류의 feature가 쉽게 구분된다는 것이고, 이는 domain gap이 크다는 것이다.

각 비교별로 천 개의 텍스트를 각 데이터에서 뽑아서 수행하였으며 10번의 비교를 수행해 평균을 구했다고 합니다.

표 1. 을 보면 HD-VILAsub와 downstream 데이터의 NMI가 다른 것들에 비해 큰 것을 볼 수 있는데요, 이는 자막을 이용한 사전학습이 좋지 않을 수 있음을 시사합니다.

Approach

저자들은 이미지와 비디오 데이터셋 간의 language domain gap을 해결하기 위한 in-domain auxiliary data generation과 ViT가 이미지와 비디오 모두를 인코딩할 수 있도록 하는 Video Proxy 메커니즘, 비디오-텍스트와 이미지-텍스트 데이터로부터 cross-modal representation을 함께 학습할 수 있는 Cross-modal Learning (OCL) 방법을 포함한 CLIP-ViP video pre-training framework를 제안합니다.

In-domain Auxiliary Data Generation

먼저, 사전학습 데이터와 downstream 데이터의 language domain gap을 줄이기 위해 auxiliary caption을 도입합니다. 앞서 설명한 것처럼, Video-Text 데이터셋들 중 일부는 비디오의 자막을 text로 사용하고, 어떤 데이터셋들은 영상을 소개하는 캡션을 text로 사용하여 domain gap 문제가 있었는데요. 이를 줄이기 위해 학습 영상에 대한 캡션을 생성하여 비디오-자막 데이터로 학습하여 생기는 domain gap 문제를 해결하고자 하였습니다.

저자들은 이때 video captioning 모델을 통해 영상에 대한 캡션을 생성하지 않고, 영상 중간에 위치한 프레임을 추출하여 image captioning 모델을 통해 캡션을 생성하였는데요. 그 이유는 다음과 같습니다.

1. 대부분의 SOTA 비디오 캡션 모델들은 video-text 데이터셋으로 학습되는데 이는 downstream task에도 사용되는 데이터셋이기에 data leaking 문제가 있습니다.

2. Video captioning 모델들은 이미지 캡션 모델 대비 성능이 한참 뒤처져 있다고 합니다.

저자들은 강력한 이미지 캡션 모델인 OFA-Caption을 통해 HD-VILA-100M 데이터셋의 각 영상의 중간 프레임에서 하나의 캡션들을 생성하였습니다. 이를 통해 최대 16 단어로 구성된 100M 개의 문장을 얻었으며, 이는 추후 연구를 위해 공개할 것이라 합니다..

Video Proxy Mechanism

CLIP을 video domain으로 transfer 시킬 때, 당연하게도 frame aggregation과 temporality를 학습하는 것이 매우 중요합니다. 저자들은 이러한 temporal modeling을 수행하면서도 동시에 기존 ViT 백본의 뛰어난 일반성과 확장성을 유지하기 위해 ViT를 최대한 수정하지 않으면서도 Video를 다룰 수 있도록 하는 단순하고 효과적인 Video Proxy Mechanism을 제안하였습니다.

먼저 $T$개의 프레임을 가진 영상 $\{f_1, f_2, \cdots , f_T\}$이 주어질 때, CLIP을 따라 각 프레임을 $N$개의 패치로 나누어 줍니다. $\{ f_t^1, f_t^2, \cdots, f_t^N | t\in [1, T] \}$. 그다음, 평탄화된 2D 패치들에 spatio-temporal positional embedding을 더합니다.

$$ g(f_t^n) = Linear(f_t^n) + Pos_s(n) + Pos_t(t)$$

$Linear(*)$는 선형 계층이고, $Pos_s(n), Pos_t(t)$는 각각 학습 가능한 spatial, temporal positional embedding입니다. 이렇게 영상 하나는 $T\times N$ 크기의 패치 토큰으로 분할됩니다.

영상의 각 패치들의 시공간적 정보를 모델링하는 가장 단순한 방법은 모든 토큰을 한 번에 CLIP vision encoder에 입력하고 전체 토큰에 대한 어텐션을 수행하는 것이겠지만, CLIP이 이미지에서 학습되었기 때문에 이는 좋은 방법이 아니라고 합니다. (아래 표 2. 에서 비교를 수행하였습니다.) 때문에 저자들은 패치들이 기본적으로는 Image에서 그랬던 것처럼 spatial 한 정보들을 주고받되, 추가적인 Video Proxy token을 통해 각 프레임들이 temporal 정보를 주고받을 수 있게 하였습니다.

각 프레임을 CLIP에 입력하기 앞서, 학습 가능한 video proxy tokens $ \mathcal P=\{p_1, p_2, \cdots, p_M\}$을 패치 토큰에 붙여줍니다. 이때, $M$은 proxy token의 개수입니다. 이로써 $T\times N+M$ 개의 토큰이 CLIP의 ViT로 입력되게 되는데요, 이때 맨 첫 번째 proxy token의 출력은 영상 전체의 representation으로 간주합니다.

어텐션 연산 과정에서, 각 패치 토큰들은 같은 프레임에 속한 토큰들에만 어텐션을 수행할 수 있도록 어텐션 마스크 $\mathcal M_{ViP}$로 마스킹됩니다. 그러나 video proxy token들은 모든 토큰들에 어텐션을 수행할 수 있기 때문에, 모델은 기본적으로 이미지를 다루는 ViT처럼 동작하되 일부 proxy token을 통해 temporal 한 정보 역시 다룰 수 있게 됩니다. 저자들은 이를 proxy-guided attention이라 합니다.

$$ \mathcal V_{ViP}(q, k) = \begin{cases} 1 & \mbox{if } q\in \mathcal P \mbox{ or } k\in \mathcal P \mbox{ or } (q, k)  \text{ in the same frame.} \\ 0 & \text{otherwise,} \end{cases}$$

$q, k$은 어텐션의 쿼리와 키입니다. 이러한 구조를 통해, patch token은 video proxy token들로부터 global information을 얻을 수 있으며 동시에 CLIP의 원래 연산 구조를 보존할 수 있습니다.

이 모델은 입력이 이미지 즉, 프레임일 경우 linear interpolation을 통해 중간 temporal positional embedding을 얻어, 이미지를 1 프레임짜리 영상으로 취급합니다. 이를 통해 비디오와 이미지를 같은 배치에서 학습할 수 있다. 이렇듯 proxy-guided 어텐션 구조는 비디오와 이미지 연산의 차이를 줄이는 역할을 합니다.

Omnisource Cross-Modal Learning

video-subtitle 쌍으로부터 풍부한 video-language 정렬을 얻은 후 language domain gap을 최소화하기 위해 Joint Cross-Modal Learning on the omnisource input을 도입합니다. 두 인코더를 사용한 multimodal alignment 연구가 대부분 그러하듯 저자들도 InfoNCE Loss를 통한 contrastive learning을 수행합니다.

CLIP-ViP의 visual source로는 video sequence와 single frame 두 종류가 주어지고 text source로는 자막과 캡션이 주어집니다. 이를 각각 $V,F,S,C$로 표현하겠습니다. 이때, source-wise InfoNCE는 다음과 같습니다.

$$\mathcal L_{v2t} = -\frac{1}{B}\sum^B_{i=1}\log\frac{e^{v_i^\top t_i /\tau}}{\sum^B_{j=1} e^{v_i^\top t_j / \tau}},  \mathcal L_{t2v} = -\frac{1}{B}\sum^B_{i=1}\log\frac{e^{t_i^\top v_i / \tau}}{\sum^B_{j=1} e^{t^\top _i v_j / \tau}}$$

$v_i, t_j$가 각각 $X\in \{V, F\}$의 $i$번째 visual feature와 $Y\in \{S, C\}$의 $j$번째 text feature의 normalized embedding이고, 배치 크기가 $B$이며, $\tau$는 학습 가능한 temperature입니다.

overall alignment loss $\mathcal L_{X\leftrightarrow Y}$는 $\mathcal L_{v2t}$과 $\mathcal L_{t2v}$의 평균입니다. 예를 들어, $\mathcal L_{V\leftrightarrow S}$은 배치에 포함된 비디오와 자막 쌍의 InfoNCE loss이 됩니다. 아시다시피 이러한 InfoNCE loss는 aligned pair는 가까이, misaligned pair는 멀리 밀어냅니다.

저자들은 이러한 Overall alignment Loss들의 다양한 변형들을 사용해 학습을 진행해 보았습니다. 앞서 설명한 비디오와 자막에 대한 $\mathcal L_{V\leftrightarrow S}$에 이어, (1) 비디오-자막, 프레임-캡션의 단순한 조합인 $\mathcal L_{V\leftrightarrow S} + \mathcal L_{F\leftrightarrow C}$, (2) 비디오와 자막과 비디오와 캡션의 조합인 $\mathcal L_{V\leftrightarrow S} + \mathcal L_{V\leftrightarrow C}$, (3) 비디오-자막과 비디오-캡션, 여기에 프레임-캡션까지 더한 $\mathcal L_{V\leftrightarrow S} + \mathcal L_{V\leftrightarrow C} + \mathcal L_{F\leftrightarrow C}$, (4) 비디오와 자막, 캡션 그리고 프레임과 캡션의 조합인 $\mathcal L_{V\leftrightarrow S,C} + \mathcal L_{F\leftrightarrow C}$까지를 실험 하였는데요. 이때, (4)는 (3)과 비교하여 $\mathcal L_{v2t}$의 negative pair가 늘어난 효과가 있습니다. 이러한 Loss 중, $\mathcal L_{V\leftrightarrow S,C}$에 포함된 $\mathcal L_{v2t}$는 다음과 같이 정의됩니다.

$$\mathcal L_{v2t} = -\frac{1}{2B}\sum^B_{i=1}(\log\frac{e^{v_i^\top s_i / \tau}}{\sum^B_{j=1} e^{v_i^\top s_j / \tau}+e^{v_i^\top c_{j=i}/\tau}} + \log\frac{e^{v_i^\top c_i /tau}}{\sum^B_{j=1} e^{v_i^\top c_j /\tau}+ e^{v_i^\top s_{j\neq i}/\tau}})$$

$s_i\in S, c_i\in C$입니다.. $\mathcal L_{V\leftrightarrow S,C}$안의 $\mathcal L_{t2v}$는 (3)과 같습니다. 저자들은 이러한 변종들을 기본 baseline $\mathcal L_{V\leftrightarrow S}$과 비교하였습니다.

Experiment

저자들은 먼저 CLIP-ViP를 사전학습하기 위해 평균 13.4초 길이의 영상 클립들로부터 uniform 하게 12 프레임을 추출한 후, $224\times 224$ 크기로 조정하였습니다. 텍스트는 CLIP 토크나이저를 통해 텍스트를 최대 70 길이의 토큰들로 변환하여 사용하였습니다. 학습은 AdamW에 initial learning rate $5e-6$, fixed weight decay $5e-2$를 사용했고, learning rate를 consine decay로 점차 감소시켰습니다. 학습은 1024 배치 사이즈에서 32장의 Tesla V100으로 진행했고, contrastive smilarity는 모든 GPU에서 생성된 feature에 대하여 계산하였습니다. ablation study는 HD-VILA-100M 데이터셋에서 1 에포크 학습하여 진행하였고, 최종 결과는 3 에포크 학습한 결과를 사용했다고 합니다.

downstream task에서의 파인튜닝 시에는 대부분의 하이퍼 파라미터를 사전학습과 동일하게 가져갔으나, 일부 예외가 있기는 했습니다. 배치 크기는 모든 downstream task에서 128로 하였고, Learning rate와 weight decay는 $1e-6$, $0.2$를 사용했다고 합니다. 학습은 데이터셋 별로 다르게 진행하였는데 MSR-VTT, DiDeMo, LSMDC, ActivityNet에서 각각 5, 20, 10, 20으로 하였습니다. 추출 프레임은 영상의 길이가 긴 ActivityNet Caption만 32로 하고, 나머지 데이터셋에서는 사전학습과 동일하게 12 프레임으로 했습니다.

Ablation Study

Video Proxy Mechanism. 저자들은 MSR-VTT VTT retrieval에서 비전 인코더에 저자들이 제안한 Video Proxy (ViP) 적용 시 video proxy token의 수에 따른 차이와 ViP 외의 모델 구조를 사용 시 성능 차이를 실험해 보았습니다. MeanPool은 전체 영상의 frame feature들에 단순히 평균을 구하는 방식이며, SeqTransformer는 CLIP4Clip의 seqTransf 형식을 사용한 결과입니다. Full Attention은 ViP와 달리 모든 패치들이 다른 프레임의 패치를 포함한 모든 패치들에게 어텐션을 수행할 수 있는 설정이라고 하는데, 성능이 가장 낮은 것이 저자들이 제안하는 구조에 설득력을 더해주는 것 같네요.

결과를 보면, 시간적 구조를 거의 완전히 무시하는 MeanPool 방식 대비 SeqTransformer가 약간 향상된 결과를 보이며, Full Attention은 성능이 오히려 떨어지는 모습을 보이고 있습니다. ViP는 모든 설정에서 Mean Pooling과 SeqTransformer 봐 좋은 결과를 보이는데 특히 4개의 proxy를 사용하는 것이 좋은 결과를 보이고 있네요.

Omnisource Cross-modal Learning. 저자들은 제안한 OCL의 효과를 검증하기 위한 비교를 수행하였습니다. 먼저 기본적인 $\mathcal L_{V\leftrightarrow S}$만 사용한 경우에도 성능이 향상되었고, 여러 가지 OCL 변형을 사용함에 따라 성능이 향상되다가, $\mathcal L_{V\leftrightarrow S,C}, \mathcal L_{F\leftrightarrow C}$를 사용한 경우 성능이 가장 좋았습니다. 당연하게도, 가장 성능이 좋은 해당 손실함수를 최종 결과에 사용하였다고 합니다.

Auxiliary Data. 저자들은 이미지 데이터셋에서 사전학습된 CLIP을 비디오 데이터셋에서 추가 사전학습시켜 성능을 향상했습니다. 여기서는 이에 따른 성능 증가와 사용하는 데이터에 따른 성능 변화를 분석하였습니다. 먼저, HD-VILA 데이터셋에서 자막(sub)이나 캡션(cap)만을 사용한 uni-source 결과보다, 두 텍스트를 모두 사용한 omnisource 학습 시의 성능이 훨씬 크게 향상되었습니다. 또한, 학습 시에 MS-COCO, Visual Genome, Flickr-30K, SBU, CC3M, CC12M과 같은 이미지 데이터셋에서 OFA-Caption을 통해 캡션을 생성 후 이를 학습에 사용한 ImageCaption과 여기에 비디오 데이터인 HD-VILAsub를 추가로 사용한 결과를 보았는데, ImageCaption 만을 사용한 경우 오히려 추가 사전학습을 하지 않은 CLIP보다 성능이 감소했지만, HD-VILA에 이를 더하여 사용하자 성능이 개선되었습니다. 이러한 ImageCaption 데이터가 noisy 한 대규모 HD-VILA 데이터셋의 noise를 일부 완화해 주는 것으로 보인다고 합니다. 신기하네요.

Comparison to SOTA

저자들은 제안한 CLIP-ViP와 기존 모델들의 DiDeMo, LSMDC Text-to-Video Retrieval 성능을 비교하였습니다. (이때, 파인튜닝은 MSR-VTT, DiDeMo, ActivityNet Captions, LSMDC에서 진행됐다고 합니다.) CLIP-ViP는 CLIP-ViT-B/32와 CLIP-ViT-B/16 기반 모델 중 SOTA를 달성하였으며, 일부 기존 방법들을 CLIP-ViP에 추가한다면 추가적인 성능향상도 기대할 수 있다고 합니다.

Conclusion

이 논문에서 저자들은 image-text에서 사전학습된 CLIP 모델을 대규모의 비디오 데이터를 통해 추가 사전학습(post pre-training)하는 방법을 제안했습니다. 저자들은 본격적인 연구에 앞서 비디오 데이터를 통한 추가 사전학습이 잘 되지 않는 이유를 탐색하였고, 이를 기반으로 Omnisource Cross-modal Learning과 Video Proxy 기법을 이용한 CLIP-ViP를 제안하였습니다. CLIP-ViP는 CLIP이 사전학습한 정보와 모델 구조를 최대한 보존하면서도, downstream task에 사용할 비디오와 자막(subtitle) 혹은 캡션(caption) 데이터와의 domain gap을 줄여 SOTA를 달성할 수 있었습니다.

CLIP을 비디오에 맞게 일부 수정한 모델이라 가볍게 생각하고 읽었는데, 생각보다 어려우면서도 기발한 아이디어들이 많은 논문이었습니다. 단순히 모델에 이것저것 붙여보고 잘된 거 들고 온 논문이 아니라, 사전에 세심하게 video domain에서의 post pretraining이 잘 안 되는 이유를 분석한 점에서 연구가 체계적이라는 생각이 들었습니다.

저자들이 제안한 Video Proxy mechanism의 경우 CLIP이 아니더라도 사전학습된 이미지 기반 트랜스포머를 비디오에서 추가 학습 시킬 때 응용하면 유용할 것으로 생각되며, OCL과 같이 domain gap을 줄이기 위한 loss도 언젠가 써먹을 수 있을 것 같아 얻은 게 많은 논문인 것 같습니다.

감사합니다.

Author: rcvlab

RCV연구실 홈페이지 관리자 입니다.

6 thoughts on “[ICLR 2023] CLIP-VIP: Adapting Pre-Trained Image-Text Model to Video-Language Alignment

  1. 리뷰 잘 읽었습니다.

    ‘In-domain Auxiliary Data Generation’ 부분에서 auxiliary caption 을 생성해서 domain gap을 해결한다는 부분에서 개인적 궁금증이 있어서 질문 드립니다.

    Video Data에 대한 이해, 그리고 Image captioning 에 대한 이해가 부족해서 생기는 궁금증일수도 있는데, 제가 생각하는 video는 하나의 video 내에서 한가지 행동(?) 만을 하는 것이 아니라 여러가지 행동을 수행합니다. 그런 관점에서 video 내의 어떤 frame으로 부터 caption을 추출하는지가 매우 중요할 거 같은데, 이 부분은 image captioning 모델이 잘 동작하도록 바라는 거 밖에는 없는거겠죠?

    개인적으로 video captioning 모델의 성능이 image captioning 모델에 비해 많이 뒤쳐졌다고 해도 frame 이 아니라 video를 대표하는 것이니 더 효과적으로 동작할 거 같은데, 이에 대한 실험 결과는 없나요?

    감사합니다 !

    1. 안녕하세요. 권석준 연구원님.

      말씀하신대로 일반적인 비디오에는 여러 가지 행동이나 내용이 포함될 수 있습니다. 따라서 영상 중앙의 프레임 하나를 이용해 비디오에 대한 캡션을 만들기는 어려울 것입니다. 다만 본 논문에서 실험에 사용한 데이터셋들은 평균 13초 정도의 길이를 갖는 짧은 영상들로 구성되어, 이러한 방법이 어느 정도 효과가 있었던 것으로 보입니다.

      따라서 저자들도 비디오 캡션 모델을 이용한 실험 성능을 별도로 제시하지 않고, 간단히 이미지 캡션 모델을 사용한 이유를 설명하며 넘어가는데, 아마 향후 연구에서는 이러한 구조를 가져가게 된다면 결국 비디오 캡션 모델을 써야하지 않을까 싶네요.

      감사합니다!

  2. 백지오 연구원님, 좋은 리뷰 감사합니다. 백지오 연구원님 리뷰는 항상 뭔가 잘 정돈된 느낌이라 읽기 편한 것 같습니다(내용이 낯설어서 이해하기 힘든 부분들이 있긴 합니다). 이번 논문은 clip에서 텍스트는 domain gap을 해소하고, 이미지를 비디오로 어떻게 변환해야 할 것인지 연구한 것으로 이해했습니다. 질문이 하나 있는데, ‘video-subtitle 쌍으로부터 풍부한 video-language 정렬을 얻은 후 language domain gap을 최소화하기 위해 Joint Cross-Modal Learning on the omnisource input을 도입’ 하는 부분에서 Joint Cross-Modal Learning on the omnisource input이 무엇인지 잘 와닿지가 않습니다. cross-modal learning 이라는 감은 오는데, 어떻게 동작하는지 간단하게 설명해주시면 감사하겠습니다.

    1. 안녕하세요. 허재연 연구원님.
      좋은 말씀 감사드립니다.

      해당 부분이 저도 이 논문을 처음 보며 참 헷갈렸던 부분인데, 본 논문에는 크게 두 가지 극복해야 할 domain gap이 존재합니다.

      이미지-텍스트 데이터로 학습된 CLIP 모델과 downstream task인 비디오-텍스트 task 간의 task gap과, 비디오-텍스트 데이터셋들 중 텍스트가 캡션으로 이루어진 데이터셋과 자막으로 이루어진 데이터셋들 간의 language domain gap입니다.

      Joint Cross-Modal Learning on Omnisource Input이란 이러한 문제를 해결하기 위해, CLIP을 추가 사전학습하는 과정에서 비디오-자막,캡션 과 프레임-캡션에 대한 contrastive learning을 수행하여, 이러한 domain gap들을 모두 줄이는 것을 의미합니다.

      Omnisource Cross-Modal Learning 섹션에서 소개한 Loss를 통해, 비디오와 그 비디오와 연관된 자막과 캡션이 가까워지고, 동시에 해당 비디오에서 추출된 프레임과 이로부터 생성된 캡션이 가까워지게 하여 수행됩니다.

      감사합니다.

  3. 안녕하세요 백지오 연구원님. 좋은 리뷰 감사합니다.

    결국 CLIP-ViP란 CLIP을 downstream에 fine-tuning할 때 text정보의 domain gap을 해소하기 위해 image captioning 모델을 이용하여 영상의 한 프레임에 대한 text를 생성하였고, video proxy mechanism을 통해 우리가 알고 있는 vit의 patch 형태로 비디오를 변환할 수 있도록 한 것이라고 이해하였습니다.

    이때 Video Proxy Mechanism에 관해 질문이 있는데요, Vision Encoder에 비디오를 입력할 때 ViT와 마찬가지로 image(frame)을 patch 단위로 분할한 뒤 position encoding을 수행하면 영상 길이 * N개의 patch를 입력한다는 것 까지는 이해하였는데, masking된 temporal 정보끼리 proxy token으로 어떻게 temporal attention을 수행하는 지 잘 와닿지 않습니다. 혹시 예를 들어서 설명해주실 수 있을까요?

    1. 안녕하세요. 천혜원 연구원님.

      ViT를 통한 셀프 어텐션 과정에서, 쿼리와 키의 곱을 통해 각 토큰들과 토큰들 간의 가중치를 얻고, 이를 밸류에 곱하여 어텐션을 수행하게 되는데요. 이때, t번째 프레임에 속한 토큰들과 다른 프레임에 속한 토큰들 사이의 가중치를 0으로 마스킹하여 다른 프레임에 속한 토큰들 간에는 어텐션이 되지 않도록 할 수 있습니다.
      proxy token에 대해서는 이러한 마스킹을 수행하지 않기 때문에, 전체 프레임들 간에 temporal한 attention을 수행할 수 있다는 것이죠.

      감사합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다