编辑: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分类法在设计的时候主要考虑同时最大化三个目标:
这种分类法能够有效地理解数据驱动的精细情绪,同时也解决了某些情绪的潜在数据稀疏性。
建立整个分类体系是迭代过程,包含定义和细化情绪标签。在数据标记阶段,研究人员实际总共考虑了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