在Netflix 評論中做情感分析的深度學習模型

2020-12-13 雷鋒網

原標題 | Sentiment Analysis with Deep Learning of Netflix Reviews

作者 | Artem Oppermann

譯者 | ybNero(電子科技大學)、Devin_ABCDEF(汕頭大學)、夕陽紅老年萬花(數據分析師)

編輯 | 王立魚

在這篇文章中,我將介紹情感分析的主題和怎樣實現一個可以識別和分類Netflix評論中人的感情的深度學習模型。

生意中的一個很重要的元素是了解客戶基本需求。那對於那些公司而言,去確切了解消費者和客戶對於新和剛建立的產品或者服務,最近方案和客服的看法也是很重要的。

情感分析是完成上述任務的方法之一

情感分析是自然語言處理(NLP)中的一個領域,它建立模型,試圖識別和分類語言表達中的屬性 e.g.:

  • 極性:如果發言者表達了積極或者消極的意見,

  • 主題:正在被討論的事情,

  • 意見持有者:表達這個觀點的人或者團體。

在我們每天產生2.5萬億字節數據的世界裡,情感分析已經成為理解這些數據的關鍵工具。這使得公司能夠獲得關鍵的洞察力並自動化所有類型的流程。

情感分析可以使得無結構的信息,比如民眾關於產品、服務、品牌、政治和其他話題上的意見,自動轉變為結構化的數據。這些數據對如市場分析、公共關係、產品意見、淨推薦值、產品反饋和顧客服務等商業應用非常有用。

接下來,我將向你們展示如何使用深度學習模型對 Netflix 評論進行正向和負向的分類。這個模型會把全部評論作為輸入(每一個單詞),並且提供一個百分比的評分來檢測某個評論是在表達正向或負向的情緒。

我使用的數據集包含了大約5000條負向和5000條正向的評論。這裡有5個數據集中的樣本,這些樣本在本文末也會在模型中做分類。

本文所使用的深度模型+全部所需的代碼都能在此處找到。

下面先開始理論部分。

循環神經網絡(RNNs)是很受歡迎的模型,並且在很多NLP任務上已經取得了很好的表現。

循環神經網絡使用了序列信息,如文本。在傳統的前饋神經網絡中,我們假設所有的輸入是彼此獨立的。但是對很多任務而言,這是很不好的想法。舉個例子,一句話有完整的語法結構和順序,句子中每個詞都依賴於前一個詞。如果你想你的神經網絡能夠學習到意義(或者我們案例中的情感),神經網絡必須知道哪個詞按哪個順序出現。

循環神經網絡被叫做循環是因為他們對序列中的每個元素都執行同樣的任務,並且輸出是依賴於之前的計算。其他的方式去理解循環神經網絡是它們有記憶,能夠獲取之前已經計算過的信息。這裡有一個經典的循環神經網絡:

圖1-循環神經網絡架構

x(t-1),x(t),x(t+1)是彼此依賴的輸入序列(例如句子中的單詞)。y(t_1),y(t),y(t + 1)是輸出。RNN的獨特之處在於,輸入x(t)的神經元的當前隱藏狀態h(t)的計算取決於先前輸入x(t-1)的先前隱藏狀態h(t-1)。Wxh和Whh是權重矩陣,其分別將輸入x(t)與隱藏層h(t)和h(t)與h(t-1)連接。通過這種方式,我們將神經網絡的重複引入,可以將其視為先前輸入的記憶。

從理論上講,這種「vanilla」RNNs可以在任意長的序列中使用信息,但在實踐中,它們僅限於循環中的幾個步驟。

1.1LSTMs

長短時記憶網絡-通常簡稱為「LSTMs」一種特殊的RNN,能夠學習到長期依賴。LSTMs 與RNNs沒有根本不同的架構形式,但是它融合了額外的組件。

LSTM的關鍵是狀態單元C(t),即橫穿圖頂部的水平線。除了僅僅只使用隱藏狀態h(t)之外,單元狀態是額外的方式來存儲記憶。然而,與 「vanilla」RNN相比, C(t)使得LSTMs能夠在更長的序列上工作成為可能。

