0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用辅助任务来提升情感分类领域适应?

深度学习自然语言处理 来源:SimpleAI 作者:SimpleAI 2021-06-16 17:30 次阅读

论文标题:Learning Sentence Embeddings with Auxiliary Tasks for Cross-Domain Sentiment Classification

会议/期刊:EMNLP-2016

团队:Singapore Management University

主要思想: 通过构造两个辅助任务(auxiliary tasks)来从学习句子表示,预测一个句子是否包含有通用情感词。这些句子表示可以增强原本情感分类模型中的句子表示,从而提升模型的总体领域适应能力。

论文要点一览:

1. 借鉴了2006年EMNLP的Structural Correspondence Learning的思想

SCL是2016EMNLP的一篇解决领域适应的论文,想法很新颖。核心想法是,不同领域的文本,通常会有一些通用的“指示词”(称为pivot words/features),比方在词性标注任务中,虽然同一个词性的词可能在不同领域文本中千差万别,但是提示词性的特征往往是类似的,这些共同的特征就称为pivot features。然后,那些随着领域变化的,但跟这些pivot features高度相关的词,就被称为“联系词/对应词”(correspondences),比方在词性标注任务中那些关注的词性对应的词。

领域适应中,麻烦的就是这些随着领域变化的correspondences,它们往往潜藏着类别的信息,但是从表面上看是很领域性的,所以如果有办法把这些词中潜藏着的通用的类别信息给提取出来,或者把它们给转化成通用的信息,那这些领域性的词就变得通用了,就可以适应不同领域了。

这个想法,确实很有意思,值得我们学习。所以这个SCL要解决的关键问题就是,如何让模型看到这些领域词,能转化成通用词。比如在情感分类中,看到评论“这个电脑运行很快!”就能反应出来这个就是“这个电脑好!”。SCL的方法就是,我有一个通用词的list,把这些词从句子中挖去,然后让剩下的部分来预测出是否包含这个词。构造这样的任务,就相当于学习一个“通用语言转化器”,把个性化的语言,转化成通用的语言。

当然,由于是2006年的论文,所以是采用传统的机器学习方法来做,得到句子表示也是通过矩阵分解这样的方法。这个16年的新论文,则是使用的深度学习的方法进行改良和简化,让它变得更强大。

2. 跟传统经典方法的的主要不同

本文提到的主要传统方法有两个,一个就是著名的06年的SCL,一个是大名鼎鼎的Bengio团队在11年ICML的使用auto-encoder的工作。

这两个工作的一个共同点是,是分两步进行的,即是一个序列化的方法(learn sequentially),先得到一个特征表示,改善原来的文本特征,然后再使用经典的模型进行预测。

本论文提出的方法,既可以是两步走的序列化方法,也可以是joint learning,让辅助任务跟主任务共同学习。

另外,之前的auto-encoder的做法,在数据预处理的步骤,没有考虑情感分类任务,也就是跟最终要做的任务无关,这当然也不够好。

3. 本文是一个transductive方法,即训练的时候要利用到全局数据

训练可用的数据包括:

标签的训练集(source domain)

无标签的测试集(target domain)

4. 辅助任务的设计&对原句子表示的加强

作者设计了两个辅助任务:预测一句话中是否有正/负的通用情感词。

当然,预测前,需要把句子中的通用情感词给挖掉,用剩下的词来预测。这样设计的依据是什么呢?如果一句话中包含来通用情感词,比如“好”,那么这句话多半就是正面的情感,那么这句话剩下的其他的部分,应该也大概率会包含一些领域特定的反应情感的词,比如“(电脑)很快”。那么我们训练一个能够使用这些领域特定的词预测通用情感词的模型,就可以得到一个“通用情感转化器”,把各种不同领域的句子,转化成通用的表示。

辅助任务的损失函数如下:

fbd05280-cab2-11eb-9e57-12bb97331649.png

就是二分类交叉熵损失之和。

如下图所示,左半边就是一个传统的分类模型。右边的就是辅助任务对应的模型。

fbf026fa-cab2-11eb-9e57-12bb97331649.png

通过把原句子的通用情感词替换成[UNK],然后使用辅助任务训练一个新的模型,就可以得到一个通用的句子表示向量,也就是图中的蓝色的向量。

最后,把这个向量,跟原句子向量拼接起来,就得到来加强版的句子表示,最终使用这个句子表示来做情感分类任务。

5. 联合训练joint learning

上面讲的方法,依然是分两步做的,这样会有些麻烦。其实整个框架可以同时训练,也就是把两部分的损失函数合在一起进行优化:

fc460a5c-cab2-11eb-9e57-12bb97331649.png

