안녕하세요 오늘은 ICLR 2025에 게재된 See What You Are Told: Visual Attention Sink in Large Multimodal Models 라는 논문을 보려 합니다.
간단하게 말하자면, LMM에서 실제로는 중요하지 않은 visual token이 높은 attention을 가져가는 현상을 분석하고, 이 attention을 다시 유의미한 visual token 쪽으로 재분배하는 방법을 제안한 논문입니다!
바로 리뷰 시작하겠습니다!
1. INTRO
이 논문이 보려는 문제는 간단하게 말하자면 LMM이 이미지를 볼때 attention이 실제로 필요한 visual evidece에 제대로 쓰이고 있냐?! 입니다.
LMM의 파이프라인은 보통 vision encoder가 이미지를 visual token으로 바꾸고 그 token들이 LLM decoder 안으로 들어갑니다. 그 후 답을 생성할 때는 text token이 visual token을 attention으로 참조하는 형식입니다.
예를 들자면 Question이 is there a bird라면 이 bird와 관련된 text토큰이 인풋된 이미지에서 bird가 있는 위치의 visual token에 높은 어텐션을 주는 것이 LMM에 기대하는 정상적인 동작입니다
multimodal의 입력을 처리할 때 visual token과 text token 사이의 attention weight는 각 text token이 어떤 visual 정보를 얼마나 참조하는지를 나타냅니다.
아래의 fig1의 왼쪽 위처럼 bird라는 text token을 처리한다면 모델은 이미지 속 bird와 관련된 visual token에 집중합니다! 직관적으로 말하자면 즉 각 text token이 자신과 관련된 visual token을 주로 봐야 한다는 점이죠!

