精华内容
下载资源
问答
  • 前一段时间在研究实体识别的任务,因为标签的设计觉得细粒度文本分类应该会对任务的效果有所提升,于是搜集了一些细粒度文本分类的论文,本文将是对这些论文的总结和思考。本文将简单介绍论文中模型的结构和设计思路...

    导读

    前一段时间在研究实体识别的任务,因为标签的设计觉得细粒度文本分类应该会对任务的效果有所提升,于是搜集了一些细粒度文本分类的论文,本文将是对这些论文的总结和思考。本文将简单介绍论文中模型的结构和设计思路,具体的一些细节在之前的文章中我们有详细介绍,如果有兴趣大家可以点击相关链接。

    背景

    实体分类是对一篇文章中的实体进行分类的任务,例如"《秘密森林》由韩国演员曹承佑和裴斗娜主演"中曹承佑作为实体的标签就是"演员"。实体分类通常会在关系抽取,机器翻译,知识问答等任务中起到关键作用。目前比较常见的有关NER的任务针对的标签基本都小于20个,标签之间基本是比较互斥的,例如person,organization,place等。但是对于关系抽取等任务来说,细粒度的实体标签有助于效果的提升,因为细粒度的标签可以过滤掉不符合关系限制的实体。

    在细粒度实体识别中,由于标签结构的划分,同一个实体可能具有不同的角色,例如下面两句,第一句中曹承佑对于普通观众来说就是一名影视演员,但是第二句中因为提到了他在音乐剧界的地位,这里的曹欧巴很明显就是音乐剧演员。

    • 曹承佑这几年演技一直在线,可惜颜值不复当年

    • 曹承佑是韩国音乐剧排名第一的代表人物

    因为同一个实体在不同的语境中可能会具有不同的角色,细粒度实体分类的困难也是很明显的,一是在训练样本中噪音比较多,因为通过规则标注的样本很难准确判定出同一个实体在不同的语境中的角色,二是如果为了保证样本的准确率使用人工标注,那么成本将会非常高。

    为了解决这些问题,常见的FETC任务通常会将借鉴自动标注算法WSABIE并将关注的实体和上下文以及标签映射到同一个低维空间,然后设计不同的神经网络进行计算,在选择标签的时候常见的方法有使用softmax+阈值的方法,如果为了考虑标签类型的一致性,部分论文会采用自顶向下的搜索模式。下面我们来介绍FETC任务中比较经典的几篇论文。

    相关论文推荐

    1. WSABIE

    • 论文链接:https://www.mendeley.com/catalogue/a72eb3e5-0342-3d59-9c4c-49814de48695/

    这个算法是一个通用的打标签算法,对于WSABIE算法来说打标签的过程就是计算标签和当前对象的相似性的过程,因此WSABIE会将标签和当前对象映射到一个公用的低维空间当前对象的标签就是和他相似度比较高的那一个或者一堆标签。

    2. Embedding Methods for Fine Grained Entity Type Classification

    这篇论文发布于2015年ACL,论文的灵感来自于WSABIE算法,为了平衡细粒度标签之间的关系,将输入的文本信息和标签信息全都映射到一个低维空间。 映射方法如下图所示,我们对输入的文本信息和标签进行线性转换,将其映射到同一个低维空间。这样,标签之间的关系可以通过他们在低维空间的距离进行衡量,标签越不相关,那么他们的距离越远。对于本文任务的标签具有层级结构,一个实体有可能具有多个标签,因此如果只是单纯的选top1那么会伤害模型预测的正确性。因此本文选择top k作为正确的标签,k是标签的深度。所在预测过程中我们会设置一个阈值当s(x,y)大于这个阈值则认为标签是正确的。同时最后输出的时候我们会将和其他标签不是同一个类别的标签丢掉认为这是不合理的预测,例如person,artist和location,我们会认为location是不合理的预测。

    3. Fine-Grained Entity Type Classification by Jointly Learning Representations and Label Embeddings

    本文发布于2017年ACL。相比于上一篇我们的介绍的论文,本文采用了深度学习的方法,模型结构如下,文中采用三个Encoder分别对实体的左边的Context和右边的Context和实体进行编码,然后借鉴了WSABIE的思想,将三个Encoder的输出和标签映射到同一个空间计算相似度。loss采用Hinge Loss。在预测实体的概率时文中采用递归的方式,自顶向下进行预测。从跟节点出发,先选择概率最大的一级分类,然后选择概率最大的二级分类以此类推。例如"曹承佑一袭黑色的西装出席了音乐大赏活动"我们现在一级标签中选择概率最高的person然后在选择二级标签中概率最高的actor。

    4. Fine-grained Entity Typing through Increased Discourse Context and Adaptive Classification Thresholds

    本文发布于2018年ACL。本文的模型结构如下所示,思路和上文类似,都是对文本的上下文进行Encoder然后对Encoder的输出进行分类。不同于上文的是本文加入了文章级别的Encoder和句子级别的Encoder,更加详细的考虑了实体的上下文信息。但是唯一遗憾的是在分类的处理上只采用了logistic regression和阈值,并没有考虑到标签的层次结构和噪音的问题。

    5. HFT-CNN: Learning Hierarchical Category Structure for Multi-label Short Text Categorization

    本文发布于2018年ACL,这篇文章使用了NLP中非常流行预训练+Finetune的思想,文中分类的模型结构采用比较经典的Text-CNN结构,输入是短文本sentence,sentence由词向量拼接而成,文中使用的是fasttext,接着使用卷积核为w的卷积层提取sentence的特征,然后添加max-pooling层,将这些池化层的的结果拼接然后经过全连接层和dropout得到上层标签[A,B,...]的概率,loss采用交叉熵。对于下层标签的预测文中的思路是在上层标签的预测中模型已经学到了通用的特征,但是深层layer应该去学习原始数据集中比较详细的信息 因此文中对embedding和卷积层参数保持不变,在这个基础上进行微调学习,这一步标签也由[A,B]变为[A1,A2,B1,B2]

    6. Neural Fine-Grained Entity Type Classification with Hierarchy-Aware Loss

    这篇论文发布与2018年NAACL,文中模型的输入被分成了三部分,文中的实体的左右部分的上下文分别采用LSTM Encoder,对LSTM的输出加了一层激活层,softmax层然后再做一次线性转换。实体部分实体的Embedding和句子Embedding相同可以使用Average Encoder即对词向量加权求平均。但是这种方法所包含的信息量较少,为了获取上下文对实体指称的影响,文中截取了一个时间窗口前后的文本段,使用语言模型对实体进行编码。这里的语言模型采用LSTM Encoder。对于3个Encoder的输出文中将其进行拼接然后接入softmax层进行分类。由于任务中标签具有层级结构,文中针对这一特性基于交叉熵设计了Hierarchy-Aware Loss,这也是文章的特色,有兴趣可以点击论文介绍,看我们的详细介绍哟。

    7. Put It Back: Entity Typing with Language Model Enhancement

    本文发布于2018年ACL,文章借鉴了WSABIE模型的思想,认为标签中也具有文本的信息,标签和上下文的信息也应该具有一致性。例如:曹承佑这几年演技一直在线,可惜颜值不复当年,这句话曹承佑的标签是电影演员,如果我们用电影演员替换曹承佑得到:电影演员这几年演技一直在线,可惜颜值不复当年,但是如果我们使用错误的标签替换曹承佑那么这句话的含义就不如正确的标签通顺,例如:运动员这几年演技一直在线,可惜颜值不复当年。

    基于这样的假设文中提出如下的模型。Entity typing模型对模型及上下文进行编码,具体的细节可以参考我们上方的链接,对于预测的标签y进行映射,将其映射到和实体同样的空间,然后将该向量替换实体的向量,带入原来的上下文,输入LSTM Encoder进行预测。

    结语和思考

    以上就是我最近关于FETC任务相关论文的阅读和思考,细粒度文本分类这个任务并不常见,目前论文也基本集中于前Bert时代,思路大都是使用Language Model对实体和实体的上下文编码,对输出结果一般有两种方法:一种是经过softmax或者其他方式设置一个阈值进行分类,另一种是将结果和标签映射到同一个空间,计算相似度。

    针对FETC任务中标签具有层级结构继承性的特点,文中对LOSS的设计和分类的确定都做了相应的调整,大概的思路就是:自顶向下,在确定了一级标签之后再逐次确定二级标签,同时保证路径一致性,如果确定了子标签A那么从根节点到该节点A的路径上的分类都要在loss和分类中有所体现。

    不过在Bert横空出世之后,大家对于这个任务的关注似乎少了很多,查了一些资料只看到一些水论文,这里就不再继续介绍啦~有兴趣大家可以搜索一下。以上就是我对FETC任务的研究和理解啦~希望有兴趣的同学来找我讨论哟~

    本文同步发布于公众号阿黎投喂社:一只沉迷吃喝渴望变强的代码仔,关注阿黎看阿黎是怎么变强(秃)的吧~

    展开全文
  • 实体分类是指给一个实体一个指定的标签,这在关系抽取,知识问答等任务中非常重要。一般实体分类的标签都小于20个,但是当标签之间具有层级结构,同一个实体在不同的上下文中便可能具有不同的角色。例如: ...

    知乎主页lynne阿黎请大家不吝关注

    背景

    实体分类是指给一个实体一个指定的标签,这在关系抽取,知识问答等任务中非常重要。一般实体分类的标签都小于20个,但是当标签之间具有层级结构,同一个实体在不同的上下文中便可能具有不同的角色。例如:

    • Madonna starred as Breathless Mahoney in the film Dick Tracy

    • Madonna signed with Sire Records in 1982 and released her eponymous debut album the next year.

    这两句话中,第一句的Madonna因为主演了电影,她的分类应该是actress,而下一句Maddona推出了新专辑,这里她的分类应该是musician。

    对于细粒度实体分类来说,一个最大的困难是标注文本的收集,因为在标注的时候不考虑上下文的话可能会如上文的例子一样,会引入很多噪音。实际上一个优秀的细粒度实体分类模型应该是可以处理这些噪音并且在训练过程中发现label之间的关系的。

    针对这些问题,本文使用ranking loss来解决这些问题,下面我们来看看文中是怎么解决的吧

    模型

    1. 学习目标

    文中为了平衡细粒度标签之间的关系,将输入的文本信息和标签信息全都映射到一个低维空间R^H中,其中H表示embedding的维度。映射方法如下图所示,我们对输入的文本信息和标签进行线性转换,将其映射到同一个低维空间。这样,标签之间的关系可以通过他们在低维空间的距离进行衡量,标签越不相关,那么他们的距离越远。

    对于一个实体和标签的距离如何衡量呢?既然我们已经有了他们在低维空间的向量,那么我们完全可以使用向量的点积来衡量他们的距离即:

    s(x,y;A,B)=f(x,A)·g(y_t,B)=Ax·By_t

    其中x是指文本的向量,y是指标签的向量,AB分别是将其映射到低维空间的矩阵,f,g是他们的线性变换的函数。模型中待学习的参数是线性变换的矩阵A,B和输入的word embedding。

    2. 损失函数

    文中使用Weighted approximate pairwise(WARP),对于一个实体和他的标签{x,y}WARP loss如下:

    \sum_{t\subseteq y}\sum_{t\subseteq \bar{y}}R(rank(x,y_t))max(1-s(x,y_t)+s(x,y_{\bar{t}}),0)

    其中y是x的真实标签集合, \bar{y}是标签的补集。 rank(x,y_t)=\sum_{\bar{t}\subseteq \bar{y}}I(1+s(x,y_\bar{t})>s(x,y_t))

    rank(x,y_t)=\sum_{\bar{t}\subseteq \bar{y}}I(1+s(x,y_\bar{t})>s(x,y_t))R是将rank转化为权重的函数。文中使用SGD(stochastic gradient descent)对损失函数进行优化。

    3. 模型预测

    对于本文任务的标签具有层级结构,一个实体有可能具有多个标签,因此如果只是单纯的选top1那么会伤害模型预测的正确性。因此本文选择top k作为正确的标签,k是标签的深度。所在预测过程中我们会设置一个阈值当s(x,y)大于这个阈值则认为标签是正确的。同时最后输出的时候我们会将和其他标签不是同一个类别的标签丢掉认为这是不合理的预测,例如person,artist和location,我们会认为location是不合理的预测。

    但是这里又会面对另外一个问题,如果每个类型的标签数量都一致应该怎么选择呢,例如person和location,这点是文中是没有提到的。

    4. Kernel Function

    WSABIE模型的打分机制是s(x, y_t) = Ax·By_t = \sum_{d}(A_d·x_d)^TB_t这个计算的是和实体和标签的距离。其中A_d和B_tB_t分别表示线性变换矩阵的列向量。

    本文采用Kernel functions(x, y_t) = K_{d,t}Ax·By_t = \sum_{d}K_{d,t}(A_d·x_d)^TB_t

    Kernel函数采用K近邻算法,选择B的200个最邻近的邻居其他均为0。采取这种计算方式的原因一是因为相比于其他的文本分类任务,本文中的任务分类相较于其他标签更为详细,因此所需要的数据量也更大,第二个原因是因为一个文本可能具有多个标签,这样可以避免噪声的影响。

    实验结果

    本文采用数据集GFT(Google Fine Types)和FIGER(Ling and Weld),两个数据集的标签分类如下所示,GFT的标签有4大类,PERSON,LOCATION,ORGANIZATION和OTHER。每个大类中又有其他小类,深度为7。FIGER有8个大类,标签深度为2。

    在GFT数据集上的效果如下:

    在FIGER的数据集上效果如下:

    可以看到在两个数据集上K-WASIE的效果都达到了最优。

    1. 标签粒度划分

    看到这里是我感到最惊喜的,作者思考了一个问题,当我们划分实体的时候只用一级标签划分,这样效果是否会优于细粒度的标签。于是作者做了实验,只是用一级标签对文本进行分类,实验结果如下。我们发现粗粒度的文本分类的效果并不如细粒度,这个我在做NER的时候也遇到同样的问题,对于同一个大类别的细类别模型很难准确区分,所以会出现将实体边界切错的现象。这个我们分析,认为原因应该是我们的标签粒度太细,导致模型对于近似的标签很难区分。这也是为什么我最近一直在看细粒度文本分类的论文,后来我们尝试了lynne阿黎:HFT-CNN:层级多标签分类,让你的模型多学习几次,这篇文章的方法,有兴趣的同学也可以私信我一起探讨。

    相关链接

    1. Embedding Methods for Fine Grained Entity Type Classification
    展开全文
  • 因此,我们提出联合文本信息和视觉信息作用于图片分类中,充分利用图片上的特征,将文本检测与识别算法和通用的图片分类方法结合,应用于细粒度图片分类中,在Con-text数据集上的实验结果表明我们提出的算法得到的...
  • 行业分类-物理装置-一种基于深度多任务学习的细粒度文本观点分析方法.zip
  • 摘要:本篇文章主要介绍了情感分析的一些基本任务,包括文本、语音、图像还有生成、识别,着重讲述华为云在细粒度情感分析方面两个工作。 导读:先简单介绍一下文本情感分析的一些基本概念,然后介绍一下华为云在...

    摘要:本篇文章主要介绍了情感分析的一些基本任务,包括文本、语音、图像还有生成、识别,着重讲述华为云在细粒度情感分析方面两个工作。

    导读:先简单介绍一下文本情感分析的一些基本概念,然后介绍一下华为云在细粒度情感分析方面两个工作,一个是属性级的细粒度情感分析,还有一个是观点四元组的挖掘,最后再做一个总结和未来的展望。

    今天主要介绍以下几点:

    Ø 文本情感分析介绍

    Ø 属性级情感分析

    Ø 观点四元组分析

    Ø 总结

    情感分析介绍

    首先介绍一下文本情感分析的一个基本概念。情感分析,它主要是识别媒介中目标对象的一个情感,这里面可能有两个概念比较容易混淆,一个是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。

    点击关注,第一时间了解华为云新鲜技术~

    展开全文
  • 基于场景文本细粒度图像分类与检索的多模态推理图 基于我们的WACV 2021接受的论文: ://arxiv.org/abs/2009.09809 安装 创建Conda环境 $ conda env create -f environment.yml 激活环境 $ conda activate ...
  • 以NLPCC2013任务二微博数据集为研究对象,探究微博短文本在不同神经网络结构中的情感细粒度分类结果并加入词向量进行优化,最后分析与总结了神经网络微博短文本细粒度情感分析的影响因素及发展方向.
  • 点击上方,选择星标,每天给你送干货!分享嘉宾:李明磊博士 华为云NLP算法专家编辑整理:付一韬出品平台:DataFunTalk导读:随着移动互联网的普及,网络上每天产生大量的文本数据,蕴...

    点击上方,选择星标,每天给你送干货!


    分享嘉宾:李明磊博士 华为云 NLP算法专家

    编辑整理:付一韬

    出品平台:DataFunTalk

    导读:随着移动互联网的普及,网络上每天产生大量的文本数据,蕴含着巨大的有价值信息。情感分析作为自然语言处理中的一个重要研究方向。在实践中有着广泛的应用,如商品评论分析、政治、金融、旅游等领域中的商品推荐、产品辅助决策、公司政府的舆情监测、服务评价等等。本文主要介绍情感分析的概念、应用、任务和方法,进一步会介绍华为云在细粒度情感分析方面的实践,包括属性级情感分析和观点四元组分析。

    主要内容包括:

    • 文本情感分析介绍

    • 属性级情感分析

    • 观点四元组分析

    • 总结

    01

    情感分析介绍

    首先介绍下文本情感分析的基本概念。情感分析,主要是识别媒介中目标对象的情感,这里面可能有两个概念比较容易混淆,一个是sentiment analysis,另一个是emotion analysis。一般我们说的情感分析都是sentiment,主要指的正面和负面的分析,然后emotion会更详细一些,它不仅包含正负面,还包含比如说生气、开心、高兴这些,会更加细粒度一些。

    我们主要分析sentiment,从分析对象来看会包含文本、图像、语音,EEG(脑电波)、多模态分析情感。从任务方面来看,不仅是有情感的识别,还有情感生成的一些任务,像现在有情感对话的生成,还有虚拟人情感生成。在本报告中,主要侧重文本方面的情感识别。

    1. 文本情感分析

    上面文本情感分析五要素定义是采用刘冰老师的定义,这个定义分为了实体 ( entity )、实体的某一个方面 ( aspect )、针对这个实体的情感正负面 ( opinion=sentiment,即情感正负面也称作观点正负面 )、观点持有者 ( hold ) 和持有观点的时间 ( time ) 这五要素,一般来说hold和time文本很少提及。

    另一个概念一般会把entity和aspect合并在一起成为一个target,是针对我们目标对象的情感或者观点。例如:“我觉得华为手机的拍照非常牛逼”这里面对应的实体是“华为手机”,对应的aspect是“拍照”,对应的情感是“非常牛逼”为正面,对应的观点持有者是“我”,而时间没有提及所以为空。

    当前的文本情感分析就是根据输入文本,然后识别其中这五要素里的几个要素,现在还没有相关工作可以同时识别出五个要素。一般的话现在最简单的情感分析是只识别出这个文本的观点/情感,既不包含实体也不包含aspect并且也不包含观点持有者,再进一步的工作就是识别出针对哪一个aspect(实体)的观点(情感)。

    这里简单介绍一些细粒度情感分析和我们说的一般情感分析的区别。一般的情感分析都是直接识别整个文本的正负面,然而细粒度情感分析会更细一些,这里面有两个概念,一个是从情感的粒度上会更细,比如从sentiment到emotion的情感粒度升级,之前我们只分析正负面,现在除了正负面还有情绪,如高兴、伤心等,从情感这个维度讲这是一种细粒度情感分析。还有一个是从分析对象的角度来讲,之前的情感分析是直接识别整个句子或整篇文章的情感,它不区分情感对象是谁,再细粒度一些的话就需要识别出整个句子里面情感针对的对象是谁,它是句子里的某个实体或者是某个实体的某个属性,从这个角度这也是细粒度情感分析的一种,我们今天主要侧重第二个针对对象角度的情感分析。

    2. 情感分析任务

    下面介绍一下情感分析的各个任务,这里面分析是情感的识别,不包含生成,还有前面提到的语音图片也不涉及。

    针对文本的情感分析会分成几个等级:

    • 词级别的情感分析:这个类似于情感词典的构建,怎么去构建一个大规模的情感词典,比如“车祸”这个词对应的情感就是负面的,“生日”这个词对应的情感就是正面的。

    • 句子/文档级的情感分析:我们现在用比较多的,各大云服务厂商都会有的一个服务,针对句子或者文档的情感分析,输入一句话返回相应的情感正负面,但它不区分正负面针对哪一个句子里面哪个实体或者哪个对象。

    • 目标级的情感分析:这是我们今天侧重的目标级的细粒度情感分析,这里面的目标就是上边说的target,它可以是一个实体也可以是一个属性,还可以是实体+属性的组合形式。

    对于目标级的情感分析分为三种:

    • 针对属性的情感分析 ( TG-ABSA ):这里面对象是固定然后只分析里面某几个属性的正负面,这就会涉及到两个任务,一个是对象的属性识别,另一个是该属性的情感识别。例如图中的例子“外观XXX”,这里的对象是固定说的是手机,我们只需要识别出其中的属性外观、内存和性能,然后分别识别出各个属性的情感正负面。针对属性识别也分成两个任务,一是属性词的抽取,就是我们要定位出属性描述词在文中的位置,另一个是该属性描述词对应的属性类别,因为针对某个属性的描述可能是“外观”也可能是“看起来很好看”,它这个描述不一定包含显性的属性描述词。针对情感识别会分为观点词抽取和观点分类。

    • 针对实体的情感分析 ( TN-ABSA ):这里是文本中只有实体而没有属性,只针对实体的情感进行分析,这涉及到的两个任务,实体识别和情感识别。实体识别分为实体词抽取和实体分类,情感识别分为观点词抽取和观点分类。

    • 针对目标的情感分析 ( T-ABSA ):这里面的目标就是实体+属性的组合,例如:“小米性价比”、“华为拍照”等,这会比上面两个任务相对更细一些。目标识别分为目标词抽取和目标分类,情感识别分为观点词抽取和观点分类。

    针对情感分析,简单介绍一些方法简史。最早的一个方法是基于字典加规则的方式,我们人工构建一个情感词典,每个词都有对应的正负面,然后根据句子中正面词和负面词的数量,最后做一个投票,这是一个最简单的方法。后边就有了基于机器学习的方法,像传统的机器学习SVM等,将情感词典和词袋作为它的一个特征。再进一步就是深度学习,还有就是现在的基于预训练语言模型+fine tune的方法,应该是现在效果最好的一个方法。

    02

    属性级情感分析

    下边我介绍一下我们其中的一个工作,属性级情感分析(TG-ABSA),这里面实体是固定的,分析它各个属性的正负面。像上面句子级情感分析是大部分厂商提供的,比如“买没几天就降价一点都不开心,闪存跑分就五百多点”,这个整体是负面,但是它针对价格和闪存两个属性都有相应情感,这里并没有区分。属性级情感分析这个任务就是给定属性的类别集合,然后预测它各个属性的正负面。其中,这里的表达也分为两种,一种是显式的观点表达,另一种是隐式的观点表达。显式的观点表达会显示提到属性的属性词和观点词,比如“手机内存非常大,系统流畅,性价比非常高”,这里属性词“内存”、“系统”和“性价比”都有显示的提到,而像“手机太贵了,颜值非常高,一点都不卡”,这里“手机太贵了”、“一点都不卡”表达的属性分别是“价格”和“性能”,但是没有相应的属性词。

    针对这两种不同的表达方式,处理方式是不一样的,后边会介绍一种专门针对显示的方法。

    1. 属性级情感分析—相关工作介绍

    ① 无监督方法:

    最传统的一个方法是无监督的,这种方法的优势是不需要标注数据,比如使用基于句法解析的方法,先抽取句子里主语谓语宾语的表达方式,比如“服务员很漂亮”,通过抽到的主语“服务员”和它对应的形容词“漂亮”,这样我就可以知道它的评价对象是“服务员”,观点是“漂亮”,再根据查情感词典知道这是一个正面的情感,这样就可以得到针对服务员的评价是正面的。

    这种方法只能处理显示的表达,如果是隐式的表达,因为句子中没有属性词,那么通过句法解析没法得到对应的角色,所以无法分析来处理隐式的表达。这种无监督方法的优点是不需要标数据,缺点是准确率相对低一些,没法处理隐式表达。

    ② 阅读理解方法:

    最近的一个工作是复旦邱锡鹏老师组提出的基于深度学习的方法,分析一个句子里面各个属性的正负面,他把这个问题转化成一个阅读理解的问题,本来一个句子有N个属性集合,他把句子和属性转换成句子-属性 pair。输入一个句子,这里面aspect可以描述成阅读理解的一个问你题,比如“针对外观评价是怎么样的”,这样转换成问答对的方式,然后基于Bert来识别这个问答对正负面的答案,这是一个比较新的工作。

    这种方式的优势是比较灵活,属性可以无限的扩充,不管是新增或者减少属性,都可以用这种方法直接取处理,而且准确率还比较高。但是这种方法的缺点就是它的效率相对要低一些,因为如果有N个属性,在预测的时候,它需要预测N次才能得到结果。

    2. 属性级情感分析—方案介绍

    我们提出了一个基于类似多标签,多任务的方法。整个任务给定属性类别集合,然后预测每个属性的正负面。

    这里面的难点是,首先我们大框架使用的是有监督的方法,因为最终我们想要把应用部署到华为云的服务上,所以准确率要求是比较高的,要求达到90%以上,一般无监督的方法无法满足,所以还是需要有监督的方法。这就需要标注数据,如果是多个属性它的一个问题就是标注起来比较困难,比如说一个手机评论可能会涉及到二三十个属性或者说甚至上百种属性,如果要标数据的话,这会非常的困难。我们的方法不同于传统的多标签分类,像文本多标签分类任务的类别有政治、经济、新闻,该任务只涉及标签是否出现,但这里不一样的地方是它不仅涉及到属性是否出现,还要预测出属性的正负面,相当于每个属性都要预测出它的三个标签—正面、负面和未出现。相当于每个属性是一个多分类任务而不是一个二分类任务。之前那种多标签分类,一般最后会把每个标签转化成logits,这里的话用这种方法就没办法处理。然后还有就是隐式表达。

    我们解决的技术思路是,把它转换成一个Multi-task多分类任务,每个属性都处理成一个多分类的任务,所以它输出不是二分类而是一个多分类。在标注数据的过程中,我们引入主动学习的思路,先标注一批少量的数据,然后用模型对剩余未标注的做一个预测,然后再对那些置信度比较低的再去人工审核标注这些数据,如果置信度比较高的就不用再标了,这样的话可以提高标注效率。另一个方法是,如果一个样本同时标注多个属性,这个标注成本是很高的,我们引入Label mask的思路,就是在训练的时候 某几个属性可能标也可能没标,如果没标的话就把这个属性mask掉,然后在计算loss的时候该属性就不参与计算了,只将那些已经标注的属性参与loss计算和反向传播的计算,这样的一个好处就是我在真正标注样本的时候想标注哪几个属性就标注哪几个属性,不用每个样本的所有属性都要标注,这样标注就更加灵活,可以先针对某一个属性只标注它,标完该属性后再标另一个属性,这实际上是一个很灵活的标注。

    使用这个方法的一个优势是,它最终基于深度学习模型,准确率比较高,也支持隐式的表达,因为深度学习可以编码各种语义的表达,还有一个就是我们这种方法可以提高标注效率。在中间编码这块可以是基于bert、roberta这种预训练语言模型,最终输出使用label mask的方法。

    3. 属性级情感分析—结果

    上面是我们最终的实验结果,针对汽车领域测试样本大概有7000多个,每个样本平均的属性数量是4.27个,其中预定义的属性集合是8个,最终可以看到每个属性的准确率都是很高的,基本上达到90%以上。针对手机领域的结果基本上也是每个属性F值基本上能达到将近90%。

    右上角的图是针对每个属性预测的标签的置信度的阈值,随着阈值的上升,命中的属性(即预测的标签的置信度在阈值以上的属性)准确率也在上升,而Attribute Hit Rate(即预测标签的置信度在阈值以上的属性占比)也随着阈值的上升而下降,即有些属性预测的标签的置信度低于阈值,但是命中的属性预测出标签的准确率是慢慢上升的,这个也是符合我们的一般认知的。这个的一个好处是最终产品上线之后,用户要求有一部分不需要人工审核,另一部分则需要人工审核,当达到某个阈值之后,他们就可以不用参与人工审核。通过调节阈值,让某些属性的指标达到了这个阈值,比如准确率都达到95%,这一部分就不需要人工审核。

    4. 属性级情感分析—应用案例

    这是我们基于多属性情感分析的一个应用案例,这是汽车领域的案例,针对网上很多的汽车领域的评论,我们可以分析汽车在八个属性维度上的正负面评价。上图左上角里红色的线就是一个行业的平均水平,蓝色的线是针对这个车它的各个维度的雷达图像,这样就可以很方便地对比出不同车型,它的一个好坏。可以方便用户在产品选型的时候做一个对比,也可以方便厂家针对评论本身对他们的产品做相应的改进。

    03

    观点四元组分析

    1. 四元组观点挖掘—介绍

    上面讲到的虽然可以分析出各个属性的正负面,但是它的一个缺点是没办法定位出针对某个属性具体评价的属性描述词位置和观点描述的位置,因为有些用户不仅想要找到属性正负面,还要找到它对应的评价位置,所以我们这个工作是针对观点四元组进行挖掘的。

    观点四元组挖掘这个任务不仅要分析出各个属性的正负面,还要定位出它属性描述词的位置以及观点描述词的位置。比如“手机内存非常大”中属性描述词定位到“内存”,评价词定位“非常大”,对于“性价比非常高”这句话,属性描述词定位到“性价比”,观点描述定位到“非常高”,不仅要识别出属性的类别还要定位到位置,所以这里一共有四个要素要预测出来,分别是属性词、属性类别、评价词和评价极性,其中属性类别和评价极性在前面的工作已经做到了。

    2. 四元组观点挖掘—方案

    针对这个任务,我们提出了一个基于抽取加分类的联合模型,上图是我们现在采用的框架,底层是基于编码的模型,可以是bert或者roberta等,然后将句子编码成一个向量表示。

    图中左边这侧是用于定位属性描述位置和观点描述位置的,是一个序列标注模型,比如这里B_A是属性描述词起始位置,I_A则是在属性描述词中间的位置,例如这里“内存”和“颜色”都是属性描述词。在这里最上层用的是CRF序列标注模型来进行属性描述词的抽取。图中右边这侧对应的跟上面的工作有点类似了,有N个属性对应有N个输出,然后对应每个属性预测它的正负面和未出现这几类。左边做属性词抽取,右边做属性正负面预测,最终可以输出每个属性的四元组(属性类别,属性描述词,观点描述词,观点类别)。

    3. 四元组观点挖掘—数据标注

    这里的比较耗时间的工作就是数据标注,因此我们专门做了四元组观点挖掘的数据标注平台。上面“简单”这个分类标签是为了解决标注过程中有些不同标注人员他可能对同一个样本就会有冲突,他觉得这个样本比较难标或者好标的话这里就是用这进行区分,如果样本好标会打个“简单”的分类标签,如果让他觉得不确定,他会不打“简单”的标签,即“复杂”标签。因为我们标的属性比较多,涉及到差不多三四十个属性,这里做了一个对属性做了大致的分类。

    这里的标注任务是类似于关系抽取里面3元组的标注任务,先标注属性描述词,然后再标注它的观点描述词,这里面它两个其实是形成一个搭配关系,这个类似于一个三元组中实体和实体及他们的关系,只不过这里的关系是一种搭配的关系,将它们连起来就可以了,最后再加上它对应的正负面以及属性描述词对应的属性类别,这样每个样本的四元组就标出来了。

    上图左边是我们标注大概两万条手机评论的数据分布,其实可以看到数据分布式非常不均衡的。这个是拿到真实用户在线上评论的数据,有些评论会偏的非常多,然而有些类别评论会非常少。上图右边是针对所有属性对应正负面的分布,这个也是非常不均衡的,正面的评论比较多,负面的评论会相对少很多。

    4. 四元组观点挖掘—结果

    上图为我们最终的评价结果,因为它是一个四元组既包含分类也包含抽取,对于评价指标我们用了一个Fuzzy F1值。我们对每一个属性加正负面标签作为一个评价对象,比如“外观正”作为一个评价对象,然后去找它对应的位置,计算这个位置它们字符的重合率(包括观点描述词和属性描述词的重合率)这样去算它的F值。EM F1值是预测描述词的位置完全精准匹配,稍微有一点不对也算错,这个比前面的指标更加严格。

    在编码器这部分我们尝试了几个不同的编码器,包括bert、roberta还有nezha等。由于我们有很多未标注的数据,基于这些数据我们做了领域的预训练,然后再进行fine tune。右图展示了不同指标下的结果,可以看到在未标注数据上进行领域预训练的话是可以带了一个点的提升,Fuzzy F1能达到0.79。另外,这个评估指标对于人的实际感知不太直观,我们随机抽取500条数据进行人工评价。人工评价的过程是每个样本预测出每个属性标签和正负面且包括它们的位置,将这样的四元组抽取出来进行人工评价,判断预测是否合理,如果合理标记为1,如果不合理则标记为0,这样来看人工对模型预测的指标判断。人工评价的准确率是非常高的,差不多96%的准确率,即人工认为预测是合理的。这两个结果差别是比较大的,但也是比较合理的,因为在数据标注过程中,不同标注人员对观点描述词的位置以及属性描述的位置也可是会有歧义。比如“外观非常好看”这句话,有些人观点描述词会标“好看”,有些人就会标“非常好看”,这其实对最终预测结果影响不大,但是如果用字符重合率的方法,那会严重影响计算这个指标,所以说它两个差异比较大也是合理的。

    5. 四元组观点挖掘—Demo

    上图是我们一个简单的demo,输入一个样本,生成对应每个属性的正负面,当点击某个属性的时候它对应的评价词位置就可以高亮出来,红色代表属性描述词,绿色代表观点描述词。上面说的人工评价就是这些结果预测出来后,人工看看预测是否合理。

    04

    总结

    本文主要介绍了情感分析的一些基本任务,包括文本、语音、图像还有生成、识别。对于文本情感分析任务做了详细介绍,重点介绍了两个工作,一个是属性级情感分析,这个是给定属性集合情况下,预测每个属性的正负面,我们将它构建成了一个多任务分类。另一个工作比上面的粒度更细一点,不仅要预测出属性正负面,还要定位出它具体的属性描述词和观点描述词的位置,我们把它做成了一个抽取加分类的多任务联合模型,既包括抽取也包括分类。

    对于未来的趋势,我们在实际做的过程中发现大家在工业界会碰到标注数据成本非常高的问题,每一个任务基本上我们需要标将近两万条数据,所以最终的效果准确率是比较高的。另一方面,对于模型加速这部分,由于使用深度学习像bert这种预训练模型,它的推理成本还是比较高的,我们华为可以对硬件进行底层适配。对于领域迁移未来也是关注重点,怎么能从更低成本从某一领域迁移到另一个领域,比如从汽车领域迁移到手机领域,或者从手机领域迁移到房地产领域等等。另外,还有自监督去训练超大规模的模型,比如像bert、roberta还有最近GPT3等等,这也是未来的趋势,然后再考虑如何将知识图谱加入到大模型当中进行知识增强来提升模型理解的效果。还有就是多模态这部分,怎么把图像、文本或者语音这些信息辅助来提升模型的效果。因为人在学习的时候不仅参考了文本的信息,还有视觉方面的信息等等。现在对于多模态情感分析我们也有一些工作正在做,比如说从视频中分析出一个人的情感,既考虑人脸的图像信息,也考虑他语音的一些信息,比如语气等等。

    今天的分享就到这里,谢谢大家。


    在文末分享、点赞、在看,给个3连击呗~


    嘉宾介绍:

    李明磊 博士

    华为云 | 自然语言处理算法专家

    李明磊,华为云NLP算法专家,博士毕业于香港理工大学,从事文本情感分析和情绪识别的研究,在TAC、ACL、EMNLP等发表论文多篇,获得IALP 2016 最佳论文奖,KSEM2017最佳学生论文奖。目前就职于华为云语音语义创新Lab,主要负责华为云文本分析、多模态分析等业务,所孵化服务已在多个实际业务场景中落地。团队DigScience2019,CCF BDCI 2019, WSDM Cup 2020比赛金牌。

    说个正事哈

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

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

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

    感谢支持,比心

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

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

    记得备注呦

    整理不易,还望给个在看!
    
    展开全文
  • 引入注意力机制的细粒度实体分类

    千次阅读 2018-04-06 19:17:04
    实体分类相关论文阅读第一篇:An ...细粒度实体分类是在构建知识图谱过程中非常重要的内容,关于实体分类相关的文献也比较多,也有不少分类方法,但是我们如何在非结构化的文本中确定出一个我们想要的细粒度实体,...
  • AI TIME欢迎每一位AI爱好者的加入!实体分类是知识图谱构建和补全的重要子任务,其中细粒度实体分类为实体提供了更加丰富的语义信息,有助于关系抽取、实体链接、问答系统等下游任务。细粒度...
  • 向AI转型的程序员都关注了这个号????????????人工智能大数据与深度学习 公众号:datayx细粒度图像识别 (fine-grained image recognition),...
  • 采用先极性判断,后细粒度情感判断的处理方法,构建细粒度情感分析与判断流程,并将其应用于微博短文本细粒度情感判断。通过NLP&CC2013评测所提供的训练语料对该方法有效性进行验证,结果表明该方法具有较好的抽取...
  • 这篇论文的研究领域是自然语言处理(NLP)中的细粒度情感分析ATSC(aspect term sentiment category)。简单来说就是给出一个句子以及句子中的一个aspect,求这个aspect对于这个句子的情感极性。下图给出一个例子。 图中...
  • 通过微调从大规模数据集(如ImageNet)中学习知识,为特定领域的细粒度视觉分类(fgvc,fine-grained visual categoriza- tion)任务(如识别鸟类或汽车品牌和模型)提供了有效的解决方案。在这种...
  • 细粒度图像分析综述2019

    千次阅读 2019-07-13 20:48:32
    文章目录导读细粒度应用和分类2 细粒度的问题和挑战问题挑战3 数据集4 细粒度图像识别4.1 定位分类子网络4.2 端到端特征编码4.3 辅助信息5 细粒度图像检索6 细粒度图像生成7 细粒度图像分析相关的特定领域应用8 未来...
  • 本文以计算机视觉的重要概念为线索,介绍深度学习在计算机视觉任务中的应用,包括网络压缩、细粒度图像分类、看图说话、视觉问答、图像理解、纹理生成和风格迁移、人脸识别、图像检索、目标跟踪等。 网络压缩...
  • 细粒度图像分析——识别篇领域 大牛论文20192018201720162015参考及推荐链接功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个...
  • 共包含6大类20个细粒度要素的情感倾向.数据集分为训练、验证、测试A与测试B四部分。数据集中的评价对象按照粒度不同划分为两个层次,层次一为粗粒度的评价对象,例如评论文本中涉及的服务、位置等要素;层次二为...
  • 细粒度用户评论情感分析赛道提供了6大类、20个细分类的中文情感评论数据,标注规模难度之大,在NLP语料特别是文本分类相关语料中都属于相当罕见,这份数据有着极其重要的科研学术以及工业应用价值(目前在大众点评...
  • AI Challenger 细粒度用户评论情感分析

    热门讨论 2018-12-15 10:17:00
    AI Challenger 全球AI挑战赛”是面向全球人工智能人才的开源数据集和编程竞赛平台,致力于满足AI人才成长对高质量丰富数据集的需求,推动AI在科研与商业领域结合来解决真实世界的问题。AI Challenger以服务、培养AI...
  • 细粒度图像相关汇总

    2019-03-01 19:41:00
    细粒度图像与超分辨率 FSRNet: End-to-End Learning Face Super-Resolution with Facial Priors(2018 CVPR SPOTLIGHT Presentation) 文章地址:https://arxiv.org/abs/1711.10703作者的项目地址:FSRNet 本文提出...
  • 细粒度情感分类 此仓库显示了对各种NLP方法的比较和讨论,这些方法可以在(SST-5)数据集上执行5级情感分类。 目标是使用多个基于规则,基于线性和神经网络的分类器来预测此数据集上的类,并查看它们之间的区别。 ...
  • 细粒度图像分类的经典做法是先定位出目标的不同部位,例如鸟的头、脚、翅膀等,之后分别对这些部位提取特征,最后融合这些特征进行分类。这类方法的准确率较高,但这需要对数据集人工标注部位信息。目前细粒度分类的...
  • 共包含6大类20个细粒度要素的情感倾向.数据集分为训练、验证、测试A与测试B四部分。数据集中的评价对象按照粒度不同划分为两个层次,层次一为粗粒度的评价对象,例如评论文本中涉及的服务、位置等要素;层次二为...
  • 在本文中,来自旷视科技、南京大学和早稻田大学的研究者对基于深度学习的细粒度图像分析进行了综述,从细粒度图像识别、检索和生成三个方向展开论述。此外,他们还对该领域未来的发展方向进行了讨论。 (CV)是用...
  • [综述] 细粒度图像分析2019

    千次阅读 2019-07-14 21:06:40
    1 细粒度应用和分类 2 细粒度的问题和挑战 问题 挑战 3 数据集 4 细粒度图像识别 4.1 定位分类子网络 4.2 端到端特征编码 4.3 辅助信息 5 细粒度图像检索 6 细粒度图像生成 7 细粒度图像分析相关的特定领域应用 8 ...
  • 引言情感分析是文本分类的一种,主要方法是提取文本的表示特征,并基于这些特征进行分类。情感分析根据研究对象的粒度不同可分为文本级、句子级、对象级等,分别对相应单位的文本进行情感倾向分析。其...
  • 文章目录数据类别标签类别定义 & 标注规则数据下载地址数据分布数据字段解释数据来源...目前可公开访问获得的、高质量、细粒度的中文NER数据集较少,其中(CLUE)基于清华大学开源的文本分类数据集THUCNEWS,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,833
精华内容 3,533
关键字:

细粒度文本分类