摘要:本篇文章次要介绍了情感剖析的一些根本工作,包含文本、语音、图像还有生成、辨认,着重讲述华为云在细粒度情感剖析方面两个工作。
导读:先简略介绍一下文本情感剖析的一些基本概念,而后介绍一下华为云在细粒度情感剖析方面两个工作,一个是属性级的细粒度情感剖析,还有一个是观点四元组的开掘,最初再做一个总结和将来的瞻望。
明天次要介绍以下几点:
Ø 文本情感剖析介绍
Ø 属性级情感剖析
Ø 观点四元组剖析
Ø 总结
情感剖析介绍
首先介绍一下文本情感剖析的一个基本概念。情感剖析,它次要是辨认媒介中指标对象的一个情感,这外面可能有两个概念比拟容易混同,一个是 sentiment analysis,另一个是 emotion analysis,个别咱们说的情感剖析都是 sentiment,次要指的侧面和负面的剖析,而后 emotion 会更具体一些,它不仅蕴含正负面,还蕴含比如说怄气、开心、快乐这些,会更加细粒度一些。
咱们次要剖析 sentiment,从剖析对象来看会蕴含文本、图像、语音,EEG(脑电波)、多模态剖析情感。从工作方面来看,不仅是有情感的辨认,还有情感生成的一些工作,像当初有情感对话的生成,还有虚拟人情感生成。在本报告中,次要偏重文本方面的情感辨认。
文本情感剖析
下面文本情感剖析五因素定义是采纳刘冰老师的定义,这个定义分为了实体(entity)、实体的某一个方面(aspect)、针对这个实体的情感正负面(opinion=sentiment,即情感正负面也称作观点正负面)、观点持有者(hold)和持有观点的工夫(time)这五因素,一般来说 hold 和 time 文本很少提及。
另一个概念个别会把 entity 和 aspect 合并在一起成为一个 target,是针对咱们指标对象的情感或者观点。例如:“我感觉华为手机的拍照十分牛逼”这里面对应的实体是“华为手机”,对应的 aspect 是“拍照”,对应的情感是“十分牛逼”为侧面,对应的观点持有者是“我”,而工夫没有提及所以为空。
以后的文本情感剖析就是依据输出文本,而后辨认其中这五因素里的几个因素,当初还没有相干工作能够同时辨认出五个因素。个别的话当初最简略的情感剖析是只辨认出这个文本的观点 / 情感,既不蕴含实体也不蕴含 aspect 并且也不蕴含观点持有者,再进一步的工作就是辨认出针对哪一个 aspect(实体)的观点(情感)。
这里简略介绍一些细粒度情感剖析和咱们说的个别情感剖析的区别。个别的情感剖析都是间接辨认整个文本的正负面,然而细粒度情感剖析会更细一些,这外面有两个概念,一个是从情感的粒度上会更细,比方从 sentiment 到 emotion 的情感粒度降级,之前咱们只剖析正负面,当初除了正负面还有情绪,如快乐、伤心等,从情感这个维度讲这是一种细粒度情感剖析。还有一个是从剖析对象的角度来讲,之前的情感剖析是间接辨认整个句子或整篇文章的情感,它不辨别情感对象是谁,再细粒度一些的话就须要辨认出整个句子外面情感针对的对象是谁,它是句子里的某个实体或者是某个实体的某个属性,从这个角度这也是细粒度情感剖析的一种,咱们明天次要偏重第二个针对对象角度的情感剖析。
情感剖析工作
上面介绍一下情感剖析的各个工作,这外面剖析是情感的辨认,不蕴含生成,还有后面提到的语音图片也不波及。
针对文本的情感剖析会分成几个等级:
词级别的情感剖析:这个相似于情感词典的构建,怎么去构建一个大规模的情感词典,比方“车祸”这个词对应的情感就是负面的,“生日”这个词对应的情感就是侧面的。
句子 / 文档级的情感剖析:咱们当初用比拟多的,各大云服务厂商都会有的一个服务,针对句子或者文档的情感剖析,输出一句话返回相应的情感正负面,但它不辨别正负面针对哪一个句子外面哪个实体或者哪个对象。
指标级的情感剖析:这是咱们明天偏重的指标级的细粒度情感剖析,这外面的指标就是上边说的 target,它能够是一个实体也能够是一个属性,还能够是实体 + 属性的组合模式。
对于指标级的情感剖析会分为三种:
针对属性的情感剖析(TG-ABSA):这里面对象是固定而后只剖析外面某几个属性的正负面,这就会波及到两个工作,一个是对象的属性辨认,另一个是该属性的情感辨认。例如图中的例子“外观 XXX”,这里的对象是固定说的是手机,咱们只须要辨认出其中的属性外观、内存和性能,而后别离辨认出各个属性的情感正负面。针对属性辨认也分成两个工作,一是属性词的抽取,就是咱们要定位出属性形容词在文中的地位,另一个是该属性形容词对应的属性类别,因为针对某个属性的形容可能是“外观”也可能是“看起来很难看”,它这个形容不肯定蕴含显性的属性形容词。针对情感辨认会分为观点词抽取和观点分类。
针对实体的情感剖析(TN-ABSA):这里是文本中只有实体而没有属性,只针对实体的情感进行剖析,这波及到的两个工作,实体辨认和情感辨认。实体辨认分为实体词抽取和实体分类,情感辨认分为观点词抽取和观点分类。
针对指标的情感剖析(T-ABSA):这外面的指标就是实体 + 属性的组合,例如:“小米性价比”、“华为拍照”等,这会比下面两个工作绝对更细一些。指标辨认分为指标词抽取和指标分类,情感辨认分为观点词抽取和观点分类。
针对情感剖析简略介绍一下它的一些办法简史,最早的一个办法是基于字典加规定的形式,咱们人工构建一个情感词典,每个词都有对应的正负面,而后依据句子中侧面词和负面词的数量,最初做一个投票,这是一个最简略的办法。后边就有了基于机器学习的办法,像传统的机器学习 SVM 等,将情感词典和词袋作为它的一个特色。再进一步就是深度学习,还有就是当初的基于预训练语言模型 +fine tune 的办法,应该是当初成果最好的一个办法。
属性级情感剖析
下边我介绍一下咱们其中的一个工作,属性级情感剖析(TG-ABSA),这外面实体是固定的,剖析它各个属性的正负面。像下面句子级情感剖析是大部分厂商提供的,比方“买没几天就提价一点都不开心,闪存跑分就五百多点”,这个整体是负面,然而它针对价格和闪存两个属性都有相应情感,这里并没有辨别。属性级情感剖析这个工作就是给定属性的类别汇合,而后预测它各个属性的正负面。其中,这里的表白也分为两种,一种是显式的观点表白,另一种是隐式的观点表白。显式的观点表白会显示提到属性的属性词和观点词,比方“手机内存十分大,零碎晦涩,性价比十分高”,这里属性词“内存”、“零碎”和“性价比”都有显示的提到,而像“手机太贵了,颜值十分高,一点都不卡”,这里“手机太贵了”、“一点都不卡”表白的属性别离是“价格”和“性能”,然而没有相应的属性词。
针对这两种不同的表达方式,解决形式是不一样的,后边会介绍一种专门针对显示的办法。
属性级情感剖析—相干工作介绍
无监督办法:
最传统的一个办法是无监督的,这种办法的劣势是不须要标注数据,比方应用基于句法解析的办法,先抽取句子里主语谓语宾语的表达方式,比方“服务员很漂亮”,通过抽到的主语“服务员”和它对应的形容词“丑陋”,这样我就能够晓得它的评估对象是“服务员”,观点是“丑陋”,再依据查情感词典晓得这是一个侧面的情感,这样就能够失去针对服务员的评估是侧面的。
这种办法只能解决显示的表白,如果是隐式的表白,因为句子中没有属性词,那么通过句法解析没法失去对应的角色,所以无奈剖析来解决隐式的表白。这种无监督办法的长处是不须要标数据,毛病是准确率绝对低一些,没法解决隐式表白。
浏览了解办法:
最近的一个工作是复旦邱锡鹏老师组提出的基于深度学习的办法,剖析一个句子外面各个属性的正负面,他把这个问题转化成一个浏览了解的问题,原本一个句子有 N 个属性汇合,他把句子和属性转换成句子 - 属性 pair。输出一个句子,这外面 aspect 能够形容成浏览了解的一个问你题,比方“针对外观评估是怎么样的”,这样转换成问答对的形式,而后基于 Bert 来辨认这个问答对正负面的答案,这是一个比拟新的工作。
这种形式的劣势是比拟灵便,属性能够有限的裁减,不论是新增或者缩小属性,都能够用这种办法间接取解决,而且准确率还比拟高。然而这种办法的毛病就是它的效率绝对要低一些,因为如果有 N 个属性,在预测的时候,它须要预测 N 次能力失去后果。
属性级情感剖析—计划介绍
咱们提出了一个基于相似多标签,多任务的办法。整个工作给定属性类别汇合,而后预测每个属性的正负面。
这外面的难点是,首先咱们大框架应用的是有监督的办法,因为最终咱们想要把利用部署到华为云的服务上,所以准确率要求是比拟高的,要求达到 90% 以上,个别无监督的办法无奈满足,所以还是须要有监督的办法。这就须要标注数据,如果是多个属性它的一个问题就是标注起来比拟艰难,比如说一个手机评论可能会波及到二三十个属性或者说甚至上百种属性,如果要标数据的话,这会十分的艰难。咱们的办法不同于传统的多标签分类,像文本多标签分类工作的类别有政治、经济、新闻,该工作只波及标签是否呈现,但这里不一样的中央是它不仅波及到属性是否呈现,还要预测出属性的正负面,相当于每个属性都要预测出它的三个标签—侧面、负面和未呈现。相当于每个属性是一个多分类工作而不是一个二分类工作。之前那种多标签分类,个别最初会把每个标签转化成 logits,这里的话用这种办法就没方法解决。而后还有就是隐式表白。
咱们解决的技术思路是,把它转换成一个 Multi-task 多分类工作,每个属性都解决成一个多分类的工作,所以它输入不是二分类而是一个多分类。在标注数据的过程中,咱们引入被动学习的思路,先标注一批大量的数据,而后用模型对残余未标注的做一个预测,而后再对那些置信度比拟低的再去人工审核标注这些数据,如果置信度比拟高的就不必再标了,这样的话能够进步标注效率。另一个办法是,如果一个样本同时标注多个属性,这个标注老本是很高的,咱们引入 Label mask 的思路,就是在训练的时候 某几个属性可能标也可能没标,如果没标的话就把这个属性 mask 掉,而后在计算 loss 的时候该属性就不参加计算了,只将那些曾经标注的属性参加 loss 计算和反向流传的计算,这样的一个益处就是我在真正标注样本的时候想标注哪几个属性就标注哪几个属性,不必每个样本的所有属性都要标注,这样标注就更加灵便,能够先针对某一个属性只标注它,标完该属性后再标另一个属性,这实际上是一个很灵便的标注。
应用这个办法的一个劣势是,它最终基于深度学习模型,准确率比拟高,也反对隐式的表白,因为深度学习能够编码各种语义的表白,还有一个就是咱们这种办法能够进步标注效率。在两头编码这块能够是基于 bert、roberta 这种预训练语言模型,最终输入应用 label mask 的办法。
属性级情感剖析—后果
上面两个图是咱们最终的一个试验后果,针对汽车畛域测试样本大略有 7000 多个,每个样本均匀的属性数量是 4.27 个,其中预约义的属性汇合是 8 个,最终能够看到每个属性的准确率都是很高的,基本上达到 90% 以上。针对手机畛域的后果基本上也是每个属性 F 值基本上能达到将近 90%。
右上角的图是针对每个属性预测的标签的置信度的阈值,随着阈值的回升,命中的属性(即预测的标签的置信度在阈值以上的属性)准确率也在回升,而 Attribute Hit Rate(即预测标签的置信度在阈值以上的属性占比)也随着阈值的回升而降落,即有些属性预测的标签的置信度低于阈值,然而命中的属性预测出标签的准确率是缓缓回升的,这个也是合乎咱们的个别认知的。这个的一个益处是最终产品上线之后,用户要求有一部分不须要人工审核,另一部分则须要人工审核,当达到某个阈值之后,他们就能够不必参加人工审核。通过调节阈值,让某些属性的指标达到了这个阈值,比方准确率都达到 95%,这一部分就不须要人工审核。
属性级情感剖析—利用案例
这是咱们基于多属性情感剖析的一个利用案例,这是汽车畛域的案例,针对网上很多的汽车畛域的评论,咱们能够剖析汽车在八个属性维度上的正负面评估。上图左上角里红色的线就是一个行业的平均水平,蓝色的线是针对这个车它的各个维度的雷达图像,这样就能够很不便地比照出不同车型,它的一个好坏。能够不便用户在产品选型的时候做一个比照,也能够不便厂家针对评论自身对他们的产品做相应的改良。
观点四元组剖析
四元组观点开掘—介绍
下面讲到的尽管能够剖析出各个属性的正负面,然而它的一个毛病是没方法定位出针对某个属性具体评估的属性形容词地位和观点形容的地位,因为有些用户不仅想要找到属性正负面,还要找到它对应的评估地位,所以咱们这个工作是针对观点四元组进行开掘的。
观点四元组开掘这个工作不仅要剖析出各个属性的正负面,还要定位出它属性形容词的地位以及观点形容词的地位。比方“手机内存十分大”中属性形容词定位到“内存”,评估词定位“十分大”,对于“性价比十分高”这句话,属性形容词定位到“性价比”,观点形容定位到“十分高”,不仅要辨认出属性的类别还要定位到地位,所以这里一共有四个因素要预测进去,别离是属性词、属性类别、评估词和评估极性,其中属性类别和评估极性在后面的工作曾经做到了。
四元组观点开掘—计划
针对这个工作,咱们提出了一个基于抽取加分类的联结模型,上图是咱们当初采纳的框架,底层是基于编码的模型,能够是 bert 或者 roberta 等,而后将句子编码成一个向量示意。
图中右边这侧是用于定位属性形容地位和观点形容地位的,是一个序列标注模型,比方这里 B_A 是属性形容词起始地位,I_A 则是在属性形容词两头的地位,例如这里“内存”和“色彩”都是属性形容词。在这里最上层用的是 CRF 序列标注模型来进行属性形容词的抽取。图中左边这侧对应的跟下面的工作有点相似了,有 N 个属性对应有 N 个输入,而后对应每个属性预测它的正负面和未呈现这几类。右边做属性词抽取,左边做属性正负面预测,最终能够输入每个属性的四元组(属性类别,属性形容词,观点形容词,观点类别)。
四元组观点开掘—数据标注
这里的比拟耗时间的工作就是数据标注,因而咱们专门做了四元组观点开掘的数据标注平台。下面“简略”这个分类标签是为了解决标注过程中有些不同标注人员他可能对同一个样本就会有抵触,他感觉这个样本比拟难标或者好标的话这里就是用这进行辨别,如果样本好标会打个“简略”的分类标签,如果让他感觉不确定,他会不打“简略”的标签,即“简单”标签。因为咱们标的属性比拟多,波及到差不多三四十个属性,这里做了一个对属性做了大抵的分类。
这里的标注工作是相似于关系抽取外面 3 元组的标注工作,先标注属性形容词,而后再标注它的观点形容词,这外面它两个其实是造成一个搭配关系,这个相似于一个三元组中实体和实体及他们的关系,只不过这里的关系是一种搭配的关系,将它们连起来就能够了,最初再加上它对应的正负面以及属性形容词对应的属性类别,这样每个样本的四元组就标出来了。
上图右边是咱们标注大略两万条手机评论的数据分布,其实能够看到数据分布式十分不平衡的。这个是拿到实在用户在线上评论的数据,有些评论会偏的十分多,然而有些类别评论会非常少。上图左边是针对所有属性对应正负面的散布,这个也是十分不平衡的,侧面的评论比拟多,负面的评论会绝对少很多。
四元组观点开掘—后果
上图为咱们最终的评估后果,因为它是一个四元组既蕴含分类也蕴含抽取,对于评估指标咱们用了一个 Fuzzy F1 值。咱们对每一个属性加正负面标签作为一个评估对象,比方“外观正”作为一个评估对象,而后去找它对应的地位,计算这个地位它们字符的重合率(包含观点形容词和属性形容词的重合率)这样去算它的 F 值。EM F1 值是预测形容词的地位齐全精准匹配,略微有一点不对也算错,这个比后面的指标更加严格。
在编码器这部分咱们尝试了几个不同的编码器,包含 bert、roberta 还有 nezha 等。因为咱们有很多未标注的数据,基于这些数据咱们做了畛域的预训练,而后再进行 fine tune。右图展现了不同指标下的后果,能够看到在未标注数据上进行畛域预训练的话是能够带了一个点的晋升,Fuzzy F1 能达到 0.79。另外,这个评估指标对于人的理论感知不太直观,咱们随机抽取 500 条数据进行人工评估。人工评估的过程是每个样本预测出每个属性标签和正负面且包含它们的地位,将这样的四元组抽取进去进行人工评估,判断预测是否正当,如果正当标记为 1,如果不合理则标记为 0,这样来看人工对模型预测的指标判断。人工评估的准确率是十分高的,差不多 96% 的准确率,即人工认为预测是正当的。这两个后果差异是比拟大的,但也是比拟正当的,因为在数据标注过程中,不同标注人员对观点形容词的地位以及属性形容的地位也可是会有歧义。比方“外观十分难看”这句话,有些人观点形容词会标“难看”,有些人就会标“十分难看”,这其实对最终预测后果影响不大,然而如果用字符重合率的办法,那会重大影响计算这个指标,所以说它两个差别比拟大也是正当的。
四元组观点开掘—Demo
上图是咱们一个简略的 demo,输出一个样本,生成对应每个属性的正负面,当点击某个属性的时候它对应的评估词地位就能够高亮进去,红色代表属性形容词,绿色代表观点形容词。下面说的人工评估就是这些后果预测进去后,人工看看预测是否正当。
总结
本篇文章次要介绍了情感剖析的一些根本工作,包含文本、语音、图像还有生成、辨认。对于文本情感剖析工作做了具体介绍,重点介绍了两个工作,一个是属性级情感剖析,这个是给定属性汇合状况下,预测每个属性的正负面,咱们将它构建成了一个多任务分类。另一个工作比下面的粒度更细一点,不仅要预测出属性正负面,还要定位出它具体的属性形容词和观点形容词的地位,咱们把它做成了一个抽取加分类的多任务联结模型,既包含抽取也包含分类。
对于将来的趋势,咱们在理论做的过程中发现大家在工业界会碰到标注数据老本十分高的问题,每一个工作基本上咱们须要标将近两万条数据,所以最终的成果准确率是比拟高的。另一方面,对于模型减速这部分,因为应用深度学习像 bert 这种预训练模型,它的推理老本还是比拟高的,咱们华为能够对硬件进行底层适配。对于畛域迁徙将来也是关注重点,怎么能从更低成本从某一畛域迁徙到另一个畛域,比方从汽车畛域迁徙到手机畛域,或者从手机畛域迁徙到房地产畛域等等。另外,还有自监督去训练超大规模的模型,比方像 bert、roberta 还有最近 GPT3 等等,这也是将来的趋势,而后再思考如何将常识图谱退出到大模型当中进行常识加强来晋升模型了解的成果。还有就是多模态这部分,怎么把图像、文本或者语音这些信息辅助来晋升模型的成果。因为人在学习的时候不仅参考了文本的信息,还有视觉方面的信息等等。当初对于多模态情感剖析咱们也有一些工作正在做,比如说从视频中剖析出一个人的情感,既思考人脸的图像信息,也思考他语音的一些信息,比方语气等等。
本文分享自华为云社区《细粒度文本情感剖析及其利用》,原文作者:NLP9527。
点击关注,第一工夫理解华为云陈腐技术~