지난주 리뷰와 마찬가지로, Text-Video Retrieval 페이퍼에 대해 리뷰해보겠습니다.

- Conference: ICCV 2023
- Authors: Pandeng Li, Chen-Wei Xie, Liming Zhao2, Hongtao Xie, Jiannan Ge, Yun Zheng, Deli Zhao, Yongdong Zhang
- Affiliation: University of Science and Technology of China, Alibaba Group
- Title: Progressive Spatio-Temporal Prototype Matching for Text-Video Retrieval
1. Introduction
Text-Video Retrieval(TVR) 은 문장 하나를 입력하면, 그에 맞는 비디오를 찾는 연구입니다. 그런데 기존 모델들은 문장 전체와 비디오 전체를 하나의 벡터로 바꿔서 비교해왔습니다. 이 방식은 단순하지만, 문장 전체와 비디오 전체를 통째로 매칭하기 때문에 전역적 정보에만 집중할 수 밖에 없습니다. 즉, 하나의 문장이 비디오 전체를 설명한다고 가정하는 ‘1:1 대응’ 구조였던 것이죠. 그러나 비디오는 여러 프레임으로 구성되어 있다보니, 하나의 비디오에 여러 문장이 대응할 수 있습니다.

기존의 일부 연구는 비디오를 여러 이벤트(event)로 나누어 문장과 동적으로 대응시키는 방식을 시도했지만, 여전히 객체 수준의 세부 정보(object-level detail)는 반영되지 못했다고 합니다. 예를 들어 상단 그림처럼 “아기가 고양이 꼬리를 가지고 논다”라는 문장에서 중요한 것은 ‘꼬리(tail)’인데, 단순한 이벤트 단위 정렬로는 이러한 세부 요소를 포착하기 어렵죠.
그래서 저자들은 비디오를 세부적인 단위로 쪼개서 단계적으로 이해하는 방법을 제안했습니다. 먼저 비디오의 각 프레임에서 중요한 객체(예: 아이, 고양이, 꼬리)를 뽑고, 문장에서도 대응되는 구(ex. 고양이의 꼬리)를 찾습니다. 이렇게 만들어진 객체·구 단위의 정보가 1단계 매칭(Object-Phrase Matching)입니다.
그 다음 단계에서는 이 객체들이 시간에 따라 어떻게 변하는지를 분석하여, 여러 이벤트(event)를 형성합니다. 예를 들어 “고양이를 만진다 → 고양이가 뛰어간다” 같은 흐름이죠. 이렇게 만들어진 이벤트 단위 표현을 문장 전체와 다시 정렬(Event-Sentence Matching)하여, 문장 의미에 맞는 비디오 구간을 더 정확히 찾을 수 있게 설계했다고 합니다.

정리하면, ProST는 단순히 ‘전체 비교’가 아니라, 공간적으로(어디서 어떤 객체가 등장했는지) 시간적으로(어떤 순서로 사건이 일어나는지) 두 단계를 통해 텍스트와 비디오를 보다 정교하게 매칭하는 프레임워크입니다. 자세한 설명 시작하겠습니다.
2. Method
2.1 Framework
ProST의 전체 구조는 아래 그림에서 볼 수 있습니다. 이 프레임워크는 크게 CLIP 기반의 백본과 두 가지 프로토타입 매칭 모듈로 구성되어 있습니다.

먼저 입력 비디오 v_i는 일정 간격으로 L개의 프레임을 uniform하게 샘플링하여 feature를 추출합니다. 각 프레임에서 추출된 패치 토큰들은 X_i = \{x_C^l, x_{T_1}^l, \cdots, x_{T_K}^l\}_{l=1}^L 입니다. 여기서 x_C^l은 프레임 전체를 대표하는 [CLS], K는 패치의 개수이며, D는 임베딩 차원입니다.
텍스트 t_i는 문장의 시작과 끝을 명시하기 위해 [SOT], [EOT] 토큰을 추가한 후, Y_i = \{y_S, y_{T_1}, \cdots, y_{T_M}, y_E\} 로 인코딩됩니다. 여기서 y_E는 문장 전체를 대표하는 글로벌 텍스트 토큰, M은 단어의 개수입니다.
이렇게 얻은 비디오·텍스트 임베딩은 이후 저자가 제안하는 두 단계의 프로토타입 매칭 과정을 거치게 됩니다.
2.2 Object-Phrase Prototype Matching
ProST의 첫 번째 단계인 Object-Phrase Prototype Matching 을 설명하겠습니다. 우선 저자들은 “문장과 비디오가 실제로는 완전히 일치하지 않는다”는 점에서 출발합니다. 예를 들어, 하나의 문장은 비디오의 특정 구간이나 일부 객체만 설명할 수 있으며, 나머지 장면은 문장 내용과 직접 관련이 없을 수 있습니다.
그러나 기존 연구들은 이런 local한 세부 정보를 제대로 포착하지 못하는 한계가 있었습니다.
그래서 저자들은 시공간 정보를 한 번에 처리하는 대신, 공간(spatial)과 시간(temporal)을 분리하여 단계적으로 정렬하는 접근을 제안했습니다. 즉, 먼저 비디오의 객체(object)와 텍스트의 구(phrase)를 대응시키는 공간적 매칭을 수행한 뒤, 그 결과를 다음 단계(Event-Sentence Matching)에서 시간적 확장으로 이어가도록 설계한 것이죠.
(1) Spatial Prototype Generation (SPG)
먼저 비디오의 각 프레임은 패치 단위 토큰으로 표현됩니다. 하지만 모든 패치가 의미 있는 것은 아니죠, 배경이나 불필요한 영역은 오히려 혼선을 줄 수 있습니다. 그래서 저자들은 중요한 객체 중심 패치만 선택적으로 통합해 ‘객체 프로토타입(Object Prototype)’을 만드는 방식을 제안했습니다.

