綜述論文:情感分析中的深度學習

選自arXiv

作者:Lei Zhang、Shuai Wang、Bing Liu

機器之心編譯

近年來,深度學習有了突破性發展,NLP 領域裡的情感分析任務逐漸引入了這種方法,並形成了很多業內最佳結果。本文中,來自領英與伊利諾伊大學芝加哥分校的研究人員對基於深度學習的情感分析研究進行了詳細論述。

情感分析或觀點挖掘是對人們對產品、服務、組織、個人、問題、事件、話題及其屬性的觀點、情感、情緒、評價和態度的計算研究。該領域的開始和快速發展與社交媒體的發展相一致,如評論、論壇、博客、微博、推特和社交網路,因為這是人類歷史上第一次擁有如此海量的以數字形式記錄的觀點數據。早在 2000 年,情感分析就成為 NLP 中最活躍的研究領域之一。它在數據挖掘、Web 挖掘、文本挖掘和信息檢索方面得到了廣泛的研究。實際上,因其對商業和社會的整體重要性,它已經從計算機科學擴展到管理學和社會學,如營銷、金融、政治學、傳播學、健康科學,甚至歷史學。這種發展原因在於觀點是幾乎所有人類活動的核心,是人類行為的重要影響因素。我們的信念、對現實的感知,以及我們所做的決策在很大程度上依賴於別人看到和評價世界的方式。因此,我們在做決策的時候,通常會尋求別人的意見。不只是個人,組織也是如此。

現有研究已經產生了可用於情感分析多項任務的大量技術,包括監督和無監督方法。在監督方法中,早期論文使用所有監督機器學習方法(如支持向量機、最大熵、樸素貝葉斯等)和特徵組合。無監督方法包括使用情感詞典、語法分析和句法模式的不同方法。現有多本綜述書籍和論文,廣泛地涵蓋了早期的方法和應用。

大約十年前,深度學習成為強大的機器學習技術,在很多應用領域產生了當前最優的結果,包括計算機視覺、語音識別、NLP 等。近期將深度學習應用到情感分析也逐漸變得流行。本文首先概述深度學習,然後對基於深度學習的情感分析進行綜述。

論文:Deep Learning for Sentiment Analysis: A Survey

論文鏈接:arxiv.org/pdf/1801.0788

作為一項學習數據的多層特徵或表徵的強大機器學習技術,深度學習的出現實現了當前最優的預測結果。伴隨著在諸多應用領域的成功,深度學習近年來也被廣泛應用於情感分析。本論文首先概述深度學習,接著全面調研深度學習在情感分析領域的應用現狀。

情感分析中的基本模型

前饋神經網路

常規前饋神經網路(FNN)不考慮輸入數據可能具備的任何特定結構。儘管如此,它仍是非常強大的機器學習工具,尤其是與先進的正則化技術一起使用時。這些正則化技術幫助解決人們處理「深度」網路時遇到的訓練問題:神經網路有大量隱藏層,隱藏層非常難以訓練(梯度消失和過擬合問題)。

圖 4.1:有 N + 1 層(N ? 1 個隱藏層)的神經網路。淺層網路架構僅使用一個隱藏層。深度學習需要使用多個隱藏層,通常包含同樣數量的隱藏神經元。數量大約是輸入和輸出變數數量的平均值。

FNN 由一個輸入層、一個(淺層網路)或多個(深層網路,因此叫作深度學習)隱藏層,和一個輸出層構成。每個層(除輸出層以外)與下一層連接。這種連接是 FNN 架構的關鍵,具有兩個主要特徵:加權平均值和激活函數。

加權平均過程,即將前一層給神經元的激勵值和對應的權重矩陣相乘而得出後一個神經元的輸入值,這一過程展示在下圖 4.2 中,我們可以說前一層神經元的加權和就是後一層神經元的輸入。

正式地,加權平均的過程可以使用如下方程式表達:

此外,每一層的隱藏神經元可以定義為:

其中其中 v∈[0,N?1]、f∈[0,(F_v+1)?1]、t∈[0,(T_mb)? 1]。在這裡 g 為非線性激活函數,是 FNN 另外一個十分重要的元素。因為激活函數的非線性屬性,所以它允許預測任意的輸出數據。

Word2Vec 詞嵌入

一般來說,Word2Vec 方法由兩部分組成。首先是將高維 one-hot 形式表示的單詞映射成低維向量。例如將 10,000 列的矩陣轉換為 300 列的矩陣,這一過程被稱為詞嵌入。第二個目標是在保留單詞上下文的同時,從一定程度上保留其意義。Word2Vec 實現這兩個目標的方法有 skip-gram 和 CBOW 等,skip-gram 會輸入一個詞,然後嘗試估計其它詞出現在該詞附近的概率。還有一種與此相反的被稱為連續詞袋模型(Continuous Bag Of Words,CBOW),它將一些上下文詞語作為輸入,並通過評估概率找出最適合(概率最大)該上下文的詞。

對於連續詞袋模型而言,Mikolov 等人運用目標詞前面和後面的 n 個詞來同時預測這個詞。他們稱這個模型為連續的詞袋(CBOW),因為它用連續空間來表示詞,而且這些詞的先後順序並不重要。

連續的詞袋(Mikolov 等人,2013 年)

CBOW 可以看作一個具有先知的語言模型,而 skip-gram 模型則完全改變將語言模型的目標:它不像 CBOW 一樣從周圍的詞預測中間的詞;恰恰相反,它用中心語去預測周圍的詞:

Skip-gram(Mikolov 等人,2013)

自編碼器與降噪自編碼器

自編碼器神經網路是一個三層神經網路,其目標是使輸出值近似等價於輸入值。下圖展示了自編碼器的一般架構:

圖 3:自編碼器神經網路

因為神經元使用了非線性激活函數,自編碼器可以學習非線性表徵。這令自編碼器比主成分分析(PCA)或潛在語義分析(LSA)等線性方法要強大很多。

若我們將自編碼器以層級的形式堆疊,那麼高層的自編碼器就使用低層自編碼器的輸出作為輸入。這種堆疊的自編碼器與受限玻爾茲曼機(RBM)是構建深度神經網路的早期方法。一旦我們以無監督的形式訓練自編碼器,那麼描述 x(中間表徵)多級表徵的參數就能用來初始化監督式深度神經網路,這種神經網路在實驗上已經證明要比隨機初始化優秀。

降噪自編碼器(DAE)是自編碼器的擴展,DAE 背後的思想是強制隱藏層發現更魯棒的特徵,並阻止自編碼器簡單地學習恆等變換。也就是說,模型應該在存在雜訊時仍能重構輸入。這種技術也體現在情感分析中,例如從文檔中刪除或添加一些文字不應該改變文檔的語義。

卷積神經網路

CNN 非常擅長處理圖像數據,如下圖所示,它們一般由若干個卷積和池化操作組成,通常跟隨著一個或多個全連接層(與傳統的 FNN 層相似)。

相比於全連接神經網路,卷積網路每一個單元都只會和上一層部分單元相連接。一般每個卷積層的單元都可以組織成一個三維張量,即矩陣沿第三個方向增加一維數據。例如 Cifar-10 數據集的輸入層就可以組織成 32×32×3 的三維張量,其中 32×32 代表圖片的尺寸或像素數量,而 3 代表 RGB 三色通道。

卷積神經網路中最重要的就是卷積層,卷積層試圖將神經網路中的每一小塊進行更加深入的分析,從而得出抽象程度更高的特徵。一般來說通過卷積層處理的神經元結點矩陣會變得更深,即神經元的組織在第三個維度上會增加。

圖4:卷積神經網路