更重要的是,LSTMs 可以在單元狀態上刪除或者增加信息,嚴格地被稱為門的架構約束。門是一種可以選擇地讓信息通過的方式。一個LSTM有三種門結構,來保護和控制單元狀態。

  • 遺忘門:在獲取之前的輸入x(t-1)的隱藏狀態h(t-1)後,遺忘門幫助我們決定該從h(t-1)中刪除什麼,只保留相關信息。

  • 輸入門:在輸入門中,我們決定從當前輸入x(t)添加內容到我們當前單元狀態C(t)。

  • 輸出門:正如名字所說一樣,輸出門決定從當前單元狀態C(t)輸出什麼到下一個C(t+1)。對於語言模型例子而言,因為它只能看見一個主語,它可能希望看到一個和動詞有關的信息,來控制接下來要發生的情況。舉個例子,它可能輸出主語是單數還是複數,這樣我們就可以知道接下來的動詞應該變成什麼形式。    

每一種狀態的背後都是獨立的神經單元。可以想像,這將會使得LSTMs變得相當複雜。在這一點上,我不會繼續深入講更多關於LSTMs的細節。

在我們用這些評論作為循環神經網絡的輸入之前,對這些數據做一些預處理是有必要的。這裡我們的主要目的是減小觀測空間。

2.1單詞的統一書寫

考慮像"Somethiing"和「something」這些單詞,對我們人來說,這些詞有著同樣的意思,它們之間唯一的區別是第一個字母是大寫,因為它或許是句子中的第一個詞。但是對於神經網絡而言,由於不同的書寫,這些單詞將有(至少在開始的時候)不同的意思。只有在訓練階段,神經網絡才可能學習到或者學習不到識別這些詞意思相同。我們目的就是避免這些錯誤理解。

因此,預處理的第一步就是把所有字母都變成小寫字母。

2.2 刪除特殊字符

像. , ! ? '等等特殊字符,不能對一段評價的情感分析起到促進作用,因此可以被刪除。

最後結果

考慮以下未處理的評價例子:

我們做完上面所說的預處理步驟後,這個評價例子看起來如下所示:


預處理將會應用於數據集上的每個評價。

2.3 「詞—索引」映射

另一個重要步驟是創建稱為「詞—索引」的映射,這個映射為數據集中每一個單詞分配一個唯一的整數值。在我所使用的數據集中,全部的正向和負向評論共包含18339個不同的單詞。因此「詞—索引」映射有相同數量的條目。這個數量被稱為詞彙數(vocabulary size)。

我得到的 「詞—索引」映射中的第一個和最後一個條目如下:  

由於我們不能將字符串格式的數據輸入神經網絡,因此為數據集中的單詞分配唯一整數值的步驟非常關鍵。通過「詞—索引」映射,我們可以使用整數代替字符來表示整個句子和評論。考慮以下評論:

使用」詞—索引」映射  , 可以用一個整數向量來表示這條評論,每一個整數表示映射中對應的單詞:

當然,神經網絡既不能接受字符串,也不能接受單個整數值作為輸入。我們必須使用詞嵌入(word embedding)向量來代替。 

詞嵌入是一種分布式的文本表示,這可能是深度學習方法在挑戰NLP問題上令人印象深刻的關鍵突破之一。詞嵌入實際上是一種用實值向量表示單詞的技術,通常具有數十或數百個維度。每個單詞被映射到一個特定的向量,向量值由神經網絡學習。 

與單詞的稀疏表示方式不同,詞嵌入不需成千上萬的維度。例如,我們可以使用詞嵌入技術把單詞「although」和「life」表示成十維向量:

although = [0.8 1.0 4.2 7.5 3.6]
life = [8.3 5.7 7.8 4.6 2.5 ]

表示數據集中單詞的全部向量組成一個大型矩陣,稱為嵌入矩陣(embedding-matrix)。該矩陣的行數表示詞嵌入的維數,列數表示詞彙量,或者說數據集中不同單詞的個數。因此,這個矩陣的每一列表示數據集中每個單詞相應的的嵌入向量。  

我們應如何從矩陣中找出單詞對應的列?此時我們需要參考詞—索引映射。假設你想查找單詞「although」的嵌入向量,根據單詞—索引映射,單詞「although」由數字2511表示。接下來,我們需要創建一個長度18339為的獨熱向量,這裡的向量長度等於數據集中的單詞數量,向量的第2511位取值為1,其餘為0。  

