点击下面卡片关注我呀,每天给你送来AI技术干货!

来源:追一科技

情感分析是比较复杂和高阶的AI应用,在AI和人的交互过程中,能够准确地把握人的情感状态,从而极大地提升AI产品体验,对质检、对话交互、风控、舆论监督等都有着重要意义。本次技术分享要点

1、情感分析基础知识与应用场景

2、情感分析落地应用中三个挑战,如何利用多模态信息提升效果、如何利用领域迁移技术减少标注量以及如何利用细粒度情感分析为用户提供更加实用的情感分析结果

3、追一科技情感分析解决方案

情感分析技术介绍

什么是情感分析

情感是人对客观事物所持的态度。最简单的情感可以分为积极(正向)、消极(负向)、中性,又称为情绪。除了中性外,更多样化的情感又可细分为:喜、怒、忧、悲、恐、惊等。这些情感不仅构成了人与人之间沟通交流的多样性,也包含了丰富的信息,帮助我们了解目标对象在特定场景下的状态以及对相关事务的态度。通过算法模型,结合具体场景和数据分析目标对象的情感状态,这就是情感分析

在人工智能(AI)产品和人的交互过程中,能够准确地把握人的情感状态可以极大地提升AI产品的体验。这在质检,对话交互,风控,舆论监督等方面都有着重要的意义。例如,在服务行业中,对客户的服务满意度分析可以帮助企业提高服务质量;而对于电商领域,分析用户对某商品及其竞品的喜好有助于商家找到提升产品竞争力的门道;在人机交互中掌握会话方的情感状态可以帮助机器人适时地采用恰当话术表达安抚和谅解,提升交互体验。在现实应用中有非常多的场景需要分析情感或者态度的信息,情感分析算法提供了提炼这些关键信息的途径。

从不同的角度可以把情感分析方法做不同的归纳。按照对情感的划分方式,可以分为:情感极性分析、情感类别分析和情感程度分析。按照对象粒度分,又有会话级情感分析、句子级情感分析,以及实体级情感分析等。具体分类因所处理的场景和问题而不同。

什么是多模态

我们平时接触到的信息可以来源于文字、声音、图像、味觉、触觉等。我们把每一个信息的来源域称为一个模态。

之所以划分出不同的模态,首先是因为不同场景下可以接触到的信息不同,其次是不同模态提供的信息往往不同,而最重要的是对不同模态的信息需要采用的处理和建模方式也不同。简单情况下,我们可以仅通过单一的模态就可以得到一个对情感态度的判断,例如一段评价文字,一通对话录音,一段评论视频等。自然地,我们也可以结合多个模态的数据并将其统一建模,这就是多模态方法

简单来讲,多模态方法的核心驱动就是:更多的信息来源可以帮助我们做出更优的决策。

多模态情感分析

对于情感分析来说,情感表达可以来源于文字、音频、图像,结合两种及以上模态建模情感分析,就是多模态情感分析方法。由于不同模态的信息在数据形式和处理方式上有很大差别,在统一模型中多增加一种模态信息虽然可以带来潜在的建模效果提升,但同时也增加了建模的复杂度和难度。例如,通过一句话的文字和对应的录音建模时,需要先将字符串和音频分别用两种截然不同的处理方式量化为模型可接受的表征。

多模态模型策略在情感分析任务中是十分必要的。首先,很多时候仅通过文本或者语音很难准确判断出情感状态。一个极端例子是反讽。反讽往往结合中性或者积极的文本内容和与内容不匹配的音频来完成消极(负向)的情感表达。而这仅靠单模态模型就很难判断出真实的情感意图。其次,单模态模型容易受噪声影响而导致效果问题,例如上游语音识别(ASR)出现的识别错误往往会对下游分类任务产生较大影响。因此,要想在实际应用中有一个稳定强大的模型,多模态的建模方法就是必行之道。

情感分析的方法

情感本身是一种复杂的信息体现,在情感建模中使用不同的模态信息有着不同的处理方法及对应的挑战,下面简单介绍一下目前通用的一些建模方法及它们所存在的问题。

单模态方法简介

单模态模型指的是通过单一信号进行情感分析的模型,例如仅基于文本内容或音频信号来进行情感分析。

文本模型

得益于丰富的文本数据来源,文本模型是最常用的情感分析处理方法,通常的任务是对一句话的文本进行情感分类。从原理上大致可以分基于情感词典的方法、以及基于深度学习的方法。基于感情词典的方法此方法是基于跟情感分类相关的关键词,结合目标场景预先建立一个情感关键词的词典,由关键词的情感汇总判断出句子的情感,是一种自下而上的方法。

