[ICCV2023]Self-Feedback DETR for Temporal Action Detection

안녕하세요 박성준 연구원입니다. 오늘 제가 할 리뷰는 Self-Feedback DETR로 이번에 KCCV2023에서 포스터가 예정되어 있는 논문입니다. KCCV 2024에 앞서 일정을 훑어보는 중 흥미로워 보여서 읽게 되었습니다.

Introduction

Temporal Action Detection은 untrimmed 비디오 영상 내에서 Action의 구간을 찾고, 그 구간이 어떠한 Action인지를 분류하는 task입니다. 즉, 입력으로 untrimmed video와 action class category가 주어지면 출력으로 untrimmed video내 action이 존재하는 구간과 구간에 해당하는 action을 반환하는 작업을 수행합니다.

저자는 이러한 Temporal Action Detection (이하 TAD)는 영상 내 행동을 분류할 뿐만 아니라 시간 경계로 예측하기에 여러 proposals를 제안해 NMS를 취하는 방법부터 DETR기반의 방법까지 발전했다고 말합니다. DETR은 object detection task에서 큰 영향을 준 방법론으로 End-to-End로 학습하는 Transformer 기반의 방법론입니다. TAD에서 DETR의 쿼리는 시간 간격을 가진 비디오의 action instances로 정의되며, 이를 액션 쿼리(action queries)라고 합니다. 여기서 모델은 액션 쿼리 벡터를 비디오의 관련 시간적 특징에 매핑하여 관심 있는 action을 분류하고 localize하는 방법을 학습합니다. 사전 설정된 쿼리는 실제 instances 간의 pre-set 매핑이 없기에 bipartite matching을 활용하여 쿼리와 실제 instances를 매칭시킵니다. 이러한 bipatite matching은 NMS와 같은 휴리스틱한 방법론들을 사용하지 않음으로 DETR이 end-to-end로 학습할 수 있었다고 말합니다.

하지만, 저자는 위의 original DETR방식은 비디오에서는 몇가지 문제가 있어 잘 작동하지 않는다고 지적합니다. 이는 Dense Attention Mechanism의 실패가 주요 원인으로 추정된다고 합니다. 여기서의 Dense Attention Mechanism은 표준적인 어텐션 연산을 말하며 convolution에서의 locality와 같은 inductive bias가 없습니다. 이런 문제점을 해결하기 위해 기존의 방법론들은 표준 어텐션을 boundary-sensitive module, deformable attention, query relational attention 등의 방법을 통해 해결하려 했습니다.

위의 Figure 1.은 저자가 밝히는 TAD에서의 DETR기반 방법론의 문제 정의를 보여주는 그림으로 DETR 구조에서의 self-attention의 가중치를 보여주고 있습니다. TAD에서의 기존의 방법론들(b, e)은 Transformer의 Encoder와 Decoder의 Self-Attention에서 특정 key와 element에만 집중하게되는 Temporal Collapse 문제(저자가 정의한 용어)가 있다고 말합니다. 이 현상은 모델이 output이 degradation되지 않기 위해 self-attention을 shortcut을 만들어 skip한다는 것을 의미한다고 합니다. 저자는 이러한 문제가 object detection에서는 보이지 않기에(Figure 1. (a, d)) TAD를 위한 DETR기반 방법의 문제점임을 강조합니다. 저자는 이 문제를 해결하기 위해 encoder-decoder의 cross attentin으로부터 피드백을 제공하는 Self-DETR을 제안합니다.

Cross-Attention은 encoder와 decoder 특징 간의 전체 관계를 포함합니다. 저자는 encoder 특징들 간의 유사성이 유사한 decoder query에 얼마나 attended하는지로 간주하고 반대로 decoder 특징들 간의 유사성이 유사한 encoder 특징들에 attended하는지를 간주합니다. 즉, cross-attention은 encoder와 decoder가 서로 어떻게 연관되는 지의 정보를 담고 있습니다. 저자는 cross-attention과 그 전치행렬의 곱셈으로 두가지 guidance map을 얻을 수 있다고합니다. 그리고 이 guidance map과 self-attention map과의 차이를 최소화함으로서 저자가 말하는 Temporal Collapse 문제를 해결할 수 있다고 강조합니다.

