免费xxxx大片国产片_精品在线一区_亚洲午夜福利av_亚洲色大成人一区二区_无码熟妇人妻AV在线影片免费

您的位置:首頁(yè) >聚焦 > 關(guān)注 >

焦點(diǎn)日?qǐng)?bào):經(jīng)典情感分析模型總結(jié)(上)

2023-06-23 14:08:53 來(lái)源:機(jī)器之心

機(jī)器之心專欄

本專欄由機(jī)器之心SOTA!模型資源站出品,每周日于機(jī)器之心公眾號(hào)持續(xù)更新。
本專欄將逐一盤點(diǎn)自然語(yǔ)言處理、計(jì)算機(jī)視覺(jué)等領(lǐng)域下的常見(jiàn)任務(wù),并對(duì)在這些任務(wù)上取得過(guò) SOTA 的經(jīng)典模型逐一詳解。前往 SOTA!模型資源站()即可獲取本文中包含的模型實(shí)現(xiàn)代碼、預(yù)訓(xùn)練模型及 API 等資源。

本文將分 3 期進(jìn)行連載,共介紹 18個(gè)推薦系統(tǒng)任務(wù)上曾取得 SOTA 的經(jīng)典模型。


【資料圖】

第 1 期:CNN、GRNN、CLSTM、TD-LSTM/TC-LSTM

第 2 期:MemNet、AT-LSTM、IAN、AF-LSTM

第 3 期:Bert on ABSA、ASGCN、GAN、Sentic GCN

您正在閱讀的是其中的第 1 期。前往 SOTA!模型資源站()即可獲取本文中包含的模型實(shí)現(xiàn)代碼、預(yù)訓(xùn)練模型及 API 等資源。

本期收錄模型速覽
模型SOTA!模型資源站收錄情況模型來(lái)源論文
CNN/project/textcnn收錄實(shí)現(xiàn)數(shù)量:6支持框架:PyTorch,TensorFlow等Convolutional Neural Networks for Sentence Classification
GRNN/project/grnn-2Document modeling with gated recurrent neural network for sentiment classification
CLSTM/project/clstmCached Long Short-Term Memory Neural Networks for Document-Level Sentiment Classification
TD-LSTM/TC-LSTM/project/td-lstm-2收錄實(shí)現(xiàn)數(shù)量:11支持框架:PyTorch,TensorFlow等Effective LSTMs for Target-Dependent Sentiment Classification