하지만 저자들이 이 attention map을 한번 확인해보니 뭔가 이상한 부분을 봤다고 합니다!
그게 뭐냐면 ! 앞서 기대하는 것 처럼 bird같은 부분에도 attention이 가긴 가지만 질문의 내용과는 전혀 상관 없는 몇몇 visual token에도 굉장히 높은 attention이 반복적으로 나타나는 점을 포착했다고 합니다.
위 그림에서도 볼수 있다 싶이 bird, person, banana, bowl처럼 서로 다른 text token의 어텐션맵을 그린 것 임에도 불구하고 실제 object 위치에 attention이 가는 동시에 빨간 박스로 표시된 전혀 상관없는 위치에도 강한 attention이 반복해서 나타납니다!
여기서 더 중요한 부분은 이게 특정 질문에서 우연히 나오는 특징이 아니라 어떤 text token을 보더라도 거의 같은 visual위치가 계속 튀어나온다는 점입니다!
즉 저 위치가 진짜로 중요한 visual information이라서 attention을 받는건지, 아님 뭔진 모르지만 모델 내부 구조 때문에 그냥 attention을 빨아들이는 token인건지가 핵심 질문이 되는 것 입니다!
저자들은 이 현상을 분석하기 위해 먼저 해당 visual token의 hidden state를 분석했더니 특정한 몇개의 dimension의 activation값이 다른 token들과 비교해서 꽤나 비정상적으로 크게 나타났다고 합니다.
저자들은 이 현상이 LLM분야 쪽에서 알려져 있는 attention sink와 매우 비슷하다고 봅니다.
attention sink는 LLM에서 줄바꿈 토큰처럼 semantic 정보 자체는 크지 않은 token이 특정한 dimension에 massive activation이 발생한다~ 라는 문제인데, 저자들은 이 현상이 visual token에서도 똑같은 현상이 나타난다고 합니다. 심지어 이 massive activation이 생기는 dimension도 base LLM의 sink dimension과 동일하다는 것을 뒤쪽 실험에서 확인합니다.
따라서 이 문제는 단순하게 우연히 attention이 높은 background patch가 아니라 LLM의 attention sink성질이 multimodal model의 visual token으로 확장된 현상이다~ 라고 간주하고 이 문제를 visual attention sink라고 부릅니다
일단 여기까지는 이상한 토큰이 존재한다! 라는 관찰인데 저자들은 한단계 더 중요한 검증을 합니다.
이 visual sink token들이 실제로 모델 예측에 중요할까? 라는 걸 확인하기 위해 sink token에서 text token으로 가는 attention을 막아버립니다.
만약 그 token이 진짜로 중요한 image evidence였다면 성능이 크게 떨어지겠죠!
그런제 실제로 저자들이 확인해보니 거의 성능이 안 떨어지는것을 확인합니다! 즉 visual sink token은 attention weight자체는 높지만 실제로 이 output에 대한 기여가 작다는 것을 의미합니다.
저자들은 이 발견으로 이후에는 단순한 masking실험 뿐만 아니라 residual stream으로 전달되는 실제 contribution까지 계산해서 이 sink token의 기여도가 다른 visual token보다 훨씬 낮다는 것을 확인합니다!
이 부분이 이 논문에서 가장 중요한 분석 포인트인것 같은데
보편적으로 attention map을 보고 모델이 여기를 봤다!, 이 영역이 중요한 evidence다! 라고 말하기가 쉬운데 이 논문은 attention weight가 높다고 해서 그 token이 모델 출력에 실질적으로 중요한 정보다!! 라고 볼수는 없다는 것을 직접적으로 보여주기 때문입니다!
저자들은 이 부분을 집중해서 그럼 어차피 sink token이 모델 답변에는 그닥 도움을 주지는 않으면서 attention만 많이 먹고 있다면, 그냥 이걸 냅다 버리는게 아니라 surplus attention(남는 attention resource, attention budget)라고 보고 이 attention을 실제 image content를 담고있는 visual non-sink token들에게 다시 나누어주자고 합니다!
이 부분이 저자들이 제안하는 방법론인 VAR(Visual Attention Redistributio)입니다!
VAR은 아무 attention head에서 냅다 redistribution 하는 것이 아니라 image-centric head를 찾아서 진행합니다. 이 이유는 transfomer의 어떤 attention head는 비주얼 정보를 많이 처리할수 있지만, 또 어떤 head는 언어적인 관계를 처리하는것을 담당하기 때문입니다.
따라서 이렇게 attention head들이 서로 역할이 다르기 때문에 아무 head를 전부 visual token쪽으로 강제로 attention을 옮기면 오히려 모델 성능이 부서질수 있기 때문에 어떤 head가 원래부터 image 정보를 많이 처리하는지를 찾아내서 진행하는 것 입니다!
(실제로 ablation실험으로 모든 헤드에 redistribution을 적용해 본 실험이 있는데 성능이 0까지 떨어지는 경우가 나온다고 합니다..!)
여기서 이 image-centric head를 찾는 아이디어도 visual sink랑 연결되어 있습니다
visual sink도 visual token이기 때문에 이 sink에 attention을 왕창 주는 head가 있을수 있고, 그렇기 때문에 단순하게 visual token에 attention을 많이주는 head를 냅다 고르면 안됩니다.
그래서 저자들은 전체 visual attention 중에서 sink가 아닌 visual token에 얼마나 attention을 주는지를 계산해서 visual non-sink ratio를 만들고, 요 비율이 높게 측정된 head를 image-centric head로 선택합니다!
즉 단순히 이미지를 많이보는 head를 냅다 선택하는 것이 아닌 실제 image content쪽을 많이보는 head를 찾겠다는 것이죠!
그 다음으로 는 선택된 image-centric head에서만 sink token의 attention을 일부 회수해서 visual non-sink token들로 다시 나누어줍니다!
여기서 중요한 점은 아무 visual token에 똑같이 나누어 주는 것이 아니라 원래 어텐션이 높았던 non-sink token이 더 많이 받을 수 있도록 기존 relative importance를 유지 하면서 redistribution를 한다는 점 입니다!
그래서 모델이 새 정보를 얻는 것이 아니라 이미 encoder와 projector를 거쳐서 들어와 있던 동일한 visual representation을 가지고 decoder내부에서 어느 visual token에 얼마나 접근할지를 바꾸는 방식입니다!
저자들의 주장은 visual 정보가 중요한 task에서 성능이 나쁜 이유를 무조건적으로 비전 인코더가 정보를 보존하지 못했다거나 이미지의 해상도의 이슈라고 보는 것이 아니라 정보가 이미 model내부에 들어와 있어도 decoder가 그 visual 정보에 attention을 비효율적으로 배분하고 있기 때문에 제대로 활용하지 못할 수도 있다!! 입니다
따라서 저자들은 crop이나 외부 expert(ex. detector..)같은 추가 inference 같은 것을 전혀 사용하지 않고 attention map만 수정해서 여러 benchmark의 성능과 hallucination을 개선합니다!
PRELIMINARIES
다음으로는 visual attention sink를 본격적으로 살펴보기 전에 저자들이 어떤 attention을 보고 있는지 Fig.2를 통해 간단하게 짚고 넘어가겠습니다!

위의 fig2는 왼쪽은 어디까지의 attention을 볼 것인지를 설명하고, 오른쪽은 그 attention에서 발견한 이상한 token을 까보니 hidden state가 이렇게 생겼더라! 를 보여줍니다.
오른쪽의 hidden state activation 그래프를 보면 빨간색의 irrelevant token과 초록색의 <BOS>에서 같은 특정 dimension의 activation이 크게 튀고, 또 파란색의 relevant visual token에서는 그렇지 않다는 것을 볼수 있습니다.
여기서 요런 빨간색 token을 sink다!! 라고 어떻게 정의하는지, 어떻게 정량적으로 구분하는지는 다음 섹션에서 살펴보겠습니다
VISUAL ATTENTION SINK