정리하면 저자의 Contribution은 다음과 같습니다.

  • TAD task에서의 DETR기반의 방법론은 encoder와 decoder의 self-attention 과정에서 특정 key와 element에만 집중하는 Temporal Collapse문제가 존재합니다.
  • Temporal Collapse 문제를 해결하기 위해 cross-attention map의 정보를 활용하는 것으로 guidance를 생성해 self-attention map을 feedback하는 Self-DETR을 제안합니다.
  • Temporal Collapse 문제를 해결하는 Self-DETR을 통해 THUMOS14데이터셋과 ActivityNet-v1.3.에서 기존 DETR기반의 방법론들의 성능을 뛰어넘는 성능을 보여줍니다.

Method

Figure 2.는 저자가 제안하는 Self-DETR의 구조를 보여줍니다. Object Detection에서의 DETR와 TAD에서의 DETR의 차이점에 대해서 먼저 짚고 Self-DETR의 구조에 대해 설명하겠습니다. 저자의 Self-DETR은 DAB-DETR의 구조를 따라갑니다. DAB-DETR은 Kinetics데이터셋(TAD)에서 3D CNN을 통해 비디오의 feature를 추출합니다. 이때의 3D CNN은 가중치를 freeze하고 비디오의 특징을 추출하는 데에만 사용합니다. 그렇게 추출한 feature는 global average pooling을 마지막으로 거치며 temporal 정보를 남깁니다. video features는 Figure 2.의 DETR Architecture에서의 과정을 거치게 되는데 video features를 transformer의 encoder를 거치고 decoder에서 decoder의 입력인 액션 쿼리와 cross-attention을 거칩니다. 액션 쿼리는 학습가능한 임베딩으로 Moment Retrieval에서의 Moment Query 혹은 Object Detection에서의 object query와 같은 역할을 수행합니다. 마지막으로 decoder의 output을 FFN을 거쳐 untrimmed video 내 action에 해당하는 구간 및 해당 구간의 클래스를 반환합니다.

Figure 1.에서 지적하는 Temporal Collapse 문제는 DETR구조에서 self-attention을 skip한다는 것을 의미하는데 이는 self-attention에서의 expressive relation을 배우지 않고 건너 뛰는 것을 의미합니다. Cross-Attention은 이러한 Temporal Collapse 문제가 식별되지 않았기에 encoder의 특징과 decoder의 쿼리 간의 모든 관계를 포함하고 있으므로 저자는 Cross-Attention map으로부터 guidance를 생성해 guidance 정보를 Self-Attention map으로 정보를 전달해 deformable attention과 같은 방법을 사용하지 않고 표준 attention 연산을 사용하면서 self-feedback 과정을 통해 temporal collapse문제를 해결했습니다.

Cross-Attention의 원래 목표는 decoder 쿼리와 encoder 특징 간의 유사도 점수를 통해 encoder의 특징을 나타내는 것입니다. 따라서 저자는 cross-attention map을 decoder 쿼리 Q와 인코더 특징 K의 상호 관계로 파악합니다. Q의 입장에서는 K의 유사한 부분에 주목하고 K의 입장에서는 Q의 유사한 부분에 주목합니다. 따라서 저자는 cross-attention map과 cross-attention map의 전치행렬을 곱하는 것으로 주목하는 한쪽을 강조하는 guidance map G_DG_E를 생성합니다.

G_D = sqrt(A_CA_C^T), G_E = sqrt(A_C^TA_C)

이렇게 얻은 G_DG_E는 Self-Attention 모듈에 self-feedback하는 것에 활용됩니다. 여기에는 encoder와 decoder의 여러 계층에서 cross-attention과 self-attention을 처리하는 여러 옵션이 존재한다고 말합니다. 이 여러 옵션들은 attention map이 깊어질수록 서로 다른 패턴을 보이기 때문에 하나의 guidance map을 적용하여 모든 self-attention map이 이를 따르게 한다면 표현의 다양성이 줄어든다고 말합니다. 따라서 저자는 Figure 3. 에서 설명하는 방식으로 self-feedback과정을 수행합니다.

Figure 3.에서 설명하는 self-feedback과정은 크게 두개로 나뉩니다. Encoder에서의 Self-Attention Aggregation과 Decoder에서의 Self-Feedback입니다. 먼저 Encoder에서의 Self-Attention Aggregation은 여러 계층의 self-attention map A_i^E을 모아 H를 생성합니다. 이는 recurrent element-wise square-root normalization과 행렬곱연산을 통해 이뤄집니다. 그리고 G_E를 사용하여 L^E_{feedback}을 통해 학습합니다. Self-Feedback in Decoder는 decoder self-attention 모듈이 각 계층 사이에서 직접 self-attention map A^D_l과 guidance map G^D_l사이에서 피드백이 진행되고 guidance map은 행렬곱연산과 element-wise square-root 연산을 통해 생성되어 수행합니다. 저자는 위 두가지 방법을 통해 self-feedback하는 것이 각각의 모듈에서 attention의 패턴을 파악하고 다양성을 유지할 수 있다고 말합니다.

