안녕하세요. 이번 주 X-Review에서는 25년도 AAAI에 게재된 Audio-Visual Question Answering(AVQA) 관련 논문을 소개해드리겠습니다. 최근 Audio-Visual alignment learning 대한 여러가지 방법론 및 기타 아이디어를 얻어올 수 있는 논문들을 읽고있는데, 최종적으로 해결하고자 하는 task는 AVQA이기때문에 오늘도 AVQA 방법론 관련 논문을 소개해드리고자합니다.
1. Introduction

AVQA task가 무엇인지부터 설명드리겠습니다.
위 그림 1-(A)에 나와있듯, 모델은 사용자의 질문, 비디오를 입력받습니다. 이후 비디오의 시각 정보와 오디오 정보를 잘 이해하여 질문에 대한 답을 올바르게 내뱉는 것이 목적입니다. 이 AVQA를 잘 풀기 위해 기존 연구들은 여러 수학적 기법이나 거대 모델의 parameter-efficient한 튜닝 등 다양한 접근을 시도했지만, 이 접근들은 결국 질문에 답하기 위해 집중해야하는 프레임 내 공간적 영역이나 비디오, 오디오의 시간적 구간을 최대한 정확히 추려내는 것이 목적이었습니다.
그림 1-(B)의 네모쳐진 구간이나 영역을 참고하시면 이해가 빠르실 것 같습니다. 첼로와 관련된 질문이면 질문 유형에 따라 첼로 소리에 집중할 것인지, 첼로가 시각적으로 등장하는 구간에 집중할 것인지 등을 모델에게 학습시키는 것이죠. 위와 같은 방향으로 지금까지 연구가 잘 되어왔지만, 저자는 기존 연구의 2가지 문제점을 제안합니다.
Challenge 1: Incomplete Alignment of Vision and Audio in Time and Space
위 그림 1에서 본것과 같이, AVQA를 잘 수행하기 위해서는 프레임에서 소리가 나는 영역과 오디오 소리 간 정합이 잘 되어야 합니다. 좀 더 정확히 말하면 비디오에서 그 소리가 나는 구간과 구간 내 영역을 모두 알아야한다는 의미입니다. 그러나 저자는 비디오가 담고있는 장면과 오디오 소리는 굉장히 복합적이기 때문에 아직 시-공간 축에서 완전한 정합은 이루어지지 않고 있다고 주장합니다.
Challenge 2: Inappropriate Fusion Weights between Audio and Vision
Challenge 1에서 언급한 비디오-오디오 간 정합은, 어디까지나 텍스트로 구성된 질문을 기반으로 이루어져야합니다. 그리고 질문마다 비디오나 오디오 중 집중해야하는 모달리티가 다르다고 이야기합니다. 다시 그림 1의 두 가지 질문을 보면, 질문 1은 시각보단 오디오를, 질문 2는 오디오보단 시각 정보를 더 주의깊게 살펴봐야 제대로된 대답을 할 수 있습니다. 따라서 기존 방식처럼 단순히 두 모달리티에 동일한 가중을 두는 것은 sub-optimal 하다는 주장입니다.
위 두 가지 문제를 해결하기 위해, 저자는 Audio-Visual Adaptive Fusion Network (AVAF-Net)을 제안합니다. Challenge 1을 해결하기 위해 AVAF-Net은 temporal alignment contrastive loss와 spatial alignment contrastive loss를 제안합니다. 각각은 visual-audio 정보를 시간 축에서, 공간 축에서 align하는 것이 목적입니다. 사실 가장 중요한 것은 대조학습에서 pos, neg 쌍 지정일텐데요, 자세한 내용은 뒤에서 살펴보겠습니다.
다음으로 Challenge 2를 해결하기 위해, 질문 기반으로 visual-audio 모달리티 간의 가중치를 만들어냅니다. 앞서 이야기한대로 질문에 따라 visual 또는 audio 정보에 집중해야하는 정도가 다르다는 점을 모델링해주는 것입니다. 최종적으로는 가중이 고려된 audio-visual cue(feature)를 답변 분류에 사용합니다. 키워드를 정리해보면 대조학습 및 모달 간 가중치 부여가 되겠네요.
2. Method
2.1 Data Representation
먼저 비디오, 오디오, 텍스트 feature 추출 방식입니다.
Visual Representation
비디오를 1초 단위의 겹치지 않는 segment 총 T개로 쪼개줍니다. 오디오도 비디오의 초단위로 붙어있으니, \{v_{t}, a_{t}\}_{t=1}^{T}로 표현할 수 있습니다. 비디오와 관해서는 segment에 있는 한 프레임을 freeze된 CLIP image encoder에 태워 patch-level feature f_{p}^{t} \in{} \mathbb{R}^{N \times{} D}를 추출합니다. 이들을 시간축으로 다 합친 feature는 F_{p} = \{f_{p}^{1}, f_{p}^{2}, \cdots{}, f_{p}^{T}\} \in{} \mathbb{R}^{T \times{} N \times{} D}로 표현됩니다.
Audio Representation
오디오 segment a_{t}에 대해서는 사전학습된 VGGish 모델을 가져와 세그먼트당 D차원짜리 feature f_{a}^{t}를 추출합니다. 마찬가지로 F_{a} = \{f_{a}^{1}, f_{a}^{2}, \cdots{}, f_{a}^{T}\} \in{} \mathbb{R}^{T \times{} D}입니다.
Question Representation
질문 텍스트 Q를 입력받아, M개 단어로 토큰화하여 CLIP text encoder에 태워주게 됩니다. 여기서 [EOS] 토큰을 sentence-level feature F_{q} \in{} \mathbb{R}^{1 \times{} D}, 전체 단어 토큰으로 구성된 word-level feature F_{w} \in{} \mathbb{R}^{M \times{} D}를 얻어줍니다.

