首页/其他文章/正文

如何用深度学习模型,解决情感分析难题?

 2022年11月21日  阅读 126  评论 0

摘要:本文以情感分析为分享主题,并分析了情感属性分析的挑战以及如何利用深度学习模型解决此类问题。Meltwater通过机器学习提供情感分析已超过10年。第一批模型于2009年部署了英语和德语版本。今天,Meltwaterin-house支持16种语言的模型。本博客文章讨论了如何使用深度学习和反馈循环向全球3万多个客户大规模提供情感分析。什么是情感分析?情感分析是自然语言处理(NLP)中的一个领域,涉及从...

本文以情感分析为分「」享主题,并分析了情感『』属性「」分『』析的挑战以『』及如何利用「」深度学习模型解决此类问题。

如何用深度学习模型,解决情感分「」析难题? - NO.1

Meltwater通过『』机器学习提供情感分析已「」超过「」10年。第一『』批『』模型于2009年部「」署了『』英语和德语版本。今天,Meltwaterin-house支持16种语『』言的模型。本博客「」文章讨论了如何使用深度学习和「」反『』馈循环向全『』球3万多个客户大规模提供情感分「」析。

什么是情感分析?

情感分析「」是自然『』语言「」处理(NLP)中的一个领域,涉及从文本中识别和分类主观意见[1]。情感分析的范围从检测情感(例如愤『』怒『』,幸「」福,恐惧)到讽刺和意图(例如投诉,反馈,意『』见)。情感分析以其『』最简单「」的形式为一「」段文本分配属『』性「」(例如,正面,负面,中立)。

让我们看几个例子:

Acme到目前为止,是我遇到过的最「」糟糕的公司。

这「」句话显然表达了『』负面意「」见「」。情感由「」“最『』糟糕「」的公司”(情感『』短语thesentimentphrase)承『』载,并指向“Acme”(情感目标thesentimenttarget)。

明天,Acme和NewCo将发「」布「」其最新收「」入数据

在「」这种情况『』下,我们只有「」关于“Acme”和“NewCo”的事实陈述。语句是中性的『』。

NewCo在过去一「」年的『』创纪录『』销售数字「」和股市飙升的支持下,它成为第一「」个在其平『』台上积累『』1万『』亿美元资产的养老金计划。

这次,我们在「」积极的语「」义环境中使用了诸如“支持”,“创纪录销售”之类的短语,指的是“NewCo”。

Meltwater通过机器学习提供情感「」分析已超过10年。第一批模型于2009年部署了英语『』和德语版『』本。Meltwater现在拥有16种语言的in-house模型:阿拉伯语,中文,丹麦语,荷兰语,芬兰语,法语,印地语「」,意大利语「」,日语,韩语,挪威语,葡萄牙语『』,西班牙『』语和瑞典语『』。

我们的大多数客户都通过媒体监控仪表板(图1)或报告来分析情感『』趋势。较大的客户可以通「」过Fairhair.ai数据平台以丰富文档的形式访问我们的数据。

如何「」用深度学习模型,解决情感分析难题? - NO.2

图1:MeltwaterMediaIntelligence媒体监测仪表板。

该产品的一个重要特征『』是,用户能够覆「」写(override)算法分配的情『』感「」值。覆写的情感属性被索引为Meltwater的Elasticsearch集『』群「」中同一文档的不同“版本”,在构建仪「」表盘和报告「」时,为『』客户提供了他们的情感的个性化视图(图2)。

如何用深度学习模型,解『』决情感分析难题? - NO.3

图2:Meltwater的媒体「」情报内容流中的“情感属性”覆写下拉列表。

每个『』月,我们的客户都会覆写大约200,000个文档中的情『』感值。每天有6,500个文档!那么,为什么情感很难如此正确呢?

情感『』属性分析的「」挑战

人类语言的某些细『』微差别是挑战性的来源之一。举一些例子:

处理否定语义:

贵公司情况如何?还不错!我对最新『』的财务状况并不非常满意……

我们在这里有三个句子,第一个是中性的,第二个是肯『』定的,但包含“错”,通常在否定的上下「」文中使用『』,第三个「」是否「」定的,但包含“非常满意”。