注意,两部分的loss,分别来自不同的数据集,但是在辅助模型分布,是两部分数据都会使用的,见图中画蓝线的地方。

就是代码实现上,我一开始想不通如何让两个不同的数据集(labeled source data和unlabeled target data)放在一起同时训练,看了看作者的代码也没看明白(基于Lua的torch写的),直到我看到了作者readme最后写了一个提示:

fc7c9b30-cab2-11eb-9e57-12bb97331649.png

就是说,所谓的joint learning,并不是真正的joint,相当于一种incremental learning(增量学习)。每个epoch,先把source部分的数据给训练了,然后再输入target部分来优化auxiliary部分的模型。

6. 如何选择pivot words

本文使用了一种叫weighted log-likelihood ratio(WLLR)的指标来选择最通用的情感词作为pivot words。这个WLLR的公式如下:

fcc2855a-cab2-11eb-9e57-12bb97331649.png

公式里的y就是标签,而y一杠是相反的标签。w则代表某个词。从公式可以看出,当一个词在一个标签的文本中经常出现,而在相反标签的文本中出现很少,那么这个词的WLLR值就高。

在SCL论文中,使用的是互信息,但是作者发现互信息偏爱那些低频词,相比之下WLLR则公平一些,因此作者选择WLLR。

7. 数据集和实验结果

实验结果主要表明,Joint Learning确实可以。但Sequential则效果不敢恭维。。。这一点是我觉得容易让人诟病的地方,毕竟按照前文中介绍的,即使是Sequential,也因为学习到了很好的句子表示,应该效果也很不错才对。

另外实验结果中,对比一下机器学习方法和深度学习方法可以看出,只是用离散特征,效果完全比不是深度学习使用连续特征的方法。注意,这里的NN是指CNN,使用了词向量,而词向量相当于已经拥有了很多外部知识了,所以一个单纯的CNN,不进行任何的domain adaptation的设计,都比传统的SCL等方法都好。

作者还做了一些“使用部分target标注数据来训练”的实验:发现,也有微弱的提升(0.6%实在不算多哈)。并且,随着标注数据量的提升,差距还在缩小:

8. Case Study

这里的case study值得学习,分析的很细致,逻辑清晰,还印证了论文的理论假设。即,作者对比了单纯的CNN和使用了辅助任务来训练的CNN,在分类时的重要词汇是哪些,发现了一些有趣的现象。

我们这里称单纯的CNN为NaiveNN,使用辅助任务的序列化方法为Sequential,联合训练的则为Joint。其中,Sequential和Joint又可以把模型分成两个部分,分别为-original和-auxiliary。

总结一下:

NaiveNN抽取出来的,多半都是“通用情感词”;

Sequential-original提取出来的跟NaiveNN类似;

Sequential-auxiliary提取出的,多半是“领域词”,包括“领域情感词”和“领域类型词”,后者是该领域的一些特征词,但并不是情感词,所以是个噪音,可能会对情感模型产生负面影响;

Joint-auxiliary则提取出的基本都是“领域情感词”,即相比于sequential少了噪音;

Joint-original则可提取出“通用情感词”和“领域情感词”,因为它跟aux部分共享了sentence embedding。

虽然case study一般都是精挑细选过的,但至少作者分析总结的还是很到位,也就姑且信了。

最后:

总的来说,这是一个想法较为新颖,方法较为实用,思路也make sense的工作。巧妙地借用了SCL的思想,并做了合理的简化和升级,取得了还不错的效果。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据集
    +关注

    关注

    4

    文章

    1208

    浏览量

    24744
  • SCL
    SCL
    +关注

    关注

    1

    文章

    239

    浏览量

    17112
  • cnn
    cnn
    +关注

    关注

    3

    文章

    353

    浏览量

    22260

