NLP系列 9 Attention機制

2021-09-23 20:35:38 字數 1315 閱讀 9903

之前做專案時同組大佬用到過attention機制,attention機制對模型能夠有一定的提公升作用。

人在看一張一篇文章時,不會對所有部分都投入同樣的注意力,而是有所側重。所謂側重就是賦予不同的權重。

attention是一種用於提公升基於rnn(lstm或gru)的encoder + decoder模型的效果的的機制。attention機制目前非常流行,廣泛應用於機器翻譯、語音識別、影象標註等很多領域,之所以它這麼受歡迎,是因為attention給模型賦予了區分辨別的能力,例如,在機器翻譯、語音識別應用中,為句子中的每個詞賦予不同的權重,使神經網路模型的學習變得更加靈活,同時attention本身可以做為一種對齊關係,解釋翻譯輸入/輸出句子之間的對齊關係,解釋模型到底學到了什麼知識,為我們開啟深度學習的黑箱,提供了乙個視窗。

首先需要介紹attention機制通常應用的場景:encoder-decoder:

encoder-decoder框架是深度學習的一種模型框架,是乙個解決問題的通用框架,主要解決seq2seq類問題。encoder-decoder框架的流程可以理解為:先編碼,儲存,最後解碼。用人腦流程來模擬,先看到的是源sequence,人腦根據自己的知識理解這個sequence,並將理解的記憶下來,形成記憶(對應context),這個過程叫encoder。然後,再根據這個context,針對不同的問題利於context進行解答,形成答案並輸出,這個過程叫decoder。nlp的許多經典任務都可以抽象為encode-decoder,比如:機器翻譯、文字摘要、閱讀理解及語音識別等。模型的框架如下圖所示:

在seq2seq模型中經常會遇到以下問題:

han就是多層注意力模型,示意圖如下:

利用了兩次attention機制,一層基於詞,一層基於句。

首先是詞層面:

輸入採用word2vec形成基本語料向量後,採用雙向gru抽特徵:

一句話中的詞對於當前分類的重要性不同,採用attention機制實現如下:

參考:

NLP入門 Task9 Attention原理

注意力機制 attention mechanism 是解決資訊超載問題的一種資源分配方案,將計算資源分配給更重要的任務。注意力機制的計算可以分為兩步 一是在所有輸入資訊上計算注意力分布,二是根據注意力分布來計算輸入資訊的加權平均。注意力分布採用一種 軟性 的資訊選擇機制,首先計算在給定q和x下,選擇...

快速理解NLP中的Attention機制

常規的機器翻譯採用encoder decoder結構,其中兩個模組的目的是 這樣的問題在於,每一次的輸出y iy i yi 所關注的語義內容可能並不是一樣的,比如句子 請結合上圖來理解這些公式 總而言之,整個attention的計算過程如下所示 mti viq t 1m v iq mti v i q...

NLP 機器翻譯中的Attention

encoder decoder模型雖然非常經典,但是侷限性也非常大。最大的侷限性就在於編碼和解碼之間的唯一聯 系就是乙個固定長度的語義向量c。也就是說,編碼器要將整個序列的資訊壓縮進乙個固定長度的向量中。但是這樣做有兩個弊端,一是語義向量無法完全表示整個序列的資訊,二是先輸入的內容攜帶的資訊會被後輸...