讽刺语义:用这样的句子

今天又下雨了……funtimes!

尽管表『』达了“funtimes”,但该文本可能「」是讽刺的,并表『』达了负「」面情『』感。

比较性语义:

我喜欢新的Acme手机,它们比NewCo的手机好得多。

这里的“爱”和“好得多”等「」表达带有积极的情感『』,但是,对于“NewCo”来说,评价却是『』负面的。

取「」决于读者角度的语境:

阿克梅警「」察『』局今天逮捕了8名涉嫌袭击和抢劫的「」人员。该团伙『』几个月来一直『』在恐吓「」社区「」。

除「」单词『』的含义外,以上所有「」内容都「」需要理解上下文。

一个『』必须「」解决的实际问题是精度和速度之间『』的权衡。Meltwater每天对大约4.5亿个文档进『』行情感分析,范围从推文(平均长度约30个字符)到新闻和博客帖子(长度可达到『』600-700,000个字「」符「」)。每个文档必须『』在20毫秒内处理。必须保证速度!

传『』统的机器学习方法(如朴素贝叶斯(naveBayes),逻辑回归和支持『』向量机(SVM))因具有良好的可「」扩『』展性而被广泛用于大规模的情『』感分析。现已证明『』深度学习(DL)方「」法在「」各种NLP任务(包括情感分析)上都可以实现更高的准确性,但是,它们通「」常较慢,并且训练和操作成本更高[2]。

到「」目前为止,Meltwater一直在使用多元朴素贝叶斯(naveBayes)情感分类器。分类器需要一『』段文本并将其转换为一个拥有特征值的矢量(f1,f2,…,fn)。

然「」后,分「」类器计算最可能的情『』感正负属性Sj,即正,负或中性,前提是我们观察到文本中的某些特征值。这通常写为条件概『』率语「」句:

p(Sj|f1,f2,…,fn)

通过找到最大化下面的公式的Sj,从而获得概率最大的情感『』正负属性。