实际应用中,基于情感词典的方法往往和规则结合使用,从而实现更准确的判断。但是维护情感词典和规则本身是一项耗时耗力的工作,对词典的调优也有着很大的困难。

而基于深度学习的方法则是当前较为流行的方法,它的好处在于它可以端到端地进行情感分析任务,而不需要像基于情感关键词典的方法那样建立词典并使用规则。随着深度学习技术在NLP应用中的不断发展,许多不同的深度学习模型都能用来进行情感分析,例如CNN/RNN模型等。同时随着大型预训练模型的兴起,预训练+迁移学习的方式也被用于情感分析。关于预训练模型,我们在系列文章的第一篇进行了详细的介绍,这里就不再展开。

音频模型

相对于离散的文本,音频信号输入为近似连续的数值,通常需要做预处理将音频文件转化为频谱。具体步骤大致为:分帧-加窗-STFT-转化梅尔频谱,得到一个






维度的特征,其中




跟时间长度有关,




为特征长度。音频输入由于其序列化的特点,通常也有基于CNN/RNN的方法,以及基于CRNN或CNN+Attention的方法。

多模态方法简介

单模态情感分析方法主要的不足在于没有利用完整的信息来进行情感分析。例如,如果仅仅基于文本来判断情感,则丢失掉了说话人语气与语调等与感情息息相关的信息。因此多模态方法的核心任务是最大化发挥模态融合的优势完成建模。例如通过构建“语音+文本”的双模态模型,以此得到一个效果优于同量级单模态模型的双模态模型,达到1 + 1 > 2的效果,这其中的关键在于如何将不同模态融合到一起。

模态融合可以按照其发生的不同阶段或者融合的具体方式进行大致的归类。模态融合发生的不同阶段可以直观地理解为,“模态融合”这一步发生在模型中的哪个位置,它通常可以划分为:

  • 提前融合(Early Fusion):将不同模态的输入在模型浅层完成融合,相当于将不同单模态的特征统一到同一个模型输入参数空间,融合后的特征再输入到单个模型中完成特征提取和预测。但是由于不同模态本身参数空间的差异性,在输入层统一多个不同参数空间的方法并不能达到预期效果,实际往往很少被使用。

  • 推迟融合(Late Fusion):推迟融合方法尝试通过模型来解决参数空间不统一的问题。首先对不同模态的输入数据分别用不同的网络结构进行建模和特征提取,最终在分类层前将不同模态提取到的特征进行融合,并依赖梯度反向传播将不同模态的特征统一到同一特征空间,最后在这个新的空间上做简单的分类预测。推迟融合由于其简单的实现方式和不错的效果往往应用较普遍。

  • 多阶段融合(Muilti-Stage Fusion):推迟融合虽然通过网络本身在分类层前将不同模态特征映射到同一参数空间 ,但仅仅是在高级特征层对不同的模态特征进行融合,也因此失去了在特征提取阶段不同特征之间的相互关联信息。多阶段融合为了解决以上问题,在多个阶段对特征进行融合操作。通常先通过简单的的网络结构将不同模态参数空间统一化,融合后的特征再继续经过后续深度特征提取网络进行进一步模态相关的深层特征提取并融合,不同模型结构分支提取到的特征在分类层之前做最终的融合后进行分类预测。多阶段融合既保留了使用不同模型结构处理不同模态分支的能力,又自然地达到了不同模态信息融合的目的,对提取到强大特征更有优势。这种方法的缺点是模型结构相对复杂,往往会设置多个损失函数,有时需要进行分阶段调优。

除了按照模态融合的阶段进行划分,多模态方法还可以根据模态融合的具体方法进行划分为:

  • 基于拼接的特征融合:这种方式假设不同模态特征已经被统一在了同一参数空间上,并简单地将不同模态的特征进行拼接来完成融合过程。该方法虽然简单,但它并没有考虑特征之间的相互作用增益,依赖下游分类网络来融合模态信息。

  • 基于注意力的特征融合:这种方法将不同模态的特征通过注意力模块进行打分后融合,以达到充分利用模态间信息增益的目的。

情感分析实际应用挑战

