[Arxiv 2026] Support×Operation Factorization: Compositional Readout of Frozen Vision Encoders under Controlled Interventions


1. Vision Encoder는 정말 Compositional할까?

최근 DINOv3나 SigLIP2와 같은 Vision Encoder들은 이미지의 객체, 위치, 속성 등 다양한 정보를 상당히 잘 표현한다고 알려져 있습니다. 그렇다면 여기서 한 가지 질문이 생깁니다. 이러한 정보들이 서로 조합 가능한 형태로 representation 안에 저장되어 있을까요?

예를 들어 이미지의 Object 영역과 색을 반전시키는 Invert라는 변화를 생각해보겠습니다. 모델이 학습 과정에서 Object도 본 적이 있고, Invert라는 변화도 본 적이 있다고 해봅시다. 그렇다면 Object × Invert라는 조합을 한 번도 본 적이 없어도 이를 알아낼 수 있을까요?

저자들은 바로 이 능력을 visual representation의 compositionality 라고 봤다고 합니다. 그리고 이를 조금 더 명확하게 분석하기 위해, 이미지에서 발생하는 변화를 두 가지 factor로 나누었습니다.

  • Support (Where): 변화가 ​어디에서 발생했는가?
    Floor, Wall, Object
  • Operation (What): 해당 영역에 ​어떤 변화가 발생했는가?
    Hue, Invert, Pattern

즉 하나의 visual factor를 단순히 Invert라고 보는 것이 아니라, \text{Support (Where)} \times \text{Operation (What)} 처럼 어디가 어떻게 변했는지의 조합으로 정의한 것이죠

위 그림을 보면 조금 더 이해하기 쉬울 것 같습니다. 저자들은 Floor / Wall / ObjectHue / Invert / Pattern을 조합하여 3×3 grid를 만들고, 이 중 하나의 조합만 학습에서 제외했습니다. 예를 들어 Object × Invert를 제외했다면, 모델은 학습 과정에서 Object 도 여러 번 보았고 Invert 도 다른 영역에서 여러 번 보았습니다. 하지만 ObjectInvert 가 적용된 경우만 처음 보는 상황이 되는 것이죠.

따라서 테스트에서 이 조합까지 맞힐 수 있다면, 단순히 각 training example을 기억한 것이 아니라 이미 알고 있는 WhereWhat을 새로운 방식으로 조합할 수 있다고 볼 수 있습니다.

결국 이 논문에서 살펴보고 싶은건 다음과 같습니다: Frozen Vision Encoder는 단순히 다양한 visual information을 가지고 있는 것을 넘어, 이 정보들을 새로운 Where × What 조합으로 읽어낼 수 있을 만큼 compositional하게 표현하고 있을까?

다음 장에서는 이를 확인하기 위해 저자들이 원본 이미지와 변형된 이미지의 patch representation 차이를 어떻게 분석했는지 살펴보겠습니다.

2. 이미지가 바뀔 때 patch representation의 변화

그렇다면 Where × What 정보는 Vision Encoder의 representation에서 어떻게 찾을 수 있을까요? 저자들은 원본 이미지와 특정 영역에 intervention을 적용한 이미지의 patch representation 차이를 살펴보았습니다

\Delta z = z_{\text{int}} - z_{\text{src}}. 저자들은 이 patch-wise difference를 Innovation Field라고 불렀습니다.

저자들은 왜 원본 feature가 아니라 두 이미지의 차이를 봤을까요?

원본 representation에는 객체, 색상, 배경 등 다양한 정보가 섞여 있지만, 두 이미지에서 실제로 달라진 것은 intervention에 의해 바뀐 부분뿐입니다. 따라서 \Delta z를 보면 “이미지에 무엇이 있는가” 보다 무엇이 바뀌었는가에 집중​할 수 있습니다.

