[MM 2024] Let Me Finish My Sentence: Video Temporal Grounding with Holistic Text Understanding

안녕하세요, 오늘의 X-Review에서는 24년도 ACM MM 학회에 게재된 논문 <Let Me Finish My Sentence: Video Temporal Grounding with Holistic Text Understanding>을 소개해드리고자 합니다. 카이스트의 정준선 교수님 연구실에서 나온 논문이며 저희 연구실에 세미나도 해주셨던 조재원 교수님께서도 저자로 참여하신 논문입니다.

제가 꾸준히 리뷰하고 있는 비디오 분야의 Moment Retrieval (MR)과 Highlight Detection (HD)을 동시에 수행하는 방법론이며, 제목의 “Let me finish my sentence”는 대화 중 상대가 자신의 말을 끊었을 때 “내 할말 좀 마저 다 하자”라는 뜻으로 쓰인다고 합니다. 결국 MR&HD를 수행할 때 텍스트 쿼리의 holistic한, 전체 의미를 모두 봐야한다는 저자의 논지를 함축하고 있는 것인데, 정준선 교수님께서 이렇게 논문의 요지를 담은 phrase를 제목에 자주 사용하시는 것 같습니다. 리뷰 시작하겠습니다.

1. Introduction

비디오 분야에서 MR과 HD는 우선 사용자가 입력하는 문장(텍스트 쿼리)과 그 문장의 의미론적 구간을 포함하는 비디오 쌍을 입력받아 시작합니다. 이후 MR은 해당 상응 구간을 예측하는 것이 목적이고, HD는 비디오의 각 프레임이 텍스트 쿼리와 상응하는 점수를 예측하는 것이 목적입니다.

최근 MR&HD 방법론들은 DETR 구조를 차용하고 있습니다. 추출한 비디오, 텍스트 feature 간 Cross-modal interaction을 진행하고, 이렇게 얻은 비디오 feature를 DETR Encoder에 넣어 HD를 수행합니다. 이후 Encoder의 출력과 Moment query (DETR의 Object query)를 DETR Decoder에 입력하여 MR 예측 결과를 얻게 됩니다.

이 과정에서 기존 방법론은 보통 두 갈래로 나뉘는데, 첫 번째는 DETR 구조를 비디오 분야의 MR&HD에 가져오면서 발생하는 문제점이나 suboptimal한 지점을 개선하는 방법론입니다. 두 번째는, DETR Encoder에 입력될 비디오 feature를 잘 만들기 위해 Cross-modal interaction을 연구하는 방법론입니다. 일반적으로 두 번째 갈래가 훨씬 활발히 연구되고 있으며, 첫 번째 갈래는 연구된다하더라도 두 번째 갈래를 메인 contribution으로 가져가고 부차적으로 제안되는 느낌이 강합니다.

서론이 길었는데 이제 저자가 지적하는 문제점을 살펴보겠습니다. 기존 Cross-modal interaction을 연구하는 방법론들은 시작하자마자 두 모달의 feature를 cross-attention layer에 입력하곤 합니다. 이 때 cross-attention의 대상은 각 단어 토큰으로 이루어진 문장이기 때문에 이 attention 연산은 결국 각각의 단어 토큰이 프레임에 얼마나 연관되어있는지를 모델링하는 과정에 해당합니다.

이렇게 되면 모델이 문장 전체의 의미를 파악하려하는 대신 한 단어의 의미에만 집중하여 task를 수행하게 되는 것입니다. 그러나 MR과 HD를 위해 입력되는 사용자의 텍스트 쿼리의 일부만 봐서는 정말 사용자가 원하는 구간이 맞는지 제대로 판단할 수 없기 때문에 위와 같은 기존의 방식은 suboptimal하다는 주장입니다.

그림 1

방금 말씀드린 주장을 그림 1과 함께 살펴보겠습니다. 사용자가 입력한 텍스트 쿼리는 “A man speaks to the camera while he is wearing shades and black biker’s helmet.”입니다. 이에 정확히 상응하는 GT 구간은 첫 번째 행의 파란색 박스로 표시되어 있고, 기존 방법론은 마지막에 있는 틀린 프레임을 맞다고 예측하고 있는 상황입니다.

기존 방법론처럼, 모델이 전체 문장이 아닌 단어 토큰들을 기준으로 학습한다면, 주어진 텍스트 쿼리의 일부인 “A man speaks to the camera.”에만 집중하여 마지막에 선글라스와 검은색 헬멧을 쓰지 않은 남성이 카메라에 이야기하는 장면도 True로 예측하게 된다는 것입니다. 반면 Holistic text understanding 능력을 갖춘, 즉 저자가 제안하는 방법론은 문장 전체를 보고 무엇을 찾고자하는 것인지 제대로 이해하고 있기 때문에 마지막 남성은 구간 예측에 포함하지 않은 것을 볼 수 있습니다.

