개발/AI

[논문 리뷰] A joint Sequence Fusion Model for Video Question Answering and Retrieval

yun000 2024. 9. 25. 23:47

<A joint Sequence Fusion Model for Video Question Answering and Retrieval>

 

Abstract

multimodal sequence data 쌍 사이의 유사성을 평가하는 JSFusion(Joint Sequence Fusion)에 대해 소개할 것이다.

JSFusion의 중요한 구성요소는 다음과 같다

1. Joint Semantic Tensor = 2가지 sequence data를 3D tensor로 나타낸다.

2. Convolutional Hierarchical Decoder = 두 sequence modalities사이 은닉층 에서 일치하는 부분으로 유사도를 측정.

잘못 정렬된 패턴은 하향식으로 제거하고 옳게 매치되는 패턴들이 더 많이 생기게 학습시키는 Hierarchical attention mechanisms를 활용했다.

이 연구에서는 video-language작업에 중점을 두고 있다(원래 더 다양한 방식으로도 가능) 

 

+)

Modality = 서로 다른 다양한 데이터

Multimodal learning = 다양한 유형에서 나온 데이터들(modality)들로 학습시킨다.

Multimodal sequence data 쌍 사이의 유사성 = 예를 들어 영상과 텍스트 시퀀스 쌍을 본다면. 해당 영상을 잘 설명하는 텍스트 사이의 유사성을 의미.

Multimodal retrieval = 서로 다른 모달리티로 표현된 데이터를 검색하는것. ex) 텍스트 검색으로 해당 이미지 항목 찾기

 

VQA=video question and answering

LSMDC=Large Scale Movie Description Corpus

 

Hierarchical attention mechanisms = attention mechanism을 쌓아서 여러번 사용

Attention mechanisms=디코더로 출력 단어를 예측 할 때마다 인코더 에서의 전체 입력 문장을 다시 한 번 참고한다. 단 전체 입력 문장을 다 동일한 비율로 참고하는 것이 아니라 이번에 예측해야할 단어와 연관된 부분에 더 attention해서 참고 한다.

 

 

1. Introduction

다양한 Video-language tasks를 해결하기 위해 (그들 사이의 유사성을 찾기 위해) 단어와 frame sequences사이의 내재적 관계를 잘 알아야한다. 이 연구는 attention mechanisms을 통해 하향식 재귀적 데이터 비교로 multimodal sequence data쌍 사이의 유사성을 평가하는 방식으로 접근한다.

 

이제 두가지 중요한 요소 JST와 CHD에 대해 살펴보자

  1. Joint semantic tensor(JST) = 프레임과 단어를 Hadamard products하고 두 데이터 사이의 쌍을 3D tensor로 encode한다. 그 후 JST 모델이 학습된 attention 메커니즘을 이용해 3D matching tensor를 더 정밀하게 개선한다.
  2. Convolutional Hierarchical Decoder(CHD)가 attention-based decoding modules(convolutional layers와 gates로 구성된)를 사용하여 tensor의 local 정렬을 찾아낸다.

이 두가지의 attention mechanisms는 잘 매치된 패턴이 많이 생기게 하고 잘못된것은 하향식으로 제거한다. 마지막으로 CHD는 두 modalities의 계층적으로 조합 가능한 표현을 얻은 후 sequence 쌍의 매칭 점수를 계산한다.

 

이 연구는 LSMDC와 MSR-VTT 데이터셋을 사용했다.

LSMDC에서는 multimodal-choice test(선택지 문제), movie retrieval(영상 검색), and fill-in-the blank(빈칸 채우기 문제) challenge에 참여했다 

MSR-VTT에서는 Multiple-choice(다중 선택)와 movie retrieval annotation를 수행했다.

 

multimodal sequence data 간의 매치 점수를 측정하기 위해 재귀적으로 학습 가능한 attention 모듈을 활용한 첫 번째 시도이다. soft attention in JST과 CHD의 Conv-layers와 Conv-gates를 포함한 두 가지 다른 attention model을 제안한다.

 

+)

Hadamard Products=같은 위치에 있는 원소끼리 곱한다.

Soft attention = 입력의 각 부분에 continuous weight를 할당하는 미분 가능한 메커니즘. 이는 input features의 weighted sum을 생성하며, 여기서 weight는 각 부분의 중요성을 의미. Soft attention은 완전히 미분 가능하여, 역전파를 사용한 end-to-end 학습이 가능

embedding=고차원 벡터를 저차원으로 변경