為了理解卷積層,下圖展示了卷積核或濾波器(filter)將當前層級上的一個子結點張量轉化為下一層神經網路上的一個長和寬都為 1,深度不限的結點矩陣。下圖輸入是一個 32×32×3 的張量,中間的小長方體為卷積核,一般可以為 3×3 或 5×5 等,且因為要計算乘積,那麼卷積核的第三個維度必須和其處理的圖像深度(即輸入張量第三個維度 3)相等。最右邊的矩形體的深度為 5,即前面使用了五個卷積核執行卷積操作。這五個卷積核有不同的權重,但每一個卷積層使用一個卷積核的權重是一樣的,所以下圖五層特徵中每一層特徵都是通過一個卷積核得出來的,也就是該層共享了權重。

循環神經網路

在傳統的前饋神經網路中,所有的示例都被認為是獨立的,它們沒有時間關聯性。這種時間關聯性是由循環神經網路實現的。一個典型的 RNN 結構如下:

如果將其展開,它會變成這樣:

在這些圖表中, x_t 是時間序列上的輸入,而 h_t 是循環過程中的隱藏狀態。我們看到 f 重複作用於不同時間步上的隱藏狀態,並將它傳入下一個時間步中,這就是 RNN特有的方式。基本上,你能輸入句子中的詞或者甚至是像 x_t 這樣的字元串中的字元,然後通過該循環神經網路它會得出一個 y_t。

目標是用 y_t 作為輸出,並將它與你的測試數據(通常是原始數據的一個小子集)比較。然後你會得出你的誤差率。比較完之後,有了誤差率,你就能使用一種叫隨時間反向傳播(BPTT)的技術。BPTT 返回檢查這個網路,並基於誤差率調整權重。這樣也調整了這個網路,並讓它學習去做得更好。

LSTM 網路

下面我們簡要地向讀者介紹 LSTM 單元選擇記憶或遺忘的具體處理流程。

以下是 LSTM 單元的詳細結構,其中 Z 為輸入部分,Z_i、Z_o 和 Z_f 分別為控制三個門的值,即它們會通過激活函數 f 對輸入信息進行篩選。一般激活函數可以選擇為 Sigmoid 函數,因為它的輸出值為 0 到 1,即表示這三個門被打開的程度。

圖片來源於李弘毅機器學習講義。

若我們輸入 Z,那麼該輸入向量通過激活函數得到的 g(Z) 和輸入門 f(Z_i ) 的乘積 g(Z) f(Z_i ) 就表示輸入數據經篩選後所保留的信息。Z_f 控制的遺忘門將控制以前記憶的信息到底需要保留多少,保留的記憶可以用方程 c*f(z_f)表示。以前保留的信息加上當前輸入有意義的信息將會保留至下一個 LSTM 單元,即我們可以用 c = g(Z)f(Z_i) + cf(z_f) 表示更新的記憶,更新的記憶 c 也表示前面與當前所保留的全部有用信息。我們再取這一更新記憶的激活值 h(c) 作為可能的輸出,一般可以選擇 tanh 激活函數。最後剩下的就是由 Z_o 所控制的輸出門,它決定當前記憶所激活的輸出到底哪些是有用的。因此最終 LSTM 的輸出就可以表示為 a = h(c)f(Z_o)。

RNN 與注意力機制

一般來說,我們可能會認為雙向 RNN 與 LSTM 就能處理數據中的長期依賴性。但是在實踐中,時序數據的長期依賴性問題仍然很難處理。因此,Bahdanau 等人提出了注意力機制。

神經網路中的注意力機制受到人類視覺中注意力的啟發,即人類視覺注意力能夠聚焦到圖像的特定區域,並在這個區域有非常高的解析度,而在其它區域有較低的解析度。在自然語言處理中,注意力機制允許模型根據輸入文本以及它到目前為止已經生成的隱藏狀態來學習要注意什麼,而不像標準 RNN 與 LSTM 那樣將全部原文本編碼成固定長度的向量。

下圖 8 展示了在雙向 RNN 中使用注意力機制的方法。其中每個解碼器輸出的序列 y_t 取決於所有輸入狀態的加權組合,而不只是如標準情況那樣選擇最後一個隱藏狀態。a_t,T 定義了每個輸入的隱藏狀態應該加權多少以結合為輸出向量。例如,a_2,2 有較大的值,那麼它就代表著在第二個時間步上,解碼器更多注意原語句中的第二個隱藏狀態。所有的權重 a_t,T 加和為 1,因此能保證輸出值的歸一化。