이 과정을 수식으로 표현하면 다음과 같습니다.

- X^l \in \mathbb{R}^{(K+1)\times D}: l번째 프레임의 패치 토큰
- W_o^l \in \mathbb{R}^{(K+1)\times N_o}: 각 패치의 중요도를 예측하는 가중치 (FC + ReLU로 구성)
- P_o^l \in \mathbb{R}^{N_o \times D}: 최종적으로 얻어진 object 프로토타입 집합
즉, W_o^l이 어떤 패치가 중요한지를, 이를 X^l에 곱해 중요한 공간 정보를 집약한 P_o^l를 얻는 것이죠
텍스트 쪽에서도 동일하게 적용합니다. 문장 내 단어 토큰들 중 의미적으로 연관된 것들을 묶어 구(phrase) 프로토타입 P_p \in \mathbb{R}^{N_p \times D}을 만듭니다. 예를 들어 “a boy holding a cat’s tail”이라는 문장에서 “boy”와 “cat’s tail”이 각각 하나의 phrase prototype으로 표현되는 식이죠.
즉, SPG 단계에서는 비디오 패치는 object 단위의 프로토타입으로, 텍스트 단어 토큰들은 phrase 단위의 프로토타입으로 압축됩니다.
(2) Object-Phrase Matching
이제 각 프레임의 object 프로토타입과 텍스트의 phrase 프로토타입을 서로 비교해 매칭 정도를 계산합니다. 저자들은 기존의 token-wise interaction (토큰 단위 비교) 대신, prototype-wise interaction (프로토타입 단위 비교)을 적용하였습니다. 이 방식은 각 object-phrase 쌍의 유사도를 더 안정적으로 계산할 수 있었다고 하네요
매칭 과정은 다음 수식과 같습니다:

- N_o: object 프로토타입 수
- N_p: phrase 프로토타입 수
- L: 비디오의 프레임 수
이 식이 의미하는 것은 다음과 같습니다: (1) 각 object 프로토타입 P_o^l와 phrase 프로토타입 P_p 간의 유사도를 계산 (2) 모든 프레임(L개) 중 가장 유사한 프레임을 선택 (3) 모든 phrase 중 가장 유사한 쌍을 선택 (4) 이를 모든 객체 프로토타입에 대해 평균내어 최종 매칭 스코어s_{op}을 산출
이 과정을 통해, 단순히 문장 전체와 비디오 전체를 매칭하는 것이 아니라, object 단위–phrase 단위의 세밀한 공간 정렬을 수행할 수 있게 됩니다.
2.3 Event-Sentence Prototype Matching
이제는 ProST의 두 번째 과정을 설명하겠습니다. 바로 시간적 정렬(temporal alignment)을 수행하는 부분입니다. 앞선 Object-Phrase Matching이 비디오 내 “어떤 Object가 어떤 phrase와 대응되는가”를 학습했다면, 이번 단계에서는 이 객체들이 시간에 따라 어떤 사건(event)을 구성하는가를 이해하고, 그 사건 단위 표현을 문장 전체와 매칭하는 역할을 합니다.
(1) Temporal Prototype Generation
기존 방식은 보통 모든 프레임의 특징을 평균(mean pooling)하거나, 간단한 시간 인코더(temporal encoder)를 추가해 비디오 전체를 하나의 전역 벡터로 요약했습니다. 하지만 이런 접근은 두 가지 한계를 갖습니다.
- 세밀한 객체 변화나 지역 정보를 잃게 되고,
- 비디오 전체를 하나의 feature로만 표현하기 때문에 “하나의 문장 ↔ 하나의 비디오” 관계만 학습하게 된다는 점
이에 저자들은 프레임별 객체 프로토타입을 점진적으로 통합하여, 비디오의 다양한 사건(event)을 포착할 수 있는 이벤트 프로토타입(event prototype)을 생성하는 방식을 제안했습니다.

