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

    文章

    1230

    浏览量

    26041
  • SCL
    SCL
    +关注

    关注

    1

    文章

    244

    浏览量

    17932
  • cnn
    cnn
    +关注

    关注

    3

    文章

    355

    浏览量

    23246

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    广和通发布端侧情感对话大模型FiboEmo-LLM

    9月,广和通正式发布自主研发的端侧情感对话大模型FiboEmo-LLM。该模型专注于情感计算与自然语言交互融合,致力于为AI玩具、智能陪伴设备等终端场景提供“情感理解-情感响应”一体化
    的头像 发表于 09-26 13:37 1597次阅读

    【「AI芯片:科技探索与AGI愿景」阅读体验】+AI的未来:提升算力还是智力

    ,使其与新知识兼容。 2、迁移学习 迁移学习只寻求利用特定领域的知识帮助目标领域学习,利用在一个任务上训练好的模型,完成另一个相关的
    发表于 09-14 14:04

    Task任务:LuatOS实现“任务级并发”的核心引擎

    Task任务通过其强大的并发处理能力,使LuatOS能够在单线程环境中模拟多线程执行,通过协程的挂起与恢复机制,实现任务级的并行操作,显著提升系统效能。 sys核心库是LuatOS运行框架库,也是
    的头像 发表于 08-28 13:49 332次阅读
    Task<b class='flag-5'>任务</b>:LuatOS实现“<b class='flag-5'>任务</b>级并发”的核心引擎

    QNX助力WeRide打造高级辅助驾驶系统

    QNX(黑莓子公司)正在为中国领先的辅助驾驶提供商WeRide 提供以操作系统为核心的基础软件平台支持,助力其开发下一代 L2++ 高级驾驶辅助系统(ADAS WePilot),提升系统的智能化、稳定性与
    的头像 发表于 07-31 15:59 810次阅读

    51Sim利用NVIDIA Cosmos提升辅助驾驶合成数据场景的泛化性

    辅助驾驶领域的经验成功拓展到了具身智能领域,为端到端辅助驾驶仿真测试与具身智能机器人训练提供了海量高置信度的合成数据,目前相关成果已在多个主机厂和智能装备企业中实现落地应用。
    的头像 发表于 06-26 09:09 1057次阅读

    NVIDIA如何让灵巧机器人更加适应环境

    如今,机械臂被广泛应用于装配、包装、检测等众多领域。然而,它们仍需预先编程才能执行特定且往往是重复性的任务。为了满足在大多数环境中对适应性日益增长的需求,需要具备感知能力的机械臂,以便根据
    的头像 发表于 05-09 15:01 855次阅读
    NVIDIA如何让灵巧机器人更加<b class='flag-5'>适应</b>环境

    DevEco Studio AI辅助开发工具两大升级功能 鸿蒙应用开发效率再提升

    HarmonyOS应用的AI智能辅助开发助手——CodeGenie,该AI助手深度集成在DevEco Studio中,提供鸿蒙知识智能问答、鸿蒙ArkTS代码补全/生成和万能卡片生成等功能,提升了开发效率,深受广大
    发表于 04-18 14:43

    GLAD应用:大气像差与自适应光学

    ,从而显著提升传输激光的Strehl ratio。 图1.激光通信系统示意图 系统描述 本例介绍了大气湍流像差对应命令phase/random/kolmogorov以及自适应光学命令adapt
    发表于 03-10 08:55

    基于Raspberry Pi 5的情感机器人设计

    Raspberry Pi 5相较于上一代搭载了更强的处理器和硬件性能,为情感机器人的开发提供了前所未有的可能性。其支持多任务处理和实时计算,为语音交互和情感判断提供了坚实的基础。此外配合高性能的摄像头模块和传感器,机器人能够捕捉
    的头像 发表于 02-26 14:28 1561次阅读
    基于Raspberry Pi 5的<b class='flag-5'>情感</b>机器人设计

    谷歌AI智能体执行复杂任务能力大幅提升

    自然语言描述任务,随后由AI智能体代替用户执行并最终完成任务,极大地提升工作效率和便捷性。 为了推进这一技术的实现,谷歌正在积极开发两个相关项目。其中备受瞩目的是名为“Mariner”的浏览器扩展程序。通过该程序,AI智能体能够
    的头像 发表于 02-17 14:39 988次阅读

    xgboost在图像分类中的应用

    和易用性,在各种机器学习任务中得到了广泛应用,包括分类、回归和排序问题。在图像分类领域,尽管深度学习模型(如卷积神经网络CNN)占据主导地位,但XGBoost仍然有其独特的应用价值,特
    的头像 发表于 01-19 11:16 1555次阅读

    【「基于大模型的RAG应用开发与优化」阅读体验】+大模型微调技术解读

    集对模型进行进一步训练的过程。 大模型微调是利用预训练模型的权重和特征,通过在新任务数据集上的训练,对模型进行适应性和优化调整。使模型能够适应新的、具体的任务
    发表于 01-14 16:51

    断路器的分类及应用领域

    断路器的分类 断路器可以根据不同的标准进行分类,以下是几种常见的分类方式: 按极数分类 : 单极断路器:用于单相电路。 双极断路器:用于两相电路。 三极断路器:用于三相电路。 四极断路
    的头像 发表于 01-03 09:33 2860次阅读

    risc-v芯片在电机领域的应用展望

    ,电机控制系统的需求将不断增长。RISC-V芯片凭借其灵活性和可扩展性,将能够很好地适应这些领域的变化,为电机控制提供更高效、更可靠的解决方案。 同时,RISC-V芯片在电机控制领域的创新也将不断推进
    发表于 12-28 17:20

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

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