G4.4 誰能參考誰,也可以是輸入的一部分嗎?
本篇重用1 篇
有些參考關係不是從 features 猜出來的
上一篇用 causal mask 表示「不能看未來」。但在其他資料裡,已知關係可能是道路是否相連、兩個地標有多遠,或兩個 token 相差幾個位置。
想像重新編號一張座位表。人名搬到新的 rows,誰坐在誰旁邊的表也要一起搬。若只改人名,卻保留舊座位關係,就不是原來那群人的資料。
我們可以把這份附帶關係交給 attention,而不是要求它全部從 猜出來。
比較傾向與可見限制,分開寫
在原本的分數上加兩份表:
是 finite bias,例如讓某些距離的對象比較容易被參考; 則取 或 ,表示可讀或禁止。很負的 finite bias 仍可能給非零權重,mask 才是真正排除。
Shaw、Uszkoreit 與 Vaswani [2] 將 relative position 加入 attention;原論文使用相對位置的 learned vectors,我們這裡用 scalar bias 表達較簡單的關係版本,兩者不混成同一條公式。
例如有語意位置 時,可以令 ;若是座標 ,也可以試 。這些關係依附於點,不應依附於儲存列號。
連同關係一起重排
令 、、。使用前面已證的 、,
每列至少保留一個可見 key,softmax 才有定義。現在仍可重排同一批分數,得到 ,所以
不是「附帶資訊會破壞 symmetry」,而是我們必須指定它該跟資料怎麼一起變。 忘記搬 mask 或只搬 bias 的一個軸,便不是這個等式比較的輸入。
從所有人,縮到有關係的人
若 表示點 不能讀點 ,我們就能把 attention 限制在指定鄰居上。這提供了接到 graph 的方式:不用所有點都互相參考,而是把已知連線一起放進規則。
但還有兩個限制。首先,一般 dense 計算會製造 分數表;設定 mask 並不自動讓 dense 程式省去所有被禁止的乘法。其次,座標的 distance bias 對旋轉不變,不代表任意 或輸出向量都已具有 rotation equivariance。資料列重排與座標轉動是不同的 action,後者要到 G6 另外設計。
補充Cross-attention 的兩份名單可以各自重排
若 queries 是 個物件、keys/values 是另外 個物件,兩份名單可分別用 重排。分數與關係表變成 ,values 變成 ,輸出因此變成 。輸出跟詢問者一起搬,不必和提供資訊的名單有相同數量。
課堂提問
加入鄰居 mask 後,輸出不再符合 shuffle test。是不是表示只能用沒有 mask 的 attention?
先想一想,再展開看整理後的答案
不是。先檢查 mask 是否也依同一份關係重排。若只搬 features,點可能突然參考到不同鄰居;這是輸入沒對齊,不是帶 mask 的運算必然違反 permutation equivariance。
動手看一次
選「相對位置」或「causal」,比較「只搬內容」與「資訊一起搬」。畫面顯示的零權重應符合當下 mask,defect 則對照同一份資料與關係。