(2) Frame-level Prototype Formation
먼저 각 프레임에 대해 앞서 얻은 object 프로토타입 P_o \in \mathbb{R}^{(L \times N_o) \times D}을 입력으로 받아, 프레임 단위의 feature P_f \in \mathbb{R}^{L \times D}을 생성합니다. 이 과정은 “객체 간 상호작용”을 반영하기 위해 masked attention을 사용하였다고 합니다

- Q_f: 프레임 쿼리
- K_o, V_o: object 프로토타입에 대한 key와 value
- M_f: 프레임 간 attention 범위 설정을 위한 마스크
이때, 마스크는 프레임 내 object 간 관계만 학습하도록 제한하기 위해 정의되며,

즉, 프레임 i에 속한 객체끼리만 attention이 작동하게 하여, 프레임 단위로 명확한 공간적 경계를 유지하게 하였다고 합니다. 또한, 모델의 안정성을 높이기 위해 프레임의 global 토큰 x_C^l과 프레임 프로토타입 p_f^l을 평균하여 통합하였습니다.

(3) Event-level Prototype Formation
다음으로, 여러 프레임 간 관계를 학습하기 위해 Dynamic Event Decoder가 사용됩니다. 이 디코더는 시간축을 따라 프레임 프로토타입들 간의 상호작용을 학습하며, 비디오 내 다양한 사건(event)을 표현하는 이벤트 프로토타입 P_e \in \mathbb{R}^{N_e \times D}을 생성합니다.

- Q_e: 이벤트 쿼리 (learnable tokens)
- K_f, V_f: 프레임 프로토타입에 대한 키, 밸류
즉, 각 이벤트 쿼리가 프레임 단위 표현을 보며, 비디오 내 시간적 변화(예: 객체 이동, 행동 순서)를 기반으로 다양한 사건 표현을 학습하는 구조입니다. 여러 이벤트 쿼리를 사용함으로써, 모델은 하나의 비디오에서 다양한 사건적 의미(semantic diversity)를 자연스럽게 포착할 수 있도록 설계하였다고 합니다.
(4) Event-Sentence Matching
이제 생성된 이벤트 프로토타입과 텍스트 문장을 정렬해야 합니다. 저자들은 하나의 비디오가 여러 문장으로 설명될 수 있다는 점을 고려하여, 문장 전체의 전역 표현 y_E을 문장 프로토타입(sentence prototype)으로 사용했습니다.
이벤트-문장 매칭은 다음과 같습니다

즉, 문장과 가장 유사한 이벤트 프로토타입을 선택하여 최종 매칭 점수 s_{es}을 계산합니다.
이는 ‘문장 하나가 비디오의 여러 사건 중 어느 부분과 가장 잘 맞는가’를 동적으로 찾아내는 과정이라 할 수 있습니다.
3.4. Training and Inference
ProST의 학습은 InfoNCE loss를 기반으로 진행됩니다. 전체 학습 Loss는 Object-Phrase와 Event-Sentence 매칭의 양방향 유사도(text→video, video→text)를 모두 고려한 것으로 정의됩니다.

- S_{op}: object-phrase 매칭 유사도,
- S_{es}: evnet-sentence 매칭 유사도,
- \mathcal{L}_{t2v}, \mathcal{L}_{v2t}: 각각 텍스트→비디오, 비디오→텍스트 방향 Loss

Inference
추론 시에는 학습된 두 매칭 점수를 가중합으로 결합합니다. 즉, 이벤트–문장 유사도(s_{es})에 object-phrase 유사도(s_{op})를 더해 최종 점수를 계산하죠.

여기서 \beta는 공간적 매칭(object–phrase)의 비중을 조절하는 하이퍼파라미터입니다.
이 단순한 결합 방식 덕분에 ProST는 공간적 정밀도와 시간적 일관성을 모두 반영한 검색 결과를 얻을 수 있었다고 합니다.
3. Experiments
3.1 Experimental Settings
Dataset
MSRVTT, DiDeMo, VATEX, LSMDC
3.2 Comparison with State-of-the-art Methods
Table 1. Results on MSRVTT 9k Split

MSRVTT 9k split 실험에서 ProST는 기존 방법들보다 전반적으로 가장 높은 성능을 기록했습니다. 특히 Text-to-Video Retrieval 기준 R@1에서 48.2%로, TS2-Net(47.0%) 대비 1.2% 향상되었고,
Video-to-Text Retrieval에서도 46.3%로 TS2-Net(44.3%)보다 2.0% 우수한 결과를 보였습니다.
또한 MnR(12.4)이 낮게 나타나, 검색 과정에서 오류에 강인함을 확인할 수 있었다고 합니다.
이러한 결과는 ProST가 단순한 프레임 단위 통합보다 객체 수준의 공간적 세부 정보와 시간적 이벤트 다양성을 효과적으로 활용했음을 보여줍니다.
Table 3. Results on DiDeMo