또한 저자들은 global embedding이 아니라 patch token 단위의 변화를 사용합니다. 덕분에 \Delta z에는 자연스럽게

  • Where: 어느 영역이 변했는가?
  • What: 어떤 방식으로 변했는가?

라는 두 종류의 정보가 포함될 수 있게되는거죠. 따라서 Innovation Field에서 Where와 What을 각각 읽어내자는 것이 저자가 제안하는 SO-OPF의 시작입니다.

3. Proposed Method: SO-OPF

앞서 만든 Innovation Field \Delta z에서 저자들은 두 가지 정보를 따로 읽어냅니다.

먼저 Where입니다. 어떤 영역의 patch가 크게 변했는지를 계산하여, 변화가 Floor, Wall, Object 중 어디에서 발생했는지를 찾습니다. 이를 Support Salience A_s로 표현합니다.

다음은 What입니다. 변화가 발생한 영역의 feature를 이용해, 해당 변화가 Hue, Invert, Pattern 중 무엇인지 판단합니다. 이를 Operation Posterior \pi_{s,o}로 표현합니다.

마지막으로 두 정보를 결합해 각 Support × Operation 조합의 score를 계산합니다. E_{s,o}=A_x\pi_{s,o}

되게 복잡하게 말해서 그렇지, SO-OPF의 핵심은 생각보다 간단합니다.

  • A_s: 어디가 바뀌었는가?
  • \pi_{s,o}: 어떻게 바뀌었는가?
  • E_{s,o}: 어디가 어떻게 바뀌었는가?

결국 하나의 classifier가 모든 조합을 직접 외우게 하는 대신, Where와 What을 분리해서 읽고 마지막에 다시 조합하는 구조라고 이해하면 될 것 같습니다.

4. Q 설정: Label과 Factor Grid 연결하기

SO-OPF를 통해 Support × Operation의 3×3 score grid를 만들었지만, 아직 한 가지 문제가 남아 있습니다.

실제 학습 데이터의 label은 단순히 class 0, class 1, … 형태이기 때문에, 각 label이 grid의 어느 위치에 해당하는지 연결해줘야 합니다. 저자들은 이 mapping을 QQ라고 정의합니다.

논문에서는 크게 두 가지 설정을 중요하게 봤다고 합니다.

  • Factorial Q: Object × Invert처럼 각 label이 어느 cell인지 정답 mapping을 알려줌
  • Learned Q: 3×3 구조만 알려주고, label과 cell의 대응 관계는 모델이 직접 학습

따라서 Factorial Q는 representation 자체에 새로운 조합을 읽어낼 정보가 있는지를 확인하는 설정이고, Learned Q는 한 단계 더 나아가 flat label만으로 factor 구조까지 찾아낼 수 있는지를 확인하는 설정이라고 볼 수 있습니다.

이 차이를 기억해두면 이후 실험 결과를 훨씬 이해하는데 도움이 될 것 같네요

5. 새로운 조합을 읽어낼 수 있을까?

저자들은 SO-OPF가 실제로 보지 못한 Support × Operation 조합을 읽어낼 수 있는지 Shapes3D, MuJoCo, COCO 세 데이터셋에서 실험하였습니다.

세 데이터셋 모두 기본적으로 3개의 Support와 3개의 Operation으로 이루어진 3×3 grid를 구성하고, 각 실험에서는 하나의 cell을 제외한 나머지 8개 cell만 학습합니다. Main experiment에서는 frozen DINOv3 ViT-L/16의 patch feature를 사용했습니다 (SigLIP2도 실험에 활용했습니다)

먼저 Factorial Q의 결과를 보면 Shapes3D에서는 0.874, COCO에서는 0.799​의 Injective Cell Accuracy를 보였습니다. 즉, Support와 Operation의 구조를 알려준 상태에서는 학습에서 제외했던 새로운 조합도 상당히 높은 정확도로 읽어낼 수 있었던 건데요