圖 8:雙向循環神經網路中的注意力機制

記憶網路

Weston 等人介紹了記憶網路(MemNN)這個概念,它能用於問答系統。記憶網路通過結合多個推斷組件和長期記憶而執行任務,這些組件可以是多個神經網路,而長期記憶充當著動態知識庫的角色。記憶網路基本的四個可學習或推斷組件分別為:I 組件將輸入數據轉化為內部特徵表示;G 組件在給定新的輸入下更新舊的記憶;O 組件生成輸出(同樣是在特徵表示空間中完成);R 組件將輸出特徵轉化為響應格式。例如,給定問答系統一系列語句和問題,MemNN 會從這些語句中抽取特徵並生成答案。

在推斷的過程中,I 組件一次只讀取一條語句,並將它編碼為向量表徵。然後 G 組件基於當前的語句表徵更新一小塊記憶,在所有語句都處理完後,記憶網路就生成了一個記憶矩陣(每一行表示一個語句),該矩陣儲存了從語句中抽取的語義。對於問題,記憶網路會將它編碼為向量表徵,然後 O 組件使用向量從記憶中選擇一些相關的證據,並生成一個輸出向量。最後,R 組件將輸出向量作為輸入,並輸出最終響應。

遞歸神經網路

詞嵌入是將單詞表示成低維的稠密的實數向量。自從詞向量技術的提出,到目前為止已經有很多方法來得到句法和語義方面的向量表示,這種技術在 NLP 領域發揮著重要的作用。

如何用稠密的向量表示短語,這是使用詞向量的一個難題。在成分分析中,我們一般使用遞歸神經網路 (Recursive Neural Network) 來解決這個問題。遞歸神經網路是一種通用的模型,用來對句子進行建模。句子的語法樹中的左右子節點通過一層線性神經網路結合起來,根節點的這層神經網路的參數就表示整句句子。遞歸神經網路能夠給語法樹中的所有葉子節點一個固定長度的向量表示,然後遞歸地給中間節點建立向量的表示。

圖 9:遞歸神經網路

情感分析任務

我們現在開始概述情感分析中的深度學習應用。但在此之前,我們首先簡單介紹主要的情感分析任務。若想了解更多細節,請參考 Liu 寫的關於情感分析的書。

研究者主要在三個粒度級別上研究情感分析:文檔級、語句級和 aspect level。文檔級情感分類將觀點鮮明的文檔(例如,產品評論)分類為整體積極的或消極的觀點。它將整個文檔當做基本的信息單元,並假定文檔是觀點鮮明的,包含對單個實體(例如,某個型號的手機)的觀點。語句級情感分類對文檔內單獨的語句進行分類。然而,單獨的語句不能假定為觀點鮮明的。

傳統上,人們首先將一個語句分類為觀點鮮明的(或相反),即主觀性分類。然後觀點鮮明的語句進一步被分類為積極的或消極的。語句級情感分類可以被形式化為三類分類問題,即判斷某語句是中性的、積極的或消極的。和文檔級、語句級情感分類相比,aspect level 情感分析或基於 aspect 的情感分析更加細粒化。它的任務是提取和總結人們對某實體的觀點以及實體(也被稱為目標)的特徵。例如一篇產品評論,aspect level 情感分析的目的是分別總結對產品不同方面的積極和消極觀點,雖然對產品的總體情感可能是傾向積極的或消極的。

基於 aspect 的情感分析由多個子任務構成,例如 aspect 提取、實體提取和 aspect 情感分類。例如,句子「the voice quality of iPhone is great, but its battery sucks」的實體提取應該識別「iPhone」作為實體,而 aspect 提取需要識別「voice quality」和「battery」作為兩個 aspect。aspect level 情感分類需要將對音質的評論分類為積極的,將對電池續航的評論分類為消極的。出於簡潔性,大多數演算法將 aspect 提取和實體提取結合起來,稱為 aspect 提取或情感/觀點目標提取。

