達觀數據情感分析架構演進
文/達觀數據 紀傳俊
在互聯網日益發達的今天,許多消費者不管是通過線上電商網站或者線下門店購買商品後,包括買車、買手機等,都會到品牌官網或者一些專業網站甚至社交媒體去發表對產品的評價。對於買家來說,買前查看評論是了解一款產品真實情況的重要途徑。對於商家而言,研讀評論則是了解客戶反饋、了解產品優勢和潛在問題的第一手渠道。但對於評論數據的挖掘並不是簡單到可以信手拈來,首先一個產品往往會有非常大量的評論,買家和賣家都不可能仔細閱讀每一條評論從而得到對於一個產品的整體認知。
利用計算機,利用演算法自動對評論進行分析挖掘,是解決這個問題的最有效途徑。這些評論會涉及產品各方各面的屬性,用戶有的說好有的說不好,即使表達相同意思也會有不同的表述。以我們的經驗,要完美解決評論的觀點挖掘問題,需要一套高複雜度的系統架構。達觀數據基於在自然語言處理、機器學習演算法和文本挖掘領域的多年技術積累,融合文本標籤提取、文本分類和情感分析,打造了針對產品評論的觀念挖掘服務,幫助用戶從海量評論數據中提煉出核心觀點,從而對產品的真實情況一目了然。
圖 1 達觀針對某款汽車的評論觀點挖掘
一、觀點挖掘基礎——情感分析
情感分析是文本挖掘的重要基礎分支,也是評論挖掘的關鍵技術,不管是買家還是賣家,首先都是想知道評論是說產品好還是不好,以及比例是多少。本篇將著重講解情感分析在達觀的實現架構和經驗。情感分析可以看做一個二分分類問題,即將表達正面情感的文本作為類別「1」,以負面情感文本作為類別「0」。
二、規則演算法——樸素思路的啟示
最樸素的情感分析實現方式是基於情感詞典和規則,大致分為三個步驟:
分詞:分詞是中文自然語言處理的基礎,即把一個句子精確切分成一個個詞語。中文分詞長期以來都是文本挖掘領域的重要研究領域,因為一旦分詞錯誤,會直接導致上層文本挖掘功能的性能下降。達觀目前使用自助研發的一套內部分詞系統,也是經過了長期打磨才能為上層文本功能提供基礎的效果保證。因為分詞演算法不是本文重點,在此不作展開。
設置情感詞典:情感詞典一般包括5個詞典,即正面情感詞典、負面情感詞典、否定詞典、程度副詞詞典和行業情感詞典。正面和負面情感詞典很好理解,比如「高興」、「悲傷」等等。否定詞典例如「不」,會使情感產生逆轉。程度副詞比如「非常」、「極其」等,會對情感有增強作用,最終影響整個短語或句子的總體情感傾向。另外還有行業情感詞典,即只在某些特定領域具有情感傾向的詞,比如對於汽車,「塑料感」、「底盤硬」其實是表達負面情感。
基於規則匹配:基於分詞和情感詞典,即可以根據人們平時的語言表達習慣設置一些規則來計算文本的情感傾向,比如每遇到一個正面情感詞則+1分,遇到負面情感詞則-1分,遇到否定詞則乘以-1將情感反轉,遇到程度副詞則將情感分數乘以一個放大係數。最後根據計算出的分數判斷情感傾向,分數為正數則判斷為正面情感,負數則判定為負面情感,正負相抵則判定為中性。
圖 2 基於規則的情感分析
基於規則的方法的好處是不需要標註好的訓練數據,但是可擴展性非常差,需要人工一個個配詞典加規則,才能識別足夠多的情感傾向,並且需要完全精確匹配,因此召回率比較差。同一個含義人可以有很多種表述方式,尤其在情感分析領域,常常出現雙重否定等複雜句式,規則必須設計得足夠複雜才能進行識別。此外,當配的規則比較多的時候,不同規則往往會發生互相衝突,這時候情感分析結果就不可控了,會導致準確率下降。
三、特徵工程+機器學習——長久以來的業界標杆
鑒於規則演算法有這麼明顯的缺陷,在過去很長的一段時間裡,主流情感分析演算法都是基於機器學習演算法,比如基於Logistic Regression、SVM、隨機森林等經典演算法。機器學習可行的前提是要收集和標註訓練數據集。目前互聯網上也有很多公開語料可以使用。相比基於規則的方法,機器學習演算法多了2個步驟:特徵提取和模型訓練。
圖 3 特徵工程+機器學習方法
特徵提取:文本挖掘領域最常用的也是最簡單的特徵是詞袋模型(bag of words),即將文本轉換為基於詞語的一個向量,向量的每一維度是一個詞語,詞語可以基於分詞得到,也可以基於N-Gram模型得到。每一維度的特徵取值也可以有多種計演算法方式,比如經典的one-hot編碼和tf-idf值。
模型訓練:基於文本的標註類別和提取好的特徵向量,即可以使用機器學習演算法進行訓練,模型訓練完成之後即可用於判別文本的情感傾向。
圖 4 詞袋模型特徵提取
相比基於規則的方法,機器學習方法在可擴展性和適應性方面有著質的飛躍,只需要準備好標註數據,設計好特徵提取方法,模型可以自動從數據中學習出一個複雜的高維分類模型實現情感分析。
然而,基於傳統機器學習的情感分析方法也有一定的局限性,其效果主要取決於特徵工程,即提取的特徵是否能足夠很好的區別正面和負面情感。在相同的特徵下,如果只使用簡單分類器,那選擇不同的分類演算法,效果差別不會太大。
要做好特徵工程,非常依賴於人的先驗知識,即需要我們對數據進行足夠深入的觀察和分析,把那些對區分正負面情感最有用的特徵一個一個找出來。
特徵工程做深入了也需要依賴情感詞典和規則方法,但不是直接判定文本的情感傾向,而是將規則命中的結果作為一維或者多維特徵,以一種更為「柔性」的方法融合到情感分析中,擴充我們的詞袋模型。
在達觀文本挖掘服務,傳統機器學習方法仍佔據一定比重,尤其是在數據量相對小的情況下。目前針對多個行業的文本數據,我們都有對應的行業詞典和特徵工程演算法。而且在分類演算法方面,運用了達觀自主研發的多模型融合演算法,情感分析的效果可以達到業界較高水平,相比單模型演算法效果可以提升10%。
圖 5 達觀文本挖掘技術框架
四、深度學習——大數據時代的新銳力量
總體而言,傳統的機器學習方式還是比較費時費力的。普遍應用的詞袋模型隱含了一個假設,即詞語之間的語義是相互獨立的,因而丟失了文本的上下文信息。但真實情況往往並非如此,同一個詞語在不同的語義環境下是可以具有不同語義的。詞袋模型還會導致向量空間特別大,一般都是數十萬維。對於評論這種短文本,轉換成的向量會特別稀疏,也造成了模型的不穩定性。
如今大熱的深度學習技術,代表了目前文本挖掘領域的最高水平,可以很好的解決上述問題。目前達觀情感分析包括其他文本挖掘系統,已經全面部署深度學習。相比於傳統機器學習方法,深度學習至少有3大直接優勢:
1)無需特徵工程:深度學習可以自動從數據中學習出特徵和模型參數,省去了大量繁雜的特徵工程工作,對行業先驗知識的依賴也降低到最小程度。
2)考慮語義上下文:深度學習在處理文本數據的時候,往往是先把詞語轉成詞向量再進行計算,詞向量的生成考慮了一個詞語的語義上下文信息,也就解決了詞袋模型的局限性。
3)大幅減少輸入特徵維度:由於使用了詞向量,特徵維度大幅減少,可以降低到百的量級,同時也使得文本向量變得「稠密」,模型變得更加穩定。
深度學習主要包含兩個步驟:
詞語轉成詞向量:google的word2vec演算法是目前應用最廣泛的詞向量生成演算法,實踐證明其效果是非常可靠的,尤其是在衡量兩個詞語的相似度方面。Word2vec演算法包含了CBOW(Continuous Bag-of-Word)模型和Skip-gram(Continuous Skip-gram)模型。簡單而言,CBOW模型的作用是已知當前詞Wt的上下文環境(Wt-2,Wt-1,Wt+1,Wt+2)來預測當前詞,Skip-gram模型的作用是根據當前詞Wt來預測上下文(Wt-2,Wt-1,Wt+1,Wt+2)。因此,一次詞向量事實上是基於詞語的上下文來生成的,也就具備了詞袋模型所不具備的表意能力。
圖 6 基於詞向量的CNN模型
利用深度學習框架進行訓練:詞轉成固定維度的詞向量之後,一個文本也就自然而然可以形成一個矩陣,如圖6所示。以矩陣作為輸入的深度學習演算法,第一個想到的自然是在圖像識別領域獲得過成功的卷積神經網路(CNN)。但CNN在文本挖掘領域的運用具有一定局限性,因其每層內部的節點之間是沒有連接的,即又丟失了詞與詞之間的聯繫。前面已經多次強調,詞語的上下文關係對文本挖掘是至關重要的,尤其對情感分析,情感詞(「喜歡」)和否定詞(「不」)、程度詞(「很」)的搭配會對情感傾向產生根本性的影響。因此目前比較廣泛使用的是LSTM(Long Short-Term Memory,長短時記憶),LSTM能夠「記住」較長距離範圍內的上下文對當前節點的影響。
圖 7 LSTM模型
五、總結
基於深度學習的文本情感分析,相比傳統機器學習,效果可以提升15%左右,而且省去了繁複的特徵工程工作,將人工依賴降低到最低程度。藉由深度學習技術,達觀文本挖掘架構也在不斷的更新迭代,不斷的升級完善。
想了解學習更多技術乾貨,請關注公眾號「達觀數據」
推薦閱讀:
※2017年1月18日Facebook發行的PyTorch相比TensorFlow、MXNet有何優勢?
※如何評價MSRA的新paper:Deep Image Analogy?
※CNN那麼多的網路有什麼區別嗎?如何對CNN網路進行修改?
※有沒有介紹神經網路、蟻群、遺傳、退火、魚群等等演算法的書籍?
TAG:机器学习 | 文本挖掘 | 深度学习DeepLearning |