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

2021-01-11 雷鋒網

原標題 | Sentiment Analysis with Deep Learning of Netflix Reviews作者 | Artem Oppermann譯者 | ybNero(電子科技大學)、Devin_ABCDEF(汕頭大學)、夕陽紅老年萬花(數據分析師)編輯 | 王立魚

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

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

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

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

極性:如果發言者表達了積極或者消極的意見,主題:正在被討論的事情,意見持有者:表達這個觀點的人或者團體。在我們每天產生2.5萬億字節數據的世界裡,情感分析已經成為理解這些數據的關鍵工具。這使得公司能夠獲得關鍵的洞察力並自動化所有類型的流程。

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

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

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

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

下面先開始理論部分。

1. 循環神經網絡

循環神經網絡(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.預處理

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

2.1單詞的統一書寫

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

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

2.2 刪除特殊字符

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

最後結果

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

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

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

2.3 「詞—索引」映射

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

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

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

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

3.詞嵌入

當然,神經網絡既不能接受字符串,也不能接受單個整數值作為輸入。我們必須使用詞嵌入(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網絡中。

4.獲得評論情感

到目前為止,你已經了解了如何預處理數據,以及如何將評論輸入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

相關焦點

  • 利用Neo4j對電影評論進行深度學習情感分析
    【編者按】隨著網際網路的發展,用戶從以前的「讀」網頁轉變為「寫」網頁,網際網路上產生了大量的用戶參與的,對於諸如人物、事件、產品等有價值的評論信息,而隨著網絡上評論信息爆炸式的增長,以人工的方法很難應付海量評論信息的收集和處理,情感分析技術隨之產生,本文以電影影評為例,利用Neo4j對電影評論進行深度學習的情感分析。
  • 達觀數據乾貨分享丨情感分析架構演進
    以我們的經驗,要完美解決評論的觀點挖掘問題,需要一套高複雜度的系統架構。達觀數據基於在自然語言處理、機器學習算法和文本挖掘領域的多年技術積累,融合文本標籤提取、文本分類和情感分析,打造了針對產品評論的觀念挖掘服務,幫助用戶從海量評論數據中提煉出核心觀點,從而對產品的真實情況一目了然。
  • 百分點認知智能實驗室出品:情感分析在輿情中的研發實踐(上)
    常見於電商評論上,一條評論中涉及到關於價格、服務、售後等方面的評價,需要區分各自的情感傾向。基於實體的情感傾向性判定(ATSA): 一般稱作 Aspect-Term Sentiment Analysis。對於給定的情感實體,進行情感傾向性判定。在一句話中不同實體的情感傾向性也是不同的,需要區別對待。
  • 盤點金融領域裡常用的深度學習模型
    作者 | Sonam Srivastava ,譯者 | sambodhi ,編輯 | Vincent ,AI前線出品| ID:ai-front在今天我們發布的這篇文章中,作者 Sonam Srivastava 介紹了金融中的三種深度學習用例及這些模型優劣的證據。
  • 自然語言處理深度學習的7個應用
    自然語言中仍有許多具有挑戰性的問題需要解決。然而,深度學習方法在一些特定的語言問題上取得了最新的成果。這不僅僅是深度學習模型在基準問題上的表現,基準問題也是最有趣的;事實上,一個單一的模型可以學習詞義和執行語言任務,從而消除了對專業手工製作方法渠道的需要。在這篇文章中,你會發現7個有趣的自然語言處理任務,也會了解深度學習方法取得的一些進展。
  • 賽爾筆記|基於知識引入的情感分析
    作者:哈工大SCIR 袁建華 袁明琛 盧延悅1.引文情感分析 知識當training數據不足以覆蓋inference階段遇到的特徵時,是標註更多的數據還是利用現有外部知識充當監督信號?基於機器學習、深度學習的情感分析方法,經常會遇到有標註數據不足,在實際應用過程中泛化能力差的局面。
  • 關於深度學習在各個領域的應用分析
    深度學習網絡作為一個功能多樣的工具,雖然最初僅用於圖像分析,但它已逐漸被應用到各種不同的任務和領域中。高準確性和高處理速度,使得用戶無需成為領域專家即可對大型數據集執行複雜分析。 小編邀請 MathWorks 產品經理 Johanna 分享一些深度學習網絡的使用示例以供參考: 文本分析 在本例中,我們將分析推特數據,了解針對特定詞或短語的情感是積極的還是消極的。情感分析有很多實際的應用,如品牌推廣、競選活動和廣告營銷。 過去(目前仍然)進行情感分析通常使用機器學習。
  • 回望2017,基於深度學習的NLP研究大盤點
    比如說,spaCy 是一個非常偉大的自然語言處理框架,它以原生的方式將詞嵌入和深度學習模型集成到了命名實體識別和依賴分析(Dependency Parsing)等任務中,並且允許用戶更新模型或者使用自定義模型。依我拙見,將來將會出現許多針對某一特定領域的預訓練模型(比如,生物學、文學、經濟等),這些模型能夠很方便地在自然語言處理框架上進行使用。
  • 機器人怎麼深度學習?邏輯判斷和情感選擇仍是障礙
    3.0版本的「小冰」除了具有「評顏值」「選搭配」等功能外,還基於深度學習技術具備強大的視覺識別能力。它在看到一張圖片後,可以基於情感給出人性化回復,且秒回速度縮短到250毫秒。  不僅僅是「微軟小冰」和圍棋高手「阿爾法狗」,從網際網路搜索到語言翻譯,乃至識別患有自閉症風險的基因……凡是需要從大量數據中預測未知信息的領域,都是深度學習可以一展拳腳的地方。那麼,什麼是深度學習技術?
  • 深度學習 vs. 概率圖模型 vs. 邏輯學
    該類技術來自計算機科學領域,儘管機器學習現在是CS和統計度的重要組成部分,統計和運算結合的時候它強大的能力才真正釋放出來。概率圖模型是圖論與概率方法的結合產物,2000年代中期它們都曾在機器學習研究人員中風靡一時。當年我在研究生院的時候(2005-2011),變分法、Gibbs抽樣和置信傳播算法被深深植入在每位CMU研究生的大腦中,並為我們提供了思考機器學習問題的一個極好的心理框架。
  • 主流的深度學習模型有哪些?
    作者:阿薩姆 | 普華永道 數據科學家量子位 已獲授權編輯發布轉載請聯繫原作者深度學習大熱以後各種模型層出不窮,很多朋友都在問到底什麼是DNN、CNN和RNN,這麼多個網絡到底有什麼不同,作用各是什麼?趁著回答《深度學習的主要分類是什麼呀?這些網絡cnn dbn dnm rnn是怎樣的關係?》
  • ARXIV:深度學習在金融領域中的應用 | 唧唧堂論文解析
    然而,相比較ML領域,DL(深度學習)是一個新興領域,越來越多的 DL 模型開始應用在金融中。本文的重點是介紹DL模型在不同金融領域的已實現應用,以便幫助對DL感興趣的研究人員和從業人員決定研究方向。因此本文提出了如下問題:1. 哪些金融領域是深度學習的應用熱門?2. 這些領域的現存研究是否成熟?
  • 前沿研究丨深度學習在醫學超聲圖像分析中的應用
    到目前為止,在網絡結構或者模型方面,深度學習獲得了快速的發展,如更深的網絡結構與深度產生式模型。同時,深度學習也成功應用於各種研究領域,如CV、自然語言處理(NLP)、語音識別以及醫學圖像分析,因此表明深度學習能夠在各種自動分析任務中獲得顯著的性能改善,並能取得最優的性能表現。
  • 普林,DeepMind新研究:結合深度學習符號回歸,深度模型中看見宇宙
    符號模型緊湊,具備可解釋性和良好的泛化能力,但很難處理高維機器學習問題;深度模型擅長在高維空間中學習,但泛化性和可解釋性卻很差。那麼有沒有什麼辦法可以取二者之所長呢?這項研究做到了。如何將深度模型轉換為符號方程?來自普林斯頓、DeepMind 等機構的研究人員提出了一種解決方案:結合深度學習和符號回歸實現這一目標。符號模型是自然科學的語言。
  • 普林、DeepMind新研究:結合深度學習和符號回歸,從深度模型中看見...
    符號模型緊湊,具備可解釋性和良好的泛化能力,但很難處理高維機器學習問題;深度模型擅長在高維空間中學習,但泛化性和可解釋性卻很差。那麼有沒有什麼辦法可以取二者之所長呢?這項研究做到了。如何將深度模型轉換為符號方程?來自普林斯頓、DeepMind 等機構的研究人員提出了一種解決方案:結合深度學習和符號回歸實現這一目標。
  • 在 TensorFlow 上使用 LSTM 進行情感分析
    在這篇教程中,我們將介紹如何將深度學習技術應用到情感分析中。該任務可以被認為是從一個句子,一段話,或者是從一個文檔中,將作者的情感分為積極的,消極的或者中性的。這篇教程由多個主題組成,包括詞向量,循環神經網絡和 LSTM。在了解這些概念之後,我們將在文章的最後給出完整的代碼。
  • 淺談自然場景中的語音情感識別技術
    語音情感識別系統主要包括語言處理和情感處理兩個重要部分。語音處理是指對輸入的語音信號進行處理並提取語音情感特徵參數;情感處理是指對隱藏在語句中的情感信息進行識別。語音情感識別本質上是一個典型的模式分類或回歸問題,因此模式識別領域中的諸多算法都曾用於語音情感識別,包括混合高斯模型、支持向量機和隱馬爾可夫模型等。
  • 520禮包 | 情感分析算法從原理到PaddlePaddle實戰全解
    允中 發自 凹非寺量子位 報導 | 公眾號 QbitAI在自然語言處理中,情感分析一般是指判斷一段文本所表達的情緒狀態。其中,一段文本可以是一個句子,一個段落或一個文檔。情緒狀態可以是兩類,如(正面,負面),(高興,悲傷);也可以是三類,如(積極,消極,中性)等等。
  • 蔡軍/張江開發出基於深度學習的單細胞轉錄組分析模型
    目前已有的基於監督學習的自動分類方法,大部分無法兼顧到方法的可解釋性以及新細胞類型的發現。Intelligence發表了題為An interpretable deep-learning architecture of capsule networks for identifying cell-type gene expression programs from single-cell RNA-sequencing data的研究成果,構建出決策過程可解釋的深度學習網絡模型
  • 科研人員開發出基於深度學習的單細胞轉錄組分析模型
    目前已有的基於監督學習的自動分類方法,大部分無法兼顧到方法的可解釋性以及新細胞類型的發現。Intelligence發表了題為An interpretable deep-learning architecture of capsule networks for identifying cell-type gene expression programs from single-cell RNA-sequencing data的研究成果,構建出決策過程可解釋的深度學習網絡模型