Dense pairwise embedding=데이터간의 관계를 벡터로 표현

 

 

2. Related Work

Video retrieval with natural language sentences

=다른 연구들과 비교하여 우리의 연구는 두 sequence사이에 관계를 벡터로 표현하고 하향식으로 높은 유사도를 가진 쌍들을 구성한다. 그 후 hierarchical attention mechanism를 사용한다. 

Video Question answering

=이전의 다른 기술들은 문장 정보에 집중하고 시각적 정보를 덜 중요하게 생각한다. 그에 반해 우리 모델은 영상과 문장들 사이의 유사성에 집중한다. 그리고 이 방식으로 좋은 결과를 얻었다.

 

 

3. The joint sequence fusion model

3.1 Preprocessing-영상과 문장 분석 전 전처리

Sentence representation - (문장 벡터로 변경) 각 문장을 단어 수준으로 encode하자. 우선 데이터셋에서 3번이상 나온 단어들을 모아서 단어장 V를 정의한다. 그 후 pretrained glove/42B.300d를 word embedding matrix를 만들기 위해 사용한다. 

  • 문장의 최대 단어 수는 40

Video representation - (영상 벡터로 변경) 비디오를 5fps로 변경 후 CNNs를 사용하여 시각 청각 정보를 encode한다. 시각 정보 분석을 위해 우리는 ImageNet에 미리 train된 ResNet-152의 pool 5 layer로 부터 각 프레임의 feature map을 추출했다. 청각 정보를 위해서는 VGGish 모델을 사용해 feature map을 추출하고, PCA를 적용하여 차원을 축소한다. 그 후 두 features들을 연결한다.

  • 영상의 최대 프레임은 40

3.2 The Joint Semantic Tensor

JST는 두 sequences들 사이 쌍을 3D tensor로 나타낸다. 그 후 JST는 3D tensor에 self-gating mechanism을 적용한다. 두 sequences 사이의 쌍들 중 잘 매치된 것을 찾아서 attention map으로 만들기 위해서이다.

Sequence encoders

단어 시퀀스에는 BLSTM encoder, 영상 프레임에는 CNN encoder를 사용했다. BLSTM encoder은 과거와 미래 상황을 모두 고려하는데 유리하다. h^f는 순방향. h^b는 역방향이다. 각각을 0으로 초기화한 후 입력 features과 은닉층 순방향/역방향 연결로 각 modality의 분석을 얻는다. Visual domain을 위해 우리는 1-d CNN encoder을 사용했다. 

Attention-based joint embedding

그 후 sequence encoder의 출력을 각 modality별 완전 연결 레이어 D1에 입력한다. attention은 비디오나 문장의 어떤 부분이 더 중요한지를 학습하고, 그에 맞춰 가중치를 조정하여 공동 임베딩을 형성한다. 

 

+)

self-gating = input data에 맞게 weight 조절 하여 불필요한 정보를 줄인다 

Dk = fully-connected layers

Convk = convolutional layers

 

3.3 The convolutional Hierarchical Decoder

CHD는 JST의 joint 벡터 공간 특성을 사용하여 multimodal sequence 쌍의 호환성 점수를 계산한다. 그리고 JST 텐서를 여러 합성곱층과 Conv-gating 블록에 통과시키면, kernel들이 각 이전 층의 임베딩에서 일치하는 것들을 점진적으로 찾는다. 즉, CHD는 JST 텐서에서 긍정적으로 정렬된 쌍의 가중치를 높이고, 부정적으로 정렬된 쌍의 가중치는 낮추는 일을 반복한다. 

Conv Layer와 Conv-Gating Layer을 반복적으로 JST tensor에 적용한 후 최종 J(3) tensor에 mean pooling을 적용하여 하나의 비디오-문장 벡터 (J out)을 얻는다. 마지막으로 4개의 밀집층을 통과시켜 유사성 점수를 계산한다. 

  • We use the tanh activation for all dense layers except.
  • ConvGk=k번째 Conv-gating layer / Convk=joint representation을 위한 k번째 Conv layer

 

3.4 An Illustrative Example of How the JSFusion Model Works 


Fig.3을 보면 단어들이 frames 내용에 잘 일치할 수록 attentions이 검게 칠해진다. 

 

Training → 각 Conv layer은 하위 layer에서의 join embedding을 구성하고 

Conv-gating Layer은 비디오 문장 쌍에서 자주 나타나는 매칭 패턴을 학습한다. 

 

