編輯:LRS
【新智元導讀】以往的情緒分類研究由於資料的限制,只能侷限於六種基本的情緒分類。好訊息終於來了,Google最近釋出迄今為止最強情緒分類資料集GoEmotions,情緒類別提升到28種,並且每個類別標籤的質量都超高!
網際網路文化的興起,讓NLP研究員也是壓力山大,不光要蒐集傳統的語料,新興的各種梗表達的微妙情緒也只能讓機器學習模型直呼看不懂。
情緒的表達在社交軟體上十分關鍵,影響著人們的交流方式和社交關係的塑造,在語言方面尤其如此,只要幾個詞就能表達各種各樣的微妙和複雜的情感。
因此,使機器能夠理解上下文和情感一直是研究界的一個長期目標,這反過來又將支援各種應用,包括情感聊天機器人、檢測負面情緒的網路行為模型以及改善消費者的互動反饋。
在過去的十年裡,NLP 研究界已經為基於語言的情感分類提供了一些資料,大多數都是人工標註的,涵蓋了多個目標領域,如新聞標題、電影字幕、甚至童話故事,但規模往往相對較小,或者只關注於1992 年提出的六種基本情緒:憤怒(anger)、驚訝(surprise)、沮喪(disgust)、快樂(joy)、恐懼(fear)和悲傷(sadness)。
雖然這些情緒資料能夠對情緒進行初步、粗糙的分類,但這些資料集在建立時也強調需要在更廣泛的情緒集上建立一個大規模的資料集,以在更廣泛範圍促進未來潛在應用。
Google 最近就帶來了一個全新的情緒資料集GoEmotion,包含了58000個人工標註的Reddit 評論,並且將情緒分為28個類別。作為迄今為止標註最詳細的英語情感資料集,Google從心理學和資料適用性上設計了一個GoEmotion情感分類法。
和只有一種積極情緒(joy)的六種基本情緒相比,新的分類包括12種積極情緒、11種消極情緒、4種模稜兩可的情緒類別和1種中立情緒,能夠廣泛適用於需要微妙區分情緒表達的對話理解任務。
資料集的初衷是建立一個以對話資料為重點的大型資料集,其中情感是交流的關鍵組成部分。由於Reddit平臺提供了大量公開的內容,包括使用者與使用者之間的直接對話,因此它也成為了情緒分析的絕佳場景和資源。
為了建立具有廣泛代表性的情感模型,研究人員採用了資料修復措施以確保資料集沒有改變通用性、情感特定性和語言偏見。
這一點尤其重要,因為Reddit的平臺也具有使用者群體的偏差,年輕的男性使用者居多,其中的評論也無法反映全球不同的人口的情緒表達。
並且Reddit 還有一些攻擊性的語言,為了解決這些問題,需要使用預先定義的攻擊性、少兒不宜、粗俗內容以及宗教的術語來識別和過濾劣質評論。
除此之外,Google還對資料進行了額外的過濾,如限制文字長度,並對資料集中所表達的情感和感受進行平衡,防止過度某些情感佔比過多。
GoEmotion分類法在設計的時候主要考慮同時最大化三個目標:
1、最大限度地涵蓋Reddit資料中表達的情緒;
2、提供覆蓋最廣泛的情緒表達型別;
3、限制情緒類別的總體數量,並且不能互相重疊。
這種分類法能夠有效地理解資料驅動的精細情緒,同時也解決了某些情緒的潛在資料稀疏性。
建立整個分類體系是迭代過程,包含定義和細化情緒標籤。在資料標記階段,研究人員實際總共考慮了56種情緒類別。從這些樣本中,消除了那些被標註人員(rater)選擇得很少、與其他情緒相似並且相互作用程度較低的情緒、難以從文字中檢測到的情緒。
並且還額外增加了rater在資料標註過程中建議新增的情緒,這些情緒能夠很好地描述在評論資料中的情緒。
最後,研究人員對情感類別名稱進行了細化,以最大限度地提高可解釋性和相互關聯的一致性,在標籤的設定上,94%的樣本需要至少有兩個rater 同意至少一個情感標籤。
在實驗過程中可以發現,GoEmotion 的分類方法產生的情緒在資料中的分佈並不是均勻的。正向情緒的出現頻率更高,這也讓研究人員意識到僅有六個基礎情緒類別是遠遠不夠的。
為了驗證分類的選擇是否與資料相匹配,研究人員進行了主保留成分分析(principal preserved component analysis, PPCA),這是一種透過提取情感判斷的線性組合來比較兩個資料集的方法,在兩組rater 之間顯示出最高的聯合可變性(joint variability)。它有助於發現rater 之間的情感維度是否高度一致。PPCA常被用來理解影片和語音中情感識別的主要維度,也可以用它來理解文字中情感的主要維度。
透過實驗可以發現每個成分都是顯著的(所有維度的p值<1.5e-6),表明每個情緒都捕捉到資料的獨特部分。這可以說是一個巨大的提升,因為在以前的語言情感識別工作中,30個維度中大約只有12個維度被認為是有意義的。
研究人員還根據rater 的情緒判斷之間的相關性來研究定義情緒的聚類。採用這種方法,當兩種情緒經常被rater 共同選擇時,這兩種情緒可以被聚類在一起。
研究結果發現,儘管GoEmotion 分類法中沒有預先定義情感(sentiment)的概念,但在情感(消極、積極和模稜兩可)方面相關的情緒能夠聚合在一起,表明了rater 的資料標註質量很高,和資料標註的一致性。
例如,如果一個rater 選擇給一個評論的標籤是興奮(excited),那麼另一個rater 也更有可能選擇一種相關的情緒,比如快樂(joy),而不是說選擇恐懼(fear)。
一個比較意外的情況是所有模稜兩可的情緒都能夠聚集在一起,並且它們與積極的情緒更緊密地結合在一起。
同樣地,在強度上相關的情緒,如joy和excitment、nervousness和fear、sadness和grief、annoyance和anger,也密切相關。
雖然GoEmotions提供了一組人類註釋的情感資料,但也存在一些額外的情感資料沒有包含在內,其他資料集一般使用啟發式的方法來自動標記弱型別的情緒。
主流的啟發式方法使用與情緒相關的Twitter標籤作為情緒類別,無需人工參與就可以生成大量資料。但這種方法也受到多種限制:
1、Twitter上使用的語言與許多其他語言領域明顯不同,從而限制了資料的適用性;
2、標籤是人類產生的,直接使用時容易重複、重疊和其他分類不一致;
3、這種Twitter方法的特殊性限制了它在其他語言群體中的應用。
GoEmotion 提供了一種替代的、更容易使用的啟發式方法,將Emoji嵌入到使用者對話中,作為情感類別的代理(proxy)。這種方法可以應用於任何包含合理的Emoji的對話中,因為Emoji比Twitter標籤更標準化,更少稀疏,所以它們的不一致性更少。
需要注意的是兩種方法,無論是使用Twitter標籤還是emoj,都不是直接針對情感理解,而是針對對話的變體。
例如,在下面的對話中,表達感激之情,表達慶祝的表情,以及是禮物的字面替換。類似地,雖然許多表情符號都與情緒相關的表達相關聯,但情緒是微妙的、多方面的,在許多情況下,沒有一個表情符號能夠真正捕捉情緒的全部複雜性。
此外,表情符號捕捉的是情緒以外的各種表情。由於這些原因,研究人員還是將它們看作是表情而不是情感。
這種型別的資料對於構建表達性對話代理以及建議上下文表情都是有價值的,是未來工作的一個特別有趣的領域。
但不同人群對於emoj的理解也肯定存在偏差,一個典型的例子就是微信中的[微笑]表情。
總之,GoEmotions資料集為精細的情緒預測提供了一個大的、人工標註的資料集,分析結果也證明了標註的可靠性和Reddit評論中表達的情感的高覆蓋率。
參考資料:
https://ai.googleblog.com/2021/10/goemotions-dataset-for-fine-grained.html