當前位置:
首頁 > 最新 > MIT媒體實驗室:基於情緒分析構建影片情感弧線,預測觀眾反響

MIT媒體實驗室:基於情緒分析構建影片情感弧線,預測觀眾反響

來源:MIT Media Lab

編譯:weakish

MIT媒體實驗室的Eric Chu和Deb Roy在ICCV 2017研討會上發表了《Audio-visual Sentiment Analysis for Learning Emotional Arcs in Movies》,對影片的視頻和音頻進行微觀層面的情緒分析,基於這些微觀層面的情緒分析,構建宏觀層面的情感弧線,並對情感弧線進行聚類,以此預測觀眾的參與度。

數據集

為這個問題選用數據集,很自然就會想到電影。事實上,研究人員確實選用了Films Corpora(電影語料庫),該數據集包含509部好萊塢電影。

除了好萊塢電影之外,研究人員還選用了Shorts Corpora(短片語料庫),該數據集包含取自Vimeo的「Short of the Week」(每周最佳短片)頻道的1326部短片。這些短片由電影製作人和作家選出,每部的時長在30秒到30分鐘之間,中位值為8分25秒。

研究人員引入Vimeo短片是想探尋電影和新媒體之間可能存在的敘事差異。另外,Vimeo短片也為建模社交網路上流行的短視頻提供了途徑,而Vimeo短片的評論數也能作為衡量用戶參與度的指標。

以上是宏觀層面所用的數據集,微觀層面,需要對視頻和音頻進行情緒分析。因此還需要尋找情緒分析的視頻和音頻數據集,以便訓練模型。

由於大部分的情緒分析方面的研究都是基於文本的,而音視頻方面的數據集不是很多。因此其實沒有多少選擇的餘地。

由於沒有合適的用於情緒分析的視頻數據集,因此研究人員轉而使用了圖像數據集(機器學習視頻的一個常用變通方法就是將視頻轉化為一幀幀圖像)Sentibank。Sentibank包括差不多50萬圖像,每一個圖像使用一個形容詞和名詞對加以標籤,例如「迷人的房屋」,「醜陋的魚」,總共有1533個形容詞和名詞對。這種形容詞和名詞對被稱為情感二元概念(emotional biconcept)。SentiWordnet辭典將每個二元概念映射為情緒分析值。

用於情緒分析的音頻數據集有Million Song和Last.FM等。不過這些數據集不是很符合研究人員的需求(比如Last.FM數據集比較小),所以研究人員最終基於Spotify API構建了數據集。

方法

音頻情緒分析

研究人員基於時長為20秒的音頻剪輯建立模型,因為一般20秒已足以表達情緒。

研究人員用96位的梅爾聲譜圖表示音頻樣本,網路架構基於Choi等2016年發表的論文《Automatic tagging using deep convolutional neural networks》(基於深度卷積神經網路的自動標籤),其中使用了配備ELU和批量歸一化的5個卷積層,之後是一個全連接層。

研究人員選擇數據集之中效價(valence,衡量情緒的強度)高於0.75或低於0.25的樣本,符合這一標準的總共有大約20萬樣本。數據集依照0.8、0.1、0.1的比例分為訓練集、驗證集、測試集。

模型在測試集上的表現如下表所示。

視頻情緒分析

如前所述,視頻情緒分析問題被轉化為視頻幀(圖像)分析問題。研究人員以每秒一幀的頻率進行取樣,通過縮放、中央裁切將視頻幀轉化為256x256的圖像。然後將圖像交給模型進行情緒分析。

對圖像進行情緒分析的模型就是普通的基於AlexNet架構的深度卷積神經網路。雖然一些更先進的架構可能可以提高精確度,但因為這些分類的結果是用來構建高層的情感弧線的,因此這一相對簡單的模型已經足夠了。不過,研究人員倒是使用了一些最近的研究成果提出的部件,包括PReLU激活單元、批量歸一化、ADAM。

研究人員將模型的學習率設定為0.01,batch大小設定為128,批量歸一化衰減設定為0.9。和音頻的情況類似,數據集依照0.8、0.1、0.1的比例分為訓練集、驗證集、測試集。

模型在測試集上的表現如下表所示。

情感弧線構建

基於視頻(圖像)的情緒分析,可以構建視頻情感弧線。下圖左為原始的情感弧線。研究人員通過漢寧窗(Hann window)平滑曲線,漢寧窗的大小是,其中為視頻的長度。

視頻情感弧線。左:未平滑;右:平滑後。X軸:時間;Y軸:情緒

同理可以構建音頻情感弧線。由於音頻情緒分析的模型基於20秒的音頻剪輯訓練,因此音頻情感弧線也使用一個20秒的滑動時窗(sliding window)。