앞쪽 인트로에서 잠시 봤던 이 fig1를 다시 살펴보겠습니다.
앞에서 봤던 것처럼 모델은 bird나 banana처럼 실제 text token과 관련된 영역에 attention을 주는 동시에, 빨간색으로 표시된 전혀 상관없는 visual token에도 높은 attention을 주고 있습니다.
여기서 저자들이 더 중요하게 본 부분은 이 irrelevant visual token들이 어떤 text token을 보고 있느냐와 관계없이 거의 고정된 위치에서 반복적으로 나타난다는 점입니다.
즉 단순하게 grounding이 부정확해서 엉뚱한 곳을 보는 것이라기 보다는, 저 특정 visual token 자체에 계속 attention을 끌어당기는 어떤 고유한 특성이 있을 수 있다고 본 것입니다!
따라서 이 섹션에서는 도대체 저 irrelevant visual token 자체에 어떤 특성이 있고, 그럼 LMM안에서 저게 무슨 의미를 가지는 지를 본격적으로 석합니다!
1. INVESTIGATING THE PROPERTY OF IRRELEVANT VISUAL TOKENS
먼저 인트로에 언급한 이 massive activation을 이용해 visual sink token을 어떻게 정의하고 구분하는지를 살펴보겠습니다
[ How to distinguish irrelevant visual tokens? ]
그럼 irrelevant visual token을 어떻게 구분할 수 있을까요?
저자들은 먼저 irrelevant visual token이 text token이 바뀌어도 거의 같은 위치에서 반복적으로 나타난다는 부분에 집중합니다!
예를들어 fig1(해당 대제목 아래)을 살펴보면 text token이 knife일 때나 cup일 때나 모델은 동일한 irrelevant visual token에 계속 높은 attention을 줍니다.
즉 이 token이 특정 text와 semantic하게 관련되어 있어서 attention을 받는 것이 아니라, 해당 visual token 자체가 attention을 끌어당기는 어떤 고유한 특성을 가지고 있을 수 있다고 본 것입니다.

그래서 저자들은 attention map 자체가 아니라 이 irrelevant visual token의 hidden state를 직접 분석합니다. 위의 fig2. 오른쪽에서 irrelevant visual token, relevant visual token, 그리고 기존 LLM의 대표적인 sink token인 <BOS>의 hidden state를 비교하면서 이 token이 왜 반복적으로 높은 attention을 받는지 확인합니다!
따라서 저자들인 이 hidden state에서 나타나는 고유한 activation 패턴을 기준으로 irrelevant visual token을 구분할수 있는지를 살펴봅니다!
[ Irrelevant visual tokens have high activation in specific dimensions. ]
분석해보니 위의 fig2의 오른쪽 처럼 irrelevant visual token의 hidden state에서는 특정 dimension에서 massive activation이 나타납니다
여기서 그냥 이상한 activation이 있네~! 로 끝났다면 아직 attention sink라고 부르기 애매한데, 결정적인 게 그 dimension이 기존 LLM의 sink token인 <BOS>에서 massive activation이 발생하는 dimension과 동일했다는 점 입니다.
그래서 저자들은 visual token 중 일부가 우연히 attention을 많이 받는다라기 보다는 base LLM이 원래 가지고 있던 attention-sink 특성과 연결되어 있을 가능성이 높다고 보는 것 입니다
하지만 여기까지는 단순하게 그래프를 보고 크다!작다!하는 수준이기 때문에 이 이 massive activation을 하나의 수치로 만들어주어야 합니다! 그게 아래의 수식인 ϕ(x)로 sink dimension value입니다.

수식은 좀 복잡해 보이지만 의미는 간단합니다. 수식의 인자들을 간략하게만 보자면 다음과 같습니다
- x: 해당 token의 hidden state vector
- d: hidden state의 dimension index
- d_q: 그중 sink dimension의 index
- D: hidden state의 전체 dimension 수
그냥 직관적으로 보자면 전체 hidden state의 크기로 한 번 normalization한 뒤, base LLM에서 미리 알려진 fixed sink dimensions만 확인해서 그중 가장 크게 튄 activation이 얼마인지를 보는 것입니다
(x[d_q]: sink dimension의 activation, 루트내부 : 전체 hidden state의 RMS 크기, max: 여러 sink dimension 중 가장 큰 값 선택)
즉 그냥 activation 값이 큰지를 보는 것이 아니라 이 토큰의 전체 hidden representation과 비교했을 때 sink dimension만 유독 얼마나 비정상적으로 튀는지! 를 숫자로 만드는 것 입니다
이 값을 이용해서 위 fig2의 예시의 오른쪽 그래프의 좌상단처럼 relevant visual token의 sink dimension value는 5.8인 반면, irrelevant visual token은 54.7, <BOS>는 51.6을 볼수 있는데, 즉 irrelevant visual token이 단순히 attention만 이상하게 높은 것이 아니라 hidden state 자체도 기존 LLM의 sink token과 굉장히 유사한 특성을 가진다는 것을 보여주는 것이죠!
[ Sink dimension value can separate irrelevant visual tokens from relevant visual tokens. ]
이에 따라 다음으로는 이 sink dimension value를 이용해서 실제 irrelevant visual token과 relevant visual token을 구분할 수 있는지 살펴봅니다!
저자들은 각 visual token에 대해 앞에서 계산한 sink dimension value와 해당 token이 받는 attention weight를 함께 비교해서 아래의 fig3.(a)처럼 scatter plot으로 나타냅니다