原文标题:使用辅助任务来提升情感分类领域适应

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【「大模型启示录」阅读体验】如何在客服领域应用大模型

    内为企业带来效益。在选择模型时,需要评估其性能表现。这包括模型的准确性、响应速度、对话流畅性、情感理解能力等方面。可以通过对比不同模型的测试结果、查看用户反馈和评分等方式评估模型性能。选择性能表现优秀
    发表于 12-17 16:53

    基于LSTM神经网络的情感分析方法

    情感分析是自然语言处理(NLP)领域的一项重要任务,旨在识别和提取文本中的主观信息,如情感倾向、情感强度等。随着深度学习技术的发展,基于LS
    的头像 发表于 11-13 10:15 579次阅读

    什么是EPS?通过马达辅助转向操作的系统

    背景   EPS是一种通过马达减轻和辅助驾驶员在转向操作时所需力量的设备。此外,通过采用EPS,可望提高燃效,降低车辆重量。我们将在本消息中就EPS的功能和系统构成进行解说,同时对构成的电子零部件
    的头像 发表于 11-03 14:23 386次阅读
    什么是EPS?通过马达<b class='flag-5'>来</b><b class='flag-5'>辅助</b>转向操作的系统

    RK3588 技术分享 | 在Android系统中使用NPU实现Yolov5分类检测

    NPU。 应用领域 图像识别: NPU能够迅速对图像进行分类、检测和分割等操作,大大提升了处理效率。 语音识别: NPU实现了实时语音转换和语音合成功能,为语音交互提供了更自然的体验。 自然语言处理
    发表于 10-24 10:13

    FPGA在图像处理领域的优势有哪些?

    时,FPGA可以轻松地适应新的算法,而无需重新设计硬件。这种灵活性使得FPGA在图像处理领域具有更快的开发速度,有助于缩短产品的上市时间。同时,FPGA还可以根据不同的图像内容,实时地调整处理策略,使得在
    发表于 10-09 14:36

    激光传感器的分类及应用领域

    激光传感器是一种能够利用激光束测量物体特性的仪器,具有高精度、高速度、长寿命、不受环境干扰等优点,在工业、医疗、航空航天等领域得到广泛应用。以下是对激光传感器的分类及应用领域的介绍: 一、激光传感器
    的头像 发表于 09-04 15:35 845次阅读

    RK3588 技术分享 | 在Android系统中使用NPU实现Yolov5分类检测

    NPU。 应用领域 图像识别: NPU能够迅速对图像进行分类、检测和分割等操作,大大提升了处理效率。 语音识别: NPU实现了实时语音转换和语音合成功能,为语音交互提供了更自然的体验。 自然语言处理
    发表于 08-20 11:13

    linux定时任务的用法总结

    习惯了使用 windows 的计划任务,使用 linux 中的 crontab 管理定时任务时很不适应
    的头像 发表于 08-14 18:16 873次阅读
    linux定时<b class='flag-5'>任务</b>的用法总结

    松下课堂 什么是EPS?通过马达辅助转向操作的系统

    背景   EPS是一种通过马达减轻和辅助驾驶员在转向操作时所需力量的设备。此外,通过采用EPS,可望提高燃效,降低车辆重量。我们将在本消息中就EPS的功能和系统构成进行解说,同时对构成的电子零部件
    的头像 发表于 07-15 09:44 423次阅读
    松下课堂 什么是EPS?通过马达<b class='flag-5'>来</b><b class='flag-5'>辅助</b>转向操作的系统

    nlp自然语言处理的主要任务及技术方法

    的应用,如搜索引擎、机器翻译、语音识别、情感分析等。 NLP的主要任务 NLP的主要任务可以分为以下几个方面: 1.1 词法分析(Lexical Analysis) 词法分析是NLP的基础,它包括分词
    的头像 发表于 07-09 10:26 1237次阅读

    计算机视觉怎么给图像分类

    图像分类是计算机视觉领域中的一项核心任务,其目标是将输入的图像自动分配到预定义的类别集合中。这一过程涉及图像的特征提取、特征表示以及分类器的设计与训练。随着深度学习技术的飞速发展,图像
    的头像 发表于 07-08 17:06 795次阅读

    卷积神经网络在文本分类领域的应用

    显著成就后,也逐渐被引入到文本分类任务中。卷积神经网络通过模拟人类视觉系统的信息处理方式,能够有效地提取文本中的局部特征,进而实现高精度的文本分类。本文将对卷积神经网络在文本分类
    的头像 发表于 07-01 16:25 767次阅读

    机器学习多分类任务深度解析

    一对其余其实更加好理解,每次将一个类别作为正类,其余类别作为负类。此时共有(N个分类器)。在测试的时候若仅有一个分类器预测为正类,则对应的类别标记为最终的分类结果。
    发表于 03-18 10:58 1898次阅读
    机器学习多<b class='flag-5'>分类</b><b class='flag-5'>任务</b>深度解析

    滤波器:工作原理和分类及应用领域?|深圳比创达电子EMC a

    滤波器:工作原理和分类及应用领域?|深圳比创达电子EMC滤波器在电子领域中扮演着重要的角色,用于处理信号、抑制噪声以及滤除干扰。本文将详细介绍滤波器的工作原理、分类以及在各个应用
    发表于 03-08 09:59

    滤波器:工作原理和分类及应用领域

    滤波器:工作原理和分类及应用领域?|深圳比创达电子EMC
    的头像 发表于 03-08 09:56 1904次阅读
    滤波器:工作原理和<b class='flag-5'>分类</b>及应用<b class='flag-5'>领域</b>?