위 그림 2는 저자가 제안하는 AVAF-Net 전체를 보여줍니다. 방금 설명드린 feature extraction 이후 Temporal Alignment Contrastive Learning – Audio-Visual Clue Mining – Spatial Alignment Contrastive Learning – Question Oriented Adaptive Fusion – Answer Prediction 순으로 구성되어있습니다. 각 단계별로 하나씩 확인해보겠습니다.
2.2 Temporal Alignment Contrastive Learning
본 TACL 모듈을 통해 복잡한 비디오 속 프레임과 오디오 feature간 temporal 정합을 맞춰줍니다. 비디오의 같은 시간대에서 오디오를 가져왔는데 뭐하러 정합을 맞추는지 생각하실 수도 있지만, 그 시간대를 라벨 삼아 대조학습을 진행하는 과정이라고 봐주시면 좋을 것 같습니다. 두 모달리티의 backbone이 다르기때문에 임베딩 공간을 동일하게 만들어주는 학습을 명시적으로 해주겠다는 것이죠.
먼저 patch-level visual feature F_{p} \in{} \mathbb{R}^{T \times{} N \times{} D}와 audio feature F_{a} \in{} \mathbb{R}^{T \times{} D} 각각을 linear function에 태워줍니다. 이후에는 visual feature를 patch-level로 평균내어 frame-level visual feature F_{v} = \{f_{v}^{1}, \cdots{}, f_{v}^{T}\} \in{} \mathbb{R}^{T \times{} D}를 얻어줍니다.
이후에는 F_{p}와 F_{a}간 interaction matrix F_{s} \in{} \mathbb{R}^{T \times{} D}를 얻어줍니다. 이 과정이 정확히 나와있진 않은데, 아마 패치와 오디오간 유사도를 구하고, 이 유사도 weight를 기존 patch-level feature에 곱해준 뒤 patch 축으로 평균낸 것으로 보입니다.
이렇게 얻은 f_{v}, f_{a}, f_{s}를 활용해 아래와 같은 TACL을 적용합니다.