通過對嵌入矩陣和獨熱編碼向量進行點積運算,我們得到矩陣中的第2511列,即為單詞「although」的嵌入向量。

這樣我們就可以將整個字符串段落或Netflix評論提供給LSTM。我們只需在單詞到索引映射中查找每個單詞的整數值,創建適當的獨熱編碼向量並使用矩陣執行點積。然後將評論逐字(矢量形式)饋送到LSTM網絡中。

到目前為止,你已經了解了如何預處理數據,以及如何將評論輸入LSTM網絡中。現在,讓我們討論一下如何獲得給定評論的情感。 

對於每一個時間步長t,將向量x(t)輸入LSTM網絡中,得到輸出向量y(t)。在不同的步長上進行此操作,直到輸入向量為x(n),n代表評論中全部單詞的長度。我們不妨假設n=20,直到輸入向量為x(n),LSTM模型輸出向量y(n)為止,全部20個向量中,每個向量都代表一定含義,但仍然不是我們所需要的評論中的情感。實際上,向量y是神經網絡生成的對評論特徵的編碼表示,這些特徵在判斷情感時非常重要。  

y(8)表示評論中前8個單詞的神經網絡識別特徵。另一方面,y(20)表示評論整體的特性。儘管只使用最後一個輸出向量y(20)足以進行情感判斷,但我發現如果使用y(0) - y(20)的全部向量來確定情感,結果會更加準確。為了使用全部向量,我們可以計算這些向量的均值向量。我們稱這個均值向量為y_mean。  

現在,均值向量y_mean可以用編碼的方式來表示評論中的特徵。我們需要在模型最後增加一個分類層,使用均指向量y_mean將評論劃分為正向情感類和負向情感類。在最終的分類層中,需要將均值向量y_mean和權重矩陣W相乘。

以上描述的情感分析過程已經在我的GitHub repo上一個深度學習模型中實現。歡迎你來嘗試和復現。模型訓練完成後,可以對新的評論進行情感分析:  

英語原文:

https://towardsdatascience.com/sentiment-analysis-with-deep-learning-62d4d0166ef6

想要繼續查看該篇文章相關連結和參考文獻?雷鋒網雷鋒網(公眾號:雷鋒網)雷鋒網

點擊【在 Netflix 評論中做情感分析的深度學習模型】即可訪問!

今日資源推薦:MXNet李沐的深度學習教程《動手學深度學習》(有在線練習)

由 MXNet 創始人李沐大神、Aston Zhang 等人所著的交互式書籍《動手學深度學習》推出了在線預覽版,面向在校學生、工程師和研究人員,旨在幫助讀者從入門到深入、動手學習深度學習,即使是零基礎的讀者也完全適用。這本書是亞馬遜 MXNet 零基礎深度學習課程的重要組成部分,為此,亞馬遜團隊開發了 MXNet 的新前端 Gluon,課程內容推薦使用 Gluon 進行開發。李沐表示,開設這門課程的初衷,是看到了目前剛開始接觸機器學習的學習者沒有很完善的參考資料的現狀,這門課程可以幫助他們從深度學習入門到最新最前沿的算法,從 0 開始通過交互式的代碼來講解每個算法和概念。

點擊連結獲取:https://ai.yanxishe.com/page/resourceDetail/642


雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 在 Netflix 評論中做情感分析的深度學習模型 | 洞見
    在這篇文章中,我將介紹情感分析的主題和怎樣實現一個可以識別和分類Netflix評論中人的感情的深度學習模型。企業最重要的目的之一就是與客戶群保持聯繫。情感分析是完成上述任務的方法之一情感分析是自然語言處理(NLP)中的一個領域,它建立模型,試圖識別和分類語言表達中的屬性 e.g.:1. 極性:如果發言者表達了積極或者消極的意見2. 主題:正在被討論的事情3.
  • 就喜歡看綜述論文:情感分析中的深度學習
    本文中,來自領英與伊利諾伊大學芝加哥分校的研究人員對基於深度學習的情感分析研究進行了詳細論述。情感分析或觀點挖掘是對人們對產品、服務、組織、個人、問題、事件、話題及其屬性的觀點、情感、情緒、評價和態度的計算研究。該領域的開始和快速發展與社交媒體的發展相一致,如評論、論壇、博客、微博、推特和社交網絡,因為這是人類歷史上第一次擁有如此海量的以數字形式記錄的觀點數據。
  • 情感計算是人機互動核心?談深度學習在情感分析中的應用
    其中針對中文語境裡人機互動中的情感、情緒識別與理解,竹間智能已經做了許多有益的探索,特別是如何利用情感、情緒分析,來幫助機器人實現對「對話意圖」與「深層語義」的更好理解。 本文將梳理一下情感計算在人機互動中的價值,同時分享一些情感分析的工具與方法。希望對從事人機互動研究的朋友們有所啟發。
  • 深度學習實踐:從零開始做電影評論文本情感分析
    本書由Keras之父、現任Google人工智慧研究員的弗朗索瓦•肖萊(François Chollet)執筆,詳盡介紹了用Python和Keras進行深度學習的探索實踐,涉及計算機視覺、自然語言處理、生成式模型等應用。書中包含30多個代碼示例,步驟講解詳細透徹。由於本書立足於人工智慧的可達性和大眾化,讀者無須具備機器學習相關背景知識即可展開閱讀。
  • 專欄 | 情感計算是人機互動核心?談深度學習在情感分析中的應用
    其中針對中文語境裡人機互動中的情感、情緒識別與理解,竹間智能已經做了許多有益的探索,特別是如何利用情感、情緒分析,來幫助機器人實現對「對話意圖」與「深層語義」的更好理解。本文將梳理一下情感計算在人機互動中的價值,同時分享一些情感分析的工具與方法。希望對從事人機互動研究的朋友們有所啟發。
  • 一種基於腦電圖情感識別的新型深度學習模型
    其中一部分機器學習技術中是通過分析腦電圖(EEG)信號來工作的,這些信號本質上是對從一個人的頭皮上收集的腦電活動的記錄。過去十多年來,大多數基於腦電圖的情緒分類方法都採用了傳統的機器學習方法,例如支持向量機(SVM)模型,因為這些方法需要的訓練樣本較少。事實上之所以使用需要訓練樣本量少的方法是因為過去缺乏大規模的EEG數據集。
  • 中文情感分析 (Sentiment Analysis) 的難點在哪?現在做得比較好的有哪幾家?
    句子粒度(sentence level):語句級情感分類用來標定單句中的表達情感。正如之前所討論的,句子的情感可以用主觀性分類和極性分類來推斷,前者將句子分為主觀或客觀的,而後者則判定主觀句子表示消極或積極的情感。在現有的深度學習模型中,句子情感分類通常會形成一個聯合的三類別分類問題,即預測句子為積極、中立或消極。
  • 基於機器學習的情感分析方法
    上次課程我們介紹了基於情感詞典的情感分析方法,本節課我們嘗試基於機器學習的情感分析方法,以電影中文文本情感分析為例,最常見的就是對電影評論數據進行情感分類
  • 中文情感分析之TextCNN
    情感分析應用場景情感分析方法情感分析方法可以分為兩大類:一是基於情感詞典的方法,一是基於機器學習算法的方法。基於情感詞典的情感分析基於情感詞典的方法屬於傳統的情感分析方法,是對人的記憶和判斷思維的最簡單的模擬。直觀來講,它先通過學習來記憶一些基本詞彙,從而在大腦中形成一個包含積極詞彙、消極詞彙、否定詞、程度副詞的情感詞典。
  • 百分點認知智能實驗室出品:情感分析在輿情中的研發實踐(上)
    旨在識別一條句子中一個指定方面(Aspect)的情感極性。常見於電商評論上,一條評論中涉及到關於價格、服務、售後等方面的評價,需要區分各自的情感傾向。 基於實體的情感傾向性判定(ATSA): 一般稱作 Aspect-Term Sentiment Analysis。對於給定的情感實體,進行情感傾向性判定。在一句話中不同實體的情感傾向性也是不同的,需要區別對待。
  • 深度學習中GPU和顯存分析
    模型輸出的顯存佔用,總結如下:需要計算每一層的feature map的形狀(多維數組的形狀)模型輸出的顯存佔用與 batch size 成正比需要保存輸出對應的梯度用以反向傳播(鏈式法則)模型輸出不需要存儲相應的動量信息(因為不需要執行優化)深度學習中神經網絡的顯存佔用,我們可以得到如下公式:顯存佔用
  • 盤點金融領域裡常用的深度學習模型
    作者 | Sonam Srivastava ,譯者 | sambodhi ,編輯 | Vincent ,AI前線出品| ID:ai-front在今天我們發布的這篇文章中,作者 Sonam Srivastava 介紹了金融中的三種深度學習用例及這些模型優劣的證據。
  • NLP崗位面試題:了解情感分析中的NLP技術麼?
    即使在完全基於文本的對話中,你也可以根據單詞選擇和標點符號判斷客戶是否感到憤怒。你可以閱讀產品在天貓平臺的評論,並了解評論者是否喜歡或不喜歡它,即使他們從未直接說過。為了使計算機真正理解人類每天的交流方式,他們需要理解的不僅僅是客觀意義上的詞語定義、而且他們需要了解我們的情緒。
  • 深度學習入門 | 第一講 深度學習與回歸分析
    在這一講,我想和大家探討一下深度學習與回歸分析之間的關係。深度學習作為人工智慧領域備受關注的模型方法,在媒體上可以看到大量的宣傳材料。客觀地說,很多宣傳其實是有失偏頗的,甚至是誤導的,把深度學習和人工智慧給過度神化了。而回歸分析不一樣,它是當前很多高校學生的必修課。它聽起來不是那麼的高大上,但好處是人們對它非常熟悉。
  • 深度學習中的Normalization模型
    針對BN的問題,最近兩年又陸續有基於BN思想的很多改進Normalization模型被提出。BN是深度學習進展中裡程碑式的工作之一,無論是希望深入了解深度學習,還是在實踐中解決實際問題,BN及一系列改進Normalization工作都是繞不開的重要環節。
  • PaddlePaddle入門:從對話系統中的情感分析談起
    但無論學習什麼框架或者工具,如果不了解它是如何解決某個具體問題進而幫助提高業務,那無異於捨本逐末。本文將從智能對話系統中一個基礎的問題——情感分析(Sentiment Analysis)——談起,詳細闡述如何「step-by-step」地運用百度開源的深度學習框架(PaddlePaddle)來解決情感分析,並最終如何提升整個對話系統的質量。
  • 自然語言處理深度學習的7個應用
    自然語言中仍有許多具有挑戰性的問題需要解決。然而,深度學習方法在一些特定的語言問題上取得了最新的成果。這不僅僅是深度學習模型在基準問題上的表現,基準問題也是最有趣的;事實上,一個單一的模型可以學習詞義和執行語言任務,從而消除了對專業手工製作方法渠道的需要。
  • 本科生做科研 | 基於深度學習的英語新聞語篇自動語義分析技術研究
    傳統的情感分析工具多藉助人工編寫的情感詞典進行(Erik Cambria 2013),通過統計文本中出現的情感詞來判斷文本的情感傾向,但是因為同一個詞出現在不同的語境中可能表示不同的情感,而且語義的複雜性遠遠大於簡單的詞彙組合,因此傳統的詞典方法已遭遇瓶頸。而近十年來,深度學習算法開始被應用於文本挖掘(C. Socher 2013; Dos Santos 2014)。
  • 頂會論文解讀|北大提出ELSA跨語言情感分析模型
    作為用戶情境感知和理解中一個重要方面,情感分析得到了包括數據挖掘、系統軟體、人機互動等多領域研究者的廣泛關注,成為交叉研究熱點並取得一系列進展。現有情感分析工作主要基於英語文本開展。在其他語言上,研究較少、標註語料稀缺,現有方法效果較差。但是,75%的網際網路用戶為非英語用戶,大約一半的Web內容為非英語內容。
  • 專欄 | 深度學習中的Normalization模型
    針對 BN 的問題,最近兩年又陸續有基於 BN 思想的很多改進 Normalization 模型被提出。BN 是深度學習進展中裡程碑式的工作之一,無論是希望深入了解深度學習,還是在實踐中解決實際問題,BN 及一系列改進 Normalization 工作都是繞不開的重要環節。