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