안녕하세요. 박성준 연구원입니다. 오늘은 ICLR2024에 게재된 Multi-granularity Correspondence Learning from Long-term Noisy Videos 논문의 Part2로 논문에서 제안하는 방법론과 실험결과에 대해서 리뷰하겠습니다. 아직 이전 리뷰를 보지 않으신 분들은 Part1 리뷰를 읽고 오시는 것을 추천드립니다.
먼저 논문의 문제 정의와 논문의 아이디어를 다시 한번 짚고 넘어가겠습니다.
본 논문은 Video-Language alignment를 다룬 논문으로 비디오에서 중요하게 여겨지지만 기존 논문들이 연산량이 커지는 것을 문제로 중요하게 다루지 못한 long-term temporal context를 다룰 수 있도록 하는 것을 목표로 하고 있습니다. long-term temporal context를 다룰 수 있게 하기 위하여 저자는 video captioning을 활용했습니다. 이전 연구들도 video captioning을 활용해서 long-term temporal context를 다루려는 연구들이 존재했지만, video captioning을 그대로 활용하는 것은 multi-granularity noisy correspondence (MNC) 문제로 인해 좋은 성능을 보장하지 못한다는 한계가 있었습니다. MNC문제는 captioning의 정보와 비디오의 정보가 long-term temporal context를 모델링할때 노이즈가 섞여 fine-grained, coarse-grained level에서 align이 맞지 않는 문제입니다.
아래의 Figure1은 video caption이 비디오와 align이 맞지 않는 MNC문제를 정성적으로 보여주는 그림입니다.
저자는 MNC문제를 해결하기 위한 수단으로 Optimal Transport(OT) 개념을 사용했습니다. OT에 대한 설명은 Part1 리뷰를 참고해주시기 바랍니다. OT를 이용해 fine-to-coarse 순서로 align을 맞추는 것으로 저자는 long-term temporal context를 성공적으로 모델링해 기존 연구들에 비해 높은 성능을 달성하는 것을 실험을 통해 보여줍니다.
Overview
저자가 제안하는 NOise Robust Temporal Optimal traNsport (Norton)은 fine-to-grained 순서로 3가지 단계를 통해 MNC 문제를 해결합니다.
1단계: Fine-grained Alignment
clip과 caption 사이의 fine-grained 유사도를 측정하는 단계로 video clip과 text caption 단어 사이의 유사도를 계산하여 frame-word 유사도 행렬을 생성합니다. 그후 각 행과 열에 대해 log-sum-exp (로그-합-지수) 연산자를 적용하여 더 정확한 fine-grained 유사도를 얻습니다.
2단계: Coarse-grained Alignment
clip들과 caption들 간의 coarse한 align을 수행하는 단계로 clip-caption 유사도 행렬에 alignable prompt bucket를 추가하여 관련 없는 clip이나 caption을 필터링합니다. 필터링틀 통해 각 clip, 혹은 caption에 관련없는 요소를 제거하는 것으로 좀 더 정확한 유사도 행렬을 얻을 수 있습니다.
3단계: Video-paragraph Contrastive Learning
video와 paragraph 사이의 시간적 상관관계를 coarse한 level에서 align하고 위에서 설명한 OT(선형 계획 형태의 OT와 Sinkhorn 알고리즘)을 활용해 유사도를 계산합니다. clip-caption 유사도 행렬에 Sinkhorn 알고리즘을 반복 적용하여 asynchronous misalignment를 해결하고 최적인 이동 거리를 계산합니다. 최적 이동거리(OT)를 활용하여 coarse한 video-paragraph 유사도를 얻을 수 있습니다.
Method
학습을 위해 주어지는 데이터셋D=\{V_i,T_i\}^N_{i=1}은 V_i, T_i으로 구성되고 각각 비디오와 paragraph(텍스트)의 i번째 instance를 뜻합니다. 여기서의 instance는 ASR(자동 음성 인식) timestamp에 따라 비디오/paragraph를 clip/caption으로 구분한 것을 의미합니다. 더 세분화하면 \{v^j_a\}^f_{j=1}은 클립 v_a의 프레임을 의미하고 \{t^j_b\}^w_{j=1}은 caption t_b의 단어를 의미합니다. f는 비디오 clip의 길이(프레임 수), w는 caption의 길이(단어의 개수)를 의미합니다.
사전 학습은 두 손실함수를 통해 최적화됩니다.
L_{clip}은 clip과 caption간의 contrastive loss로 clip representation을 높이고 정확한 temporal 모델링을 보장합니다.
L_{video}는 Norton을 통해 긴 비디오와 paragraph와의 temporal correlation(상관관계)를 탐색합니다.
두 손실함수를 통해 clip representation의 품질을 높이고, 비디오/paragraph의 temporal alignment를 보다 정확히 모델링하는 것을 목표로 합니다.
Correspondence Learning via Robust Optimal Transport
긴 비디오들은 일반적으로 짧은 비디오 클립들의 시퀀스 즉, 순서가 있는 집합으로 구성됩니다. 저자는 OT를 활용하여 video-paragraph contrastive 학습을 수행하기 위한 유사도 기준으로 삼는 방법을 제안합니다. S_{i,j}를 clip v_i와 captiont_j 사이의 유사도 입니다. Q는 대응 행렬을 나타내며 [Q]_{a,b}는 clip v_a와 caption t_b가 정렬될 확률을 나타냅니다. OT는 이러한 clip과 caption간의 정렬을 이상적으로 조정하며 확률 행렬 Q를 최적화하는 것으로 정렬을 수행합니다. 수식으로 나타내면
1_m은 m차원의 1로 이루어진 벡터이고, \mu, \nu는 각 clip과 caption의 중요도를 나타냅니다. 각 clip과 caption은 독립적으로 샘플링되며, 균등 분포를 따릅니다. 즉, \mu = \frac{1}{k} 1_k, \nu = \frac{1}{m}1_m입니다. H(Q)는 정규화 항입니다.
즉, clip과 caption이 서로 어떻게 연결되는 지를 나타내는 확률 행렬 Q와 clip과 caption사이의 유사도를 나타내는 S사이의 내적을 최대화시키는 건데 쉽게 생각하면 유사도가 높은 clip-caption 쌍을 최대화하는 것입니다. Q에서 높은 확률을 가지는 clip-caption 쌍이 S에서 유사도가 높은 쌍이 되게 유도하는 것입니다. 정규화 항은 정렬 확률이 치우치지 않고 고르게 분포할 수 있도록 도움을 주는 항입니다.
위 식은 앞서 설명드린 긴 비디오와 paragraph와의 temporal correlation(상관관계)를 탐색하는 손실함수 입니다. video와 paragraph간의 contrastive loss이며 주목할 부분은 기존의 contrastive loss에서 cosine 유사도를 OT를 통한 유사도로 대체하여 설정한 부분입니다.
N은 video-caption 쌍의 총 개수, \tau는 temperture 매개변수 입니다. 기존 contrastive loss와 마찬가지로 잘 맞춰진 쌍에 대해서는 유사도 점수가 높아지도록하고, 틀린 쌍에 대해서는 점수를 낮춰 video-caption의 정렬을 맞출 수 있도록합니다.
저자는 이러한 video-caption 쌍에 대한 contrastive loss는 coarse-grained 판단을 하기에 video 전체와 caption 전체의 유사도를 통해 판단하기에 단어 하나하나의 유의미한 정보를 놓칠 수 있다는 단점이 있음을 지적합니다. 또한 video와 caption이 정확하게 일치한다는 것을 전제로 하는 학습이기에 쓸데 없는 정보다 섞여 있을 때에 중요하지 않은 정보의 영향을 많이 받을 수 있다는 단점도 있음을 지적합니다. 따라서 저자는 위 두 문제를 해결하기 위헤 fine-grained level에서도 정렬을 맞추는 과정을 거치며, faulty negative 문제를 해결하려합니다.
Fine-grained Alignment
대부분의 이전 연구들은 비디오의 모든 프레임이나 단어들을 평균적으로 얼마나 잘 맞는 지를 계산했습니다. 예를 들어, 비디오의 여러 장면들을 합해 평균 장면을 만든 후 그 평균 장면이 텍스트와 얼마나 잘 정렬 되는 지를 확인하는 방식이었습니다. 하지만, 이러한 방식은 저자에 의하면 fine-grained에서 잘 정렬되지 않아 중요한 장면이나 중요한 단어를 놓칠 수 있는 문제가 존재합니다.
따라서 저자는 비디오의 각 프레임(장면)과 텍스트의 각 단어들이 얼마나 잘 맞는 지를 확인하는 것을 목표로 합니다. 저자는 softmax 연산을 통해 여러 단어, 프레임 사이에서 중요한 단어, 프레임을 골라낸 후에 평균을 구하는 이전의 방식과 달리 각 프레임, 단어의 중요도를 고려하여 계산을 하게 됩니다. 수식으로 표현하면 다음과 같습니다.
[S]_{a,b}는 clip v_a와 caption t_b사이의 유사도를 나타냅니다. f, w는 각각 비디오 프레임의 개수와 caption의 단어의 개수를 의미하고 v^i_a \cdot t^j_b는 비디오의 특정 프레임과 caption의 특정 단어가 얼마나 유사한지를 계산하기 위한 dot product 연산입니다. 두 벡터가 얼마나 유사한지를 나타내는 지표입니다. 마지막으로 \alpha는 가중치를 조절하는 매개변수로 값이 클수록 여러 프레임에 골고루(평균적으로) 집중하는 것을 의미하고 값이 작다면 비교적 중요한(softmax연산 값이 큰) 프레임에 집중하는 것을 의미합니다. 위 과정을 통해 video와 caption의 fine-grained 정렬이 가능하고 더 정확하게 비디오와 텍스트 간의 상관관계를 모델링할 수 있습니다.
Alignable Prompt Bucket
OT는 각 소스 데이터의 데이터 분포가 목표하는 데이터의 분포와 정확히 매칭되는 것을 목표로 하지만, 실제 상황에서 많은 video와 caption은 서로 align되지 않거나 노이즈가 포함된 경우가 많습니다. 이러한 매칭은 OT의 정확한 매칭을 어렵게하고 오히려 도움이 되지 않을 수 있습니다. 따라써 저자는 Alignable Prompt Bucket(APB)를 활용하여 문제를 해결하고자합니다. APB는 align되지 않은 clip과 caption을 필터링해서 불필요한 매팅을 막고 유사한 clip과 caption 간의 OT를 더욱 효과적으로 수행하는 것을 목표로 합니다.
APB는 위에서 구한 유사도 행렬 S에 하나의 행과 열을 추가합니다. 이렇게 추가된 행과 열은 모두 동일한 값 p으로 채워니며 이 p는 threshold값으로 매칭 과정에서 noisy데이터를 필터링하는 역할을 합니다. 수식으로 표현하면 다음과 같습니다.
실제 계산을 할 때에는 clip에 맞는 caption을 찾지 못할 경우 APB에 연결되어 필터링됩니다. 이를 통해 정렬되지 않는 clip이나 caption이 OT의 결과에서 제외되기 때문에 더 나은 결과를 도출하는 데에 도움을 줍니다. 최종 OT는 APB 행과 열이 제거되어 noisy 데이터가 제거된 후에 진행됩니다.
즉, threshold p값을 설정하여 그 값보다 유사도가 작은 경우, noisy데이터로 여겨 OT에서 활용하지 않습니다. p는 전체 유사도의 하위 30%에 해당하는 유사도 값으로 설정됩니다.
CLIP-CAPTION Alignment Via Faulty Negative Exploitation
self-supervised contrastive learning은 negative 샘플을 랜덤하게 설정합니다. 저자는 랜덤하게 negative 샘플을 선택하는 것은 Faulty Negative 문제를 야기할 수 있다고 지적합니다. Faulty Negative 문제는 실제로는 align이 가능한 clip과 caption임에도 불구하고 학습 과정에 negative로 분류하는 것을 의미합니다. 저자는 데이터의 실제 positive, negative 유무와 상관없이 랜덤하게 negative 샘플을 하는 것이 아닌 clip과 caption의 유사도를 고려하여 negative 샘플을 선정하는 Faulty Negative Exploitation 방법을 제안합니다.
저자는 위의 수식을 통해 OT 문제를 설정합니다. \hat{Q}는 faulty negative를 해결하기 위해 clip과 유사한 caption을 정렬하는 transport assignment를 의미하고 B는 배치를 의미합니다.
clip-caption 손실함수는 위와 같이 정의됩니다. 위 loss는 clip과 caption의 유사도를 측정하며, negative sample 간의 상호작용을 반영하여 fine-grained에서의 학습이 가능케 합니다. \beta는 Identity matrix I_B와 재정렬된 타겟 \hat{Q} 간의 균형을 조절하는 가중치 파라미터입니다. 즉, 위 방법은 OT를 활용하여 실제로는 정렬이 가능하지만, negative로 잘못 처리되는 clip-caption 쌍을 줄이는 것으로 학습의 신뢰도를 높이는 과정입니다.
Experiments
저자가 제안하는 방법인 Norton의 Video-patagraph retrieval 성능입니다. 기존의 SOTA 모델이었던 TempCLR 모델에 비해서도 꽤 많이 성능이 올랐습니다. 저자는 저자가 정의하는 문제인 MNC 문제가 기존의 contrastive learning을 통한 vision-language 학습을 많이 방해하고 있었음을 강조하고 있습니다. OT를 통한 효율적인 해결을 통해 저자는 MNC 문제를 해결할 수 있어 기존의 SOTA 모델에 비해서도 높은 성능을 보일 수 있었다고 설명하고 있네요.
Table 3.부터 Table 6.은 여러 downstream tasks에서 Norton의 강력함을 보여주는 표입니다. Table 1.은 video-paragraph retrieval로 좀 더 coarse한 level에서의 성능 개선을 보여줬다면, 여기서는 clip-caption level의 좀 더 fine-grained level에서의 성능과 Action Segmentation, Text-to-video retrieval, VideoQA등의 여러가지 downstream tasks에서도 모두 Norton이 제일 좋은 성능으로 SOTA를 달성하는 것을 보여줍니다. coarse-grained와 fine-grained 모두에서 SOTA를 달성하여 Norton이 multi-granularity에서 모두 좋은 성능을 보이는 것을 확인할 수 있습니다. 특별히 저자가 왜 이렇게 좋은 성능을 보인 것과 같은지에 대한 고찰은 없지만, 아무래도 기존에 다른 방법론들이 신경쓰지 못했던 MNC 문제가 생각보다 좀더 중요한 문제였다는 것과 OT가 이 문제를 효율적으로 해결한다는 것을 보여주는 실험결과인 것 같습니다.
위의 표는 학습과정에서의 효율성을 보여주는 표입니다. Norton에서 사용하는 OT의 sinkhorn 알고리즘이 여러 iteration을 거쳐서 수렴하는 알고리즘이기에 기존의 방법과 얼마나 연산량 및 속도에서 차이가 생기는 지가 궁금했는데 저자가 마침 supplementary에 추가해두어 확인해볼 수 있었습니다. supple인지라 구체적인 설명이 존재하지는 않았지만, 다른 방법론들에 비교해서 sinkhorn 알고리즘이 연산량 및 연산 속도에서 문제를 야기하지 않는 다는 것을 보여주고 있습니다. 위의 실험은 A100 GPU 하나로 실험한 결과라고 하니 backbone 연구임에도 불구하고 크게 연산량을 요구하지도 않는 것 같아 신기하네요.
Ablation Study
마지막으로 Ablation Study입니다. 다른 논문과 다르게 A~J로 표현해서 직관적으로 비교하기가 힘드네요;; 기본적으로 video-paragraph retrieval에서의 성능을 벤치마킹하고 있습니다.
A~B는 faulty negative exploitation(FNE)이 얼마나 성능에 영향을 주는 지를 보여주고 있습니다.
C~G는 fine-grained alignment에 대한 실험입니다. soft-max \alpha의 값을 어떻게 설정하는 지에 따른 성능차이를 보여주고 있습니다.
마지막으로 H~J는 Alignable Prompt Bucket (APB)를 적용한 성능을 보여줍니다. APB에서 필터링하는 p값을 30%로 설정할때의 성능이 제일 좋은 것을 보여주고 있습니다. 또한 적용하지 않았을 때에 비해서도 성능이 오르는 것을 실험을 통해 보여주고 있습니다.
Conclusion
저자는 긴 비디오에서의 long-term temporal correlation을 학습하는 것은 하드웨어 측면(연산)에서 굉장히 비효율적이라고 설명합니다. 따라서 저자는 Norton이라는 OT를 활용하여 sequence 사이의 거리를 추정하는 것으로 더 큰 데이터셋을 확잘항 수 있으며 동시에 하드웨어 측면에서도 효율적인 방법을 제안합니다. 이후 연구를 통해 video-language 뿐만 아니라 다른 여러 모달리티를 다 같이 잘 다룰 수 있는 방법에 대한 연구가 필요하다고 언급하며 논문을 마치고 있습니다.
감사합니다.
안녕하세요 성준님 좋은 리뷰감사합니다.
본문의 Fine-grained Alignment 부분에서 질문이 있습니다. 설명에 따르면 텍스트와 비디오를 잘 정렬시키기 위해 프레임, 단어의 중요도를 고려한다고 했는데 이 중요도는 어떻게 측정이되는건가요?
감사합니다.
안녕하세요 의철님 좋은 댓글 감사합니다.
Fine-grained Alignment에서 중요도를 측정하는 방법은 self-attention과 유사하지만 살짝 변형된 방법으로 계산됩니다. QKV로 scaled-dot 연산이 아닌 양방향 연산을 통해 두 벡터 간의 상호 유사성을 계산하고 log와 exponential 연산을 통해 계산됩니다. 즉, self-attention과 비슷하지만, text-video, video-text 양방향에서의 유사도를 계산해서 중요도를 측정했습니다.
감사합니다.