더 재밌는건 Learned Q 라고 합니다. 각 label이 어떤 Support × Operation에 해당하는지 알려주지 않았음에도 Shapes3D 0.769, COCO 0.762​의 성능을 보였고, 실제 factorial grid와 동일한 구조를 복원한 비율도 각각 90.0%, 96.1%​였습니다. (SigLIP2에서도 COCO에서 Factorial Q 0.826, Learned Q 0.751​로 비슷한 결과가 나타났습니다. 따라서 이러한 현상이 DINOv3에만 나타나는 건 아닌거죠?)

여기까지만 보면, Frozen Vision Encoder의 patch representation에는 보지 못한 Where × What 조합까지 읽어낼 수 있는 정보가 어느 정도 존재한다고 볼 수 있을 것 같습니다. 그런데 Table 1을 자세히 보면 이상한 데이터셋이 하나 있습니다. 바로 MuJoCo입니다. 다른 두 데이터셋과 달리 성능이 크게 떨어지고, seed에 따른 collapse도 자주 발생합니다.

왜 MuJoCo에서만 이런 현상이 나타났을까요?

5.1 MuJoCo

table 1에서 DINOv3 기준 Factorial Q의 INJ는 0.452, Learned Q도 0.569​에 그쳤고, 학습이 무너진 collapsed fit의 비율도 각각 66.7%, 43.3%​로 상당히 높았습니다. SigLIP2에서도 비슷한 현상이 나타났기 때문에, 특정 encoder만의 문제라고 보기는 어려웠습니다.

일반적인 many-to-one matching으로 평가하면 MuJoCo의 Learned Q 성능은 0.790으로 꽤 높게 나타납니다. 하지만 저자들이 Hungarian matching을 이용해 각 operation이 서로 다른 slot을 사용하도록 강제하자, 0.790 \rightarrow 0.569 로 성능이 크게 떨어졌습니다. 10개의 seed 중 9개에서 동일한 현상이 나타났습니다.

왜 이런 차이가 생긴 걸까요?

기존 방식에서는 HueInvert처럼 서로 다른 operation이 같은 predicted slot을 사용하더라도 각각 정답으로 인정될 수 있습니다. 즉 실제로는 operation을 제대로 분리하지 못했는데도 accuracy가 높아질 수 있다는 것이죠. 저자들은 이를 Operation Laundering이라고 불렀습니다.

반면 Shapes3D와 COCO에서는 injective scoring을 적용해도 성능 감소가 각각 0.011, 0.002​에 불과했습니다. 즉 MuJoCo에서만 높은 score 뒤에 slot reuse가 상당히 많이 숨어 있었던 것입니다.

그렇다면 MuJoCo 자체가 어려운 이유는 무엇일까요? Supplementary 을 살펴보니까 Pattern은 DINOv3와 SigLIP2 모두 거의 100%에 가까운 성능을 보인 반면, HueInvert에서 성능이 크게 떨어졌습니다.

저자들은 그 원인 중 하나로 intervention 방식의 차이를 언급하였습니다. Pattern은 이미지 위에 직접 적용되는 pixel-space 변화인 반면, HueInvert는 MuJoCo의 material을 수정한 뒤 다시 rendering하기 때문에 lighting이나 renderer의 영향을 함께 받습니다.

즉 MuJoCo의 결과는 Vision Encoder가 언제나 깔끔한 Where × What 구조를 만들어주는 것은 아니며, 어떤 종류의 visual change를 다루느냐에 따라 compositional information 자체가 훨씬 모호해질 수 있다는 boundary를 보여주는 결과라고 볼 수 있을 것 같습니다.

6. 구조화된 Readout이 중요한가?

앞선 결과만 보면 한 가지 의문이 생깁니다. SO-OPF의 성능이 좋은 것이 DINOv3 representation 자체가 좋아서일까요, 아니면 Where × What으로 나누어 읽는 구조가 실제로 중요한 걸까요?

저자들은 이를 확인하기 위해 SO-OPF를 여러 readout과 비교하였습니다.