수식에서 \mathcal{L}_{d}는 L1 distance를 의미합니다. 특정 segment 인덱스 i에 대해, 나머지 segment j들과의 유사도 거리를 조절하는 것입니다. 수식 (1)은 audio-visual feature space가 audio-audio, visual-visual 간 temporal 정보와 유사하게 만들어지도록 학습합니다. 다음으로 수식 (2)는 audio간 시퀀스가 audio 기반의 patch-level feature와 유사해지도록 만들어줍니다. 사실 이 loss가 i, j가 멀리 떨어져있을때도 유의미할까 생각해보았는데, segment가 멀면 또 먼대로 높고 낮은 상관관계를 보충해주는 역할을 할 듯 합니다.
2.3 Audio-Visual Clue Mining
본 모듈에선 질문을 기준으로 잡아내야하는 핵심 clue를 visual-audio 모달리티에서 잘 포착하도록 만들어줍니다. 예를 들어 “Is the cello in the video always playing?” 이라는 질문이 입력되면, 모델은 visual 중 “cello”와 관련된 여러 clue들을 잘 잡아내도록, audio 중 “always playing”과 관련된 여러 clue들을 잡아내도록 도와주는 것입니다. 이를 위해 저자는 AVCM 모듈을 제안합니다.
마치 모듈의 이름까지 붙여 특별한 기법이 있는 것처럼 보이지만, 실제로는 그냥 word-level feature F_{w}를 활용한 Cross-Attention이 전부입니다.

Patch-level feature F_{p}와 audio feature F_{a}를 F_{w}와 CA 연산하여 특정 단어 토큰에 집중하도록 개선된 F'_{a} \in{} \mathbb{R}^{T \times{} D}, F'_{p} \in{} \mathbb{R}^{T \cdot{} N \times{} D}를 얻는 것입니다.
2.4 Spatial Alignment Contrastive Learning
SACL에선 두 가지 포인트를 개선하고자 합니다. 첫 번째는 질문과 유관한 visual area에 집중하는 것, 두 번째는 그 visual area와 유관한 audio feature를 연관시키는 것입니다. SACL의 loss는 매칭된 question-visual 영역 쌍과 audio-visual 영역 쌍을 강조하도록 학습합니다.

위 수식에서 \otimes{}와 \varphi{}는 각각 행렬곱과 threshold를 의미합니다. 먼저 수식 (6)에서 question feature와 patch-level feature간 유사도 s_{i}^{qp}를 구해줍니다. 이후 수식 (7)에선 사전에 정해둔 threshold \varphi{}를 기준으로 question-related visual regions A_{i}^{qp}와 question-irrelated visual regions B_{i}^{qp}를 나눠줍니다. 패치가 문장과 연관 있는지 없는지 분류해주는 것이죠.
다음으로 수식 (8)에서 s_{i, m}^{qp, +} \in{} A_{i}^{qp}, s_{i, j}^{qp, -} \in{} B_{i}^{qp}를 의미합니다. l_{i}^{qp}는 프레임 내에서 문장과 유관한 패치의 문장-패치 유사도는 크게, 무관한 패치의 문장-패치 유사도는 작게 만들어줍니다. 그리고 이 값을 모든 프레임에서 구하고 평균내어줍니다. 위 수식으로 구한 \mathcal{L}_{Spat1}은 질문과 visual patch 간 유사도를 기준으로 loss를 구한것이고, 동일 방식으로 audio와 visual patch 간 loss \mathcal{L}_{Spat2} 또한 학습해줍니다. 즉 \mathcal{L}_{Spat} = \mathcal{L}_{Spat1} + \mathcal{L}_{Spat2}입니다.
2.5 Question-Oriented Adaptive Fusion
다음으로 QOAF 모듈은 앞서 언급했던 바와 같이, 질문에 따라 visual과 audio간 모달리티 가중을 다르게 두는 역할을 수행합니다. 이를 위해 먼저 아래와 같이 question과 강하게 연관된 visual, audio feature를 추출합니다.

여기서 F''_{p} \in{} \mathbb{R}^{M \times{} D}, F''_{a} \in{} \mathbb{R}^{M \times{} D}입니다. 실질적으로 visual, audio feature라기보단 visual, audio feature가 고려된 각 모달리티로부터의 clue feature라고 보는 것이 좋을 것 같습니다.
다음으로 위에서 뽑은 두 feature를 활용해 두 모달리티 간 가중치를 뽑아냅니다.