log(p(Sj)+log(p(fi|Sj))

让我们将「」以「」上理论应用于我们的情感问题。p(Sj)的值是『』找到“本质上”具有特定正负属性「」的文档的『』概「」率。可以通过将大量文档集标记为『』正「」,负或中性,然后计算找到其中具有给定情感政府属性的文档的概率,来估计这些概『』率。理想情况下,我们应该使用所『』有曾『』经的文档,但这是不切实际的。

例『』如,如果语料库由以下带有『』标签的文档组「」成:

  • D1:Myphoneisnotbad(正面)
  • D2:Myphoneisnotgreat(负面)
  • D3:Myphoneisgood(正「」面)
  • D4:Myphoneisbad(负面)
  • D5:MyphoneisKorean(中性『』)

然『』后p(Sj)的值『』是:

  • p(正面)=2/5=0.4
  • p(负面)=2/5=0.4
  • p(中性)=1/5=0.2

我们使用一个简单的单词袋模型『』来导出我们的功能。我们「」使用一元语「」法,二元语『』法,和三元语法。例如D1转换为:

(My,phone,is,not,bad,Myphone,phoneis,isnot,notbad,Myphoneis,phoneisnot,isnotbad)

p(fi|Sj)的值即为在语料库『』中被标「」记为「」Sj的文档中「」看到某个特征『』的「」概「」率。

我们可以使用柯尔「」莫哥洛「」夫「」对于条件「」概率的『』定义p(fi|Sj)=p(fi∩Sj)/p(Sj),来计算其值。例如,对于特征「」值“bad”:

  • p(bad|正面)=p(bad∩正面)/p(正「」面)=0.2/0.4=0.5
  • p(bad|负面)=p(bad∩负面)/p(负面)=0.2/0.4=0.5
  • p(bad|中性)=p(bad∩中「」性)/p(中性)=0/0.2=0

给定一个文档(例「」如“Mytabletisgood”),分类器基于文本的功『』能为每个情感『』政府属性计算出一个“得分”,例如「」对『』于“正面性”,我们得到:

log(p(POS|my,tablet,is,good,mytablet,tabletis,isgood,mytabletis,tabletisgood))

即为:

log(p(POS))+log(p(my|POS))+…+log(p(tabletisgood|POS))=−13.6949

  • log(p(正面|…))=−13.6949
  • log(p(中性|…))=−16.9250
  • log(p(负面|…))=−18.1709

然后分类器得出的答『』案是:“正面性”是最有可能『』的情感正负属性。

朴素贝『』叶斯(naveBayes)分类器运行很快,因为所需的计算非常简单。但是,就准确性而言,此「」方法可以实现的功能有限,例如:

  • 准『』确的分类依赖于『』代表性的数据集,即,如果训练集偏向某个情感正负属性「」(例如『』中性),我们的分类也可能产生偏「」向。准确性还取决于培训语料库是否足『』够涵盖「」了我们所在意的语言。
  • 朴素「」贝叶斯(naveBayes)的假设基『』于特征的独立性,即使得出的情感正负属性『』排名是正确的,得出的概率也不「」是那么可靠『』[3,4]。
  • 当使用朴素『』贝叶斯和词袋模型时『』,作为训练标签的颗粒度仅仅为文档,通常会导致结果不佳。
  • N-gram(元)语「」言模型是一种钝器。如果将自己限制为3元,我们将无法正确『』捕获例如“notquiteasbad”这样的4元表达式。但是,增加上下文的大『』小会破「」环特征空间,从「」而『』使分类器变慢,但不一定结果更好『』。

Meltwater的NLP(自然语『』言处理)团队的任务是改「」善所有支持语言的情感分析。由于训练新「」模型是一项复杂『』且昂贵的工作,因此团队首先研究了利用我们现有的『』技术堆栈「」来改善『』情「」感分析的快速方法。

改进『』1:句子级训练和分类『』

我们进行『』的第一个改变,是「」训练贝叶斯模型的方式。现在,我们不是在「」整个文档的粒「」度上「」进行训练「」和分「」类,而是在句子级别进行训练和『』分类。以下是一些优点:

  • 与整个文档相比,将标签「」分配给单个句子(或上下文中的表达式)要容易得多「」,因此我们「」可以众包培训集的标签。
  • 多年来,学术研究「」产生了可免「」费获得的带标签的『』数据『』集,用于情感分析评估。其中大多数处于句子级别,因此我们可以将其纳入我们的培训集中。
  • 我们可以将『』句子级情感与命名实体和关键短语提取一起使用以提「」供实体级情感「」(Entity-levelsentimate,ELS)。

然后,我们决定通过堆叠分类器“挑选”有意义句子的情感,将句子级别的情感汇总为文档级别的情感,以产生整个文档『』的情感。

如何用深度「」学习「」模型,解决情感分析难题? - NO.4

图3:在2018年第二季度(左)和2019年第二季度(右)中记录『』的情感「」属性覆写-所有语言「」。

这些简「」单的更『』改对减少客户每『』月做出的情感属性覆「」写次数产生了巨大影响。特别是,在16种受支持的语言中,新闻文档的情感属性覆写平均减少了58%。

该分析「」涉及7,193个客户产生的约「」4.5亿个新闻文档和4.2百万个『』覆『』写项。图3显示了2018第二季『』度(文『』档级预测)和2019第二季度(句子级预测+汇总)进行「」的覆「」写数『』量之「」间的比较。

改进2:新『』的深度学习模型

同时,Meltwater的NLP团队一直在努力改进我们的技术堆栈,以分析「」两种主要语言(即英语和中文)的情「」感,涵盖Meltwater处理的每日内容的约40%。

我们尝试了多「」种技术,例如卷积神经『』网络(CNN),递归神经网络(RNN)和长短内存网络(LSTM),目的是在「」准确性,速度「」和成「」本之间找到良『』好的折衷方案。

由于在准确性,速度和运行成本之间进行『』了很「」好的权衡「」,我们决定选择基于CNN的「」解决方案。CNN主要用于计算机视觉,但事『』实证明,它们对NLP的表现也非常好。我们的解「」决方案使用『』TensorFlow,NumPy(具有MKL优化),GenSim和EKPhrasis在Python中「」实现,以支持哈希『』/现「」金标签,表情符号和表情符号。

体系架构

简化的架构如图4所示。它包括一个嵌入(输入『』)层,然后是单个卷积层,然后是最大池化层和softmax层[5]。

如何用「」深度学习模型,解决情感「」分『』析难题? - NO.5

图4:简化的模型架构(来源『』:Zhang,Y.和Wallace,B.(2015)。卷积神经网「」络用于句法分类的敏感性分析(和从业人员指南)

嵌入层

我们的输入是『』要「」分类的文本。至于贝「」叶斯方法,我们需要根据其特征『』来表示文本。我们将「」文本嵌入『』为矩阵。

例如,文字“Ilikethismovieverymuch!”表示为具有7行的矩阵,每个单词一行。列数取决于我们要表示的功能。与贝叶斯案例不『』同,我们『』不再自己设计功能。相反,我们现在使用经『』过预『』训练的第三方单词嵌入。

词嵌入可大规模捕获语义相似性。这些嵌入是可公开获『』得的,并由第三方机「」器学习专家培训的神经网络「」生成『』。对于英语,我们使用斯坦福大学的GloVe嵌入对8400亿个单词进行了训练常见抓取并使用具有300个特征『』的向量。我们也「」尝「」试过「」BERT和ElMo,但准「」确性/成『』本之间的「」权衡仍然支持GloVe。

对于中文,我们使用腾讯AI的「」嵌入,该嵌入针对200万个『』特征向量「」的800万个短语进行了训练。使用我们自己的训练数『』据集通过转『』移学习对向量进行微调。目的是「」确保嵌入内容考虑「」Meltwater的PR/营销要求。

卷积层

CNN的核心是卷积『』层,在其中训练人工神经元『』以从嵌入中提取显著特征。在我们的例子中,卷积层由英语的100个「」神『』经元和汉「」语『』的50个神经元『』组成。

优点「」再次『』是,我们不必尝试「」和「」设计功能,网络将学『』习我们「」需要的功能。缺『』点是我们可能无法再知道这些功能是什么。点击这里以了解更多的卷积层的细节,点击这里了解更多黑『』盒问题的阐述。

最大池『』化(MaxPooling)

池化的思想是在特征图中捕获最重要的局部特征,以减少维数,从而加快网络速度。

SoftMax层

合并的向量被合并为单个向量,并传递到完全连接的SoftMax层,该层将对极性进行「」实际分类。

数据集

对于英语,除了GloVe嵌入『』之外,我们还有23,000个内部标记的新闻句子和6万个社交『』句『』子,包括SemEval-2017Task4提供的Twitter数据集。对『』于「」中文,除腾讯AI嵌入外,数据「」集还包含来自新闻,社「」交和评论的「」约38,000句子。

该数据集使用Amazon的SageMakerGroundTruth通过众包进行『』注释。在训练之前,使「」用二八原则对数『』据集进行分层和随机排序,即,我们『』使用80%进行训练,使用20%进行验证。

结「」果

与贝『』叶斯方法相比,这个简「」单『』架构已『』经使该模型在句子级『』别产生了明显更『』好的性能(表1)。英文社交文本「」的收益为7%,中『』文(社交和新闻相结合)的收益为18%,英「」文新闻的收益为26%。

在文「」档级别进行汇「」总之『』后,与贝叶斯方法相比,我们发『』现英语级别的文「」档级别情感属性「」覆写数量「」进一步减少了48.06%,中文『』级别的情感属性覆写为29.24%。

如「」何用深度学习模型,解决情感分析难题? - NO.6

表1:CNN与朴『』素贝叶斯(英语『』和「」汉语)的情感准确性「」。

情感分「」析「」的准『』确性「」到底有多高?F〜1〜分数基本可『』以衡量模型得出的结果和『』人「」工注释「」相比的准确性「」。研究告诉「」我们,人工注『』释者仅在『』80%的情况下同意结果。

换句话说『』,即使假设100%准『』确「」的模「」型,在『』20%的情『』况下,人类仍然会不同『』意该模型[6]。实际上,这意味着我们「」的CNN模『』型在对单个句子进行分类时的表现几乎与人工一样好。

连续的提高「」

到目前为止,情感覆盖的结果「」从未被反馈到情感模型中。NLP团队现「」在已「」经设计了一个反馈循环,可以收集客户不同意CNN分类器的案例,以便我们可以随着时间的推「」移改进「」模型「」。

然后将覆盖的文档发送到Fairhair.aiStudio(图5),在此处注释者「」在每个级别(即实体,句子,部分(即标题,入口,正「」文)和文『』档)重新标『』记它们。

如何用深度『』学『』习模型,解决情感分析难题? - NO.7

图『』5:Fairhair.aiStudio:Meltwater的注释工具

每个文档由不同的注「」释者多次『』注释,并由高级注释者进行最终审核。最终客户有时会参与此过程。当我们的注释「」人员不精通「」特「」定语言时,会将标签转移给第三方众包工具。

Meltwater是AmazonSageMakerGroundTruth的重度「」用户(图6)。使用「」众包时,我们会增加「」所需『』注释器的数量,因『』为它们可能不如我「」们内部培训的注释器准『』确。

如何用深度学习模型,解决情感分析难题『』? - NO.8

图6:AWSSageMakerGT帮助Meltwater标「」记2690个「」中文「」文档5次

注释完成后,新「」的数据点将由我们『』的研究科学家进行审查。审查过程包括确保这些覆盖不会故意偏向我们自己的模型,或跟从需要特定模型的特定客户偏见。

如果「」数据是正确的『』,则将其添加到测试集中,即,我们不想通过将「」其添加到训练集中来过『』度「」拟合该数据点『』。我们『』需要该模型能『』够从其他数据点『』归纳正确『』答案。

我们将收集性质相『』似的数据,并携带必要的知「」识来正确分类覆盖的文档。例如,如果发现分类错误发生在『』讨论金融产品的文档中,那么我们将从Elasticsearch集群中收集金融类『』文档。

综上所「」述

我「」们对所有语言改变了训练「」和应用贝叶斯情感「」模型的方式,这使新闻文档上的文档级情感属性覆写次数平均减少了58%。

现在,我「」们支持『』所『』有16种语言的句子级和实体级情感。对我们而言「」,实体可以是个有自己『』名称的「」实体,例如“福「」特”,也可以是「」关键短语,例如“客户服务”。

我们针对英语和汉语部署了深度学习情「」感模型。他们的句子「」准确性在英语和「」汉语中分别为83%和「」76%。他们进一步将新闻文档的文『』档级别腹泻率降低了48.06%(英语)和29%(中文『』)。

新模型考虑了#标签,例如#love,表情符号和表情图示『』。

我们有一个反馈环来不断改善我们的情感模『』型『』。

  • StanleyJoseKomban博士是Meltwater的高级研究科学家
  • RaghavendraPrasadNarayan是Meltwater的高级研究科学家
  • GiorgioOrsi博士是Meltwater的首『』席『』科学家兼(NLP)工程总监
参考「」文献

[1]BingLiu.SentimentAnalysis:miningsentiments,opinions,andemotions.CambridgeUniversityPress,2015.

[2]DanielJustus,JohnBrennan,StephenBonner,AndrewStephenMcGough.PredictingtheComputationalCostofDeepLearningModels.IEEEIntlConf.onBigData.2018.

[3]IrinaRish.AnempiricalstudyofthenaiveBayesclassifier.IJCAIWork.onEmpiricalMethodsinAI.2001.

[4]AlexandruNiculescu-Mizil,RichCaruana.Predictinggoodprobabilitieswithsupervisedlearning.IntlConferenceonMachineLearning.2005.

[5]YeZhang,ByronWallace.ASensitivityAnalysisof(andPractitioners’Guideto)ConvolutionalNeuralNetworksforSentenceClassification.IntlJointConf.onNaturalLanguageProcessing.2015.

[6]KevinRoebuck.SentimentAnalysis:High-impactStrategies–WhatYouNeedtoKnow:Definitions,Adoptions,Impact,Benefits,Maturity,Vendors.2012.

本文由@Meltwater原创发布于人人都是产品经理,未经许可,禁止转载

题图来自@Unsplash,基于CC0协议

版权声明:本文来自互联网转载或网友投稿,转载请附上原文出处链接及本声明;

本文链接:https://www.kaqw.cn/qitawenzhang/124.html