我们在前面简单介绍了单/多模态情感分析中最常用的基本方法,而情感分析技术在落地使用中,也面临着一些实际的挑战。

  • 首先面临的是训练速度、推理速度、模型大小等与模型性能相关的问题。前面的介绍中指出,采用多模态方法理论上可以更好地进行情感分析。但在实际落地使用中,如果采用多模态模型,则代表着模型需要对多个模态进行建模,因此模型的体量通常都比单模态模型要大,而性能也随之变差。

  • 其次是标注数据需求量的问题,这是深度学习方法普遍存在的问题。而情感分析也与多数的基于深度学习的NLP技术一样,存在着跨领域的数据标注问题。具体来说,在某一特定场景(如保险客服)下训练的模型往往不能直接用在其它场景(如运营商客服)。这是由于情感表达本身依赖于场景,在一个场景下的表达可能在另外一个场景下蕴含着不同的情感态度。同时,不同场景对情感态度判读的界定也会有差别。除此以外,如果采用的是多模态方法,还需要对不同模态的数据都进行标注,并且需要在标注过程中综合考虑各模态表达的信息。这类数据获取的难度和标注成本也对多模态情感模型的实际应用有着影响。

  • 最后是情感分析应用场景的问题。在一些场景中,用户需要的不仅仅是“正向”、“负向”这种简单的感情标签,更希望知道感情投射的对象。例如针对句子“虽然服务态度还不错,但我的问题还是没有解决”,对客户来说更加有价值的是给出不同对象的情感分析结果,例如“服务态度-正向;问题没解决-负向”。

追一科技情感分析解决方案

我们将在这一部分介绍追一科技在解决上述问题的方法。

轻量级双模态情感分析模型

为了解决模型的性能问题,我们在2020年提出了新的轻量级双模态模型,该模型在IEMOCAP情感分类数据集上取得了【音频+文本】双模态模型的当前最优效果(SOTA),同时发表论文Efficient Speech Emotion Recognition Using Multi-Scale CNN and Attention, icassp 2021,并被世界人工智能语音领域顶会ICASSP(2021)录用,这标志着追一科技多模态情感分析算法能力处于业内领先水平。

具体来说,我们提出基于多尺度卷积和统计池化相结合的方法来进行不同模态的特征抽取以及模态融合。

相对于其它双模态情感模型,我们提出的模型没有使用性能较低的RNN网络及深层卷积网络,也没有利用大型的预训练模型,而是用了简单的单层多尺度卷积提取局部多样性浅层特征,借助平均、最大、标准差池化得到综合的全局统计特征,最终结合特征拼接和Attention机制融合语音和文本特征并作分类。此外,我们还引入了音频说话人识别中常用的xvector特征做为辅助全局音频特征。模型不仅在效果上赶超已有的最优模型,同时由于浅层CNN结构及高度并行化的模型设计,训练/推理速度也更优。

在模态融合层面,为了保证模型的轻量性同时获得好的模型效果,我们用了基于Attention的Late-Fusion方法,并结合图像领域中常用的多尺度特征:

具体来说,音频信号(MFCC)与文本信号(Word Embedding)分别经过各自的多尺度卷积(MSCNN)与统计池化(SPU)后,再利用Attention机制进行融合,最后辅以xvector进行感情类别的预测。值得指出的是,该方法相比与基于BERT等大型预训练的方法在预测准确率上,有相当大的性能优势。在我们的实际应用场景测试中,该方法比基于BERT的方法分别快5倍(CPU)/2倍(GPU)。

无监督域适应(Unsupervised Domain Adaption)

第二个需要解决的是标注数据量的问题。前文已经分析过,现有模型存在跨域困难的问题,同时由于标注成本高,在实际应用落地中难度较大。我们尝试找到了一个将已训练模型通过无监督域适应方法迁移到新领域上的方法,使得在新的业务领域上,已有的其它领域模型也能获得不错的初始表现。

域适应的核心思想是:在特征空间上某一度量准则下, 如果能够使得源域与目标域特征分布尽可能接近,那么源域上已经训练好的预测模块可更好地直接用于目标域,从而达到模型跨域迁移的目的。

更进一步地,这个过程我们希望尽量地节约成本,最好是在不需要对新的目标领域数据进行标注的前提下完成。为了完成以上域适应和无监督的目的,我们需要解决以下两个问题:

  1. 如何度量源域和目标域特征的相似程度

  2. 如何无监督地优化并构建目标域上的模型

针对第一个问题,简单的解决方案是人为设定好度量的metric,例如我们可以用consine距离,L1、L2距离等。但这些毕竟是人为规定的,我们也无法确定哪一种度量最合适。换一种思路,利用神经网络的学习能力,完全可以构建一个网络并让它去学习一个最合适的度量,而我们只需要站在高处对这个度量效果做出简单的指点。这即是基于对抗学习的对抗迁移思想。而站在高处的指点,完全可以依据判段特征是来自源域还是目标域来实现。数学上相当于是实现了用Jensen-Shannon散度(用交叉熵损失)或者Wasserstein距离(用Wasserstein距离损失,又叫推土机距离)做为度量metric。