Encoder에서 H^i = sqrt(H^{i-1}{A^i_E}^T)로 H를 생성하고 학습을 위한 손실함수는

L^E_{feedback} = D_{KL}(H||G_E)

Kullback-Leibler (KL) divergence 손실함수를 사용합니다. 즉, H의 분포가 G_E의 분포를 따라가게끔 학습합니다.

Decoder에서 사용하는 손실함수 또한

L^D_{feedback} = \sum^{N_D}_{l=1}D_{KL}(A^l_D||G^l_D)

Kullback-Leibler (KL) divergence 손실함수를 사용합니다. 즉, 각 A^l_D의 분포가G^l_D의 분포를 따라가게끔 학습합니다.

사용하는 최종 손실함수는

L = L_{DETR} + \lambda_EL^E_{feedback} + \lambda_DL^D_{feedback}

으로 DETR 손실함수와 encoder, decoder에서의 KL divergence 손실함수를 합한 형태입니다. DETR 손실함수는 DETR과 동일한 손실함수를 사용하는 것을 의미합니다.

Experiments

저자는 평가를 위해 THUMOS14데이터셋과 ActivityNet-v1.3을 사용했습니다. THUMOS14데이터셋은 TAD를 평가하기 위해 자주 사용되는 데이터셋으로 20개의 Action 클래스를 갖고 있는 데이터셋입니다. ActivityNet-v1.3 데이터셋은 200개의 Action 클래스를 갖고 있는 데이터셋입니다.

먼저 평가지표에 대해 간략히 설명드리겠습니다. TAD task에서 사용하는 평가지표는 프레임당(Per-frame) mAP(mean Average Precision)를 사용합니다. 각 행동의 클래스 별 비디오 내 모든 프레임에서의 평균 정확도(Average Precision)을 구한 후에 모든 클래스에 대한 평균 정확도를 계산하여 mAP를 계산하여 구합니다.

Self-DETR의 THUMOS14데이터셋과 ActivityNet-v1.3에서의 실험결과입니다. THUMOS14데이터셋에서는 SOTA를 달성했고, ActivityNet-v1.3에서는 기존 DETR기반의 방법론들보다 좋은 성능을 기록했습니다.

Ablation Study

Figure 4.는 Self-Attention의 Diversity를 보여줍니다. diversity d(A)는 Attention map A 와 Rank-1 행렬 간의 가까움 정도를 나타내는 것으로 공식으로 표현하면 다음과 같습니다.

d(A) = ||A - 1a^T||

|| \cdot ||l_1, l_{\infty}-composite matrix norm(결합 행렬 norm)을 의미합니다. 위 수식은 A를 Rank-1행렬과 비교하는 것으로 얼마나 다양한 지를 측정할 수 있습니다. Figure 4.를 확인하시면 모델의 깊이가 깊어질수록 DETR은 다양성이 점점 감소하며 0으로 수렴하지만 self-feedback을 거치는 Self-DETR의 경우 모델이 깊어질수록 다양성이 오히려 증가하는 모습을 보이며 저자가 해결하려고 했던 Temporal Collapse 문제가 Self-Feedback과정을 통해 해결되고 다양성이 보장되는 것을 보여주는 ablation입니다.

Table 3.는 Self-Feedback에 대한 ablation study로 encoder와 decoder에서의 feedback 손실함수를 사용해 self-attention map의 분포를 guidance map의 분포와 비슷하게 학습하는 것이 성능에도 많은 영향을 미치는 것을 확인할 수 있습니다. 이는 저자가 주장하는 self-feedback과정을 통해 temporal collapse문제를 해결하는 것이 attention 계층의 다양성을 증가시켰음을 의미합니다.