情感分析(sentiment analysis)是指利用計(jì)算機(jī)技術(shù)對(duì)文本、圖像、音頻、視頻甚至跨模態(tài)的數(shù)據(jù)進(jìn)行情緒挖掘與分析。廣義上講,情感分析還包括對(duì)觀點(diǎn)、態(tài)度、傾向的分析等。情感分析是自然語(yǔ)言處理的一個(gè)重要的研究領(lǐng)域。情感分析主要涉及兩個(gè)對(duì)象,即評(píng)價(jià)的對(duì)象(包括商品、服務(wù)、組織、個(gè)體、話題、問(wèn)題、事件等)和對(duì)該對(duì)象的態(tài)度、情感等。情感分析在社會(huì)的輿情管理、商業(yè)決策、精準(zhǔn)營(yíng)銷等領(lǐng)域有著廣泛的應(yīng)用。從情感分析的數(shù)據(jù)來(lái)源角度看,可分為人臉情感分析、語(yǔ)音情感分析、肢體語(yǔ)言情感分析、文本情感分析和生理模式情感分析等,本文聚焦于文本的情感分析,這也是目前網(wǎng)絡(luò)內(nèi)容理解中使用的重要技術(shù)(如無(wú)特別說(shuō)明,下文中提到的情感分析均為文本情感分析)。在自然語(yǔ)言處理中,情感分析屬于典型的文本分類問(wèn)題,即把需要進(jìn)行情感分析的文本劃分為其所屬類別。主流的情感分析方法有兩種:基于詞典的方法和基于機(jī)器學(xué)習(xí)算法的方法。基于詞典的方法主要通過(guò)制定一系列的情感詞典和規(guī)則,拆解文本、提取關(guān)鍵詞、計(jì)算情感值,最后通過(guò)情感值來(lái)作為文本的情感傾向判斷依據(jù)。這種方法往往會(huì)忽略其詞順序、語(yǔ)法和句法,將這段文本僅僅看做是一個(gè)詞集合,因此不能充分的表達(dá)文本語(yǔ)義信息。而引入深度學(xué)習(xí)技術(shù)的機(jī)器學(xué)習(xí)方法,利用詞嵌入技術(shù)可以避免文字長(zhǎng)短不均帶來(lái)的處理困難;使用深度學(xué)習(xí)抽象特征,可以避免大量人工提取特征的工作;模擬詞與詞之間的聯(lián)系,有局部特征抽象化和記憶功能,因此,深度學(xué)習(xí)技術(shù)在情感分析中發(fā)揮了越來(lái)越重要的作用。目前情感分析用到的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)有多層神經(jīng)網(wǎng)絡(luò)(MLP)、卷積神經(jīng)網(wǎng)絡(luò)(CNN)和長(zhǎng)短期記憶模型(LSTM),具體不同的模型通過(guò)交叉驗(yàn)證技術(shù)選取最優(yōu)參數(shù)(比如,幾層模型、每層節(jié)點(diǎn)數(shù)、Dropout 概率等)。情感分析的模型主要分為三個(gè)層面,分別為:Document level、Sentence level和Aspect level。其中,Document level是將整個(gè)文本作為分析單元并假設(shè)該文本討論的對(duì)象為單一實(shí)體且情感、觀點(diǎn)都是鮮明、清晰的,即neural、positive or negative 。Sentence level則是以每個(gè)句子作為單獨(dú)的分析對(duì)象,由于句子與句子間可能存在某些關(guān)聯(lián),因此我們不能將其認(rèn)為是觀點(diǎn)明確的。而對(duì)于Aspect level其分類粒度更細(xì),即我們需要抽取出targets不同層面相互獨(dú)立的評(píng)價(jià),并進(jìn)行總結(jié)綜合得到最后的情感。本文回顧情感分析中必備的TOP模型。一些經(jīng)典的自然語(yǔ)言處理領(lǐng)域的模型,例如XLNet、Bert及各種變體,適用于NLU、文本生成、情感分析等多個(gè)領(lǐng)域,本文均不涉及。本文只專注于專門的sentiment analysis模型。

一、Document level/Sentence level

1、 CNN

這篇文章引入卷積神經(jīng)網(wǎng)絡(luò)(CNN),將層與卷積濾波器應(yīng)用于局部特征。最初發(fā)明用于計(jì)算機(jī)視覺(jué)的CNN模型后被證明對(duì)NLP有效,并在語(yǔ)義分析、搜索查詢檢索、句子建模和其他傳統(tǒng)NLP任務(wù)中取得了優(yōu)異的結(jié)果。本文訓(xùn)練了一個(gè)簡(jiǎn)單的CNN,在一個(gè)無(wú)監(jiān)督的神經(jīng)語(yǔ)言模型得到的單詞向量的基礎(chǔ)上再加上一層卷積,最初保持單詞向量靜態(tài),只學(xué)習(xí)模型的其他參數(shù)。這個(gè)簡(jiǎn)單的模型在多個(gè)基準(zhǔn)上取得了很好的結(jié)果,這表明預(yù)先訓(xùn)練的向量是“通用”的特征提取器,可以用于各種分類任務(wù)。通過(guò)微調(diào)學(xué)習(xí)特定于任務(wù)的向量,可以得到進(jìn)一步的改進(jìn)。最后,作者描述了對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的一個(gè)簡(jiǎn)單修改,通過(guò)擁有多個(gè)通道,允許使用預(yù)先訓(xùn)練的和任務(wù)特定的向量。

圖1有兩個(gè)通道的例句的模型結(jié)構(gòu)

