更新時間:2025-08-27 17:07:29作者:佚名
注意力系統,是神經機器翻譯體系里一個關鍵部分,它直接關系到譯文的質量好壞。
可以說,缺少注意力機制,機器翻譯的表現只能得到六七成的分數,而配備注意力機制后,翻譯水平便能提升到八到九成的程度。
它具體運作方式是怎樣的呢?許多人一說明,就是數不勝數的方程式,使人還沒開始看,就立刻頭暈目眩了。
近期,有篇文稿借助圖像解析,詳盡闡釋了“注意力機制”的運作原理,同時以谷歌神經翻譯為范例,闡述了其具體執行過程。
作者表示,這篇文章旨在幫助讀者理解注意力原理,無需借助數學符號。他將以人類翻譯工作為參照,將抽象概念具體化呈現。
神經機器翻譯為何需要注意力機制?
神經機器翻譯技術出現在2013年。當年,牛津大學的一個研究集體公布了一篇論文,其中包含了一種用于機器翻譯的新穎方法。
這個新模型使用的是端到端的編碼器-解碼器結構。
翻譯任務進行時,首先借助卷積神經網絡(CNN),把初始文本轉化成一連串的數字表示,接著再運用循環神經網絡(RNN),把這一連串數字變成期望的目標語言。
因為梯度會出現失控或衰減現象,所以采用此手段難以捕捉到文本中距離較遠的內容,進而造成譯文質量顯著降低。
二零一四年,Ilya及團隊任職谷歌期間,研發了序列到序列的算法,該方案將循環神經網絡功能拓展至編碼與解碼兩個環節。
也將RNN的常見改進形式LSTM應用到了神經機器翻譯領域,因此梯度失控和梯度消亡現象得到抑制谷歌在線翻譯英語,長距離依賴的重新排序難題獲得改善。
常言道此起彼伏,剛解決一事又遇新難。在方法層面,解碼器從編碼器獲取的信息僅限于最終隱藏狀態,該狀態為向量形式,概括了輸入文本序列的數字信息。
具體如下圖中的兩個紅色節點所示。
對于類似下圖這樣的極長文本輸入,我們特別期待這個內部狀態能夠全面反映輸入序列,解碼器便能僅憑這一向量描述,順利實現轉換。
但這確實不易,出現了毀滅性的記憶衰退。舉例來說,剛才提及的那兩段文字的字,當你現在目睹它們時,還能有多少留存于腦海?能否將它們轉換成英文表達?
另外存在一個疑問,對于采用RNN架構的模型而言,無論輸入文本的語句長度如何,最終都會被轉化為一個預設長度的向量形式。
解析過程中常出現諸多波折,難以獲取確切內容,句式越長越是棘手。
怎么辦?“注意力機制”登場
二零一四年,該集體公布了一項研究成果,其中引入了關注機制,隨后將這一方法應用于對視覺圖形進行分門別類的操作上。
采用注意力機制的循環神經網絡,其表現遠超傳統卷積神經網絡,由此引發學術界對注意力機制研究的熱潮。
很快,注意力就出現在了神經機器翻譯中。
蒙特利爾大學的一個研究集體于ICLR 2015年發布了相關研究文獻,該文獻首次將注意力機制應用于神經機器翻譯領域,此前的2014年9月,該文檔已上傳至arXiv平臺。
關注點,是轉換器與轉換器之間的橋梁。憑借它,轉換器得到的,就不再是一個單一的向量表示了,還包含來自轉換器每個時間節點的向量表示,例如圖中標示的綠色點。
借助聚焦機制,模型可以挑選性地留意輸入序列中具有價值的片段,進而促使解碼器與編碼器之間達成對應關系。
之后,神經機器翻譯所面臨的問題,基本上也都有了解決方案。
2016年,谷歌推出了首個基于神經機器翻譯的翻譯系統。
現在,神經機器翻譯已經成為了主流翻譯工具的核心方法。
這段時期里,RNN與LSTM,已經獲得眾多說明。注意力機制究竟怎樣實施?它究竟具備什么非凡之處?
接下來請你收看——
圖解注意力運作機制
注意力分為兩種類型,一種是涵蓋所有編碼器隱藏狀態的類型,另一種是僅利用編碼器隱藏狀態部分信息的類型,當前討論的注意力機制都屬于前一種類型。
在開始之前,需要看換一下僅基于方法的模型是如何翻譯的。
以一個將文本從德語翻譯成英語的翻譯員為例。
要是采用那種方式,他就會從開篇起逐字逐句地看德文材料,接著再逐字逐句地把它改成英文。倘若句子過于冗長,他在翻譯的進程中留學之路,或許就記不起前面材料上的信息了。
運用專注閱讀技巧時,他逐字逐句地審視德文材料,并記錄下核心詞匯,接著借助這些核心詞匯,把德文材料轉化成英文表達。
模型會對每個單詞進行評分,確定關注點,分配不同的重要性。根據這些分數,通過計算編碼器隱藏狀態的加權求和,能夠匯集編碼器的隱藏狀態信息。最終目的是生成一個能夠反映上下文信息的向量。
注意力層的實現可以分為6個步驟。
第一步:準備隱藏狀態
首先,需要設定首個解碼器的初始狀態(紅色),同時也要調取全部可用的編碼器狀態(綠色)。具體到本例,存在四個編碼器的狀態,以及當前解碼器的狀態。
第二步:獲取每個編碼器隱藏狀態的分數
用評分機制算出每個編碼器內部狀態的得分,得分是標量值。這個例子里,評分機制是解碼器與編碼器內部狀態做點積運算的結果。
=
10, 5, 10
得分十五分等于乘以十加上乘以五再加上乘以十,其中點代表加一
那個示例里,編碼器內部狀態的關聯值為六十,非常突出,表明緊隨其后的詞匯生成會受到該編碼器內部狀態極大影響。
第三步:通過層運行所有得分
我們先把得分置入函數層級,確保得分(即標量值)的總和等于1,這些得分能夠反映注意力的分布情況。
得分 記錄得分結果 為零
務必留意,依據得分,分數是指數形式。關注點僅按計劃分配。事實上,這些數值并非二進制,而是介于零和一之間的浮點數。
第四步:將每個編碼器的隱藏狀態乘以其得分
把各個編碼單元的內部表征同評分值相乘,便可得出對應的位置向量。該過程即構成了對齊環節。
得分 記錄得分 記錄150 記錄601 記錄150 記錄350
關注程度數值很低,所有其他編碼器內部表征,與輸入單詞的對應關系都變得微乎其微。這表明,最先轉換的詞匯,應當和擁有嵌入信息的源詞相吻合。
第五步:將對齊向量聚合起來
將對齊向量聚合起來,得到語境向量。
得分 記錄得分 150 601 150 350 等于
0+5+0+0, 0+0+0+0, 0+1+0+0
第六步:將語境向量輸入到解碼器中
這個環節的具體操作,要看模型結構的規劃,接下來的實例里谷歌在線翻譯英語,將展示解碼器怎樣運用上下文信息,在模型構造中。
整體的運行機制,如下圖所示:
那么,注意力機制是如何發揮作用的呢?
反向傳播力求讓結果盡可能符合實際狀況,這是通過調整循環神經網絡中的權重參數以及評分機制來實現的,如果存在評分機制的話。
這些權重會作用在編碼器的內部狀態上,同時也會作用在解碼器的內部狀態上,然后會作用在注意力分數上。
谷歌神經機器翻譯如何應用注意力機制?
在闡述谷歌神經機器翻譯模型之前,有必要先了解其他兩種模型,接著再進行相關說明。
團隊的研究
這個體系融合了雙重信息解析的機制,并配備關鍵點識別的功能,接下來是系統構造的要點說明:
編碼單元是一個能同時處理正向與逆向信息的循環網絡結構。解碼單元是一個單向循環網絡,其起始內部狀態,由逆向編碼單元循環網絡結構末尾的內部狀態轉換而來。
2、注意力層中的評分函數使用的是/。
下個解碼器時間步的輸入由兩部分組成,一部分是前個解碼器時間步(粉紅色)的輸出結果,另一部分是當前時間步(深綠色)的語境向量值,這兩部分內容被合并在一起使用。
該模型構造,在WMT’14英法語資料集上,其BLEU評級為26.75。
相當于在將德語文本翻譯成英語的時候,用了兩個翻譯員。
翻譯員甲,在逐字逐句查看德語文本時,會記錄下核心詞匯。翻譯員乙,在反著逐字逐句查看德語文本時,也記錄下核心詞匯。
這兩個翻譯員,會定期討論他們在討論之前閱讀的每一個單詞。
閱讀完德文資料,譯者B會參照彼此的商議,并運用挑選好的詞語,把內容轉換成英文。
在這里,翻譯員A,是正向RNN,翻譯員B,是反向RNN。
斯坦福大學團隊的研究
與其它研究團隊的架構對比,斯坦福大學團隊所設計的模型體系,不僅適用范圍更廣,而且構造更為精簡。具體優勢體現為:
編碼器由兩層LSTM構成,解碼器同樣采用這種結構,其起始隱狀態為編碼器最終隱狀態。
他們的模型評分方法有四種類型,分別是斜杠形式,點乘方式,基于減法,還有引號結構。