lstm訓練情感分析的優點 LSTM為何如此有效?

2021-10-17 02:22:31 字數 1799 閱讀 2954

最近也遇到了一些跟lstm效能相關的情況,也說一點個人觀點吧。

tl;dr:

我認為lstm比其他網路效能好的問題主要有這麼幾個特徵:屬於時序資料(有時間依賴性),並且要求全域性化處理;

輸入和輸出的元素級別的對應上(比如單詞與單詞之間)可能有不小的時間跨度;

資料不太短但也不會太長,例如小於1000個步長。

縱向對比,rnn(包括但不限於lstm)在時序資料中效能較好的原因我認為主要是兩方面:全域性化處理和memory (hidden) cell。全域性化表示完整的輸入才能包含所有資訊,只看一部分(區域性化)可能丟失資訊從而導致建模失效;memory cell保留每一步的資訊來動態調整下一步。這些也都是老生常談的rnn的優勢。blstm由於有雙向資訊全域性化優勢更加明顯,所以很多非因果的系統裡blstm效能常常能達到非常好的效能。全域性化處理在例如翻譯之類的任務裡非常重要,因為少了乙個詞意思可能就完全不一樣了,cnn等區域性化或感受野不夠大的結構可能會直接失效;情感分類我不大了解不知道是不是也有這種情況,例如某些句尾單詞非常影響結果之類的,但如果blstm顯著好於別的結構那應當也有某些全域性性資訊起關鍵作用。

橫向對比,lstm與它的各種變種比vanilla rnn好的原因我認為主要就是門機制,這一點其他回答已經說了很多了,我也不多贅述了。但是rnn本身也有各種變種(urnn, ornn, irnn, 前段時間的indrnn啥的),在一些問題上能達到跟lstm相同或更好的效能,所以門機制為什麼有效就又有點不明朗了。如果說門機制僅僅是因為解決了梯度問題而有效,那對於同樣解決了梯度問題的某種rnn變種而言,在相同深度、相同參數量的情況下是不是能有一樣的效能呢?目前看來似乎不是,所以門機制應該是有更多的作用的,比如內部的正則化、類似highway network的information flow之類的(我瞎猜的)。但是lstm深了以後不大好視覺化,所以我是很期待能有較好的解決deep lstm視覺化的文章的。

attention也是乙個全域性化處理的方法。它在lstm裡能提高效能的原因相當於另外顯式的加了一層對全域性資訊建模的過程,幫lstm把沒學到或者漏了的東西給補回來。所以attention自己本身在某些任務裡就能有好效能,比如其他答案多次提到的attention is all you need,因為它在目的的角度講跟lstm做的是同乙個事情。lstm+attention似乎一般都能比只用lstm要稍好一點,但是這個也跟目標任務相關。nlp中的seq2seq類模型、cv中的video captioning模型應當是提公升最大的,因為輸入和輸出中的對應可能有很長的時間(單詞、幀)跨度,這種時候attention經常能幫大忙;語音識別中attention也有幫助,但幫助的主要是language model而不是auditory model,因為auditory model本身還是區域性化的(說了啥就是啥,音素上是不會變的),而language model是全域性的(從上文來看,這裡這些音素組成的是個什麼詞?),但是提公升上沒有nlp裡那麼明顯,不過這又是另乙個問題了——我覺得lstm在語音裡的坑比nlp裡要多。

另一方面,lstm在非常長的資料上(比如超過1000個step)是很難訓練的,這個問題一般可能不太會遇到,但是語音裡也不算罕見。無論是波形還是頻譜圖,在句子長了以後是很容易上千甚至上幾千的,這時候lstm的訓練就會有些問題。一般我會加個gradient clipping來處理特別長的輸入,並且發現這樣比不加要好非常多。從這個角度講,dilated cnn系列的結構,比如temporal convolutional network(tcn)也能對長時間資料來建模,並且收斂速度、模型大小等方面在資料長的情況下要好不少,但是缺點是tcn的感受野限制使得它注定不是完全的全域性化建模,它能用來學習的長度就是感受野的長度(除非弄乙個特別大的感受野,保證無論什麼輸入都能覆蓋整個資料)。並且如果感受野不夠大,tcn就不可能作為blstm的等價替代品。

基於LSTM分類文字情感分析

文字情感分析作為nlp的常見任務,具有很高的實際應用價值。本文將採用lstm模型,訓練乙個能夠識別文字postive,neutral,negative三種情感的分類器。本文的目的是快速熟悉lstm做情感分析任務,所以本文提到的只是乙個baseline,並在最後分析了其優劣。對於真正的文字情感分析,在...

機器學習 LSTM應用之情感分析

1.概述 在情感分析的應用領域,例如判斷某一句話是positive或者是negative的案例中,咱們可以通過傳統的standard neuro network來作為解決方案,但是傳統的神經網路在應用的時候是不能獲取前後文字之間的關係的,不能獲取到整個句子的乙個整體的意思,只能通過每乙個詞的意思來最...

使用飛槳實現基於LSTM的情感分析模型

接下來讓我們看看如何使用飛槳實現乙個基於長短時記憶網路的情感分析模型。在飛槳中,不同深度學習模型的訓練過程基本一致,流程如下 資料處理 選擇需要使用的資料,並做好必要的預處理工作。網路定義 使用飛槳定義好網路結構,包括輸入層,中間層,輸出層,損失函式和優化演算法。網路訓練 將準備好的資料送入神經網路...