수식 (12)에서 question feature를 Weight()에 넣어 \delta{}_{1}, \delta{}_{2}를 추출하는데, Weight()가 무엇인지 얘기를 안해줍니다. 아마 MLP와 같은 단순한 모듈로 보입니다. 추가로 \delta{}_{1}, \delta{}_{2}의 범위 제한에 대한 이야기도 따로 없어서, 아마 학습가능한 scaling factor의 역할도 수행하는 것 같습니다. 마지막으로 수식 (13)에서는 앞서 뽑은 weight를 가중치로 삼고, fused audio-visual feature F_{fuse} \in{} \mathbb{R}^{M \times{} D}를 얻습니다.
2.6 Answer Prediction
최종 분류는 open-ended 방식입니다. 데이터셋의 질문 풀에는 개수 세기, 위치 파악, 존재 유무 등등 여러 형태의 답변이 나올 수 있는 질문들이 포함되어있는데요, 위치 파악 문제라고해서 [‘왼쪽’, ‘가운데’, ‘오른쪽’] 이렇게 3개 중 하나로 분류하는게 아니라 여러 유형의 질문에 대한 답변 총 42(=C)개(예. [‘왼쪽’, ‘가운데’, ‘오른쪽’, ‘1’, ‘2’, …, ‘네’, ‘아니오’])를 전체 리스트로 두고 분류를 수행합니다.
아무튼 직전 절에서 얻은 F_{fuse}를 FC layer + Softmax에 태워 확률 p \in{} \mathbb{R}^{C}를 얻어 argmax를 최종 예측값으로 사용합니다.
학습 과정에서 최종 loss는 아래와 같습니다.

3. Experiments
3.1 Datasets
학습, 평가엔 MUSIC-AVQA, MUSIC-AVQA-Real 데이터셋을 활용하였습니다. MUSIC-AVQA 데이터셋은 유튜브에서 수집한 악기 연주 비디오들로 구성되어있으며 일부 비디오는 문제를 만들기 위한 합성 샘플입니다. MUSIC-AVQA-Real 데이터셋은 MUSIC-AVQA에서 사용하는 합성 데이터셋이 noise로 작용하기에 합성 샘플을 제외하고 real video만을 학습, 평가에 쓰는 방식입니다. 이를 통해 좀 더 robust한 모델의 성능을 평가할 수 있게됩니다.
3.2 Results

표 1, 2는 각각 MUSIC-AVQA-Real, MUSIC-AVQA 데이터셋에서의 벤치마크 성능입니다. 일단 두 벤치마크 모두에서의 평균 성능은 SOTA를 달성하고 있습니다. 여기서 볼만한점은 MUSIC-AVQA-Real과 MUSIC-AVQA 성능을 비교했을때 보통은 후자의 데이터셋엔 합성 데이터가 껴있어 성능이 1.87%, 2% 이상씩 떨어지지만, 저자가 제안하는 AVAF-Net은 1.6%밖에 떨어지지 않는다는 것입니다. 이를 통해 저자의 방법론이 타 방법론에 비해 noise에 대한 robustness가 강함을 주장합니다.
3.3 Ablation Studies

위 표 3은 모듈별 ablation 성능을 보여줍니다. 모듈별로 눈에 띄는 성능 향상 폭을 가져온건 AVCM, QOAF 정도로 볼 수 있겠네요. 먼저 AVCM은 Cross Attention을 통해 질문과 연관된 visual, audio feature를 뽑는 과정이었습니다. 사실 직전에 리뷰했던 QA-TIGER의 실험에서도 볼 수 있었듯, 입력 question에 대한 지속적 모델링이 성능 향상에 큰 도움을 주는 것을 확인할 수 있었습니다. 마찬가지로 QOAF도 질문 feature를 visual, audio feature와 연관되도록 만들어준 뒤 모달리티별 가중을 만들어주는 역할이었습니다. QOAF 모듈이 큰 성능 향상을 일으킨 것은 맞는데, 여기서 feature간 연관성을 지어준 것이 큰 성능 향상을 불러온 것인지, 아니면 모달리티별 가중을 둔 것이 큰 성능 향상을 불러온 것인지까진 이야기하고있진 않아 아쉽습니다.