위의 그림의 (a)를 보면 특히 높은 attention을 받고 있는 visual token들이 sink dimension value를 기준으로 두 그룹으로 꽤 명확하게 나뉘는 것을 볼 수 있습니다.
하나는 sink dimension value가 낮은 그룹이고 다른 하나는 sink dimension value가 확 튀는 그룹입니다
즉 똑같이 attention을 많이 받고 있다고 하더라도 sink dimension value가 낮은 visual non-sink token과 sink dimension value가 비정상적으로 높은 visual token을 구분할수 있다는 것을 의미합니다.
따라서 저자들은 이 두 그룹을 나누기 위해 threshold τ를 두고 아래의 수식과 같이 sink token을 정의합니다!

(여기서 x(l-1)_j는 ℓ번째 layer에 들어가는 j번째 token의 hidden state를 말하고, ϕ(x)는 앞에서 계산한 sink dimension value입니다)
간단하게 말하자면 해당 token의 sink dimension value가 threshold보다 크면 sink token으로 분류하는 것이고 이후 실험에서는 τ=20로 설정합니다.
그리고 위의 값(I,좌항의 )은 visual token뿐만 아니라 <BOS> 같은 text 쪽 sink token도 모두 포함될 수 있기 때문에 이 중에서 vistoken만 따로 뽑아서 아래처럼 진행해 줌으로 visual sink token이라고 최종 정의합니다.

그럼 반대로 나머지 vis tokene들은 visual non-sink token이 됩니다
여기서 한가지 중요한 점은 sink token을 정의할 때 attention weight 자체는 조건에 들어가지 않는다는 점입니다!
sink dimention value가 높으면 어텐션이 낮은 token도 정의상 visual sink token에 포함될 수 있는데 이런 토큰들은 애초에 attention자체가 작아서 모델에 미치는 영향도 작기 때문에 저자들은 이후 분석에는 크게 고려하지 않는다고 합니다.
즉 앞에서 눈으로만 보던 irrelevant visual token을 sink dimension value에 threshold를 두는 방식으로 정량적으로 구분할 수 있게 만들어 주는 것 입니다
2. ANALYSING THE CHARACTERISTICS OF VISUAL SINK TOKENS
앞서 visual sink token을 어떻게 정의하고 찾아낼지를 봤다면 다음으로는 그 visual sink token이 기존 LLM의 sink token처럼 실제로 output에 중요하지 않은지를 살펴봅니다!
이걸 확인하기 위해 저자들은 두가지 실험을 진행합니다
- visual sink token을 못 보게 막았을 때 실제 성능이 떨어지는지
- visual sink token이 text token의 residual stream에 실제로 얼마나 기여하는지
단순히 hidden state의 모양이 sink token이랑 비슷하다~! 에서 끝나는 것이 아니라 실제로 모델 동작에서도 sink처럼 별로 쓸모없는 token인지를 검증합니다!

[ Token Masking Experiment. ]
먼저 가장 직관적으로 visual sink token을 아예 못 보게 해봅니다.
정확히는 visual token 자체를 이미지에서 삭제하는 것이 아니라 text token이 visual sink token을 attend하지 못하도록 attention을 masking하는 것 입니다. 즉 sink token에서 text token으로 정보가 전달되는 길을 막는 셈입니다!
만약 이 visual sink token이 실제로 중요한 visual information을 담고 있다면 이렇게 막았을 때 당연히 성능이 크게 떨어져야겠죠!
하지만 위의 fig3(b)를 보면 visual sink token을 마스킹했을 때는 원래 모델과의 성능 차이가 거의 없는 것을 볼수 있습니다. (점선이 원래 모델의 성능)
반면에 비교를 위해 동일한 개수의 random visual token을 마스킹 했을때는 성능이 확 떨어지는 것을 볼 수 있는데, 단순히 visual token몇개를 지워도 모델이 괜찮다! 가 아니라 특히 visual sink token을 제거했을 때만 영향이 거의 없다는 것을 의미합니다!
요 실험으로 visual sink token은 높은 attention을 받고 있음에도 실제 모델 response에는 거의 기여하지 않는 token이라는 것을 확인합니다!
[ Contribution Analysis. ]
앞의 마스키이 실험을 통해 visual sink token을 막아도 실제 성능이 거의 안 떨어진다! 를 확인했다면, 이번에는 한 단계 더 들어가서 이 token이 실제로 text token의 residual stream에 얼마나 기여하는지를 확인합니다!
저자들은 visual token j가 text token i에 전달하는 attention contribution을 아래처럼 계산합니다