設(shè)xi ∈ Rk 為對(duì)應(yīng)于句子中的第i個(gè)單詞的k維詞向量,句子長(zhǎng)度為n,圖1左側(cè)是一個(gè)n*k的矩陣,表示一句話的n個(gè)詞語(yǔ),每個(gè)詞語(yǔ)是一個(gè)k維向量,假設(shè)文本中最長(zhǎng)的句子中的詞個(gè)數(shù)為n,則 小于n 的句子填充為m。最終得到的詞向量矩陣為 n * k。表示為:

其中,⊕是串聯(lián)運(yùn)算符。X_i:n為單詞xi的串聯(lián)(從第i個(gè)單詞到第n個(gè)單詞,把它們串聯(lián)起來(lái)),卷積運(yùn)算包含一個(gè)濾波器w∈R^hk,它被應(yīng)用于單詞h的窗口以生成一個(gè)新的特征。例如,特征c_i由單詞x_i:i+h?1的窗口生成:

其中,b∈R是一個(gè)偏置項(xiàng),w是權(quán)重,f是一個(gè)非線性函數(shù)。這個(gè)過(guò)濾器應(yīng)用于句子{X_1:h, X_2:h+1, …, X_n-h+1:n}生成特征圖:

然后在特征映射上應(yīng)用max超時(shí)池化操作,并將最大值?c=max{c}作為與此對(duì)應(yīng)的特征特殊過(guò)濾器。其思想是為每個(gè)特征映射捕獲最重要的特征,即具有最高值的特征。這種池化方案可以處理可變的句子長(zhǎng)度。此外,本文在倒數(shù)第二層使用了dropout以解決過(guò)擬合問(wèn)題,當(dāng)模型參數(shù)太多而訓(xùn)練樣本少的時(shí)候容易出現(xiàn)過(guò)擬合問(wèn)題。

項(xiàng)目SOTA!平臺(tái)項(xiàng)目詳情頁(yè)
CNN前往 SOTA!模型平臺(tái)獲取實(shí)現(xiàn)資源:/project/textcnn

2、GRNN

這篇文章引入了一個(gè)神經(jīng)網(wǎng)絡(luò),以統(tǒng)一的、自底向上的方式來(lái)學(xué)習(xí)基于向量的文本表示方法。該模型首次使用CNN/LSTM來(lái)學(xué)習(xí)句子表示,利用Gated RNN自適應(yīng)地對(duì)句子的語(yǔ)義及其之間關(guān)系進(jìn)行編碼。

圖2 文本級(jí)情感分類的神經(jīng)網(wǎng)絡(luò)模型。(w_i)^n代表第n個(gè)句子中的第i個(gè)詞,l_n是句子長(zhǎng)度

詞向量表示詞向量表示有兩種實(shí)現(xiàn)方式:隨機(jī)初始化或者預(yù)訓(xùn)練的方式。作者參考的是word2vec實(shí)現(xiàn)方案,并且用預(yù)訓(xùn)練詞向量的方式以保留更多的語(yǔ)義信息。句子表示CNN和LSTM模型都可以用于句子編碼。兩種模型可以將非固定長(zhǎng)度的句子表示成定長(zhǎng)的向量,且不需依賴依存句法分析或者成分句法分析就能保留句子的詞序等信息。作者在本文中使用CNN with multiple conventional filters of different widths的方式實(shí)現(xiàn)句子編碼。作者在文章中分別使用寬度為1,2,3的卷積核去獲取unigrams,bigrams和trigrams。為了得到句子的全局語(yǔ)義信息,作者隨后接入一個(gè)average pooling layer,再接入tanh激活函數(shù)(作用是引入非線性),最后將整個(gè)句子的不同寬度卷積核的向量表示接入一個(gè)Average層,從而得到該句平均向量表示。整個(gè)過(guò)程如圖3所示。

圖3使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行句子合成