除了這些核心任務以外,情感分析還研究了情緒分析、嘲諷檢測、多語言情感分析等。在接下來的章節中,我們將概述所有這些情感分析任務中的深度學習應用。

文檔級情感分類

文檔級情感分類是指為觀點型文檔標記整體的情感傾向/極性,即確定文檔整體上傳達的是積極的還是消極的觀點。因此,這是一個二元分類任務,也可以形式化為回歸任務,例如為文檔按 1 到 5 星評級。一些研究者也將其看成一個五類分類任務。

情感分類通常被當做文檔分類的特殊案例。在這種分類任務中,文檔表徵是很重要的部分,需要反映出文檔字裡行間所傳達的原始信息。傳統上,詞袋模型(BoW)通過將文檔看成其中單詞的袋裝形式,被用於在 NLP 和文本挖掘中生成文本表徵。通過 BoW,文檔被轉換成固定長度的數值特徵向量,其中每個元素可能代表詞的存在(沒出現或出現)、詞頻或 TF-IDF 分數。向量的維度等於辭彙量大小。用 BoW 表徵的文檔向量通常是很稀疏的,因為單個文檔僅包含少量的辭彙。早期的神經網路使用的基本是這種特徵設定。

雖然 BoW 很常用,它也有一些缺點。首先,BoW 模型忽略詞的順序,這意味著包含相同單詞的兩個文檔的表徵是完全相同的。BoW 的擴展版本 Bag-of-N-Grams 在短文本(n-gram)中考慮詞序,但仍然存在數據稀疏性和高維度的缺陷。其次,BoW 幾乎不能編碼詞的語義。例如,在 BoW 中,單詞「smart」、「clever」和「book」之間的距離是相同的,但在語義上,相比「book」,「smart」應該更接近於「clever」。

為了克服 BoW 的缺陷,人們提出了基於神經網路的詞嵌入技術以生成密集向量(或低維向量)用於詞表徵,從而在某種程度上可以編碼單詞的某些語義和句法屬性。以詞嵌入作為詞的輸入,可以利用神經網路得到文檔的密集向量(或稱為密集文檔向量)表徵。

除了以上兩種方法,實際上也可以直接用 BoW 學習密集文檔向量。我們在表 2 中區分了相關研究使用的不同方法。

當文檔被適當地表徵時,我們可以通過傳統的監督學習方式,用多種神經網路模型進行情感分類。在某些案例中,神經網路可能只被用於提取文本特徵或文本表徵,然後這些特徵被饋送到其它非神經網路的分類器(如 SVM),以獲得最終的全局最優分類器。神經網路和 SVM 的特性以某種方式彼此互補,從而能結合各自的優勢。

除了複雜的文檔/文本表徵之外,研究者還利用數據特徵(如產品評論)進行情感分類。一些研究者發現產品評論對情感和其它附加信息(例如,用戶信息和產品信息)進行聯合分類建模很有幫助。此外,由於文檔通常包含長期依賴關係,注意力機制也經常用於文檔級情感分類。我們在表 2 中總結了已有的技術。

表 2:文檔級情感分類的深度學習方法。

語句級的情感分類

語句級情感分類用來標定單句中的表達情感。正如之前所討論的,句子的情感可以用主觀性分類和極性分類來推斷,前者將句子分為主觀或客觀的,而後者則判定主觀句子表示消極或積極的情感。在現有的深度學習模型中,句子情感分類通常會形成一個聯合的三類別分類問題,即預測句子為積極、中立或消極。

與文檔級的情感分類相同,神經網路生成的語句表徵對於語句級的情感分類也非常重要。另外由於句子相對文檔而言較短,因此可以使用一些語法和語義信息(如解析樹、觀念詞典和詞性標籤)來幫助分類。其他一些信息如評測打分、社會關係和跨域信息也可以考慮在內。例如,社會關係已被用於探索社交媒體數據中(如推文)的情感。