저자는 이러한 문제를 극복하고자 Cross-attention 모듈 2개와 loss 하나를 제안합니다. 가장 큰 컨셉은 문장 전체 feature를 만들어두고 비디오 내 이와 유관한 프레임과 무관한 프레임 간 구별력을 부여하는 것입니다. 방법론에 대해서는 Contribution을 정리한 뒤 자세히 알아보겠습니다.

Contribution
  • Utilizes a global text-anchor based approach to enhance video grounding, leveraging holistic textual information.
  • Two cross-attention mechanisms, integrate both gated and anchor-query cross-attention for deeper video-text interaction.
  • Propose fine-grained alignment loss functions (clip-level and frame-level) anchored by the text query.

2. Method

아직 Cam-ready 버전이 업로드된 것은 아니라, 일부 수식에 오타가 있어 읽는데 좀 어려움을 겪었는데 리뷰에는 최대한 간결하게 작성해보겠습니다. 아래 그림 2는 저자가 제안하는 방법론의 전체 framework입니다. 그림이 조금 보기 어렵긴 한데, Feature Extraction, Cross-Modal Interaction, Prediction 총 3단계로 구성된 것을 볼 수 있습니다. 먼저 Notation을 정리한 뒤 제안하는 2개의 Cross-attention 모듈과 1개의 loss, 최종 prediction 과정 순서대로 설명드리겠습니다.

그림 2

2.1 Preliminaries

L_{v}개의 프레임으로 이루어진 비디오는 V \in{} \mathbb{R}^{L_{v} \times{} H \times{} W \times{} 3}과 같이 표현하며 텍스트 쿼리는T \in{} \mathbb{R}^{L_{t}}와 같이 표현합니다. MR의 예측 구간은 \{m_{n} = (m_{c_{n}}, m_{\sigma{}_{n}})\}_{n=1}^{N}이며 HD의 예측 score는 \{s_{i}\}_{i=1}^{L_{v}}에 해당합니다.

이후 VT는 기존 방법론들과 동일한 방식으로 임베딩됩니다. 비디오 feature F_{v} = [v_{1}, \cdots{}, v_{L_{v}}] \in{} \mathbb{R}^{L_{v} \times{} d_{v}}, 텍스트 feature F_{t} = [t_{1}, \cdots{}, t_{L_{t}}] \in{} \mathbb{R}^{L_{t} \times{} d_{t}}에 해당합니다. 이후 둘 다 각각의 MLP에 태워 d차원으로 맞춰주게 됩니다.

2.2 Cross-Modal Interaction

본 절에서는 저자가 제안한 2가지 cross-attention 모듈에 대해 설명드리겠습니다. 해당 모듈에서의 목적은 모델이 각 단어 토큰 하나하나에만 집중하는 것을 방지하고자 문장 전체를 먼저 이해하고 이와 비디오 간의 관계를 파악하는 것입니다. 두 개의 cross-attention 모듈은 위 그림 2에서도 확인할 수 있습니다. 위 쪽 파란색이 local gate, 아래쪽 연두색이 non-local gate라고 보시면 됩니다. 자세히는 아래에서 이어 설명드리겠습니다.

첫 번째 cross-attention 모듈에서는 기존 방법론과 동일하게 비디오 프레임과 단어 토큰(local)간 cross-attention을 수행합니다. 다만 cross-attention 이후 문장 전체 feature를 만들어내고 이로부터 weight를 추출해 gating을 해주게 됩니다. 두 번째 cross-attention 모듈에서는 연산 자체를 Global(non-local)한 문장 feature로 수행하여 좀 더 명시적으로 holistic text understanding을 수행하게 됩니다.

Gated Cross-Attention

두 가지의 cross-attention 모듈 중 첫 번째 모듈입니다. Local gate에 해당한다고 볼 수 있으며, 여기서 local이라 함은 한 문장 전체가 아닌 문장 내 단어 토큰 하나하나와의 attention이라는 의미로 생각해주시면 됩니다.

위 수식 2는 일반적인 cross-attention 연산 과정을 나타냅니다. 비디오 feature F_{v}를 Q로, 텍스트 feature F_{t}를 K, V로 두고 텍스트 토큰들과 연관된 비디오 feature F'_{v}를 뽑아낸 것이라고 볼 수 있습니다. 여기까진 기존 방법론들과 동일합니다.

위에서 계속 언급했던 local gate weight는 위 수식 (3)의 g_{L}를 의미합니다. 위 수식 (3)에서 K^{G}는 수식 (2)에서의 K \in{} \mathbb{R}^{L_{t} \times{} d}를 단어 축으로 평균내어 얻은 d차원의 global feature를 의미합니다. 여기서 \odot{}은 element-wise multiplication을 의미합니다. 결국 비디오 feature와 문장 전체 representation의 element-wise multiplication을 통해 얻은 L_{v} \times{} d 형태의 유사도 map에 sigmoid를 취해 local gate weight g_{L}을 얻을 수 있는 것입니다.

