本文以情感分析为分「fen」享主题,并分析了情感『gan』属性「xing」分『fen』析的挑战以「yi」及如何利用「yong」深度学习模型解决此类问题。
Meltwater通过『guo』机器学习提供情感分析已「yi」超过「guo」10年。第一『yi』批「pi」模型于2009年部『bu』署了「liao」英语和德语版本。今天,Meltwaterin-house支持16种语「yu」言的模型。本博客「ke」文章讨论了如何使用深度学习和『he』反『fan』馈循环向全『quan』球3万多个客户大规模提供情感分『fen』析。
什么是情感分析?情感分析「xi」是自然「ran」语言『yan』处理(NLP)中的一个领域,涉及从文本中识别和分类主观意见[1]。情感分析的范围从检测情感(例如愤「fen」怒『nu』,幸「xing」福,恐惧)到讽刺和意图(例如投诉,反馈,意『yi』见)。情感分析以其『qi』最简单『dan』的形式为一「yi」段文本分配属「shu」性『xing』(例如,正面,负面,中立)。
让我们看几个例子:
Acme到目前为止,是我遇到过的最『zui』糟糕的公司。
这『zhe』句话显然表达了『liao』负面意『yi』见『jian』。情感由『you』“最『zui』糟糕「gao」的公司”(情感「gan」短语thesentimentphrase)承『cheng』载,并指向“Acme”(情感目标thesentimenttarget)。
明天,Acme和NewCo将发『fa』布『bu』其最新收「shou」入数据
在「zai」这种情况「kuang」下,我们只有「you」关于“Acme”和“NewCo”的事实陈述。语句是中性的「de」。
NewCo在过去一『yi』年的「de」创纪录『lu』销售数字「zi」和股市飙升的支持下,它成为第一「yi」个在其平『ping』台上积累「lei」1万『wan』亿美元资产的养老金计划。
这次,我们在「zai」积极的语『yu』义环境中使用了诸如“支持”,“创纪录销售”之类的短语,指的是“NewCo”。
Meltwater通过机器学习提供情感「gan」分析已超过10年。第一批模型于2009年部署了英语『yu』和德语版『ban』本。Meltwater现在拥有16种语言的in-house模型:阿拉伯语,中文,丹麦语,荷兰语,芬兰语,法语,印地语「yu」,意大利语「yu」,日语,韩语,挪威语,葡萄牙语「yu」,西班牙「ya」语和瑞典语『yu』。
我们的大多数客户都通过媒体监控仪表板(图1)或报告来分析情感「gan」趋势。较大的客户可以通「tong」过Fairhair.ai数据平台以丰富文档的形式访问我们的数据。
图1:MeltwaterMediaIntelligence媒体监测仪表板。
该产品的一个重要特征『zheng』是,用户能够覆『fu』写(override)算法分配的情「qing」感「gan」值。覆写的情感属性被索引为Meltwater的Elasticsearch集「ji」群『qun』中同一文档的不同“版本”,在构建仪『yi』表盘和报告『gao』时,为『wei』客户提供了他们的情感的个性化视图(图2)。
图2:Meltwater的媒体『ti』情报内容流中的“情感属性”覆写下拉列表。
每个『ge』月,我们的客户都会覆写大约200,000个文档中的情「qing」感值。每天有6,500个文档!那么,为什么情感很难如此正确呢?
情感「gan」属性分析的『de』挑战人类语言的某些细『xi』微差别是挑战性的来源之一。举一些例子:
处理否定语义:
贵公司情况如何?还不错!我对最新「xin」的财务状况并不非常满意……
我们在这里有三个句子,第一个是中性的,第二个是肯『ken』定的,但包含“错”,通常在否定的上下『xia』文中使用『yong』,第三个『ge』是否「fou」定的,但包含“非常满意”。
讽刺语义:用这样的句子
今天又下雨了……funtimes!
尽管表『biao』达了“funtimes”,但该文本可能『neng』是讽刺的,并表『biao』达了负「fu」面情『qing』感。
比较性语义:
我喜欢新的Acme手机,它们比NewCo的手机好得多。
这里的“爱”和“好得多”等『deng』表达带有积极的情感『gan』,但是,对于“NewCo”来说,评价却是「shi」负面的。
取『qu』决于读者角度的语境:
阿克梅警「jing」察『cha』局今天逮捕了8名涉嫌袭击和抢劫的「de」人员。该团伙『huo』几个月来一直『zhi』在恐吓「xia」社区「qu」。
除『chu』单词「ci」的含义外,以上所有『you』内容都「du」需要理解上下文。
一个「ge」必须『xu』解决的实际问题是精度和速度之间「jian」的权衡。Meltwater每天对大约4.5亿个文档进「jin」行情感分析,范围从推文(平均长度约30个字符)到新闻和博客帖子(长度可达到「dao」600-700,000个字『zi』符「fu」)。每个文档必须「xu」在20毫秒内处理。必须保证速度!
传『chuan』统的机器学习方法(如朴素贝叶斯(naveBayes),逻辑回归和支持「chi」向量机(SVM))因具有良好的可『ke』扩「kuo」展性而被广泛用于大规模的情『qing』感分析。现已证明『ming』深度学习(DL)方「fang」法在『zai』各种NLP任务(包括情感分析)上都可以实现更高的准确性,但是,它们通「tong」常较慢,并且训练和操作成本更高[2]。
到『dao』目前为止,Meltwater一直在使用多元朴素贝叶斯(naveBayes)情感分类器。分类器需要一『yi』段文本并将其转换为一个拥有特征值的矢量(f1,f2,…,fn)。
然『ran』后,分「fen」类器计算最可能的情『qing』感正负属性Sj,即正,负或中性,前提是我们观察到文本中的某些特征值。这通常写为条件概『gai』率语『yu』句:
p(Sj|f1,f2,…,fn)
通过找到最大化下面的公式的Sj,从而获得概率最大的情感『gan』正负属性。
log(p(Sj)+log(p(fi|Sj))
让我们将『jiang』以「yi」上理论应用于我们的情感问题。p(Sj)的值是「shi」找到“本质上”具有特定正负属性『xing』的文档的『de』概「gai」率。可以通过将大量文档集标记为「wei」正『zheng』,负或中性,然后计算找到其中具有给定情感政府属性的文档的概率,来估计这些概「gai」率。理想情况下,我们应该使用所「suo」有曾『zeng』经的文档,但这是不切实际的。
例『li』如,如果语料库由以下带有「you」标签的文档组『zu』成:
然『ran』后p(Sj)的值「zhi」是:
我们使用一个简单的单词袋模型「xing」来导出我们的功能。我们「men」使用一元语「yu」法,二元语「yu」法,和三元语法。例如D1转换为:
(My,phone,is,not,bad,Myphone,phoneis,isnot,notbad,Myphoneis,phoneisnot,isnotbad)
p(fi|Sj)的值即为在语料库「ku」中被标『biao』记为『wei』Sj的文档中「zhong」看到某个特征『zheng』的「de」概『gai』率。
我们可以使用柯尔『er』莫哥洛『luo』夫「fu」对于条件「jian」概率的「de」定义p(fi|Sj)=p(fi∩Sj)/p(Sj),来计算其值。例如,对于特征『zheng』值“bad”:
给定一个文档(例『li』如“Mytabletisgood”),分类器基于文本的功『gong』能为每个情感「gan」政府属性计算出一个“得分”,例如『ru』对「dui」于“正面性”,我们得到:
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
然后分类器得出的答『da』案是:“正面性”是最有可能「neng」的情感正负属性。
朴素贝『bei』叶斯(naveBayes)分类器运行很快,因为所需的计算非常简单。但是,就准确性而言,此「ci」方法可以实现的功能有限,例如:
Meltwater的NLP(自然语「yu」言处理)团队的任务是改「gai」善所有支持语言的情感分析。由于训练新「xin」模型是一项复杂『za』且昂贵的工作,因此团队首先研究了利用我们现有的「de」技术堆栈「zhan」来改善「shan」情『qing』感分析的快速方法。
改进『jin』1:句子级训练和分类『lei』我们进行『xing』的第一个改变,是「shi」训练贝叶斯模型的方式。现在,我们不是在「zai」整个文档的粒『li』度上「shang」进行训练「lian」和分『fen』类,而是在句子级别进行训练和『he』分类。以下是一些优点:
然后,我们决定通过堆叠分类器“挑选”有意义句子的情感,将句子级别的情感汇总为文档级别的情感,以产生整个文档「dang」的情感。
图3:在2018年第二季度(左)和2019年第二季度(右)中记录『lu』的情感「gan」属性覆写-所有语言「yan」。
这些简『jian』单的更「geng」改对减少客户每「mei」月做出的情感属性覆『fu』写次数产生了巨大影响。特别是,在16种受支持的语言中,新闻文档的情感属性覆写平均减少了58%。
该分析『xi』涉及7,193个客户产生的约『yue』4.5亿个新闻文档和4.2百万个『ge』覆『fu』写项。图3显示了2018第二季『ji』度(文『wen』档级预测)和2019第二季度(句子级预测+汇总)进行「xing」的覆「fu」写数『shu』量之「zhi」间的比较。
改进2:新「xin」的深度学习模型同时,Meltwater的NLP团队一直在努力改进我们的技术堆栈,以分析「xi」两种主要语言(即英语和中文)的情『qing』感,涵盖Meltwater处理的每日内容的约40%。
我们尝试了多『duo』种技术,例如卷积神经『jing』网络(CNN),递归神经网络(RNN)和长短内存网络(LSTM),目的是在「zai」准确性,速度『du』和成『cheng』本之间找到良『liang』好的折衷方案。
由于在准确性,速度和运行成本之间进行『xing』了很「hen」好的权衡『heng』,我们决定选择基于CNN的『de』解决方案。CNN主要用于计算机视觉,但事「shi」实证明,它们对NLP的表现也非常好。我们的解「jie」决方案使用「yong」TensorFlow,NumPy(具有MKL优化),GenSim和EKPhrasis在Python中「zhong」实现,以支持哈希「xi」/现「xian」金标签,表情符号和表情符号。
体系架构简化的架构如图4所示。它包括一个嵌入(输入「ru」)层,然后是单个卷积层,然后是最大池化层和softmax层[5]。
图4:简化的模型架构(来源『yuan』:Zhang,Y.和Wallace,B.(2015)。卷积神经网「wang」络用于句法分类的敏感性分析(和从业人员指南)
嵌入层我们的输入是『shi』要『yao』分类的文本。至于贝『bei』叶斯方法,我们需要根据其特征「zheng」来表示文本。我们将「jiang」文本嵌入「ru」为矩阵。
例如,文字“Ilikethismovieverymuch!”表示为具有7行的矩阵,每个单词一行。列数取决于我们要表示的功能。与贝叶斯案例不「bu」同,我们「men」不再自己设计功能。相反,我们现在使用经『jing』过预『yu』训练的第三方单词嵌入。
词嵌入可大规模捕获语义相似性。这些嵌入是可公开获「huo」得的,并由第三方机「ji」器学习专家培训的神经网络『luo』生成『cheng』。对于英语,我们使用斯坦福大学的GloVe嵌入对8400亿个单词进行了训练常见抓取并使用具有300个特征『zheng』的向量。我们也「ye」尝「chang」试过「guo」BERT和ElMo,但准「zhun」确性/成「cheng」本之间的『de』权衡仍然支持GloVe。
对于中文,我们使用腾讯AI的『de』嵌入,该嵌入针对200万个「ge」特征向量「liang」的800万个短语进行了训练。使用我们自己的训练数「shu」据集通过转『zhuan』移学习对向量进行微调。目的是『shi』确保嵌入内容考虑『lv』Meltwater的PR/营销要求。
卷积层CNN的核心是卷积「ji」层,在其中训练人工神经元「yuan」以从嵌入中提取显著特征。在我们的例子中,卷积层由英语的100个『ge』神「shen」经元和汉『han』语「yu」的50个神经元「yuan」组成。
优点『dian』再次『ci』是,我们不必尝试『shi』和『he』设计功能,网络将学「xue」习我们「men」需要的功能。缺『que』点是我们可能无法再知道这些功能是什么。点击这里以了解更多的卷积层的细节,点击这里了解更多黑『hei』盒问题的阐述。
最大池「chi」化(MaxPooling)池化的思想是在特征图中捕获最重要的局部特征,以减少维数,从而加快网络速度。
SoftMax层合并的向量被合并为单个向量,并传递到完全连接的SoftMax层,该层将对极性进行「xing」实际分类。
数据集对于英语,除了GloVe嵌入「ru」之外,我们还有23,000个内部标记的新闻句子和6万个社交「jiao」句『ju』子,包括SemEval-2017Task4提供的Twitter数据集。对『dui』于『yu』中文,除腾讯AI嵌入外,数据「ju」集还包含来自新闻,社「she」交和评论的「de」约38,000句子。
该数据集使用Amazon的SageMakerGroundTruth通过众包进行「xing」注释。在训练之前,使『shi』用二八原则对数『shu』据集进行分层和随机排序,即,我们『men』使用80%进行训练,使用20%进行验证。
结『jie』果与贝『bei』叶斯方法相比,这个简『jian』单『dan』架构已『yi』经使该模型在句子级『ji』别产生了明显更「geng」好的性能(表1)。英文社交文本「ben」的收益为7%,中『zhong』文(社交和新闻相结合)的收益为18%,英『ying』文新闻的收益为26%。
在文『wen』档级别进行汇「hui」总之『zhi』后,与贝叶斯方法相比,我们发「fa」现英语级别的文「wen」档级别情感属性『xing』覆写数量「liang」进一步减少了48.06%,中文「wen」级别的情感属性覆写为29.24%。
表1:CNN与朴『pu』素贝叶斯(英语「yu」和「he」汉语)的情感准确性「xing」。
情感分「fen」析『xi』的准『zhun』确性『xing』到底有多高?F〜1〜分数基本可『ke』以衡量模型得出的结果和『he』人『ren』工注释『shi』相比的准确性『xing』。研究告诉『su』我们,人工注「zhu」释者仅在「zai」80%的情况下同意结果。
换句话说『shuo』,即使假设100%准『zhun』确『que』的模『mo』型,在「zai」20%的情「qing」况下,人类仍然会不同『tong』意该模型[6]。实际上,这意味着我们『men』的CNN模『mo』型在对单个句子进行分类时的表现几乎与人工一样好。
连续的提高「gao」到目前为止,情感覆盖的结果『guo』从未被反馈到情感模型中。NLP团队现『xian』在已「yi」经设计了一个反馈循环,可以收集客户不同意CNN分类器的案例,以便我们可以随着时间的推『tui』移改进「jin」模型「xing」。
然后将覆盖的文档发送到Fairhair.aiStudio(图5),在此处注释者『zhe』在每个级别(即实体,句子,部分(即标题,入口,正『zheng』文)和文「wen」档)重新标『biao』记它们。
图『tu』5:Fairhair.aiStudio:Meltwater的注释工具
每个文档由不同的注「zhu」释者多次「ci」注释,并由高级注释者进行最终审核。最终客户有时会参与此过程。当我们的注释「shi」人员不精通『tong』特『te』定语言时,会将标签转移给第三方众包工具。
Meltwater是AmazonSageMakerGroundTruth的重度『du』用户(图6)。使用『yong』众包时,我们会增加「jia」所需『xu』注释器的数量,因「yin」为它们可能不如我『wo』们内部培训的注释器准「zhun」确。
图6:AWSSageMakerGT帮助Meltwater标「biao」记2690个『ge』中文『wen』文档5次
注释完成后,新『xin』的数据点将由我们『men』的研究科学家进行审查。审查过程包括确保这些覆盖不会故意偏向我们自己的模型,或跟从需要特定模型的特定客户偏见。
如果「guo」数据是正确的『de』,则将其添加到测试集中,即,我们不想通过将「jiang」其添加到训练集中来过「guo」度「du」拟合该数据点「dian」。我们『men』需要该模型能「neng」够从其他数据点「dian」归纳正确『que』答案。
我们将收集性质相「xiang」似的数据,并携带必要的知「zhi」识来正确分类覆盖的文档。例如,如果发现分类错误发生在「zai」讨论金融产品的文档中,那么我们将从Elasticsearch集群中收集金融类「lei」文档。
综上所「suo」述我「wo」们对所有语言改变了训练「lian」和应用贝叶斯情感「gan」模型的方式,这使新闻文档上的文档级情感属性覆写次数平均减少了58%。
现在,我『wo』们支持「chi」所「suo」有16种语言的句子级和实体级情感。对我们而言「yan」,实体可以是个有自己「ji」名称的「de」实体,例如“福「fu」特”,也可以是『shi』关键短语,例如“客户服务”。
我们针对英语和汉语部署了深度学习情「qing」感模型。他们的句子「zi」准确性在英语和「he」汉语中分别为83%和「he」76%。他们进一步将新闻文档的文「wen」档级别腹泻率降低了48.06%(英语)和29%(中文「wen」)。
新模型考虑了#标签,例如#love,表情符号和表情图示『shi』。
我们有一个反馈环来不断改善我们的情感模「mo」型『xing』。
[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协议
版权声明:本文来自互联网转载或网友投稿,转载请附上原文出处链接及本声明;
工作时间:
客服电话
电子邮件