위의 수식을 직관적으로 보자면 attention weight만 보는 것이 아니라, 그 attention을 통해 실제로 text token 쪽으로 전달되는 representation의 크기까지 같이 보는 것 입니다
- αi, j: text token i가 visual token j에 주는 attention weight
- x_j : 해당 visual token의 hidden state
- W_OV : 그 정보를 attention output으로 변환하는 projection
- ||~|| : 최종적으로 전달되는 contribution의 크기
즉 앞에서 계속 말했던 것 처럼 attention weight가 높다고 실제 기여도까지 높은 것은 아닐 수 있기 때문에 이번에는 실제 residual stream으로 얼마나 전달되는지를 보는 것 입니다!
fig3(c)를 보면 visual sink token의 attention contribution은 다른 visual token에 비해 확실히 낮게 나타나는 것을 확인할수 있는데, 이 부분은 visual sink token은 attention weight 자체는 높게 받고 있지만 실제로는 text token의 representation을 업데이트하는 데 전달하는 정보량은 매우 작다!는 것을 다시한번 확인한 것 입니다
fig3(d)에서는 visual sink token을 제거하기 전과 후의 attention map도 같이 비교합니다.
visual sink token을 제거하고 나면 기존에 빨간색으로 보이던 irrelevant한 높은 attention영역이 사라지고 상대적으로 실제 query와 관련된 visual 영역이 더 명확하게 남는 것을 볼수 있습니다
결국 앞의 마스킹 실험과 이번의 contribution분석을 합치면 visual sink token은 높은 attention을 받지만 → 제거해도 성능에 거의 영향이 없고 → 실제 residual stream contribution도 낮다!! 라는 것을 확인한셈 입니다!
즉 저자들은 high attention = 실제로 중요한 visual information이라도 단순하게 해석하면 안된다고 분석을 통해 보여줍니다!
3. SURPLUS ATTENTIONS IN VISUAL ATTENTION SINK: CAN WE RECYCLE THEM?
앞서 살펴본 것을 바탕으로 visual sink token은 높은 attention을 받고 있음에도 실제 아웃풋에는 거의 기여를 하지 않는다는 것을 확인했습니다
저자들은 여기서 한가지 아이디어를 떠올립니다!
어짜피 별로 쓸모없는 sink token이 attention을 많이 차지하고 있다면 이 attention을 그냥 낭비하지 말고 실제 visual information을 보는 데에 다시 사용하는것을 어떨까?! 입니다!
기존의 연구들에서 LMM이 text에 비해 img에 충분한 attention을 주지 않는 문제가 있다고 분석되어 왔기 떄문에 저자들은 sink token이 가져가고 있던 attention을 일종의 남는 자원인 attention budget으로 보고 img쪽으로 다시 재분배 해보고자 합니다.
그리고 visual sink token은 단순히 attention budget을 얻는 것에만 사용되는 것이 아닙니다.
앞에서 봤듯이 visual sink token은 attention은 높지만 현재 text token과 관련된 semantic information은 거의 없다싶이 하기 때문에, 저자들은 반대로 visual non-sink token이 sink token보다 실제 image content에 더 가까운 토큰이라고 봅니다
요 부분을 이용하면, 어떤 attention head가 단순히 visual token에 attention을 많이 주는지를 보는 것이 아니라 그 중에서도 visual non-sink token에 얼마나 attetnion을 주고 있는지를 통해 해당 헤드가 실제 img정보에 얼마나 집중하고 있는지를 판단할수 있다고 합니다!
직관적으로 정리하자면 (visual sink token이 낭비하고 있는 attention → attention budget으로 회수), (visual non-sink token에 대한 attention → 실제 image를 보는 head를 찾는 기준으로 활용)을 하는 것 입니다!
이 아이디어를 이용해서 다음 섹션에서 실제 visual information에 집중하는 특정 attention head, 즉 image-centric head를 어떻게 선택하는지를 살펴보겠습니다!
VISUAL ATTENTION REDISTRIBUTION
여기서는 이 논문의 핵심 method인 Visual Attention Redistribution(VAR)를 설명합니다!
들어가기에 앞서 간략하게 VAR을 살펴보자면 VAR은 크게 두 단계로 구성되어 있습니다
- (어디에서 바꿀지 찾기) visual attention sink를 이용해서 image-centric head를 선택
- (그 안에서 어떻게 바꿀지) 선택된 head에서만 sink token이 가지고 있던 attention budget을 visual non-sink token으로 재분배

