asp動態(tài)網(wǎng)站開發(fā)實訓教程杭州百度百科
目錄
一、注意力機制
二、了解發(fā)展歷程
2.1 早期萌芽:
2.2 真正意義的注意力機制:
2.3 2015 年及以后:
2.4 自注意力與 Transformer:
2.5 BERT 與預(yù)訓練模型:
三、基本框架
1. 打分函數(shù)(Score Function)
2. 校準函數(shù)(Alignment Function / Softmax)
3. 融合(Fusion / Weighted Sum)
比如機器翻譯任務(wù)
四、分類
4.1 根據(jù)注意力的計算區(qū)域分類
4.2 根據(jù)注意力的可微性分類
4.3 根據(jù)注意力的來源分類
4.4 根據(jù)注意力的層次結(jié)構(gòu)分類
4.5 其他形式的注意力模型
一、注意力機制
從人工智能專家的角度來看,注意力機制(Attention Mechanism)是一種在深度學習模型中,尤其是在處理序列數(shù)據(jù)(如文本、語音、時間序列等)時非常重要的技術(shù)。其核心思想是讓模型在處理信息時能夠“集中注意力”在更相關(guān)的部分,而忽略不那么重要的信息。
視覺注意力機制是人類視覺所特有的大腦信號處理機制。人類視覺通過快速掃描全局圖像,獲得需要重點關(guān)注的目標區(qū)域,也就是一般所說的注意力焦點,而后對這一區(qū)域投入更多注意力資源,以獲取更多所需要關(guān)注目標的細節(jié)信息,而抑制其他無用信息。這是人類利用有限的注意力資源從大量信息中快速篩選出高價值信息的手段,是人類在長期進化中形成的一種生存機制,人類視覺注意力機制極大地提高了視覺信息處理的效率與準確性。計算機視覺中的注意力機制從本質(zhì)上講和人類的選擇性視覺注意力機制類似,核心目標也是從眾多信息中選擇出對當前任務(wù)目標更關(guān)鍵的信息。
以下是注意力機制的一些關(guān)鍵要點:
-
直觀理解:想象一下你正在閱讀一篇文章。你不會一字不漏地看完每一個字,而是會集中注意力在那些對你而言最重要或最相關(guān)的詞或句子上。這就是注意力機制希望模擬的行為。
-
工作原理:在深度學習模型中,注意力機制通常通過計算一個權(quán)重分布來實現(xiàn)。這個分布決定了在生成輸出時,輸入序列中的哪些部分應(yīng)該被更多地關(guān)注。例如,在機器翻譯任務(wù)中,生成目標語言的一個詞時,模型可能會更多地關(guān)注源語言中與之對應(yīng)的詞或短語。
-
數(shù)學表達:給定一個查詢(Query)和一個鍵值對集合(Key-Value pairs),注意力機制可以計算出一個加權(quán)的輸出。查詢、鍵和值通常都是向量。輸出的計算通常涉及查詢與每個鍵的點積,然后應(yīng)用一個softmax函數(shù)來得到權(quán)重分布,最后用這個分布加權(quán)所有的值來得到最終的輸出。
-
類型:有多種注意力機制,包括但不限于:
- 全局注意力與局部注意力:全局注意力考慮輸入序列的所有位置,而局部注意力只關(guān)注輸入序列的特定子集。
- 自注意力(Self-Attention):在自注意力中,查詢、鍵和值都來自同一個輸入序列。這種機制在Transformer模型中得到了廣泛應(yīng)用。
- 多頭注意力(Multi-Head Attention):在這種機制中,多個獨立的注意力模塊并行運行,并將它們的輸出拼接或平均起來,以捕獲輸入數(shù)據(jù)的不同方面。
-
優(yōu)勢與應(yīng)用:注意力機制可以提高模型的可解釋性(因為可以看到模型關(guān)注了哪些輸入),并允許模型處理變長輸入序列。它們在各種NLP任務(wù)中都取得了巨大成功,如機器翻譯、問答系統(tǒng)、情感分析和文本摘要等。此外,注意力機制也被應(yīng)用于其他領(lǐng)域,如計算機視覺和語音識別。
二、了解發(fā)展歷程
2.1 早期萌芽:
- 在深度學習興起之前,注意力機制的思想已經(jīng)在一些傳統(tǒng)的機器學習模型中有所體現(xiàn),比如隱馬爾可夫模型(HMM)中的對齊(Alignment)概念,但這并不算是真正的“注意力”。
2.2 真正意義的注意力機制:
- 注意力機制在深度學習中的首次明確提出通常與 Bahdanau 等人在 2014 年的工作《Neural Machine Translation by Jointly Learning to Align and Translate》相關(guān)聯(lián)。在這篇論文中,作者們?yōu)闄C器翻譯任務(wù)引入了一種名為“加性注意力”(Additive Attention)的機制,允許模型在生成目標語言句子時自動搜索源語言句子中的相關(guān)部分。這種方法極大地改善了之前基于編碼-解碼(Encoder-Decoder)架構(gòu)的機器翻譯系統(tǒng)的性能,尤其是當處理長句子時。
2.3 2015 年及以后:
- Luong 等人在 2015 年的論文《Effective Approaches to Attention-based Neural Machine Translation》中提出了兩種新的注意力機制:全局注意力(Global Attention)和局部注意力(Local Attention),并對加性注意力和點積注意力(Dot-Product Attention)進行了比較。
- 同一時期,注意力機制開始被應(yīng)用到其他自然語言處理任務(wù)中,如文本分類、情感分析、問答系統(tǒng)等。
2.4 自注意力與 Transformer:
- 2017 年,Vaswani 等人的論文《Attention is All You Need》徹底改變了注意力的研究方向和應(yīng)用領(lǐng)域。這篇論文提出了 Transformer 架構(gòu),完全基于自注意力(Self-Attention)機制,摒棄了傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和卷積神經(jīng)網(wǎng)絡(luò)(CNN)。Transformer 模型通過多頭自注意力機制(Multi-Head Self-Attention)實現(xiàn)了對輸入序列內(nèi)部依賴關(guān)系的有效建模,并在機器翻譯任務(wù)上取得了顯著的性能提升。
- 自此以后,Transformer 成為了自然語言處理領(lǐng)域的主導(dǎo)架構(gòu),并被廣泛應(yīng)用于各種任務(wù)中,包括但不限于語言建模、機器翻譯、文本摘要、對話系統(tǒng)等。
2.5 BERT 與預(yù)訓練模型:
- 2018 年,Devlin 等人提出了 BERT(Bidirectional Encoder Representations from Transformers),這是一種基于 Transformer 的預(yù)訓練語言模型。BERT 通過在大規(guī)模無標簽文本數(shù)據(jù)上進行預(yù)訓練,學習到了通用的語言表示,可以通過微調(diào)(Fine-tuning)來適應(yīng)各種下游任務(wù)。BERT 的成功進一步推動了注意力機制在自然語言處理領(lǐng)域的應(yīng)用和發(fā)展。
三、基本框架
注意力機制最早在 NLP 應(yīng)用中被提出并發(fā)展,且大多模型都構(gòu)建在 RNN 網(wǎng)絡(luò)上。隨著 Transformer 模型的提出,注意力模型開始采用編解碼器網(wǎng)絡(luò)而脫離了 RNN 的局限。之后,注意力模型被廣泛應(yīng)用于計算機視覺領(lǐng)域。視覺注意力模型與NLP 注意力模型略有不同,具體地包含三個部分:
1. 打分函數(shù)(Score Function)
打分函數(shù)負責為輸入序列中的每個元素計算一個與當前焦點(比如解碼器中的某個狀態(tài))相關(guān)的得分。這個得分反映了輸入元素對于當前焦點的重要性。常見的打分函數(shù)有點積、加性/拼接等。
-
點積打分(Dot-Product Score):
在點積注意力中,打分函數(shù)計算解碼器當前狀態(tài)與編碼器每個狀態(tài)的點積。假設(shè)解碼器當前狀態(tài)為query
,編碼器狀態(tài)集合為keys
,則打分函數(shù)為:scores = query · keys^T
。 -
加性/拼接打分(Additive/Concatenation Score):
在這種注意力中,解碼器當前狀態(tài)和編碼器狀態(tài)首先被拼接起來,然后通過一個全連接層(可能包含非線性激活函數(shù))來計算得分。
2. 校準函數(shù)(Alignment Function / Softmax)
校準函數(shù)負責將打分函數(shù)輸出的原始得分轉(zhuǎn)換成一組權(quán)重,這些權(quán)重將被用于加權(quán)輸入序列中的元素。通常,這一步是通過softmax函數(shù)來實現(xiàn)的,softmax可以將原始得分轉(zhuǎn)換成一組和為1的正數(shù)權(quán)重。
weights = softmax(scores)
3. 融合(Fusion / Weighted Sum)
最后一步是根據(jù)校準后的權(quán)重對輸入序列進行加權(quán)求和,得到一個上下文向量(context vector)。這個上下文向量包含了輸入序列中與當前焦點最相關(guān)的信息。
context_vector = weights * values
這里的values
通常是與keys
相對應(yīng)的編碼器輸出序列。在自注意力中,keys
、values
和query
都來自同一個輸入序列。
比如機器翻譯任務(wù)
考慮一個英文到中文的機器翻譯任務(wù),其中英文句子“I love machine learning”需要被翻譯成中文“我愛機器學習”。在生成中文“我”的時候,注意力模型可能會給英文單詞“I”一個很高的權(quán)重,而給其他單詞較低的權(quán)重;在生成“愛”的時候,模型可能會關(guān)注“l(fā)ove”;以此類推。
- 打分函數(shù):對于解碼器生成“我”時的狀態(tài),模型會計算它與編碼器中每個單詞狀態(tài)的得分,比如通過點積或加性方法。
- 校準函數(shù):得分會被轉(zhuǎn)換成權(quán)重,比如通過softmax,這樣“I”會得到一個接近1的權(quán)重,而其他單詞的權(quán)重會很小。
- 融合:最后,根據(jù)這些權(quán)重對編碼器的輸出進行加權(quán)求和,得到一個上下文向量,這個向量會被解碼器用來生成“我”。
這個過程會在生成每個中文詞的時候重復(fù)進行,確保解碼器能夠關(guān)注到輸入英文句子中最相關(guān)的信息。
四、分類
注意力模型可以根據(jù)不同的分類標準有多種形式。以下是對注意力模型不同形式的分類及其詳細解釋,力求條理清晰、全面無遺漏:
4.1 根據(jù)注意力的計算區(qū)域分類
——Soft Attention(軟注意力):
- 特點:對所有輸入數(shù)據(jù)進行加權(quán)處理,每個輸入數(shù)據(jù)都會被賦予一個注意力權(quán)重。
- 工作機制:不設(shè)置篩選條件,而是通過計算每個輸入與當前焦點的相關(guān)度來分配權(quán)重。
- 應(yīng)用場景:常見于需要全局考慮輸入信息的情況,如機器翻譯、文本摘要等。
——Hard Attention(硬注意力):
- 特點:只關(guān)注輸入序列中的特定部分,忽略其他不相關(guān)的部分。
- 工作機制:在生成注意力權(quán)重后,通過設(shè)定閾值或采樣方式選擇性地關(guān)注某些輸入。
- 應(yīng)用場景:適用于需要精確定位關(guān)鍵信息的情況,如圖像分類中的關(guān)鍵區(qū)域定位。
——Local Attention(局部注意力):
- 特點:結(jié)合了Soft Attention和Hard Attention的思想,既關(guān)注特定區(qū)域又保持了一定的靈活性。
- 工作機制:首先通過Hard Attention的方式定位到某個區(qū)域,然后在該區(qū)域內(nèi)使用Soft Attention進行加權(quán)處理。
- 應(yīng)用場景:適用于需要同時考慮全局和局部信息的情況,如語音識別中的音素識別。
4.2 根據(jù)注意力的可微性分類
——Hard Attention:
- 如上所述,Hard Attention是一個不可微的注意力機制,通常使用強化學習等方法進行優(yōu)化。
——Soft Attention:
- Soft Attention是一個可微的注意力機制,可以通過梯度下降等優(yōu)化算法進行訓練。由于其可微性,Soft Attention在深度學習模型中得到了廣泛應(yīng)用。
4.3 根據(jù)注意力的來源分類
——General Attention(普通注意力):
- 特點:利用外部信息來指導(dǎo)注意力的分配。
- 工作機制:在生成注意力權(quán)重時,考慮當前焦點與外部信息(如查詢向量)的匹配程度。
- 應(yīng)用場景:適用于需要利用外部知識或上下文信息來指導(dǎo)注意力分配的情況。
——Self Attention(自注意力):
- 特點:僅利用輸入序列內(nèi)部的信息進行注意力分配,不考慮外部信息。
- 工作機制:將輸入序列中的每個元素與其他元素進行比較和關(guān)聯(lián),從而計算出每個元素的注意力權(quán)重。
- 應(yīng)用場景:自注意力是Transformer模型中的核心機制之一,廣泛應(yīng)用于自然語言處理領(lǐng)域的各種任務(wù)中。由于其能夠捕捉輸入序列內(nèi)部的依賴關(guān)系,自注意力也被用于圖像識別、語音識別等其他領(lǐng)域。
- 具體形式:自注意力可以進一步分為單頭自注意力和多頭自注意力。單頭自注意力使用一個注意力頭來計算權(quán)重;而多頭自注意力則使用多個獨立的注意力頭并行計算權(quán)重,然后將它們的結(jié)果拼接或平均起來作為最終的輸出。這種多頭機制可以捕捉輸入數(shù)據(jù)在不同子空間中的特征表示,從而提高模型的表達能力。
4.4 根據(jù)注意力的層次結(jié)構(gòu)分類
——單層Attention:
- 在單層Attention中,注意力機制只作用于輸入序列的一個層次上(如詞級別),沒有考慮不同層次之間的關(guān)聯(lián)和交互。
——多層Attention:
- 多層Attention通過堆疊多個注意力層來捕捉輸入序列在不同層次上的信息。每個注意力層都可以關(guān)注到不同級別的信息(如詞級別、短語級別、句子級別等),從而實現(xiàn)更細粒度的信息抽取和表示學習。這種多層結(jié)構(gòu)有助于模型捕捉更復(fù)雜的語言現(xiàn)象和語義關(guān)系。
——多頭Attention(Multi-Head Attention):
- 多頭Attention是Transformer模型中的一個關(guān)鍵組件,它通過并行計算多個獨立的注意力頭來捕捉輸入序列在不同子空間中的特征表示。每個頭都可以關(guān)注到不同的信息片段,從而提高了模型的表達能力和泛化能力。多頭Attention的輸出通常是將所有頭的輸出拼接起來或通過線性變換進行融合得到的。
4.5 其他形式的注意力模型
除了上述分類方式外,還有一些其他形式的注意力模型值得提及:
——通道注意力(Channel Attention):
- 通道注意力主要關(guān)注輸入特征圖中不同通道之間的重要性差異。通過對每個通道的特征進行加權(quán)處理來強調(diào)或抑制某些通道的信息傳遞,從而提高模型對關(guān)鍵特征的敏感性。常見的通道注意力機制包括SENet中的Squeeze-and-Excitation模塊和ECANet中的Efficient Channel Attention模塊等。
——空間注意力(Spatial Attention):
- 空間注意力主要關(guān)注輸入特征圖中不同空間位置的重要性差異。通過對每個位置的特征進行加權(quán)處理來強調(diào)或抑制某些位置的信息傳遞,從而使模型能夠聚焦于關(guān)鍵區(qū)域或忽略不相關(guān)區(qū)域的信息干擾。常見的空間注意力機制包括ConvLSTM中的Spatial Attention模塊和STN(Spatial Transformer Networks)中的Affine Transformation等。
綜上所述,注意力模型具有多種形式和分類方式,每種形式都有其獨特的特點和應(yīng)用場景。在實際應(yīng)用中,可以根據(jù)具體任務(wù)和數(shù)據(jù)特點選擇合適的注意力機制來提高模型的性能和解釋性。