為此,可以使用以下方式轉換查詢、鍵和值,而不是執(zhí)行單個注意力池h獨立學習線性投影。那么這些h投影查詢、鍵和值被并行輸入注意力池。到底,h 注意池的輸出與另一個學習的線性投影連接并轉換以產生最終輸出。這種設計稱為多頭注意力,其中每個hattention pooling outputs 是一個頭 (Vaswani et al. , 2017)。使用全連接層執(zhí)行可學習的線性變換,圖 11.5.1描述了多頭注意力。
圖 11.5.1多頭注意力,其中多個頭連接起來然后進行線性變換。
11.5.1。模型
在提供多頭注意力的實現(xiàn)之前,讓我們從數(shù)學上形式化這個模型。給定一個查詢 q∈Rdq, 關鍵 k∈Rdk和一個值 v∈Rdv, 每個注意力頭 hi(i=1,…,h) 被計算為
其中可學習參數(shù) Wi(q)∈Rpq×dq, Wi(k)∈Rpk×dk和 Wi(v)∈Rpv×dv, 和f是注意力集中,例如11.3 節(jié)中的附加注意力和縮放點積注意力。多頭注意力輸出是另一種通過可學習參數(shù)進行的線性變換Wo∈Rpo×hpv的串聯(lián)h負責人:
基于這種設計,每個頭可能會關注輸入的不同部分。可以表達比簡單加權平均更復雜的函數(shù)。
11.5.2。執(zhí)行
在我們的實現(xiàn)中,我們?yōu)槎囝^注意力的每個頭選擇縮放的點積注意力。為了避免計算成本和參數(shù)化成本的顯著增長,我們設置 pq=pk=pv=po/h
評論