Hi,这里是哈林,今天来跟大家聊一聊Meta Learning在NLP领域的一些应用。

哈林之前在学校科研的方向是NLP,个人对「如何将先进的机器学习算法应用到NLP场景」很感兴趣(因为好水paper),同时之前也做过一些尝试(水过一些paper)。因此今天主要介绍一下Meta Learning与NLP任务结合的一些工作,经过哈林亲身实践,相信这一定是个水paper的好方向。话不多说,先上一个自己总结的paper list:

「Github链接:」https://github.com/ha-lins/MetaLearning4NLP-Papers

背景:元学习

通常在机器学习里,我们会使用某个场景的大量数据来训练模型;然而当场景发生改变,模型就需要重新训练。但是对于人类而言,一个小朋友成长过程中会见过许多物体的照片,某一天,当Ta(第一次)仅仅看了几张狗的照片,就可以很好地对狗和其他物体进行区分。

元学习Meta Learning,含义为学会学习,即learn to learn,就是带着这种对人类这种“学习能力”的期望诞生的。Meta Learning希望使得模型获取一种“学会学习”的能力,使其可以在获取已有“知识”的基础上快速学习新的任务,需要注意的是,虽然同样有“预训练”的意思在里面,但是元学习的内核区别于迁移学习(Transfer Learning)。

这里介绍一个经典的基于优化的元学习框架「MAML」[1],(即Model-agnostic Meta Learning)。MAML的目的是获取一组更好的模型初始化参数(即让模型自己学会初始化)。我们通过(许多)N-ways,K-shot的任务(训练任务)进行元学习的训练,使得模型学习到“先验知识”(初始化的参数)。这个“先验知识”在新的任务上可以表现的更好,其算法流程如下图所示:MAML框架

Note:MAML是一个二阶的元学习算法,因为二阶优化计算海塞矩阵的成本较大,因此后续出现了一阶的元学习算法,如:Repitle[2],通过近似二阶导数,可以实现近似MAML的性能。接下来介绍两个MAML在对话系统领域应用的工作。

工作介绍1:DAML

先来看第一篇DAML[3],做的是task-oriented dialogue任务下的domain adaption:举个例子来说,假设我们手头有三个域的训练数据(source domains):restaurant, weather, bus information,然后用少量(few-shot learning)的movie领域数据作为新的target domain来测试dialogue的任务完成性能。这个任务是非常有价值的,目前的task-oriented dialogue的dataset往往是针对特定领域的,如果能实现这种域适应,将会降低很多人工标注成本。

通过这个例子可以看出,这篇paper是在研究transfer learning和few-shot learning(少量的test data),采用的方法则是meta-learning中的经典方法MAML:即通过训练寻找一个优秀的初始化参数,使得仅通过两步梯度下降,就能快速适应到新的target domain上。

DAML算法框架

图中的序号表示执行的先后顺序, 为模型参数,重点看b)图,k=1,2,3分别代表不同的source domain,可以看到DAML采用了两次梯度更新(local和global),先结合域训练数据和初始模型,更新一步得到一个临时model ,再由此来计算meta learning的loss,再通过几次梯度更新原始model。至于为何要经过这个临时model ,应该是因为可以学到一种所有源域普适的表示,而不是针对特定域的直接的特征。

以上就是这篇paper的核心思想,下面看一下具体实现和细节:前文说了这是一个task-oriented dialogue背景的问题,本文借鉴并采用了一种end-to-end的seq2seq模型:Sequicity[3],与domain adaption的SOTA模型ZSDG和transfer learning model进行了比较,在ZSDG提供的SimDial数据集上进行实验,从任务完成情况(Entity F1 score)和Adapting time等多个方面评估比较。

工作介绍2:GEML

接下来是哈林发表在AAAI 2021上的一篇低资源场景下的医疗对话系统的工作GEML[4],旨在通过元学习构建一个跨疾病可迁移的对话系统。

GEML算法框架图

如上图所示,针对医疗对话场景中疾病数据不均衡的现象,GEML首先设计了一个基于外部医疗知识图谱的端到端对话系统,然后通过一种图演化元学习框架来对其进行元训练和迁移。该对话系统包含三个组件:分层上下文编码器、元知识图推理模块与图指导的响应生成器;同样还是类似MAML的思路,只不过针对现有知识图谱对对话实体覆盖不全的问题,本文还通过graph evolving的方法对知识图谱进行丰富。具体的模型细节大家可以去论文里查阅~

总结

通过这两个工作和paper list,可以看到以「MAML」为代表的optimization-based meta learning方法,以其模型无关的灵活性的特点,在各个NLP topic(如:dialog system/ semantic parsing等)的few-shot场景下遍地开花,而其他的meta-learning方法(如metric-based)多集中在解决分类问题上。如何在少量数据场景下构造出合理的meta task,是解决问题的关键。那么问题来了,你会水NLP paper了吗?