第二个问题,目标域上的模型构建和优化需要分阶段进行,但是仍然统一在一个模型框架下,简要的步骤为:

1.有监督训练: 源数据 → 源模型 [Gs+ Fs]
2.对抗训练(无监督):a)复制特征提取网络, 构建判别器 [Gs → Gt, D]b)循环至稳定:i.训练m轮Dii.训练n轮Gs
3.得到目标模型: [Gt + Fs]

为了测试这种无监督域适应的模型迁移效果,我们在多个领域数据上做了测试:

可以看到,在有标注数据的服务商领域上,我们的双模态情感模型二分类效果可达94%的准确率。在三个其它场景中,不做无监督迁移的模型测试结果非常糟糕(迁移前),基本上接近于盲猜。而做了无监督迁移的模型(迁移后)效果较之前有了大幅度提升,这种提升完全是建立在不需标注数据的条件下实现的,在实际应用中有重要意义。

细粒度情感分析

单纯的分类模型只能够给出情感的判断结果而不能给出情感的指向目标,例如:“这个电饭煲非常好用“,得到结果为积极(正向)。而细粒度情感分析则可以在更加精细的维度上给出情感分析的结果,如下图所示:

从上面的例子可以看出,同一句话,在更细的粒度上的情感倾向是可能存在不同的,因此有时候直接给出一句话的整体情感分析结果并不能满足实际使用的需要。为了使模型能够输出细粒度的情感分析结果,我们将此问题看作是一个序列标注问题,这也是细粒度情感分析任务的通常做法。

通常来说,在大型预训练模型的输出上额外增加序列标注的输出模块即可以完成序列标注任务。序列标注的输出模块形式较为灵活,例如采用线性层、RNN、Self Attention或者是CRF等,在这里不再对这些常规的方法做一一介绍。

值得一提的是,这个任务可以用我们提出的Global Pointer方法来解决,因此这里主要介绍如何用Global Pointer来进行序列标注。首先,序列标注的任务是需要识别出文本中的片段位置,并给出该片段的标签。因此对于输入长度为




的文本,首尾组合一共有













个候选的可能组合。如果该序列中有




个需要定位的实体,那么该问题则变成了从













个类别中选取




个目标类的多标签分类问题,可以按照常规的多标签分类方式来解决。而Global Pointer则正是采用了这一简单直观的思路来解决序列标注的问题,这种方式的优势在于在预测过程中,所有实体是一次给出的,并且可以识别出嵌套实体的情况,非常简便快捷。而如果目标实体有




种标签,那么只需要进行




次分类,即每种实体标签用一个多标签分类来建模。

依照上面的思路,对于长度为




的序列,通过编码器得到每个位置上的表征





















,令














代表序列中第




个位置到第




个位置的片段的实体类型为




的分数,则:




































其中



































































。我们采用自研的多标签分类损失作为最后的优化目标:

其中









是该样本的所有类型为




的实体的首尾集合,









是该样本的所有非实体或者类型非




的实体的首尾集合,注意我们只需要考虑






的组合,即

另外需要指出的是,在进行分数计算的时候,由于需要考虑到q与k的位置关系,因此我们在这一步中加入了自研的旋转位置编码。旋转位置编码的加入可以大大提升Global Pointer的最终效果。

我们在不同的领域对细粒度情感分析方法进行了测试,效果如下:

上图为生活服务领域的效果。可以看出细粒度情感分析可以明确给出客户反馈中,针对不同对象的感情效果,下面的图是电商领域的效果。

追一科技的情感分析解决方案无论是模型还是落地方案上都在业内处于领先水平,包括解决基于音频和文本双模态场景下的服务质检问题,冷启动数据量不足的问题,以及需要获得细粒度情感信息的场景。同时我们也正在积极地探索其它场景,例如数字人场景中的人机交互多模态情感判读,多轮对话中上下文相关的情感分析等。在场景结合算法的丰富组合下,更多的情感分析解决方案将被用来更好地解决更多样的实际问题,对此,我们将始终努力走在技术和应用的前沿。

说个正事哈

由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方深度学习自然语言处理”,进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

点击上面卡片,关注我呀,每天推送AI技术干货~

整理不易,还望给个在看!