Table 4.는 guidance map 생성하는 방법에 대한 ablation입니다. 계층별로 행렬곱연산을 통해 guidance map을 생성하는 것이 제일 성능이 좋습니다. average를 통해 생성하는 방법은 다양성을 오히려 해치고 단일화 시킬 수 있어 성능이 낮게 나오는 것으로 추정되고 last같은 경우 attention의 마지막 계층을 사용하는 것인데 average보다는 성능이 괜찮지만 이 또한 다양성을 해칠 수 있어 성능이 낮게 나오는 것으로 추정됩니다.

Table 5.는 self-feedback이 아닌 다른 방식을 사용했을 때와의 비교인데 relative는 relative attention으로 [Self-attention with relative position representations]에서 제안된 방법으로 각 토큰의 상대적인 위치 정보를 임베딩에 추가하여 self-attention하는 연산으로 본 논문에서는 temporal정보를 잘 담을 수 있도록 유도해본 실험으로 보입니다. 결과는 좋지 않은 걸로 보아 효과는 없었던 것으로 생각됩니다. identity는 identity matrix의 형태로 guidance map을 사용한 방법이고 diversity는 figure 4.에서의 다양성을 최대화시키는 방향으로 학습한 것으로 모두 self-feedback에 비해 좋지 않은 성능을 보입니다. 뿐만아니라 그냥 표준 attention 연산보다도 좋지 않은 성능을 보여줍니다.

마지막으로 Table 6.은 손실함수에서 \lambda값에 대한 ablation study입니다. 5, 5를 사용했을 때 가장 좋은 성능을 보여줍니다. 성능 외에는 다른 언급이 없는 걸로 보아 저자가 \lambda값에 대한 분석은 하지 않았나 봅니다.

Conclusion

총 정리하면 저자는 Temporal Action Detection(TAD) task에서 DETR기반의 self-attention 모듈에서의 특정 key와 element에만 집중하여 self-attention의 상호정보를 제대로 활용하지 않는 Temporal Collapse 문제를 발견해 이를 해결하기 위해 Self-DETR을 제안했습니다. Encoder와 Decoder의 Cross-Attention을 Self-Feedback으로 활용하여 Self-Attention에서의 Temporal Collapse 문제를 해결하고 실험결과 SOTA의 성능을 달성했습니다.

현재 제가 연구하고 있는 Moment Retrieval task은 TAD에서 더 나아가 action의 클래스가 주어지는 것이 아니라 자연어 쿼리가 주어지고 자연어 쿼리에 해당하는 구간은 untrimmed video 내에서 찾는 task입니다. 비디오를 다루는 비슷한 task인 TAD에서의 Temporal Collapse 문제가 현재 제가 연구하고 있는 Moment Retrieval에서도 존재하는지 실험해봐야겠네요.

감사합니다.

Author: 박 성준

