跨模態注意力
跨模態注意力(cross-modal attention)是讓模型混合兩個模態資訊的機制——典型做法是讓文字 token 去看影像區域、讓影像區域去看文字 token——使兩者被深度融合,而不只是串接。回想一般的自注意力:每個元素產生一個查詢(query),每個元素產生一個鍵(key)與一個值(value),每個元素的輸出是所有值的加權平均,權重取決於它的查詢與各個鍵的匹配程度。跨模態注意力用的是同一套機制,只是查詢來自一個模態,鍵/值來自另一個模態。
具體而言,當一個文字 token 去關注影像特徵時,文字 token 形成查詢,影像 patch 特徵形成鍵與值,得到的注意力權重就表示「這個詞應該從每個影像區域汲取多少?」。於是問題裡的「雨傘」一詞可以拉進雨傘那個 patch 的視覺特徵。反方向執行則讓影像區域被文字告知。這正是讓 VQA 與視覺定位等任務運作的關鍵:語言能引導模型該看哪裡,視覺證據也能流入語言表示。
架構上有兩大模式。在雙流/共注意力(co-attention)模型中(ViLBERT、LXMERT),影像與文字各有獨立的 Transformer 流,透過跨注意力層連接。在單流/合併注意力(merged-attention)模型中(VisualBERT、UNITER),影像與文字 token 串接成單一序列,套用一般的自注意力,於是跨模態混合在每個自注意力層內隱含地發生。現代多模態 LLM 兩種概念都用:Flamingo 在凍結的 LLM 中插入帶門控的跨注意力層,讓文字去關注影像特徵;而 LLaVA 式模型則把影像特徵投影成 token,讓 LLM 的自注意力去做融合。
對眾多影像 patch 做跨注意力的成本是平方級的,所以高解析度影像很昂貴。常見的修正是在融合前把視覺特徵壓縮成一小組固定數量的 token——Flamingo 的 Perceiver Resampler 與 BLIP-2 的 Q-Former 都是這麼做的,把數百個 patch 特徵變成約 32 至 64 個查詢 token,讓 LLM 負擔得起去關注。