1. SELECTING IMAGE-CENTRIC HEADS
앞에서 sink token의 attention을 image쪽으로 재분배하자고 했지만 모든 attention head에 적용하면 오히려 성능이 크게 떨어집니다**.** (실험쪽 tabel4 참조)
attention head마다 서로 다른 역할을 할 수 있기 때문에, 저자들은 먼저 실제로 image에 집중하는 image-centric head를 선택한 뒤 해당 head에서만 redistribution을 진행합니다
[ Visual attention sink can be utilized to select image-centric heads ]
그럼 이제 실제로 image-centric head를 어떻게 선택하는지 살펴보겠습니다!
저자들은 먼저 애초에 visual token쪽에 attention을 거의 주지 않는 head라면 image를 보는 head라고 보기 어렵기 때문에 각 layer에서 전체 visual token에 주는 attention의 합이 0.2보다 작은 head는 먼저 제외합니다!
이때 여기서 visual token에 attention을 많이 준다고 해서 바로 image-centric head라고 볼수는 없습니다
앞에서 봤듯이 visual sink token도 visual token이고 높은 attention을 받을 수 있기 때문에 어떤 head는 겉으로는 image에 attention을 많이 주는 것 처럼 보여도 실제로는 그 attention 대부분이 sink token에 가고 있을수 있기 때문이죠!
그래서 저자들은 단순한 visual attention의 크기가 아니라 전체 visual attention 중 visual non-sink token에 얼마나 attention을 주고 있는지를 보기 위해 아래의 수식처 visual non-sink ratio를 정의합니다

수식을 직관적으로 보자면 (visual non-sink token에 가는 attention의 합) / (전체 visual token에 가는 attention의 합) 입니다!
즉 이 값이 높다는 것은 해당 head가 visual attention 중 많은 부분을 sink가 아니라 실제 image content에 더 가까운 visual non-sink token에 쓰고 있다는 의미가 되고, 저자들은 이런 head가 중요한 visual information에 더 집중하고 있다고 봅니다.
정리하자면 먼저 visual attention 자체가 너무 낮은 head는 제거하고, 그 다음 남은 head들에 대해서 visual non-sink ratio를 이용해 진짜 image information에 집중하는 head를 찾아가는 것입니다!
[ Heads with high visual non-sink ratio focus on the important region. ]
앞에서 visual non-sink ratio를 이용해서 image-centric head 후보를 찾았다면, 이번에는 이 ratio가 높은 head가 실제로 중요한 visual region을 잘 보고 있는지 확인합니다!

저자들은 attention head들을 visual non-sink ratio 기준으로 정렬한 뒤, ratio가 높은 head와 낮은 head의 attention map을 비교합니다.
위의 fig.4를 보면 visual non-sink ratio가 높은 head는 현재 text token과 관련된 중요한 visual 영역에 비교적 집중하는 것을 볼 수 있고, 반대로 ratio가 낮은 head는 attention이 이미지 여러 곳으로 sparse하고 scattered하게 퍼져 있는 것을 볼 수 있습니다.
즉 앞에서 정의한 visual non-sink ratio가 단순히 숫자만 그럴듯한 것이 아니라 실제로 relevant visual information에 집중하는 head를 찾는 기준으로 사용할 수 있다는 것을 보여주는 것입니다!
그래서 최종적으로 저자들은

이 수식을 만족하는 head를 image-centric head로 선택합니다.
여기서 ρ는 image-centric head를 선택하기 위한 threshold 하이퍼파라미터가 되고 ρ가 높을수록 더 엄격하게 선택하기 때문에 선택되는 head의 수가 줄어듭니다.
앞선 fig5(a)처럼 이렇게 visual non-sink ratio를 기준으로 여러 attention head 중 일부만 image-centric head로 선택하는 과정을 볼수 있습니다.
즉 이 두단계를 다시 정리하자면 (visual attention이 너무 낮은 head는 먼저 제외하고) → (visual non-sink ratio 계산 한 후) → (ratio가 높은 head가 실제 relevant visual region에 더 집중하는 것을 확인한 결과로) → (r(l,h)_i≥ρ인 head를 image-centric head로 최종 선택) 하는 과정 입니다
2. REDISTRIBUTING ATTENTION WEIGHTS
VAR에서 실제로 sink가 먹고 있던 attention을 어떻게 뺏어서 어디에 나누어줄 것 인가?! 를 구현한 부분입니다!
과정은 생각보다 단순합니다! 앞의 fig5(b)를 같이 보면 먼저 선택된 image-centric head에서 sink token이 가지고 있던 attention의 일부를 떼어내서 attention budget Ω로 모아줍니다
이때 얼마나 가져올지를 정하는 값이 p인데, 아래의 수식처럼 sink token에는 기존 attention의 (1−p)만 남겨두고 나머지 p만큼을 회수하는 것 입니다