Test → Conv-gating layer은 옳은 패턴은 통과시키고 틀린 패턴은 억제하는 필터역할을 한다. 두 시퀀스에 유사성이 낮으면 J(k)가 낮다. 

 

이런 방식으로 CHD는 하위 layer를 필터링 후 마지막으로 전달하고 최종 layer은 두 sequence 사이에 중요한 정렬 패턴이 있을 때만 높은 유사도 점수를 부여한다.

JST모델은 multimodal sequence data간의 3D 텐서를 생성 후 유사성 계산을 위해 CHD Conv gated layers를 사용한다. 

 

3.5 Training

JSFusion을 ranking loss를 사용하여 학습시켰다. 각 training batch는 영상-문장 쌍으로 구성되어있다. Batch shuffling을 매 epoch마다 했으며, max-margin structured loss objective를 사용하여 모델을 train했다. Adam optimizer을 사용해 train했으며 정규화로 batch normalization을 적용했다.

 

3.6 Implementation of Video-Language Models

3가지 tasks들을 살펴보자. video retrieval과 multiple choice test는 같은 JSFusion model을 사용했고 (hyperparameter 값만 조금 다름) fill-in-the-black는 약간의 수정으로 만들었다.

 

  • For retrieval
    = 문장과 영상의 연관성을 위해 1000개의 test 영상을 사용했다. Training을 위해 L=10을 각 training batch 크기로 설정했다. Test에서 각 문장 k로 점수를 계산했다. Score matrix에서 우리는 영상 순위를 매겼다. 
  • For multiple-choice test
    = 우리의 모델이 영상과 각 문장 선택지 사이의 유사성 점수를 계산할 수 있기 때문에 retrieval task와 같은 모델을 사용했다. 가장 높은 점수를 받은것을 선정했다. Training을 위해 L=10으로 설정했다.
  • For fill-in-the-black
    = 단어장 V에서 단어를 선택하는 방식을 사용. 두가지의 수정이 있다.
    1. 더 깊은 차원의 layers 사용
    2. Skip-connection part를 추가했다. b가 빈칸 위치이다.  BLANK(빈칸에 대신 삽입)의 BLSTM 출력을 문맥 정보로 사용한다. D7의 출력과 문맥정보 더하고 그 값을 D8에 입력해서 단어를 예측한다.
    Training에서 L=32, cross-entropy loss사용(classification의 일종이기 때문에)

 

4. Experiments

4.1 LSMDC Dataset and Tasks

LSMDC는 202개의 영상들에서 4-5초 가량으로 잘라낸 118,081개의 영상 클립들과 118,114개의 문장들의 텍스트 쌍 데이터 집합으로 이루어져 있다.

  • Multiple-choice test = 영상에 대한 5개의 후보 문장중에 하나(ground truth)를 고르는 것이다. 평가 지표는 10,053개의 public-test data의 test 질문들에서 맞게 응답된 비율이다.
  • Movie retrieval = test set은 1,000개의 영상/활동 구문 쌍들이다. LSMDC17 public-test data에서 샘플링된. 짧은 활동 구문이 주어지면 1000개의 영상중에서 상응하는 영상을 골라내면 된다. 평가 지표는 Recall@1, Recall@5등을 포함한다. 
  • Movie fill-in-the-blank = 영상 클립을 보여주면 그에 맞게 문장의 빈칸을 채워야 한다. (한 단어) test set은 30,000의 예제들이다. 평가 지표는 prediction accuracy이다.

4.2 MSR-VTT-(RET/MC) Dataset and Tasks

MSR-VTT는 큰 스케일의 영상 묘사 dataset이다.

  • Multiple-choice test= 2990개의 질문들을 생성했다. 각 test video에대해 정답으로 해당 비디오와 관련된 실제 정답을 사용했다.
  • Video retrieval = 1000쌍의 영상과 묘사 쌍을 샘플링했다. (LSMDC와 동일하게)

 

5. Conclusion

Multimodal sequence data 사이의 Hierarchical semantic 유사성을 계산하는 JSFusion 모델을 살펴 보았다. 중요한 두가지 요소는 JST와 CHD였다. 우리의 방식은 LSMDC의 tracks challenge에서 좋은 성능을 보였고 VQA와 MSR-VTT dataset에 retrieval task 관련 최신 모델을 뛰어넘었다. 



 

 

+ attention 기법,ranking loss, max-margin structured loss objective 에 관해 더 공부해볼 예정!