篇章表示一個(gè)最簡(jiǎn)單的實(shí)現(xiàn)策略是:忽略句間順序,直接使用句向量的平均值作為該文本向量表示。先不考慮計(jì)算效率問(wèn)題,這種方式并不能有效的保留句子之間復(fù)雜的語(yǔ)言關(guān)系(比如:原因結(jié)構(gòu),反義結(jié)構(gòu)等)。CNN模型可以用來(lái)表示篇章,這種模型通過(guò)其線性層儲(chǔ)存句間關(guān)系。RNN也可以實(shí)現(xiàn),但基本的RNN模型存在缺陷:梯度消失或者梯度爆炸。在長(zhǎng)句中問(wèn)題就會(huì)凸顯出來(lái):梯度可能會(huì)呈指數(shù)級(jí)上升或者衰減,這就使得長(zhǎng)距離依賴問(wèn)題變得棘手。為了解決這個(gè)問(wèn)題,作者將基本RNN改造成一種帶有門控結(jié)構(gòu)的RNN,這種方式類似于LSTM或者GNN,區(qū)別見(jiàn)下列轉(zhuǎn)換函數(shù):

該模型可以被看作是一個(gè)LSTM,它的輸出門永遠(yuǎn)是打開(kāi)的,因?yàn)槲覀兏鼉A向于不拋棄句子的任何部分語(yǔ)義來(lái)獲得更好的文本表示。圖4(a)顯示了一個(gè)標(biāo)準(zhǔn)的順序方式,其中最后一個(gè)隱藏向量被視為情感分類的文本表示。我們可以做進(jìn)一步的擴(kuò)展,比如將隱性向量的平均值作為文本表示,這需要考慮具有不同顆粒度的歷史語(yǔ)義的層次結(jié)構(gòu)。該方法如圖4(b)所示。進(jìn)一步,可以以同樣的方式使用前面的歷史和后面的證據(jù),并利用雙向門控RNN作為計(jì)算工具。

圖4 用門控遞歸神經(jīng)網(wǎng)絡(luò)進(jìn)行文本文建模。GNN代表了門控遞歸神經(jīng)網(wǎng)絡(luò)的基本計(jì)算單元

組合的文本表示可以自然地被視為文本特征,用于情感分類而不需要特征工程。具體來(lái)說(shuō),首先添加一個(gè)線性層,將文本向量轉(zhuǎn)化為實(shí)值向量,其長(zhǎng)度為類號(hào)C。之后,添加一個(gè)softmax層,將實(shí)值轉(zhuǎn)化為條件概率,其計(jì)算方式如下:

對(duì)于模型訓(xùn)練,作者使用黃金情感分布P^g(d)和預(yù)測(cè)的情感分布P(d)之間的交叉熵誤差作為損失函數(shù):

然后通過(guò)反向傳播對(duì)整個(gè)參數(shù)集求損失函數(shù)的導(dǎo)數(shù),使用隨機(jī)梯度下降算法更新參數(shù):

項(xiàng)目SOTA!平臺(tái)項(xiàng)目詳情頁(yè)
GRNN前往 SOTA!模型平臺(tái)獲取實(shí)現(xiàn)資源:/project/grnn-2

3、 CLSTM

神經(jīng)網(wǎng)絡(luò)在情感分類任務(wù)中取得了巨大的成功,因?yàn)樗鼈兡軌驕p輕特征工程的任務(wù)壓力。然而,由于存儲(chǔ)單元的缺陷,如何在遞歸架構(gòu)下對(duì)文檔級(jí)情感分類的長(zhǎng)文本進(jìn)行建模仍有待研究。為了解決這個(gè)問(wèn)題,本文提出了一個(gè)緩存的長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(Cached Long Short-Term Memory Neural Networks ,CLSTM)來(lái)捕捉長(zhǎng)文本中的整體語(yǔ)義信息。CLSTM引入了一個(gè)緩存機(jī)制,它將內(nèi)存分為具有不同遺忘率的幾組,從而使網(wǎng)絡(luò)能夠在一個(gè)循環(huán)單元中更好地保持情感信息。由于標(biāo)準(zhǔn)的LSTM不可避免地會(huì)丟失有價(jià)值的特征,本文提出了一種緩存的長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(cached long short-term memory neural networks,CLSTM),通過(guò)引入緩存機(jī)制,在較長(zhǎng)的步驟中捕捉信息。此外,為了更好地控制和平衡歷史信息和傳入信息,采用了LSTM的一個(gè)特殊變體,耦合輸入和遺忘門LSTM(Coupled Input and Forget Gate LSTM,CIFG-LSTM)。在CIFG-LSTM中,輸入門和遺忘門被耦合為一個(gè)統(tǒng)一的門,即i(t)=1-f(t)。用f(t)來(lái)表示耦合門: CLSTM旨在通過(guò)緩存機(jī)制捕捉長(zhǎng)距離信息,該機(jī)制將記憶分為若干組,不同的遺忘率被視為過(guò)濾器,分配給不同的組。不同的組別通過(guò) squashing 遺忘率的尺度來(lái)捕捉不同尺度的依賴性。遺忘率高的組是短期記憶,而遺忘率低的組是長(zhǎng)期記憶。特別是,把存儲(chǔ)單元分為K組{G_1, - -, G_K}。每組包括一個(gè)內(nèi)部存儲(chǔ)器c_k、輸出門o_k和遺忘率r_k。不同組的遺忘率被壓制在不同的范圍內(nèi)。LSTM修改如下:

為了更好地區(qū)分每組的不同作用,其遺忘率被squash到一個(gè)明顯的區(qū)域。squash函數(shù)ψ_k(z)可以被形式化為:

圖5 模型架構(gòu)。不同風(fēng)格的箭頭表示不同的遺忘率。將帶有星星的組送入全連接層進(jìn)行softmax分類。下面是一個(gè)B-CLSTM的實(shí)例,文本長(zhǎng)度等于4,記憶組的數(shù)量是3

雙向CLSTM(B-LSTM)模型利用了額外的后向信息,從而增強(qiáng)了記憶能力。作者繼續(xù)向CLSTM上引入雙向機(jī)制,文本中的單詞能夠從上下文中獲得信息。形式上,第k組的前向LSTM的輸出為:

第k組的后向LSTM的輸出為:

因此,將給定文本w_1:T中的每個(gè)詞wt編碼為(h_k()^t):

至此,用于文檔級(jí)情感分類的特定任務(wù)輸出層具有了對(duì)長(zhǎng)文本進(jìn)行建模的能力,可以使用本文提出的模型來(lái)分析文檔中的情感。

項(xiàng)目SOTA!平臺(tái)項(xiàng)目詳情頁(yè)

CLSTM

前往 SOTA!模型平臺(tái)獲取實(shí)現(xiàn)資源:/project/clstm

二、Aspect level

4、 TD-LSTM/TC-LSTM

本文首先提出了一種基本的長(zhǎng)短期記憶(LSTM)方法,建模一個(gè)句子的語(yǔ)義表示,而不考慮被評(píng)價(jià)的目標(biāo)詞。然后,考慮目標(biāo)詞對(duì)LSTM進(jìn)行擴(kuò)展,得到目標(biāo)依賴的長(zhǎng)短期記憶模型(TD-LSTM)。TD-LSTM是對(duì)目標(biāo)詞與其上下文詞的相關(guān)度進(jìn)行建模,并選擇上下文的相關(guān)部分來(lái)推斷指向目標(biāo)詞的情感極性。該模型采用標(biāo)準(zhǔn)的反向傳播方法進(jìn)行端到端的訓(xùn)練,其損失函數(shù)為監(jiān)督情感分類的交叉熵誤差。最后,對(duì)目標(biāo)連接的TD-LSTM進(jìn)行了擴(kuò)展,其中,合并目標(biāo)與上下文詞的語(yǔ)義關(guān)聯(lián)。

圖6 基本長(zhǎng)短期記憶(LSTM)方法及其用于目標(biāo)相關(guān)情感分類的目標(biāo)相關(guān)擴(kuò)展TD-LSTM。其中,w代表長(zhǎng)度為n的句子中的詞,{w_l+1, w_l+2, …, w_r-1} 為目標(biāo)單詞,{w_1, w_2, …, w_l}是前面的上下文單詞,{w_r, …, w_n?1, w_n}是上下文詞