音頻情感弧線的構建還有一點需要注意的。如前所述,音頻情緒分析的模型是通過基於Spotify API的數據集訓練的。然而,基於Spotify API取得的音樂和電影中的配樂實際上不一定完全一致。因為電影中配樂響起的時候,很可能同時存在背景噪音或人物交談的語音。或者,為了效果,配樂可能突然中斷,形成靜默的場景。因此,基於Spotify的音樂訓練的模型,應用於電影配樂,多少有些問題。因此,研究人員基於Gal等於2016年發表的論文《Dropout as a bayesian approximation: Representing model uncertainty in deep learning》(作為貝葉斯近似的dropout:在深度學習中表示模型不確定性)中提出的方法,定義了預測的可信度。

下圖為電影《Her》的情感弧線,圖中的幾條黃線代表可信度不同的音頻弧線,藍色代表視頻弧線。

X軸:時間;Y軸:情緒

情感弧線聚類

聚類問題,最容易想到的是使用K值方法,基於情感弧線的歐式距離。然而,這一方法存在兩個問題:

X軸:時間;Y軸:情緒

當我們釐清基於歐式距離的K均值方法的缺陷的時候,我們離合適的聚類方法就很近了。

既然均值不好用,那我們就用中位值。研究人員使用的正是基於中位值的k-medoids方法。

上圖左側兩條弧線很相似,都有一個類似的高峰,只不過高峰出現的時間很不一樣,因此歐式距離沒法表達兩者之間的這種相似性。那麼,我們把這兩條弧線彎曲一下,將高峰對齊,不就可以了嗎?

沒錯,研究人員使用的正是動態時間彎曲(dynamic time warping,DTW)。上圖左側的兩條弧線之間的歐式距離很大,而DTW距離卻是0。

不過,DTW也不是毫無問題。上圖左側的兩條弧線之間的DTW距離是0,也就是說,模型認為這兩條情感弧線是等價的。但實際上,這兩條情感弧線還是有一些差別的。上方的情感弧線可能意味著情緒的高峰出現在情感時刻的開始,而下方的情感弧線可能意味著情緒的高峰出現在情感時刻的結束,這兩者的意義很可能是不一樣的。

所以,我們需要給彎曲加上一點限制,如果兩條情感弧線的峰谷出現的時間點差異很大,那我們就不彎曲了。換句話說,我們需要將彎曲的範圍限制在一定時間段內。

因此,研究人員使用了LB Keogh限定了彎曲的範圍。弧線A和B的LBKeogh距離由下式給出:

其中,Ui和Li分別為封裝原時間序列的上界和下界,定義分別為Ui= max(Ai-r: Ai+r),Li= min(Ai-r: Ai+r)。

實際上,使用LB-Keogh限定了彎曲的範圍之後,還提高了DTW的性能,可謂是一舉兩得了。

K值的選定,研究人員選擇了常用的肘方法(elbow method)。肘方法的基本思想是根據聚類的凝聚程度選擇合適的K值。在理性情況下,圖像上會有一個清楚的奇拐點,也就是「肘」,在該處,增加聚類的數目將減少聚類的凝聚度。肘的存在暗示聚類是合理的,肘即為合理的K值。

電影語料庫。肘位於k = 5處

短片語料庫。肘位於k = 9處

研究人員還試驗了肘方法在K均值上的效果,找不到清晰的肘。這堅定了研究人員選擇k-medoids方法和DTW信心。

參數細節

首先,研究人員剔除了過長的視頻(超過10000秒的電影和1800秒的短片)。

其次,研究人員Z歸一化了情感弧線,以更好地展現弧線的總體形態。

最後,研究人員選定作為LB-Keogh的窗口大小。這一參數的選定基於的超參數搜索。不過,實際上,這些參數的效果差別都不大。

評估

研究人員分別從微觀和宏觀兩個層次評估了模型的表現。

微觀

從微觀上說,研究人員想知道模型提取的那些情感的峰谷準確率有多高。

要評估模型的準確率,最直接的做法應該是與人類標註作比較。然而,標註整部電影的成本太高了,更別說標註多部電影了。因此研究人員採用了一個變通的做法,根據情感弧線的峰谷,從視頻中提取相應的剪輯,並讓人類標註這些剪輯。

具體而言,研究人員從168部電影中各自提取了1至7則剪輯,總共得到對應於音頻峰谷和視頻峰谷的剪輯220、253、230、259則。研究人員讓CrowdFlower平台上的人觀看剪輯,然後回答關於剪輯的情感內容的問題。每則剪輯分別由3個人標註。標註者將基於視頻的積極程度和消極程度評分(1分為最消極、7分為最積極)。研究人員將超過4分的評分認定為積極,將均分超過4分的剪輯認定為積極,消極評分的認定同理。

基於以上標註,研究人員定義準確率為:

換句話說,一個精確地提取的剪輯:

最終的準確率結果如下表所示:

音頻弧線的準確率如下表所示(已剔除歧義剪輯,下同):

從上表我們可以看到,較低的可信度對應較高的準確率。

研究人員還分別統計了音、視頻,峰、谷,及兩者的組合所對應的準確率:

從上表可以看出,視頻峰的準確率特別低。為了查探準確率特別低的原因,研究人員使用Bamman等人於2014年在《Learning latent personas of film characters》中提出的方法給影片標註了類型。然後統計了不同類型的準確率:

上表按照視頻弧線的情感高峰的準確率排列。原來視頻峰的準確率特別低的原因是某些類型的視頻峰的準確率太低,拉低了總的視頻峰準確率。

研究人員手工分析了動作片、科幻片和驚悚片(準確率最低的三個類型)中預測錯誤的視頻峰剪輯,發現其中包含很多血漿、死亡的場景,這些場景基本上不可能在訓練模型進行情緒分析的Sentibank數據集中出現(Sentibank數據集中的圖片取自Flickr的公開圖片)。

為了進一步提高預測的準確率,研究人員構建了組合音頻、視頻信息的模型。

研究人員基於以下特徵構建了一個線性回歸模型:

上面的大多數特徵都很自然,總的思路是基於整部電影來衡量效價(基於最大值、最小值、均值和尖峰度)。其中,尖峰度(peakiness)的定義如下:給定弧線a(音頻或視頻)上的一點i,函數p(a, i, r)逼近i附近的斜率和均值,r為ai附近的時窗大小。函數p返回4個值:

因此,尖峰度覆蓋了峰、谷和奇拐點。上一節中提到,研究人員選擇了作為LB-Keogh的窗口大小。因此這裡也使用了同樣的窗口大小。

另外 ,前文提到不同的電影類型對預測準確度(特別是視頻峰的預測準確度)有所影響。為了體現這一影響,研究人員使用電影嵌入(movie embedding)來大致地總結電影的情感內容。研究人員用上一節提到的二元概念分類器的倒數第二個激活表示每一幀,接著基於10%電影塊對這些激活取平均值,得到10 x 2048矩陣。然後,研究人員構建了一個2048維向量,附加上10 x 1的特徵向量,以便將電影嵌入轉化為特徵。對這些電影嵌入進行聚類後,愛情、冒險、奇幻、動畫類型清晰可見。

研究人員評估了以上的音視頻組合模型,達到了0.894的精確率。為了進一步驗證模型的有效性,研究人員進行了一些消融測試,包括去除某些特徵(尖峰度、電影嵌入),以及僅使用音頻或視頻特徵。消融測試表明,尖峰度和電影嵌入對提高模型的預測準確度很有幫助。

宏觀

很遺憾,宏觀層面的評估僅僅基於視頻弧線。理論上說,綜合音視頻信息構成的弧線應該能有更好的表現,就像微觀層面結合了音頻和視頻的模型取得了更好的表現一樣。然而,研究人員試驗了基於混合模型構建的弧線,這些弧線的聚類無法得出有意義的分類。研究人員認為導致這一現象有兩個原因:

研究人員構建了一個回歸模型預測Vimeo短片收到的評論數目,該模型使用短片的視頻情感弧線聚類和視頻的元信息作為輸入。

研究人員總共創建了9個模型,區間內的每個整數分別為9個模型的K值。所有的模型都使用相同的元信息特徵。研究人員基於整個數據集檢查了每個模型的各個特徵是否是評論數的統計學上顯著的預測因子。當一個特徵的p值小於0.05時,該特徵被認為是統計學上顯著的。

下表為k=8時的結果。

從上表中我們可以看出,時長和年是統計顯著的預測因子。這並不出人意料,長視頻更可能收到較少的評論(很多人沒耐心看完),而較早上傳的視頻更可能收到較多的評論(評論需要時間積累)。

上表中,聚類1同樣是統計顯著的預測因子,並且事實上是相關係數最大的預測因子。這一聚類表示的是伊卡洛斯情感弧線——先揚後抑,以陡峭的下降收尾。這一類情感弧線很可能刻畫了令人悲傷的影片,因此很多人在觀看後會評論以排解負面情緒。

k=8,藍色的弧線為伊卡洛斯情感弧線(聚類1)

數據集

研究人員構建的數據集可以通過以下地址下載:

視頻剪輯標註的眾包人員被要求回答以下4個和剪輯的情感內容有關的問題:

以上數據集儲存在AWS S3上,如訪問AWS S3網速較慢(或無法訪問),可關注論智(jqr_AI)微信公眾號,留言「情感弧線」(不含引號)獲取國內網盤下載地址。


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

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


請您繼續閱讀更多來自 實驗 的精彩文章:

武大李紅良團隊發聲明,亮明實驗關鍵節點流程圖回應造假質疑

TAG:實驗 |