您的位置:首頁>正文

自然語言處理中的注意力機制是幹什麼的?

王小新 編譯自Quora

談神經網路中注意力機制的論文和博客都不少, 但很多人還是不知道從哪看起。 於是, 在國外問答網站Quora上就有了這個問題:如何在自然語言處理中引入注意力機制?

Quora自家負責NLP和ML的技術主管Nikhil Dandekar做出了一個簡要的回答:

概括地說, 在神經網路實現預測任務時, 引入注意力機制能使訓練重點集中在輸入資料的相關部分, 忽略無關部分。

注意力是指人的心理活動指向和集中於某種事物的能力。 比如說, 你將很長的一句話人工從一種語言翻譯到另一種語言, 在任何時候, 你最關注的都是當時正在翻譯的詞或短語,

與它在句子中的位置無關。 在神經網路中引入注意力機制, 就讓它也學會了人類這種做法。

注意力機制最經常被用於序列轉換(Seq-to-Seq)模型中。 如果不引入注意力機制, 模型只能以單個隱藏狀態單元, 如下圖中的S, 去捕獲整個輸入序列的本質資訊。 這種方法在實際應用中效果很差, 而且輸入序列越長, 這個問題就越糟糕。

圖1:僅用單個S單元連接的序列轉換模型

注意力機制在解碼器(Decoder)運行的每個階段中, 通過回顧輸入序列, 來增強該模型效果。 解碼器的輸出不僅取決於解碼器最終的狀態單元, 還取決於所有輸入狀態的加權組合。

圖2:引入注意力機制的序列轉換模型

注意力機制的引入增加了網路結構的複雜性,

其作為標準訓練模型時的一部分, 通過反向傳播進行學習。 這在網路中添加模組就能實現, 不需要定義函數等操作。

下圖的例子, 是將英語翻譯成法語。 在輸出翻譯的過程中, 你可以看到該網路“注意”到輸入序列的不同部分。

圖3:翻譯網路示意圖

由於英語和法語語序比較一致, 從網路示意圖可以看出, 除了在把短語“European Economic Zone(歐洲經濟區)”翻譯成法語“zone économique européenne”時, 網路線有部分交叉, 在大多數時, 解碼器都是按照順序來“注意”單詞的。

文中配圖來自Distill

推薦閱讀:

Attention and Augmented Recurrent Neural Networks

http://distill.pub/2016/augmented-rnns/

Attention and Memory in Deep Learning and NLP

http://www.wildml.com/2016/01/attention-and-memory-in-deep-learning-and-nlp/

Peeking into the neural network architecture used for Google’s Neural Machine Translation

https://smerity.com/articles/2016/google_nmt_arch.html

【完】

招聘

One More Thing…

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示