在早期的研究中,解析樹(提供了一些語義和語法信息)與原始詞一同用作神經模型的輸入,這意味著我們可以更好地推斷情感構成。但在那之後,CNN 和 RNN 成為主流,它們不需要利用解析樹從句子中提取特徵。取而代之的是,CNN 與 RNN 使用詞嵌入(已經編碼了一些語義和語法信息)作為輸入。此外,CNN 和 RNN 模型架構也可以幫助我們學習語句內詞間的固有聯繫。

Aspect Level 情感分類

與文檔級和語句級的情感分類不同,aspect level 情感分類同時考慮了情感信息和目標信息(情感一般都會有一個目標)。如前所述,目標通常是一個實體或實體特徵。出於簡潔性,實體和實體特徵通常都稱為特徵(aspect)。給定一個句子和目標特徵,aspect level 情感分類可以推斷出句子在目標特徵的情感極性/傾向。例如,句子「the screen is very clear but the battery life is too short.」中,如果目標特徵是「screen」,則情感是積極的,如果目標特徵是「battery life」,則情感是消極的。下一節將討論自動特徵提取或目標提取。

Aspect Level 情感分類很有難度,因為建模目標與上下文的語境詞的語義相關性很難。不同的語境詞對句子在目標特徵的情感極性有不同的影響。因此,使用神經網路構建學習模型時,捕捉目標詞和語境詞之間的語義關係非常必要。

使用神經網路的 aspect level 情感分類有三個重要任務。第一個任務是表示目標的語境詞。該問題可以使用前兩節提到的文本表示方法來解決。第二個任務是生成目標表示,其可與語境詞進行恰當地互動。通常的解決方案是學習目標嵌入(與詞嵌入類似)。第三個任務是識別特定目標的重要情感語境詞。例如,在句子「the screen of iPhone is clear but batter life is short」中,「clear」是「screen」的重要語境詞,「short」是「battery life」的重要語境詞。近期該任務通過注意力機製得到解決。儘管很多深度學習技術可用於處理 aspect level 情感分類,但文獻中仍然沒有主導性技術。

帶有詞嵌入的情感分析

很明顯詞嵌入在深度學習情感分析模型中扮演了重要角色。研究也表明,即使不使用深度學習模型,詞嵌入也可以在不同任務中用作非神經網路學習模型的特徵。因此,該部分特彆強調了詞嵌入對情感分析的貢獻。

我們首先介紹了情感編碼詞嵌入的工作。對於情感分析,直接使用 CBOW 或 Skip-gram 等常規的單詞方法學習語境中的詞嵌入可能會遇到問題,因為具有相似語境但情感極性相反(例如,「好」或「壞」)的單詞可能被映射到嵌入空間的相近向量。因此,人們提出了情感編碼詞嵌入方法。Mass el al.101 學習了可以捕捉語義和情感信息的詞嵌入。Bespalov et al.102 表明,n-gram 模型結合潛在表徵將為情感分類提供更合適的嵌入。通過把語句的情感監督作為正則化項,Labutov and Lipson103 將帶有 logistic 回歸的現有詞嵌入進行重嵌入。

用於情感分析的多模態數據

多模態數據已被用於情感分析,因為其比文本提供了更多的信息。深度學習模型把輸入映射到一些特徵空間,來自多模態數據的不同形式的輸入也可以被這些模型投射到一些聯合潛在空間或表徵。因此,使用深度學習模型處理多模態數據的趨勢不斷增長。

例如 Wang et al. 提出一個 CNN 結構的深度網路,命名為深度耦合形容詞與名詞神經網路(DCAN),可用於視覺情感分類。DCAN 的核心思想是利用形容詞和名詞性文本描述,把它們看作兩個(弱)監督信號以學習兩個中間情感表徵,然後結合學習的表徵並用於情感分類。

本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。


推薦閱讀:

智能金融變魔術的6個步驟
人工智慧社會學—未來新興學科?
千里之外取人貞操要還是不要
實事求是談金融報告自動化
由蘋果跳去特斯拉,六個月後又去了谷歌,從拉特納看為什麼AI人才流動如此頻繁

TAG:深度学习DeepLearning | 自然语言处理 | 人工智能 |