다음으로 표 4는 SACL 모듈에서 질문과 유관한 패치의 threshold \varphi{}를 어떻게 둘 것인지에 관한 ablation 성능입니다. 표에서 \varphi{} 값에 대한 실험 후보군이 촘촘해서, 너무 dataset-specific한 것같다는 공격을 받았을지 모르겠습니다. 사실 성능 편차도 그렇게 크지 않아 차라리 \varphi{}에 따른 유관, 무관 패치 분포 등등을 시각화하거나 통계값을 주었으면 좋았을 것 같은데, 분석적인 실험 결과가 논문에 아예 없습니다.
4. Conclusion
최근 AVQA 논문들을 읽으며 계속 question feature에 대한 중요성을 느낄 수 있었습니다. 여러 기법을 적용해도 성능 향상 폭이 적었는데 question feature를 좀 더 명시적으로 쓰는 순간 1.5% 이상의 성능 향상이 일어나는 사례들이 많은 것 같습니다.
본 논문에서는 방법론에 대한 분석적인 실험 및 결과들이 없어 아쉽네요. 제가 적어둔 실험 이외엔 loss balance factor 실험밖에 없었습니다. 이상으로 리뷰 마치겠습니다.
안녕하세요 현우님 좋은리뷰 감사합니다.
흠 뭔가 생소한 부분이 많아서 그런지 이해하기 쉽지 않네요.. 간단하게 궁금한점이 있는데
SACL 방법론에서 사전에 정해둔 threshold 를 사용하는 부분이 존재하는데, 이것 때문에 data specific 하다는 생각을 현우님도 그렇고, 저도 들었지만 그럼에도 좋은학회에 붙은 이유가 있을까요? SOTA 방법론이고 question에 대해 audoi와 visual featrue들에 연관을 구한 그런 직관적인 방법론이 맘에 들어서인지 그런 점들이 궁금합니다.
그리고 비디오, 오디오 텍스트라고 하더라도 가장 중요한 모달리티가 비디오라고 생각해서 SACL 방법론에서 우선적으로 질문과 visual patch의 유사도를 구한 후 visual & audio 유사도를 맞추는 방식을 채택한것인가요?
감사합니다.
안녕하세요. 리뷰 잘 보았습니다.
그림2의 전체적인 프레임워크를 훑어보다가 문득 궁금증이 생겨서 질문 드립니다. Temporal alignment를 맞추는 과정에서 t=1에서의 visual feature가 a1과는 positive, 그외의 a2~aT까지는 negative로 설정이 되는 것 같은데, 저 그림2의 예시가 특정적이라서 그럴 수 있습니다만 v1과 v2, v3가 모두 시각적으로 매우 유사해보여서요. 만약 진짜 저런 상황에서는 a1~a3은 서로 다른 오디오 정보가 담길지라도 v1과 v2, v3가 모두 유사한 visual token이 추출되는 바람에 이를 억지로 contrastive learning한들 얼만큼 효과가 있을지 모르겠다는? 생각이 들긴 합니다.
특히나 저 악기 연주는 사람들의 손만 바쁘게 움직이고 배경과 전반적인 scene context는 상당히 정적이라서 더더욱 시각적 차이가 없고, 또 temporal alignment에 대한 loss 계산식에는 visual token을 patch 차원으로 평균을 내 TxD의 shape으로 구성하느라 image의 global 정보만을 활용하여 더더욱 그 분간이 어려울 것으로 판단됩니다. 물론 예시가 저런 정적인 예시라서 그럴 수 있을 듯 하지만 image-level로 temporal alignment를 학습시키는 것이 과연 옳을까라는 생각이 문득 들어 현우님의 생각이 듣고 싶어 질문 남깁니다.
그리고 마지막으로 CLIP Encoder와 VGGish Encoder가 파라미터 수 차이가 어떻게 되나요? 이게 두 latent space를 같은 공간으로 정합시키려고 억지로 유사도 계산해도 모델의 capa가 차이가 나면 무슨 짓을 해도 동일 latent space로 가지지를 않더라구요. 저자들도 이를 의식해서 두 encoder의 모델 크기를 비슷하게라도 맞추었는지 궁금하네요.
감사합니다.