본 모듈에서는 마지막으로 위 수식 (4)와 같이, 수식 (2)의 출력 F'_{v}에 수식 (3)의 출력 g_{L}을 element별로 곱해 두 모달 간의 관계를 전체 문장 관점에서 enhance한 feature V'_{L}을 얻어주게 됩니다.

Anchor-Query Cross-Attention

앞선 모듈에선 Cross-Attention의 대상이 우선적으로는 텍스트 토큰들로 구성되는 문장 feature였다면, 두 번째 모듈에선 한 문장 전체를 아우르는 feature t_{a}를 만들어 이를 Cross-attention의 Q로서 활용합니다. 평균 풀링 \phi{}을 통해 F_{t} \in{} \mathbb{R}^{L_{t} \times{} d}의 feature를 단어 토큰 축으로 평균내어 t_{a} = \phi{}(F_{t}) \in{} \mathbb{R}^{d}를 얻어냅니다. 한 문장을 holistic하게 표현하는 global text anchor를 얻어주는 것이죠.

위 수식 (6)은 두 번째 cross-attention 모듈의 연산 과정입니다. 우선 어텐션의 Q에 W^{K}t^{a}가 들어가 앞서 추출한 문장 feature가고, K, V는 비디오 feature F_{v}가 들어가는 것을 볼 수 있습니다. 다만 이 과정에서 Q, K, V projection에 활용되는 weight가 각각 W^{K}, W^{Q}, W^{V'}에 해당하는데, 처음에는 잘못된건가 싶었지만 앞선 모듈의 수식 (2)에서 사용한 projection weight를 그대로 활용하는 것으로 보입니다. V의 projection weight만 새롭게 선언해서 사용하는 것 같습니다.

위 수식 (6)에서 \text{softmax}(\frac{Q_{a}K_{a}^{T}}{\sqrt{d_{k}}})는 결국 하나의 문장이 비디오 내 각 프레임과 얼마나 유사한지에 대한 정보를 담고 있는 map이 됩니다. 이 유사도 map을 non-local weight g_{N} \in{} \mathbb{R}^{L_{v}}이라 칭합니다.

이렇게 추출한 g_{N}은 위 수식 (5)와 같이 활용됩니다. 수식 (4)에서 얻은 V'_{L}g_{N}을 element-wise로 곱하여 문장과 유관한 프레임은 중요도를 높이고, 무관한 프레임은 영향력을 낮추는 방향으로 모델을 학습시키게 됩니다.

위에서 설명드린 두 개의 cross-attention 모듈은 모두 한 문장 전체를 아우르는 가중치 또는 feature를 만들어 이 정봅를 비디오 feature에 주입해주는 refinement 역할을 수행하였습니다. 방법론은 여기까지 설명드리고 저자가 제안하는 loss를 이어서 설명드리겠습니다.

2.3 Fine-Grained Alignment Loss

저희는 현재 위에서 설명드렸던 local weight g_{L}과 non-local weight g_{N}이, 하나의 문장 단위 관점에서 비디오와 유관, 무관한 부분을 가려내도록 기대하고 있습니다. 하지만 아무런 학습 없이 이와 같은 역할을 하도록 기대하긴 어렵겠죠. 그렇기 때문에 두 가중치가 제역할을 하도록 가이드를 줄 필요가 있고, 이를 위해 저자는 Clip-Level Consistency Loss \mathcal{L}_{clip}을 제안합니다.

미니배치 크기를 B라고 했을 때, 해당 미니배치에는 비디오-텍스트 feature 쌍 \{(F_{v}^{i}, F_{t}^{i})\}_{i=1}^{B}가 존재합니다. 이 상태에서 저자가 제안하는 \mathcal{L}_{clip}은 아래 수식과 같습니다.

수식에서 i, j는 배치 내 인덱스를 의미합니다. 만약 (i=j)이면 라벨링 되어있는 페어를 의미하며, (i \neq{} j)이면 배치 내 다른 비디오 또는 텍스트와의 쌍을 의미합니다. 결국 Contrastive learning loss로 구성되는데, 수식에서 \hat{t}_{a}^{ij}는 위 수식 (6)의 cross-attention 연산을 통해 얻은 enhanced 문장 feature를 의미합니다.

정리하자면 문장의 global feature t_{a}^{i}와, t_{a}^{i}와 비디오의 cross-attention을 거친 feature \hat{t}_{a}^{ij} 간 contrastive learning을 수행하는 것입니다. 배치 내 매핑되어있는 쌍이면 유사도를 크게, 배치 내 다른 쌍이면 유사도를 작게 줄여주는 역할을 수행합니다. 이를 통해 첫번째, gated cross-attention layer의 결과물(수식 5)인 F'_{v}가 구별력을 갖도록 유도하게 됩니다.

2.4 Prediction and Losses

이전 절까지 수행하여 얻은 feature들을 통합해 이제 본격적으로 DETR에 입력해줄 feature O를 만들어냅니다. 전체 N개의 transformer layer로 구성된 모듈의 출력 O_{l}들을 모두 concat하고 다시 d차원으로 project하여 아래 수식 (10)과 같은 O'을 만들어줍니다.

이후 위 수식 (10)에서 얻은 토큰의 channel 축이 아닌 토큰 개수 축에 대해 문장 feature \hat{t}_{a}를 concat하여 DETR Encoder로 들어갈 입력 O를 아래 수식 (11)과 같이 만들어낼 수 있습니다.

여기서부터의 MR, HD 수행 과정과 기본적인 학습 loss는 QD-DETR과 완전히 동일하여 추가적으로는 작성하지 않겠습니다. 궁금하신 분들은 질문 주시면 답변 드리도록 하겠습니다. (또는 제 QD-DETR 리뷰를 참고해주시기 바랍니다.)

3. Experiments

본 방법론의 벤치마킹은 QVHighlights, Charades-STA, TACoS 데이터셋에서 진행되었습니다.

3.1 Main Result

표 1

위 표 1은 QVHighlights 데이터셋에서의 벤치마크 표입니다. QD-DETR, TR-DETR 등 최근 방법론들에 비해 더욱 향상된 MR, HD 성능을 보여주고 있습니다. 당시 arXiv에 게재되어있던 CG-DETR 방법론이 현재 24년도 NIPS에 또 제출되었는데, 그 정도의 최신 방법론과 유사하게 높은 성능을 보여주고 있습니다. 확실히 다른 데이터셋에 비해 문장의 구성이 복잡한 QVHighlights 데이터셋에서 유의미한 성능 향상이 있는 것으로 보아 문장 전체의 의미를 잘 다루는 것이 도움이 된다는 것을 알 수 있었습니다.

표 2

위 표 2는 Charades-STA 데이터셋에서의 벤치마크 성능입니다. DETR 기반 이전 방법론들은 VGG와 C3D를 Visual backbone으로 많이 사용하였는데 이와 동일한 조건에서 비교하고자 해당 세팅에서의 성능도 함께 리포팅하고 있습니다. 마찬가지로 모든 세팅에서 가장 높은 성능을 보여주고 있습니다. 다만 QVHighlights 데이터셋보단 문장의 다양성이 조금 떨어지는 편이라, 성능 향상 폭이 엄청 크지는 않을 것이라 예상했는데 생각보다 큰 성능 향상 폭을 보여주는 것이 인상깊습니다. TACoS 데이터셋에서도 타 방법론에 비해 가장 높은 성능을 보여주고 있습니다.

3.2 Ablation Studies

Gated Cross-Attention
표 4

앞서 cross-attention에 담겨있던 두 가지 weight g_{L}, g_{N}의 사용 여부에 따른 ablation 성능입니다. Non-local만 사용했을 때의 성능이 오르는 것으로 보아 확실히 문장의 단어 토큰 하나씩끼리의 상관관계를 모델링하는 것보다 문장 전체 관점에서 attention weight를 만들어주는 것이 유의미하다는 점을 또 확인할 수 있었습니다. 이와 더불어 두 weight를 동시에 사용했을 때 서로를 refine해준다는 저자의 의도가 맞아떨어진 것으로 보입니다.

Global Text Anchor
표 7

위 표 7은 문장 feature \hat{t}_{a}를 생성할 때 평균 풀링, max pooling 등 여러가지 방식에 따른 성능 ablation입니다. 개인적으로는 문장 내 단어들을 단순히 평균내는 것보다 weighted pooling이나 Transformer를 통해 학습 기반으로 어떤 단어가 중요할지 알아내는 것이 더 높은 성능을 달성할 것으로 예상하였지만, 평균 풀링의 성능이 가장 높았다고 합니다. 저도 문장 단위의 모델링을 시도해보는 중이라 참고해볼만한 결과인 것 같습니다.

4. Conclusion

저자가 지적하는 문제점이 제가 지금 살펴보고자 하는 문제점과 동일하여 좀 더 주의깊게 읽었던 논문입니다. 결국 문장 전체를 다루되 이 문장 feature를 어떻게 만들어낼지 고민하던 찰나에, 그냥 평균 내는 것이 가장 좋았다니 조금 당황스럽긴 하네요. 좀 더 문장 수준의 feature를 잘 만들 수 있는 방법이 있지 않을까 고민해봐야 할 것 같습니다.

리뷰 마치겠습니다.

Author: 김 현우

답글 남기기

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