让AI捕捉“七情”,多模态情感分析的应用和挑战相关推荐

  1. 每周论文清单:高质量文本生成,多模态情感分析,还有一大波GAN | PaperDaily #26

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  2. 【NLP】文献翻译5——用自我监督的多任务学习学习特定模式的表征,用于多模态情感分析

    Learning Modality-Specific Representations with Self-Supervised Multi-Task Learning for Multimodal S ...

  3. (五十二):多模态情感分析研究综述_张亚洲

    (五十二):多模态情感分析研究综述_张亚洲 Abstract 1 叙述式多模态情感分析 1. 1 静态多模态情感分析(文本与图像划分为静态文档) 1. 1. 1 基于机器学习的方法 1. 1. 2 基 ...

  4. 多模态情感分析的研究现状

    多模态情感分析的研究正在取得越来越大的进展,研究者们正在尝试开发新的技术来提升情感分析的准确性和可靠性.最近,研究者们已经开发出了许多多模态情感分析技术,如视觉情感分析.语音情感分析.文本情感分析等, ...

  5. 最新最全论文合集——多模态情感分析

    AMiner平台(https://www.aminer.cn)由清华大学计算机系研发,拥有我国完全自主知识产权.平台包含了超过2.3亿学术论文/专利和1.36亿学者的科技图谱,提供学者评价.专家发现. ...

  6. 多模态情感分析论文解读——CTFN模型

    论文:CTFN: Hierarchical Learning for Multimodal Sentiment Analysis Using Coupled-Translation Fusion Ne ...

  7. 多模态情感分析研究综述 论文笔记

    这里写目录标题 论文标题 引言 论文学术结构 1.总体介绍 2.介绍叙述式多模态情感分析 3.介绍交互式多模态情感分析 4.多模态情感分析存在的交互建模科学问题 5.结束语 阅读论文初体验 思维导图 ...

  8. 读文章笔记(八):多模态情感分析数据集整理

    读文章笔记(八):多模态情感分析数据集(Multimodal Dataset)整理 双模态(一般是文本.图像和语音的两两组合) 三模态(一般是文本.图像加语音) 作者:骑着白马的王子 地址:https ...

  9. 读文章笔记(七):赛尔笔记 | 多模态情感分析简述

    读文章笔记(七):多模态情感分析简述 相关任务概览 数据集和方法 面向图文的情感分类任务 面向图文的方面级情感分类任务 赛尔笔记 | 多模态情感分析简述 https://zhuanlan.zhihu. ...

  10. 【论文速递】EMNLP2022-随机模态缺失情况下的多模态情感分析

    [论文速递]EMNLP2022-随机模态缺失情况下的多模态情感分析 [论文速递] EMNLP2022-EMMR:Mitigating Inconsistencies in Multimodal Sen ...

最新文章

  1. windows通过putty连接虚拟机Fedora
  2. Elasticearch 查询详解 (二)
  3. ExtJs组件之间的相互访问,访问机制
  4. lcd残影原理_为什么同样是高刷,OLED 可以比 LCD 优秀?
  5. 失配树(border树)
  6. centos6.5装mysql好难_centos 6.5装mysql5.7
  7. c语言学习-判断101-200之间有多少个素数,并输出所有素数及素数的个数
  8. matlab中solver函数_Matlab中微分方程的模型
  9. 联想平板刷android,联想平板电脑刷机全教程【图文】
  10. [NOIP2016 普及组] 魔法阵
  11. 互联网2018校招时间_供参考
  12. Wordpress Theme 主题森林商城有些什么?
  13. 多维度对抗 Windows AppLocker
  14. 基于PHP+MySQL的图书馆图书借阅系统
  15. 微信小程序-预研总结(PPT分享)
  16. java easyui tree例子_easyui-treegrid的案例
  17. java jmf 教程_JMF入门(Java Media Framework)
  18. Python ln_LN型芯型联轴器
  19. Visual Studio(VS)2013使用教程
  20. Amazon SPAPI PII权限申请问题汇总

热门文章

  1. hadoop 3.x 配置历史服务器
  2. Android—Socket服务端与客户端用字符串的方式互相传递图片
  3. 前端后台学习笔记汇杂
  4. 使用框架开发的优势和劣势
  5. java day37【web相关概念回顾 、web服务器软件:Tomcat 、Servlet入门学习】
  6. Java语法基础学习DayNineteen(反射机制)
  7. MySQL多线程备份工具mydumper
  8. HDU3709 Balanced Number
  9. CentOS 7/RHEL 7忘记root密码最简单的修改方法
  10. leetcode container-with-most-water(medium) /java