그냥 단순하게 예를들어 p=0.6이라면 sink token이 원래 가지고 있던 attention 60%를 가져오고 40%만 남겨두는 것 입니다.
그리고 이렇게 모든 sink token에서 회수한 attention을 합친 값이 아래의 attention budget Ω가 됩니다

즉 그냥 sink token들에서 뺏어온 attention을 한 곳에 모아놓은 값이라고 보면 됩니다.
그 다음으로는 이 attention budget을 visual non-sink token들에게 다시 나누어 주어야 합니다

이게 위의 수식인데 좀 복잡해 보이지만 아이디어는 간단합니다
attention budget을 모든 visual non-sink token에게 똑같이 나누어주는 것이 아니라 원래 attention을 많이 받고 있던 token이 더 많이 받을 수 있도록 기존 attention 비율에 따라서 재분배해주는 것 입니다!
다시 말하자면 모델이 원래 중요하다고 보고 있던 visual non-sink token들의 상대적인 중요도는 유지하면서, sink token이 낭비하고 있던 attention만 추가로 얹어주는 방식이라고 보면 됩니다
예를 들어 visual non-sink token A와 B가 원래 attention을 3:1 정도로 받고 있었다면, 새롭게 얻은 attention budget도 대략 3:1의 비율로 나누어주는 식인 거죠!
그리고 중요한 점은 이렇게 attention을 재분배하더라도 전체 attention weight의 합은 그대로 1로 유지된다는 점인데, 새로운 attention을 추가하는 것이 아니라 sink에서 뺀 만큼 visual non-sink token으로 옮겨주는 것이기 때문입니다.
또 이 redistribution은 앞에서 선택한 image-centric head에서만 적용되고, question token뿐만 아니라 instruction과 이후 생성되는 response를 포함한 모든 text token에 적용됩니다.
결국 이 VAR을 싹 다시 정리해보자면 (image-centric head를 선택하고) → (sink token의 attention 일부를 attention budget으로 회수한 다음) → (기존 중요도에 비례해서 visual non-sink token으로 재분배)하는 방식입다!
EXPERIMENTS
Benchmark resualt

General Vision-Language Tasks에 대한 실험으로 여러 일반적인 multimodal benchmark에서 VAR을 붙였을 때 전체 성능이 실제로 좋아지는지 보는 메인 결과입니다
저자들은 거의 모든 모델이나 benchmark에서 성능이 올라가는 걸 보고, 특정 task에만 먹히는 게 아니라 일반적인 multimodal capability 자체를 개선할 수 있다고 분석합니다!

두번째로는 Visual Hallucination Tasks에 대한 실험으로 image attention을 강화하면 hallucination도 줄어드는지를 확인합니다.
결과적으로는 hallucination 관련 metric이 전반적으로 좋아져서 ink에 낭비되던 attention을 실제 visual information 쪽으로 돌리는 것이 image-grounded response를 강화한다고 저자들은 분석합니다!

세번째로는 Vision-Centric Tasks들에 대한 실험으로 시각 정보 자체를 세밀하게 봐야 하는 task에서 VAR이 도움이 되는지 확인합니다!
여기서도 성능이 올라가는 것을 볼수 있고, 저자들은 이 실험들을 통해 단순 hallucination 완화뿐 아니라 visual understanding 자체도 attention steering만으로 개선될 수 있다고 주장 합니다
Ablation

인트로쪽에서 간략히 언급한 부분인데 Image-centric Head Selection Ablation에 대한 결과로
굳이 image-centric head를 골라야 하나? 그냥 모든 head에 redistribution 하면 안 되나?를 보는 실험입니다!
위의 결과 처럼 Head selection 없이 모든 head를 수정하면 성능이 0까지 붕괴하는 것을 볼수있습니다
저자들은 이 결과를 통해 attention head마다 역할이 다르기 때문에 visual redistribution은 image-centric head에만 제한해야 한다고 분석합니다!

다음으로는 attention을 어디에 재분배 해야하는지, 즉 sink에서 회수한 attention을 Visual+Text / Text only / Visual only로 나눠서 비교합니다
위의 결과 처럼 Visual only가 가장 좋고 Text only는 오히려 성능이 크게 떨어지는 경우도 있는데, 저자들은 이 부분에 대해 기존 LMM은 text에는 이미 충분히 attention을 주고 있고, 부족한 쪽은 visual attention이기 때문에 visual non-sink token으로 보내는 것이 핵심이라고 봅니다!