4 thoughts on “[ICCV2023]Self-Feedback DETR for Temporal Action Detection

  1. 안녕하세요. 좋은 리뷰 감사합니다.

    최근에 DETR, Video에 관심이 가기 시작했는데 마침 이 두개를 모두 다룬 논문을 리뷰해주셔서 읽게 되었습니다. 저는 이 분야에 대해서 잘 모르다보니 Temporal Collapse가 잘 와닿지 못했는데요. Self-Attention에서 특정 key와 element에만 집중하게되는 것이 왜 문제이지? 라는 생각이 들었는데 self-attention에서 특정 key와 element에만 집중한다는 것은 결국 그 특정 key, element가 모델에서 중요하다고 생각이 들어서 그런 것은 아닌지라는 생각이 들었습니다. 이게 문제라는 것을 증명하기 위해서는 어떤 데이터가 들어와도(즉, 중요한 부분이 없는 데이터가 들어와도) 항상 특정 key, element에만 집중하고 있음을 보여야 할 것 같은데 뭔가 논문에서는 그러한 문제에 대해서 어필이 잘 와닿지 않았다는 생각이 들었습니다. 왜 temporal collapse가 문제인지에 대해서 한번 더 설명해주시면 감사하겠습니다.

    감사합니다.

    1. 안녕하세요 주연님 좋은 댓글 감사합니다.

      우선 Self-DETR 연구는 DETR기반 방법론들이 TAD(temporal Action Detection) task에서는 좋은 성능을 보이지 못하는 것을 확인 후, DETR 방법론의 아이디어가 다른 task에서는 잘 작용되는 데 TAD에서만 성능이 좋지 않은 이유가 무엇인지에 대한 탐구에서 시작되었습니다. 이 과정에서 encoder와 decoder에서의 self-attention의 가중치가 특정 key, element에 편향되어있는 것을 확인하고 이를 문제로 삼게됩니다.

      위와 같은 문제를 저자는 모델이 출력의 degradation(퇴화)를 막기 위해 임의로 shortcut을 택하는 현상이라 설명하며 object detection task에서의 DETR은 self-attention에서는 이러한 문제가 발생하지 않는다는 것을 실험을 통해 정성적으로 확인합니다(Figure 1).

      이러한 temporal collapse가 TAD에서 DETR기반 방법론들의 문제인 이유는 video understanding의 관점에서 비디오의 모든 프레임을 활용하는 것이 아니라 특정 이미지, 특정 장면에만 치중하게되면 영상의 온전한 특징(spatial 정보, temporal 정보)을 활용할 수 없기 때문입니다. 영상은 특정 프레임의 중요도가 다른 프레임과의 중요도와 다를 수 있지만, 특정 프레임에 과적합된다면 temporal 정보를 활용할 수 없고 학습 때 보지 못한 영상에 대한 성능이 좋지 않게 됩니다.

      저자가 이러한 내용을 논문에 기술한 것은 아니지만, 비디오에서 temporal 정보가 없다면 image와 다를 것이 없기 때문에 temporal 정보를 잘 활용하는 방법에 대한 연구가 많이 선행되고 있었습니다. 본 논문 또한 기존 DETR기반 방법론들이 temporal 정보를 잘 활용하지 못하고 있었기에 temporal 정보를 활용할 수 있도록 self-feedback과정을 통해 유도한다고 생각해주시면 될 것 같습니다. 저자는 기존 DETR기반 방법론에서 self-feedback과정을 통해 temporal collapse 문제를 해결하는 것으로 성능이 오른다는 점에서 temporal collapse 문제가 TAD에서 critical했음을 증명한다고 주장합니다.

      감사합니다.

  2. 안녕하세요 좋은 리뷰 감사합니다.
    Feedback 과정에서 self-attention 맵의 다양성을 보장해주기 위한 수식적 장치를 설정해두었다는 점이 인상깊습니다.

    우선 가장 첫 번째 그림의 (b), (e)를 통해 기존 DETR 기반 TAL 방법론의 temporal collapse 문제를 보여주고 있는데, 사실 처음에는 잘 와닿지 않았습니다. 보통 TAL은 구간 경계에서의 feature 구별력을 뚜렷하게 가져감으로써 정확한 구간을 찾는 것이 목적이라는 점과, self-attention의 목적도 고려해봤을 때 오히려 특정 시간 대의 표현력을 구별력있게 가져간다면 좋은 것이 아닌가 했는데, 또 골고루 보는 것이 DETR 기반 방법론들 중에서는 가장 좋은 성능을 달성했다고 하니 문제가 맞았나봅니다. 그림 1에서 (b), (e)와 (c), (f)는 모두 같은 비디오 샘플에 대한 self-attention 결과인가요? 만약 저희가 위와 같은 문제를 정의한다면, 좀 더 정량적으로 attention map의 collapse 수치를 측정해 막대그래프를 실제 성능과 함께 보여줄 수 있다면 좋을 것 같습니다.

    두 번째로 궁금한 것이, DETR 기반의 TAL 방법론들은 Optical flow를 사용하지 않나요? 부가적으로 ActivityNet 데이터셋에 대해 유난히 DETR 기반 방법론들이 낮은 성능을 보이는 이유에 대해 저자가 설명한 것이 있는지도 궁금합니다.

    감사합니다.

    1. 안녕하세요 현우님 좋은 댓글 감사합니다.

      우선, 그림 1에서 (b), (e)와 (c), (f)는 모두 같은 비디오 샘플에 대한 학습이 완료된 모델의 self-attention 결과 맞습니다. TAL에서 DETR기반의 방법론을 모두 읽어보지는 않았지만, 본 논문의 related work에 의하면 optical flow를 활용하는 연구를 없었던 것으로 생각됩니다. optical flow를 활용하는 방법보다는 object detection task에서 활용되는 deformable detr에서의 sparse attetion을 활용하는 연구 등이 진행되었습니다. ActivityNet 데이터셋에서 DETR기반 방법론들의 성능이 낮은 것에 대한 저자의 고찰을 기술되어 있지 않습니다. THUMOS에서 성능은 SOTA를 달성한 반면 ActivityNet에서는 기존 DETR방법론들의 성능보다 좋다고만 설명하고 있습니다.
      감사합니다.

답글 남기기

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