- 大語言模型:原理、應用與優化
- 蘇之陽 王錦鵬 姜迪 宋元峰
- 941字
- 2024-12-18 17:06:25
2.2 注意力機制
Seq2Seq結構的原理簡單,其中編碼器可將輸入的編碼C看作對輸入整體語義的表示,基于該編碼生成目標文本也與直覺相符。但Seq2Seq存在兩個問題:
·固定長度的語義編碼C在表示長序列輸入語義時可能存在信息細節損失。
·在解碼階段,不論生成哪個單詞,原始輸入對目標單詞的影響力相同。
為了解決上述問題,研究者提出了注意力機制(Attention Mechanism)[15]。顧名思義,注意力機制可以讓模型在解碼時從關注全部的語義信息切換到僅關注重點信息,從而實現更好的生成效果。注意力機制首先在視覺領域被提出[16],用于動態地選擇圖像處理區域,之后被廣泛應用于自然語言處理領域。
以機器翻譯問題為例,當前正在處理的單詞最為重要,模型將注意力放在此處較為合理。例如,將中文“我今天去外婆家吃飯”翻譯成英文,當模型翻譯到目標詞“I”時,模型需要更關注原文中“我”這個詞,而當模型翻譯到目標詞“Today”時,模型需要更關注原文中“今天”這個詞。顯然,不同的目標詞在原文中對應的焦點不同且不斷變化。
在我們的實際生活中,注意力機制無處不在。比如,上學的時候,老師經常教導我們讀書的時候要“集中注意力”,意思就是讓我們集中精力關注重要的事,而暫時忽略其他可能打擾學習的事。又如,眼睛在看到一幅圖片的時候,往往會下意識地重注其中最具吸引力的內容,而自動忽略和弱化其他內容。這些日常例子的背后都有注意力機制的身影。
注意力機制由查詢Q(Query)、鍵K(Key)和值V(Value)三部分構成。注意力機制的計算過程可分為三個步驟:計算Q和K的相關性分數、歸一化權重和計算注意力值。

圖2-2 注意力機制示意
圖2-2展示了注意力機制的原理和計算過程。輸入向量分別代表輸入的鍵值對,ki和vi分別代表其中第i個元素,序列長度為n。令Q代表查詢向量,那么注意力機制的具體計算流程為:
1)計算Q與每個ki的相關性分數。相關性分數有多種不同的計算方法,此處以點積為例,計算公式為:

2)歸一化相關性分數,使其取值范圍為[0,1],得到注意力分布,其計算公式為:

3)根據相關性系數對序列(v1,…,vn)進行加權求和,計算公式為:

上述計算過程展示了最常見的軟注意力機制(Soft Attention),它選擇n個輸入元素的加權平均作為結果。與之對應的還有一種硬注意力機制(Hard Attention),它僅選擇n個輸入中的某一個元素作為結果,例如選擇這些輸入中權重最大的一個。