本篇重用1 篇
同一套規則,一定要給出同一份摘要嗎?
在 G3.3,PointNet 把同一份 global feature z 送回每個點,讓它結合自己的資訊與整體形狀。現在我們想換一種讀取方式:判斷椅腳時,多參考其他支撐點;判斷椅背時,多參考上方那一片。
能不能直接讓每個點依自己的內容,決定要多參考誰,同時仍不依賴名單排列?
想像在旅行群組裡問「附近有什麼晚餐?」與「明天怎麼去機場?」。同一群人,餐廳與交通的資訊卻有不同參考價值。把名單換個順序,不應讓同一個人的建議突然變得不重要。
在 G3.2,線性層對不同點的影響共用同一組權重。這裡我們不再把權重固定成常數,而是讓它從內容算出來。共享的是計算權重的規則,不是每次算出的權重都相同。
權重可以改變,但要跟著同一對點搬動
用 H 記整份 feature 表,vj=ν(hj) 是點 j 提供的內容;所有點先用同一個 ν 處理。想做的更新是
yi=j∑Aij(H)vj.
Aij 表示點 i 這次多參考點 j。名單重排成 H′=PH 後,新第 i 個詢問者是原本的 π(i),被參考者也換了編號。因此我們要求權重本身滿足
A(PH)ij=A(H)π(i),π(j),A(PH)=PA(H)P⊤.
不是權重表原封不動,而是同一對人的參考關係搬到新格子。Values 也跟著變成 PV,兩者對齊後,輸出才會跟同一個詢問者搬動。
為了把權重讀成「參考比例」,我們另外選擇 Aij≥0、∑jAij=1。這是加權摘要的設計,不是 permutation equivariance 自己要求權重一定非負。
先用同一套比較規則,再分配比例
同樣兩份內容,不能只因它們從第 2,5 列搬到第 4,1 列,就換一種比較方式。我們先選 pairwise score:每對點都用同一個函數 s,
Sij=s(hi,hj).
重新排列後,Sij′=s(hπ(i),hπ(j))=Sπ(i),π(j),所以分數表已經照同一對點搬動。但分數可能為負,也不一定加總為一,還不能直接當比例。
可以先用同一個正值函數 ω 把分數轉成正數,再對固定詢問者的整列正規化:
Aij=∑ℓ=1nω(Siℓ)ω(Sij),ω(r)>0.
換排列只會換掉分母的加總順序,參考比例仍屬於同一對人。若選 ω(r)=er,這個操作就是 row-wise softmax。Shared pairwise score 與這種正規化,給出一種符合前面要求的內容加權方式;它們不是所有 equivariant layers 的唯一形式。
要怎麼比較內容?先分清三種角色
回到旅行群組,我們需要三份資訊:我現在想問什麼、對方有什麼可供比對的資訊、真正要讀取的內容。模型可以把它們分別編成 query、key、value。
一個簡單的實現,是讓各點都用相同的三組 linear maps:
Q=HWQ,K=HWK,V=HWV.
H∈Rn×d;Q,K∈Rn×dk,V∈Rn×dv。第 i 列 qi 是 query,第 j 列 kj 是供比較的 key,vj 是被加權讀取的 value。前面的 ν,在這裡選成共享的 linear map WV。
現在還差一個比較函數。Vaswani 等人 [1] 選擇 scaled dot product:
Sij=dkqi⊤kj,S=dkQK⊤.
它比較的是內容,不是列號;dot product 也方便把全部配對寫成一次矩陣乘法。再選剛才的 softmax,得到
Y=AV=softmaxrow(dkQK⊤)V.
這就是 scaled dot-product attention。三份資訊都來自 H,所以稱為 self-attention;queries 若來自另一份資料,則是 cross-attention。這裡先處理同一批點。
三個對象,真的算一次
考慮 dk=1。某個 query 與三個 keys 比較後,分數是 (0,log2,0),三個 values 是 (10,20,40)。Exponentials 是 (1,2,1),所以
(Ai1,Ai2,Ai3)=(41,21,41),yi=41(10)+21(20)+41(40)=22.5.
第二個對象被參考得最多,但輸出仍混合了三份內容。換一個 query,分數會改,它收到的摘要也會改。
補充為什麼除以 √dₖ?
作為尺度的說明,若 q、k 各分量彼此獨立、平均為零、variance 為一,q⊤k=∑rqrkr 的 variance 是 dk。除以 dk 後才是同一個量級,避免維度變大時分數容易把 softmax 推得過度尖銳。這是原論文的尺度理由,不是說訓練後 features 必然符合這些獨立假設。
補充Symmetry 並不唯一決定 Transformer
排列要求限制的是運算如何隨重排改變。許多 pairwise scoring functions 都可能符合;dot product、softmax 與 head 數量仍是設計選擇。Vaswani 等人 [1] 使用這個運算建立 Transformer,Lee 等人 [2] 則將 attention 用於 Set Transformer;我們是在構造一種可行方法,不是說 symmetry 只容許它。
Query 比較 keys 產生分數,row-wise softmax 產生權重,再讀取 values。
課堂提問
點 i 很參考點 j,是否表示點 j 也同樣參考點 i?
先想一想,再展開看整理後的答案
不一定。qi⊤kj 與 qj⊤ki 一般不同;即使分數碰巧對稱,每列的 softmax 分母也可能不同。詢問需求與提供的資訊不是同一種角色。
動手看一次
切換詢問者與溫度,對照 heatmap 的一列與加權輸出。Demo 使用固定的 projection,展示這條式子如何計算;它不是訓練好的語言模型。
快速回顧一下
參考文獻
- Vaswani 等人(2017),Attention Is All You Need
- Lee 等人(2019),Set Transformer