如圖6,TD-LSTM是以目標(biāo)詞為分界點(diǎn)利用兩個(gè)LSTM,從目標(biāo)詞的左右向目標(biāo)詞方向進(jìn)行上下文信息融合。具體來(lái)說(shuō),使用兩個(gè)LSTM神經(jīng)網(wǎng)絡(luò),一個(gè)左LSTM L和一個(gè)右LSTM R,分別對(duì)前面和后面的上下文進(jìn)行建模。LSTM L的輸入是前面的上下文加上目標(biāo)字符串,LSTM R的輸入是后面的上下文加上目標(biāo)字符串。從左到右運(yùn)行l(wèi)stm l,從右到左運(yùn)行l(wèi)stm r,因?yàn)樽髡哒J(rèn)為將目標(biāo)字符串作為最后一個(gè)單元可以更好地利用目標(biāo)字符串的語(yǔ)義。然后,將LSTM L和 LSTM R的最后一個(gè)隱藏向量連接到一個(gè)softmax層,對(duì)情感極性標(biāo)簽進(jìn)行分類。還可以嘗試對(duì)LSTM L和LSTM R的最后隱藏向量進(jìn)行平均或求和。TD-LSTM相較于LSTM可以更好的結(jié)合上下文的信息,但是人在閱讀時(shí)除了會(huì)考慮到上下文信息,還會(huì)考慮到語(yǔ)境,就是目標(biāo)詞與上下文之間的交互關(guān)系。由此本文提出了TC-LSTM,TC-LSTM就是簡(jiǎn)單粗暴的在輸入上concat一個(gè)目標(biāo)詞的向量表示。該組件在構(gòu)成句子時(shí)明確地利用目標(biāo)詞與上下文詞之間的連接。目標(biāo)字符串t,將目標(biāo)t表示為{w_l+1, w_l+2…, W_r?1},因?yàn)槟繕?biāo)可以是可變長(zhǎng)度的單詞序列,通過(guò)對(duì)t所包含單詞的向量進(jìn)行平均,得到目標(biāo)向量v_target。TC-LSTM與TD-LSTM模型的區(qū)別是在TC-LSTM中,每個(gè)位置的輸入是單詞嵌入和目標(biāo)向量v_target的連接。TC-LSTM可以更好地利用目標(biāo)詞和上下文詞之間的聯(lián)系來(lái)構(gòu)建句子的表征。

圖7目標(biāo)連接長(zhǎng)短期記憶(TC-LSTM)模型用于目標(biāo)依賴的情感分類,其中w代表長(zhǎng)度為n的句子中的詞,{w_l+1, w_l+2, ..., w_r-1}是目標(biāo)詞,v_target是目標(biāo)表示,{w_1, w_2, ..., w_l}是前面的上下文詞,{w_r, ..., w_n-1, w_n}是后面的上下文詞

最后,模型訓(xùn)練交叉熵?fù)p失函數(shù):

其中,S為訓(xùn)練數(shù)據(jù),C為情感類別數(shù),s為一句話,Pc(s)是通過(guò)softmax層給出的預(yù)測(cè)s為C類的概率,(P_c)^g (s)表示C類是否是正確的情感類別,其值為1或0。通過(guò)反向傳播對(duì)損失函數(shù)對(duì)所有參數(shù)求導(dǎo),并用隨機(jī)梯度下降法更新參數(shù)。

項(xiàng)目SOTA!平臺(tái)項(xiàng)目詳情頁(yè)

TD-LSTM

前往 SOTA!模型平臺(tái)獲取實(shí)現(xiàn)資源:/project/td-lstm-2

前往 SOTA!模型資源站()即可獲取本文中包含的模型實(shí)現(xiàn)代碼、預(yù)訓(xùn)練模型及API等資源。

網(wǎng)頁(yè)端訪問(wèn):在瀏覽器地址欄輸入新版站點(diǎn)地址,即可前往「SOTA!模型」平臺(tái),查看關(guān)注的模型是否有新資源收錄。

移動(dòng)端訪問(wèn):在微信移動(dòng)端中搜索服務(wù)號(hào)名稱「機(jī)器之心SOTA模型」或 ID「sotaai」,關(guān)注 SOTA!模型服務(wù)號(hào),即可通過(guò)服務(wù)號(hào)底部菜單欄使用平臺(tái)功能,更有最新AI技術(shù)、開(kāi)發(fā)資源及社區(qū)動(dòng)態(tài)定期推送。