COCO 결과를 보면 SO-OPF는 0.799의 INJ를 기록한 반면, 일반적인 Bilinear readout은 0.601에 그쳤습니다. 더 단순한 MLP와 Attention probe는 각각 0.049, 0.117로 거의 새로운 조합을 읽어내지 못했습니다.

재미있는 점은 Random-init ViT도 0.573, Raw Pixel도 0.503이라는 꽤 높은 성능을 보였다는 것입니다. 즉 이 task는 좋은 pretrained feature만 있다고 해결되는 것도 아니고, 반대로 SO-OPF 구조만으로 전부 설명되는 것도 아닙니다. 저자들은 representation과 structured readout이 모두 중요하다고 해석합니다.

그렇다면 정말 WhereWhat을 분리하는 factored structure 자체가 효과가 있는지도 확인해야겠죠.

동일한 supervision을 사용했을 때 Factored carrier의 Learned-Q INJ는 0.841, Dense carrier는 0.653이었습니다. 특히 Dense carrier는 일반 score가 0.724였지만 injective evaluation에서는 0.653으로 떨어져 0.071의 Operation Laundering이 나타난 반면, Factored carrier는 0.841 → 0.841로 차이가 없었습니다.

즉 저자들이 WhereWhat을 굳이 분리한 것은 단순한 설계 선택이 아니라, 서로 다른 operation이 하나의 slot을 공유하는 것을 억제하고 새로운 조합을 더 안정적으로 읽어내는 데 실제로 도움이 되었다고 볼 수 있을 것 같습니다

다만 Table 3의 enhanced setting은 operation label까지 supervision으로 사용하기 때문에, 이 결과를 “flat label만으로 factor 구조를 스스로 발견했다”고 해석해서는 안 된다는 점을 주의해야 한다고 하네요

7. Conclusion

이 논문을 읽고 가져갈 한 문장으로는 “Final representation에서 compositionality가 잘 보이지 않는다고 해서, encoder 내부에 조합 가능한 정보가 없는 것은 아니다” 정도가 될 것 같습니다.

저자들은 이미지의 변화를 Where × What으로 분해하고, frozen DINOv3와 SigLIP2의 patch representation에서 학습 때 보지 못했던 새로운 조합까지 읽어낼 수 있음을 보여주었습니다. 특히 단순한 MLP probe보다 WhereWhat을 분리해서 읽는 SO-OPF가 훨씬 안정적인 결과를 보였다는 점도 흥미롭습니다.

즉, compositionality를 분석할 때는 단순히 representation에 정보가 있느냐 없느냐만 볼 것이 아니라, 그 정보가 어디에 존재하고 어떤 방식으로 읽어내야 하는가까지 함께 고민해야 한다는 것이 중요한 메시지인 것 같습니다.


개인적으로 아쉬웠던 점은 현재 사용한 Operation이 대부분 Hue, Invert, Pattern, Blur처럼 비교적 low-level visual change에 집중되어 있다는 점입니다.

우리가 일반적으로 VLM의 compositionality를 이야기할 때 관심을 가지는 것은 dog chasing man ↔ man chasing dog와 같은 relation, not a dog와 같은 negation, 혹은 attribute binding이나 word order처럼 보다 semantic한 변화입니다.

따라서 현재 발견한 Where × What 구조가 이러한 semantic compositionality에서도 동일하게 나타나는지는 아직 확인이 필요해 보입니다.

그럼에도 이 논문은 global representation의 실패를 곧바로 encoder 자체의 실패로 해석해서는 안 된다는 점을 잘 보여준다는 점에서 의미가 있다고 생각합니다. 특히 patch-level representation과 structured readout이라는 관점은 앞으로 Vision Encoder의 compositionality를 분석할 때 꽤 유용한 방향이 될 수 있을 것 같습니다.

이상 리뷰 마치겠습니다!

Author: 홍 주영

Leave a Reply