ProST는 DiDeMo 데이터셋에서 R@1 47.8%로, TS2-Net 대비 3.1% 향상된 성능을 보였습니다.
이는 짧은 클립 간의 구문적 차이가 큰 DiDeMo 특성상, ProST의 세밀한 Object-Phrase Matching이 잘 작동했음을 의미한다고 하네요
Table 4. Results on VATEX

VATEX 데이터셋에서는 R@1 1.5% 향상(51.4% → 52.9%)을 기록했습니다. 이 데이터는 일상 활동을 묘사하는 영상이 많아, ProST의 Event-Sentence Matching이 시간적 맥락 이해에 효과적으로 기여한 것으로 보인다고 합니다.
Table 5. Results on LSMDC

LSMDC는 영화 장면 기반의 복잡한 서술형 데이터셋으로, ProST는 R@1 1.1% 향상(25.8% → 26.9%)을 달성했습니다. 이는 모델이 영화처럼 장면 전환이 빈번하고 서술이 복잡한 비디오에서도 시간적 사건 표현의 일반화 능력을 유지함을 보여주는 것이라고 하네요
3.3 Ablation study
Table 6. Ablation Study

Ablation 결과, Object-Phrase Prototype Matching(OPPM)과 Event-Sentence Prototype Matching(ESPM)을 각각 제거했을 때 R@1이 최대 2.6% 하락했습니다. 이는 두 모듈이 공간적 세부 정보(OPPM)와 시간적 사건 정보(ESPM)를 서로 보완적으로 학습함을 보여주는 것이라고 합니다.
또한 Temporal Prototype Generation(TPG)을 제거하거나 raw feature만 사용한 경우, 시간적 다양성과 정렬 안정성이 감소해 성능이 전반적으로 저하되었습니다.
Table 7 — Prototype Configuration Analysis
저자들은 프로토타입의 개수와 구성에 따른 성능 변화를 분석했습니다.

Spatial prototype(공간 프로토타입)을 너무 많이 두면 불필요한 지역적 노이즈(local noise)가 포함되어 성능이 떨어지고, 반대로 너무 적으면 의미 표현력이 부족했습니다. 실험 결과, 가장 좋은 성능은 이벤트 프로토타입을 3개 사용했을 때 나왔으며, 이는 텍스트 의미의 다양성과 균형이 맞기 때문이라고 설명했습니다. 즉, 적절한 수의 프로토타입이 세밀한 시각 정보와 전체 의미를 모두 포착하는 데 중요하다는 결론입니다.
Figure 5 — Hyperparameter β Analysis
β는 공간적 매칭(Object-Phrase)과 시간적 매칭(Event-Sentence) 간의 가중치를 조절하는 하이퍼파라미터입니다.

β가 증가할수록 초기에는 세밀한 공간적 정보 활용이 늘어나 성능이 향상되지만, 지나치게 커지면 지역 정보에 과도하게 집중해 전체적인 의미 이해가 깨지고, 성능이 감소했다고 합니다. 즉, 적절한 β 값에서 공간-시간 정보가 균형 있게 작동할 때 최적의 성능을 낼 수 있음을 보여주는 ablation study 였습니다.
4. Summary
(기존 연구의 한계) 기존 Text-Video Retrieval 연구들은 주로 비디오와 문장을 하나의 전역 벡터(global feature) 로 변환한 뒤 비교하는 방식해서, 비디오-텍스트 사이 정교한 매칭이 가능하지 않았습니다. 이는 비디오의 세밀한 객체 수준 정보(object-level detail) 를 놓치고, 하나의 문장이 비디오 전체와만 대응된다고 가정하는 1:1 매칭 한계가 있었습니다.
(저자가 제안하는 해결 방식) 매칭 과정을 두 단계로 분해(decomposition): Object-Phrase Prototype Matching (공간 정렬 단계) & Event-Sentence Prototype Matching (시간 정렬 단계). 전자는 비디오의 각 프레임에서 object prototypes 을 생성하고, 문장의 의미 단위인 phrase 프로토타입과 대응. 후자는 프레임 간 관계를 학습해 event prototypes 을 점진적으로 생성하고, 문장 전체와의 관계를 학습함으로써 동적인 시간적 사건 표 을 포착. 결과적으로 “공간적으로는 세밀하게, 시간적으로는 점진적으로” 텍스트와 비디오를 정렬하는 ProST 방법론 제안