마지막으로 간략하게 정성적 분석을 통해 VAR 전후 attention map과 실제 답변을 비교하였습니다.
VAR적용 후 query와 관련된 visual region에 attention이 더 강해지고, 답도 틀린 답에서 맞는 답으로 바뀌는 사례를 보여줍니다
즉 저자들은 VAR이 실제로 key visual token에 대한 focus를 강화해서 더 정확한 response를 만들었다고 해석함.
CONCLUSION
정리하자면 LMM 내부에는 text와 관련이 없는데도 높은 attention을 반복적으로 먹는 visual sink token이 존재하고, 실제 output 기여도는 낮다는 것을 확인했고, 이것을 바탕으로 sink token의 attention을 attention budget으로 회수하고, image-centric head의 visual non-sink token으로 재분배하는 VAR을 제안합니다!
별도의 학습이나 추가적인 모델 없이도 여러 task에서 성능 개선을 확인했고, 이 결과로 결국 attention을 많이 받는다고 해서 그 token이 실제로 중요한 visual evidence인 것은 아니다! 라는 점을 보여줍니다!
찬미님 좋은 리뷰 감사합니다.
유의미하지 않은 위치에 attention이 강하게 주어지는 이유에 대해, LLM 분야에서 알려진 attention sink와 비슷하다고 하셨는데, 혹시 LLM에서는 attention sink의 원인이 무엇인지 알려져있는 지 궁금합니다.
Figure 1 결과를 보면 text token이 달라져도 동일 위치에 attentino이 가는 결과를 보여주는데, 해당 영역들이 이미지에 대한 이해 관점에서 유효한 정보일수도 있지 않을까 하는 생각이 듭니다. 저자들이 다양한 task에 대하여 성능 개선을 보였는데, 혹시 복잡한 영상을 이해해야하는 작업도 포함되어있는 지 궁금합니다.
안녕하세요. 좋은 리뷰 감사합니다.
본 논문의 핵심은 visual attention sink token이라는 것이 존재하고, sink의 attention 값들을 attention budget을 통해 취합한 다음에 모든 visual non-sink token에게 기존 attention 비율에 따라서 재분배해주는 것이라고 이해했습니다.
성능이 오른 것에서 질문이 있는데, 기본의 모델에서 ours로 가면서 성능이 오른 경우는 기존의 모델들에서 sink에 attention이 되면서 원래 attention에 집중을 잘 하지 못해서 이로 인해 오탐하며 성능이 낮았는데, sink에 대해서 더 이상 집중하지 않도록 만들면서 기존 attnetion에 집중했기 때문에 성능이 오르게 되었다로 이해하면 될까요?
감사합니다.
안녕하세요 찬미님 좋은 리뷰 감사합니다.
visual sink token이 특정 dimension의 massive activation 때문에 발생한다는 부분이 흥미로웠습니다.
그런데 이런 massive activation이 모델의 어느 시점에서 만들어지는지가 궁금한데, vision encoder에서 들어온 직후부터 이미 sink의 특성을 가지고 있는 것인지, 아니면 LLM의 여러 layer를 지나면서 점차 만들어지는 것인지 궁금합니다.
또 한번 sink token이 된 visual token은 이후 layer에서도 계속 sink 역할을 유지하는지도 궁금합니다.
감사합니다.
안녕하세요, 찬미님. 좋은 글 감사합니다.
의대생이 탑티어 논문 공동저자로 쓰고 다니길래, 신기해서 읽어보려다 말았던 기억이 있습니다 ㅎ.
관심이 있었는데, 덕분에 흥미롭게 읽은 것 같습니다.
간단한 질문이 있어 댓글로 남기겠습니다.
1. 언급해주신 대로, Base LLM이 가지는 Attention Sink의 특성과 연결되어 있다면, Visual 뿐 아니라 Text부분 까지 Attention Sink를 고려한 방법을 떠올릴 수도 있었을 텐데, 해당 논문에서 visual attention sink에 특히 집중했던 이유가 어떤 것인지 궁금합니다. Related work에서 언급했던 기존 연구들의 흐름이 혹시 LMM에서 visual보다 LLM의 attention sink에 더 집중했던 흐름이어서 visual attention sink에 집중했던 것일까요?
2. 해당 논문을 읽으시면서 하고 계신 fine-grained visual reasoning에 대한 영감을 얻으셨는지 궁금합니다. Fine-grained 관점이라면, 직관적으로 위 논문에서 언급한 몇개의 visual attention sink token만으로도 성능이 collapse 될 것 같기도 합니다.
감사합니다.