빠른 요약 🔎
- CLIP을 비디오-텍스트 검색 테스크에 활용하기 위한 최적의 방식을 제안하는 논문으로 텍스트는 데이터 품질을 올리고, 비디오는 주요 프레임에 어텐션을 잘 적용하는 문제로 풀어냄
- Github: [link]
- Paper: [link]
연구배경
- 최근 CLIP과 같은 사전 학습 이미지-텍스트 모델이 이미지-텍스트 테스크에서 좋은 성능을 보임
- 한편 그동안 잘 훈련된 image representation을 video에 사용하여 이득을 본 사례가 있었음
- 하지만 아직 이미지-텍스트 모델이 비디오-텍스트 테스크에도 적용 가능할지는 아직 연구된 바 없음. 그래서 우리가 한다 🤗
Goal: CLIP을 비디오-텍스트 테스크에 효율적으로 사용할 방법 찾기
Preliminary analysis
- CLIP은 원래 이미지-텍스트를 위한 것. 그렇다면 이걸 비디오-텍스트에 사용하기 위해 사전 분석 수행
데이터 사이즈에 따른 CLIP의 사전학습 성능 파악
- 분석 포인트: 과연 어떤 데이터를 통해 사전학습 모델을 활용하는 게 좋나?
- 분석 방식
- 사전학습 모델: CLIP-ViT-B/32
- 비디오 데이터 처리 방식: CLIP4Clip 방식 사용 = 비디오는 프레임이 여러개니까 프레임 구간 별 평균을 비디오 피쳐를 사용하는 방식
- 사전학습 데이터: WebVid-2.5M (250만개), HD-VILA-10M(1천만개), HD-VILA-100M (1억개)
- 분석 결과
- 사전학습을 계속할 수록 성능 저하 (과적합)
- 위 현상이 데이터가 적을 수록 더하다
- 결론: 사전학습을 위해서는 양도 많고 다양한 데이터를 쓰자 (HD-VILA-100M)
- 🥹 당연한... 얘기지만 어쨌든 비디오-텍스트에도 허용가능한 얘기라는 걸 보여줬음
사전학습 데이터와 다운스트림 데이터의 차이 파악
- 결론: HD-VILA-100M의 원래 텍스트를 바로 쓰면 다운스트림 테스크에서 성능을 기대하기 어려우니 방법을 찾아보자
CLIP-ViP = Video Proxy mechanism + Omnisource Cross-modal Learning (OCL)
핵심 아이디어
- 앞선 결과 분석 결과를 토대로 사전 학습 데이터와 다운스트림 테스크의 차이를 줄이기 위한 데이터 생성 방식을 제안
- Vision Transformer (ViT) 모델을 이미지와 비디오 인코딩에 사용가능한 방법 제안 = Video Proxy mechanism
- 비디오-텍스트, 이미지-텍스트의 크로스 모달을 이해하기 위한 방법 제안 = Omnisource Cross-modal Learning
Step 1. 다운스트림 테스크 성능 향상을 위한 사전학습 데이터셋의 텍스트 데이터 개선 (feat. Video Captioning Model)
- 사용 모델: OFA-Caption model
- 방식: 각 비디오의 중간 프레임에 기준으로 이미지 캡셔닝 수행해 자막 생성 (최대 16단어)
Stpe 2. 비디오를 위한 ViT 개조
-
결론부터 말하면 마스킹된 어텐션과 거의 비슷함
-
먼저 ViT를 사용하기 위해 비디오를 이미지로 변환하는 과정부터 시작함
- 각 프레임을 N개 패치로 쪼갬
- 패치에 위치-시간 정보를 임베딩 (spatio-temporal positional embedding)
-
이렇게 만들어진 애를 바로 ViT 넣어서 어텐션을 바로 적용할 수도 있지만... 우리가 하려는 건 비디오만 보려는 게 아니라 추후에 비디오-텍스트 크로스 모달을 하면서 CLIP을 학습해야하기 때문에 저자들은 어텐션에서 비디오 프레임 간의 인터렉션을 잘 포착하는 게 어렵다고 생각함. 실제로도 이 방식은 저자들의 제안보다 성능이 낮았음
-
그래서 제안한게 Proxy-guided Attention. 수식은 어렵지만 아래 그림의 우상단의 그림을 보면 바로 이해감. 마스킹을 통해 (1) 비디오의 전체적인 정보 (BERT의 CLS 토큰처럼)이나 (2) 같은 프레임 안에 있는 애들만 확인해서 어텐션을 수행하는 방식임
- 아래 표는 제안한 프록시 방식의 성능우위를 보여줌. Full Attention이 앞서 얘기했던 바로 어텐션을 적용한 방식을 의미
Stpe 3. 비디오-텍스트 학습을 위한 크로스모달 방식 제안
-
이것도 그림으로 이해하면 쉬움. 모델 그림의 왼쪽 좌상단에 있는 것처럼 여러가지 모달리티 조합에 대해 Contrative Learning을 테스트 해봤단 얘기
-
고려한 모달리티는 다음과 같으며, 이것들을 잘 조합해 Loss을 구성해 성능상승을 노림
- Video: 전체 비디오 시퀀스 (V), 싱글 프레임(F)
- Text: 오리지널 데이터셋 텍스트(S), 이미지 캡셔닝으로 만든 텍스트 (C)
-
두가지 벤치마크 데이터셋 가장 좋은 성능을 보이는 조합은 아래 표에서 확인
- 🥹 사실 전반적으로 성능이 비슷한데 오리지널 데이터셋 텍스트만 있는건 성능이 꽤 낮음. 따라서 CLIP으로 해당 테스크 수행을 위해서는 텍스트 데이터를 잘 정제하거나 논문처럼 아예 생성하는 작업을 꼭 고려해봐야 할듯.
성능