参考资料

  • [1] Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks, ICML 2017.

  • [2] On First-Order Meta-Learning Algorithms, arXiv 2018.

  • [3] Domain Adaptive Dialog Generation via Meta Learning, ACL19.

  • [4] Graph Evolving Meta-Learning for Low-resource Medical Dialogue Generation, AAAI 2021.

如何快速水一篇NLP论文?相关推荐

  1. 竞赛人必备的100篇NLP论文

    来源:Coggle数据科学本文约1400字,建议阅读5分钟论文让我快乐,我爱学习! 给大家推荐100篇重要的NLP论文,论文列表来自于Quora上的一个问题的答案:哪些是所有NLP学生必须阅读的最重要 ...

  2. 史上最大规模ACL大会放榜,百度10篇NLP论文被录用!

    近日,自然语言处理(NLP)领域的国际顶级学术会议"国际计算语言学协会年会"(ACL 2019)公布了今年大会论文录用结果.根据 ACL 2019 官方数据,今年大会的有效投稿数量 ...

  3. 本周不容错过的的9篇NLP论文 | PaperDaily #21

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

  4. 清华大学刘知远教授:如何写一篇合格的NLP论文

    作者 | 刘知远 编辑 | NewBeeNLP 来源 | 左下角阅读原文处 周末重读&分享清华大学刘知远老师的干货文章,虽然题目是如何写一篇合格的NLP文章,但是可以适用于人工智能相关的其他领 ...

  5. 【研究】刘知远:如何写一篇合格的NLP论文

    目录 简介 论文在NLP学术研究中的意义 一篇NLP论文的典型结构 Abstract和Introduction怎么写 Abstract Method怎么写 Experiment怎么写 Related ...

  6. 6个月为50篇AI论文写摘要,网友:这有啥,我曾被要求1.5小时内复现一篇论文...

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨机器之心 编辑丨极市平台 导读 快速阅读论文是研究人员不可或缺 ...

  7. 清华NLP实验室刘知远:如何写一篇合格的NLP论文

    Datawhale干货 作者:刘知远,清华大学,来源:大数据文摘 本文作者刘知远为清华大学计算机科学与技术系副教授 .刘老师总结了研究者在写NLP论文时常见的几类问题,并写成了这篇文章.除了对于NLP ...

  8. 如何快速写出一篇核心论文?

    论文的创作对于每个人来说都是一件难事,因为论文是一个人对自己学过的知识的总结.论文的创作需要熟悉掌握一定的专业知识,要能将这些理论知识应用到论文中.在学习生活中你可以发现有些同学写论文需要好长时间,有 ...

  9. 开局一段扯,数据全靠编?真被一篇“神论文”气到了

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 文 | 苏剑林(追一科技) 编 | 智商掉了一地 看来以后我们看论文的时候,不仅要关心 ...

  10. 又为写作思路熬到秃头?这16篇最新论文打包送你

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

最新文章

  1. qDebug 的用法
  2. uiwebview 加载本地js、css、img,html从网站加载
  3. 启动 Tensorboard
  4. JavaScript 技术篇-使用js代码获取浏览器窗口标题名,js获取页面URL地址
  5. scorecardpy库的使用简介
  6. 前端JavaScript基础知识点
  7. sql如何实现明细账_SQL 如何实现动态的行列转置
  8. 建立数组并写入数据_VBA学习笔记19:数组1
  9. 如何在旅途中提升 MacBook 电池电量?
  10. Cookie机制小记
  11. 单片机涡轮流量传感器_青天仪表为您介绍安装涡轮流量计需要注意问题
  12. sas ods html的作用是什么意思,SAS ODS
  13. 天秀!花费 200W 设计的新版 “小米”图标,看看用Python怎么绘制?
  14. 91 全能地图下载器和 bigemap地图下载器哪个好用?
  15. ruby + watir 自动化上传图片文件解决方案
  16. 通配符 [概述][Java]
  17. 《玩儿起来吧》MATLAB 实时图像处理系列(一二三四)
  18. 理性讨论: 《崩坏3》是不是目前打击感最好的动作手游?
  19. 基于STM32F1系列和LDV5语音模块的语音控制LCD屏幕的点亮
  20. 中国大数据金融中心崛起:贵州落子大数据

热门文章

  1. java day60【 Spring 中的 JdbcTemplate[会用] 、Spring 中的事务控制 、Spring5 的新特性[了解] 】...
  2. Codeforces Edu Round 68 (Rated for Div. 2)
  3. java day03【 流程控制语句】
  4. 定时任务 Wpf.Quartz.Demo.3
  5. JavaScript实现按字典排序进行md5加密, 以及个人在小程序也可以实现
  6. 2017-2018-1 点集拓扑
  7. 你不得不知道的流程规范@多方配合的需求质量控制
  8. Spark on Yarn遇到的几个问题
  9. iOS_SN_详解沙河(转载)
  10. 详细介绍一下 Smoke Testing(冒烟测试)