當前位置:
首頁 > 知識 > 情感計算是人機交互核心?談深度學習在情感分析中的應用

情感計算是人機交互核心?談深度學習在情感分析中的應用

竹間智能專欄

作者:竹間智能自然語言與深度學習小組

除自然語言理解(NLU)外,情感計算(Affective Computing)也成為近年來 AI 領域熱門的研究方向之一。其中針對中文語境里人機交互中的情感、情緒識別與理解,竹間智能已經做了許多有益的探索,特別是如何利用情感、情緒分析,來幫助機器人實現對「對話意圖」與「深層語義」的更好理解。本文將梳理一下情感計算在人機交互中的價值,同時分享一些情感分析的工具與方法。希望對從事人機交互研究的朋友們有所啟發。

情感計算在人機交互中的作用

在談論情感計算之前,先來說說情感本身在人類信息溝通中的意義。

情感對於人類的智力、理性決策、社交、感知、記憶和學習以及創造都有很重要的作用,甚至有研究顯示「人類交流中 80% 的信息都是情感性的信息」。但為什麼不是內容,而是情感能傳遞最多的狀態信息呢?其實從認知科學角度來看,情感本身是高級智能的一部分。作為大腦運行資源的調配者,情感狀態的不同會導致大腦計算和分配資源的方式有巨大差異,思維執行路徑也會完全不同。另外,人類進化使其情感判斷的準確性不斷提高,不斷的正向反饋也使得我們越來越依賴用識別對方情感的方法來判斷其行為傾向,甚至已經成為自動運行的認知方式了。

由於情感在人類信息溝通中的意義重大,所以情感計算是實現人性化的人機交互過程中必不可少的部分,情感識別與理解技術也是人機交互的基礎性技術之一。在此基礎上,「需求分析」、「深度用戶建模」、「情感表達」、「人性化交互體驗」等更深入的交互設計才能成為可能。

拿深度建模來說,通過和人聊天,AI 可以用情感分析對實體進行高效率的自動化標註,實現專屬的情感詞典。了解用戶的偏好甚至偏好程度,並利用這些信息進行建模,久而久之就能夠實現「個性化」,而不是像 Siri 這種號稱個人助手卻實際上不夠個性化的存在。

對情感表達來說,可以實現人機對話系統對情感的誘導。在判斷出情感之後就可以用不同的回復來改變情感傾向,比如對話系統能判斷接下來的哪一句答覆能讓用戶產生一個情感傾向,如高興、驚訝或傷心等。事實上能夠讓人產生感受就是在進一步實現更人性化的交互。

人性化交互體驗的應用方向是不言自明的,當智能體的「智商」沒有過於顯著的差別的時候,一個稍微有些情商的智能系統就會更容易被選擇。當然這一點的實現需要一整套的情感分析系統。

從文本情感分析到多模態情感分析

一般情況下,我們探討的情感分析多指文本中的情感分析,但多維度的情感分析,如文字+圖片+表情+顏文字的綜合分析,文本+語音+圖像的綜合,即多模態情感分析,是目前來說,比較前沿和更為重要的情感分析的研究方向。

對於多模態情感分析研究的必要性,這裡需要提一個概念——「情感帶寬」,即人類能表達的情感的信息量的大小和維度。比如面對面交流時,情感性的信息往往是從語音語調、面部表情、肢體等多個維度表達出來的。然而到了人機交互中,情感寬頻的整個範式會發生較大的變化,如通過人機對話系統交流時,少了肢體這個維度,人類的情感帶寬似乎瞬間驟降了。但實際上也增加了幾個新的輸出維度,如圖片、表情包、回復時間的長短等。

除自然語言理解技術外,人機交互的另一困難就是信息維度的稀疏性。因此人機交互中情感分析應儘可能從多個維度入手,將缺失的情感帶寬補上——多模態情感分析成為一個重要的研究方向。內部的多模態分析即 emoji+照片+表情包+文本長度等,外部的多模態即加入面部表情識別+提供的標籤(性格,愛好,年齡等)+語音等。如竹間智能在構建基於自然語言理解技術的人機交互系統時,加入多模態情感分析技術(文字、語音、圖像),打破了以往情感識別在單一文本維度上的局限性,讓機器能進一步讀懂、聽懂、看懂人類,從而達到了更好的人機交互效果。

情感分析的工具和方法

深度學習在情感分析中的應用已經較為普遍了,如利用 LSTM 結合句法分析樹、基於卷積神經網路和支持向量機等。一般情況下,對於各種方法的綜合創新應用,能達到取長補短的效果,進而能夠提高情感分析的準確率,另外還能從無標註的文本里學習到其中的隱藏特徵,以實現端到端的分類。

文本情感分析最常見的 dataset 是 IMDB Movie Reviews,那麼該如何入手與練習呢?下面以 python 為例,從簡單的文本情感分析說起。

前置作業:

1.先安裝 Keras (https://keras.io/),Keras 是一個 high-level networks API,底層使用了 Tensorflow, CNTK, 或 Theano 運算 (這取決於具體安裝了哪一個)。

Keras 的安裝指南: https://keras.io/#installation

2.當 Keras 已安裝完畢,則 IMDB 可由此方式入手 (https://keras.io/datasets/)。此 API 的底層:https://github.com/fchollet/keras/blob/master/keras/datasets/imdb.py

接下來,依序分享一下怎麼用 LSTM, Bi-directional LSTM, CNN, CNN-LSTM 等 Neural Network 來解情感分析(sentiment analysis)的問題。

LSTM (long-short term memory)

LSTM 的詳細原理,在此不加贅述,有興趣的朋友,可以參考這篇文章:http://colah.github.io/posts/2015-08-Understanding-LSTMs/

以下會使用 RNN 的 concept 來解 sentiment analysis 的問題。

example: 假設,使用者輸入:「我今天好傷心」,分詞完的結果是「我 今天 好 傷心」,則我們希望 model 可以輸出「難過」。model 裡面的簡單運算概念如下圖所示。LSTM 會一直把資訊往後傳,並擁有記憶功能,最後整合所有資訊後,再做出判斷。

透過 Keras,可以快速建出上面的模型:

完整代碼:https://github.com/fchollet/keras/blob/master/examples/imdb_lstm.py

詳細的代碼解說: http://machinelearningmastery.com/sequence-classification-lstm-recurrent-neural-networks-python-keras/

Bi-directional LSTM

Bi-directional LSTM 和 LSTM 非常類似,只是把句子透過兩個不同方向來看,如下圖所示:

這種做法有一個好處,以這句話「我今天好傷心」為例,重點剛好在句尾。但如果換一個句子,「真開心,明天要出去玩了」,此句的重點則在句首。因此,可以用 Bi-directional LSTM 來處理這種問題。

一樣,透過 Keras,可以快速建出這種模型:

只要在 LSTM 外麵包上「Bidirectional」這個 wrapper,馬上就能製作完成。

完整代碼:https://github.com/fchollet/keras/blob/master/examples/imdb_bidirectional_lstm.py

CNN

近年來 CNN 在影像領域大有突破,不過也有人把 CNN 的方法應用到文字處理上面。在此先分享一篇 arxiv 上的文章,「Recent Advances in Convolutional Neural Networks」,於 2017 年年初做了更新:https://arxiv.org/pdf/1512.07108.pdf。

裡面對 CNN 做了 overview,同時在「5.10. Natural Language Processing」對 NLP 做了些整理。

然後我們回歸主題,怎麼使用 CNN 來做情感分類呢?

詳細的原理,可以參考這篇文獻:https://arxiv.org/abs/1408.5882

這篇則是知名的博客 WildML 寫的介紹:http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/

不過,從實作面的角度來看,透過 Keras,CNN 的原理也不是太重要,只要找對 API 即可 (Conv1D)。在以下這個實作範例中,大約需要 20 行的代碼,即可建出這個 model:

完整代碼:https://github.com/fchollet/keras/blob/master/examples/imdb_cnn.py

CNN-LSTM

上面介紹完 LSTM & CNN,那是不是有辦法可以把兩者的特性結合起來,融合成一個 CNN-LSTM 的 model?透過 Keras,當然還是可以的!

完整代碼: https://github.com/fchollet/keras/blob/master/examples/imdb_cnn_lstm.py

以上主要分享了比較普遍的實作面內容,也許能夠幫助大家解決手頭上的問題。不過上面用 LSTM 與 CNN 來解 sentiment analysis 的問題大約是近 5 年內發展的技術,不是最近最新的技術。

關於多模態情感分析:最直覺的做法,就是把文本、語音、圖像的原始輸入資料,利用深度學習的技術,映射到共同的 feature space 中。以文本的例子來說,原始輸入的文字,使用分詞(前處理)轉成字元與字元後,透過一層 embedding layer 映射到向量空間,可以使用 CNN 去擷取裡面的信息。同理,以圖像為例子,原始輸入的照片,利用影像前處理 (ex: whitening) 後,再使用 CNN 去擷取裡面的訊息。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

網易有道 CEO 周楓:需求為先的 AI 技術賦能
DeepMind論文三連發:如何在模擬環境中生成靈活行為
人工智慧與醫療,正成為人工智慧時代重頭戲
遺傳演算法的基本概念和實現(附Java實現案例)

TAG:機器之心 |

您可能感興趣

人機交互的未來 情感智能AI可以響應人類感受
機器人也能擁有人類情感:「情感計算」讓機器人學會「讀心術」
交互設計中的情感化!
手相感情線透視你對待情感的態度及感情線短的人對待感情比較隨便
讓機器人讀懂你的情感,情感交互領域首個國際標準由中國制定
情感夜讀·感情中最好的心態……
互動情感解壓閥 | 我的態度,我會盡情釋放
四顆對感情運勢最不好的痣,容易有情感危機!
用你對感情的堅定和信任,去催化出更好的情感成果
感情需要用情至深,但也需要情感的對等
久伴情感獲得最受客戶歡迎的情感諮詢機構稱號
如何解決戀愛和婚姻中的情感倦怠?過來人分享了實用經驗
情感預測
愛情中的大忌——過度情感需求
情感 情感語錄集
情感測試:你一定很想知道情感的最終歸宿
卜卦與本命占星感情案例分析:好感、友情感情曖昧與真愛
心理測試:選一張你最有感觸的油畫,測在情感中你會遇到什麼危機
分享,情感,管理
情感語錄:心情不好傷感的愛情說說短語