Lecture 17: Multitask Learning as Question Answering


Richard Socher

Motivation

What’s next for NLP & AI?
在这里插入图片描述

  • NLP发展历史:基于特征工程的机器学习方法,使用深度学习来学习特征(用向量表示词),对特定任务的深度学习架构,接下来是什么····

The Limits of Single-task Learning

  • 给出{数据,任务,模型,评测}之后,在某些特定任务中近些年进步很大
  • 只要 |数据量| > 1000 × C,那么我们就能获得局部最优的结果, C C C为类别数目
    • 如imageNet有1000个类,每个类别有1000张图片,目前已经做的很好
  • 对于更一般的人工智能,我们需要在一个模型中不断学习
  • 模型通常是从随机开始的,或者只是部分预先训练过的——> 😟

Pre-training and sharing knowledge is great!

计算机视觉:

  • ImageNet + CNN ——> huge success
    在这里插入图片描述
  • 分类是视觉上的障碍:如果你甚至都不能把一只猫和一个人区分出来,其他任务就更加难做

NLP:

  • Word2Vec,GloVe,Cove,ELMo,BERT ——>beginning success
    • 单纯的词向量到后来具有上下文表示的词向量
      在这里插入图片描述
  • 自然语言处理中没有单独的阻碍任务
  • 为什么不预训练整个模型呢?

Why has weight & model sharing not happened as much in NLP?

  • NLP需要多种推理:逻辑,语言,情感,视觉,++
  • 需要短期和长期记忆
  • NLP被分为中间任务和单独任务以取得进展
    • 在每个社区中追逐基准
    • 例如:当你问 general answer 社区,“这条推特的情感如何?”
      他们竟然无法回答,说这是情感分析的内容,但这确实是一个问题。
  • 一个无人监督的任务可以解决所有问题吗?不可以
  • 语言显然需要监督
    • 如果一个小孩在一个森林里,那么他可能会对视觉方面发展出非常好的能力,而学不会某种语言

Why a unified multi-task model for NLP?

  • 多任务学习是一般NLP系统的阻碍
  • 统一模型可以决定如何转移知识(领域适应,权重分享,转移和零射击学习)
    • 之前是人工决定,比如说如果要进行命名实体识别,那么如果一个词是名词,那么它就更有可能是一个实体。而使用一个模型,那么它将能够自己决定知识的迁移
  • 统一的多任务模型可以
    • 更容易适应新任务
    • 使部署到生产环境的过程简单数倍
    • 降低标准,让更多人解决新任务
    • 潜在地转向持续学习

模型构建

How to express many NLP tasks in the same framework?

  • 序列标记
    命名实体识别,aspect specific sentiment:在一个特定的上下文中,判断一个词是积极的还是消极的
  • 文本分类
    对话状态跟踪,情感分类
  • Seq2seq
    机器翻译,摘要,问答

3 equivalent Supertasks of NLP
在这里插入图片描述

The Natural Language Decathlon (decaNLP)
在这里插入图片描述

  • 将十个任务都写成QA的形式,然后统一训练,与测试。

Multitask Learning as Question Answering
在这里插入图片描述

  • Meta-Supervised learning 元监督学习 :From { x , y } t o { x , t , y } \{x,y\} to \{x,t,y\} {x,y}to{x,t,y} (t 是一个任务)
  • 使用问题 q 作为任务 t 的自然描述,以使模型使用语言信息来连接任务
  • y 是 q 的答案,x 是回答 q 所必需的上下文

Designing a model for decaNLP
需求:

  • 没有任务特定的模块或参数,因为我们假设任务ID是未提供的
  • 必须能够在内部进行调整以执行不同的任务
  • 应该为看不见的任务留下零射击推断的可能性
  • 让模型内部自己去学习,而不是在一开始使用分类器,然后调用子模块去解决不同问题。

A Multitask Question Answering Network for decaNLP

overview
在这里插入图片描述

  • 以一段上下文开始
  • 问一个问题
  • 一次生成答案的一个单词,通过
    • 指向上下文
    • 指向问题
    • 或者从额外的词汇表中选择一个单词
  • 指针开关为每个输出字选择这三个选项

Multitask Question Answering Network (MQAN)
在这里插入图片描述

  • code和leaderboard见 www.decaNLP.com
  • 整个模型将当前深度学习NLP中所有最佳的组件组合在一起
  • 固定的Glove词向量(后来更新为CoVe词向量)+ Charactern-gram embeddings → Linear → Shared BiLSTMwith skip connection
    在这里插入图片描述
  • 从一个序列到另一个序列再到带有跳过连接的序列的注意力总和
  • 这两个序列所有隐藏层状态的外积
    在这里插入图片描述
  • 单独的BiLSTM降低维度,两个 Transformer 层,另一个BiLSTM
    在这里插入图片描述
  • 自回归译码器使用固定 GloVe 和字符n-gram嵌入、两个Transformer 层和一个LSTM层来处理编码器最后三层的输出
    在这里插入图片描述
  • LSTM解码器状态用于计算上下文上的注意力分布和用作指针的问题
    在这里插入图片描述
  • 关注上下文和问题会影响两个开关:gamma决定是从外部词汇表中复制还是选择,lambda决定是从上下文还是问题中复制
    在这里插入图片描述
    评测与结果分析
    在这里插入图片描述
    在这里插入图片描述
  • decaScore是其他特定任务评分的加和

在这里插入图片描述

  • S2S = Seq2Seq
  • +SelfAtt = plus self attention
  • +CoAtt = plus coattention
  • +QPtr= plus question pointer == MQAN
  • 左边是单任务,右边是多任务。左边虽然是同样的架构,但左边相当于40个模型,右边只有4个模型。

在这里插入图片描述

  • 单任务转为多任务时,一开始性能会下降(在论文中很少见,因为如果结果不好一般不会被发表)。还有,如果序列训练不同的任务,一般会认为在训练后面任务时,模型会将之前的任务“忘掉”,但实验发现,虽然会忘掉一些,但只需很少的训练,模型在这个任务上就又会表现良好。
  • Transformer 层在单任务和多任务设置中有收益
  • QA和SRL有很强的关联性(看QA和SRL两行数据)
  • Pointing很重要(看MultiNLI单任务最后三个数字,和Winograd Schemas任务)
  • 多任务有助于zero-shot(QA-ZRE行)
  • 组合的单任务模型和单个多任务模型之间存在差距

Training Strategies: Fully Joint
在这里插入图片描述
在这里插入图片描述

  • 按照顺序,每次从一个Task中取出一个mini-batch来训练

Training Strategies: Anti-Curriculum Pre-training
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 首先在困难的任务中进行训练(红色的任务)(例如SQuAD和机器翻译),然后加入简单的任务。
  • 困难: 在单任务设置中收敛多少次迭代
  • 对比 fully joint 方式,anti-curriculum 训练提高了QA任务的性能,但MT 性能依旧很差
  • 一个解释:其他任务只需要使用 answer module 从得到的隐藏层表示中指出答案,而 MT需要在一个很大的词表上使用softmax来生成结果,因为其他任务训练得到的 softmax 对于MT来说可能不太有用

Closing the Gap: Some Recent Experiments
在这里插入图片描述

  • 经过一系列优化(变换训练方式、更换词向量、在MT上训练更多),最终MQAN总分与单独的十个模型分数总和只差了一个点
    在这里插入图片描述

Pretraining on decaNLPimproves final performance

  • 例如:增加 IWSLT 语言对
  • 或者新的任务,比如命名实体识别
    在这里插入图片描述
  • 都能在短时间内快速收敛,并且预训练会提高模型表现

Zero-Shot Domain Adaptation of pretrained MQAN

  • 在 Amazon 和 Yelp reviews 上实现了80%的准确率
  • 在 SNLI上实现了 62%的准确率(经过 fine-tuning可以达到 87%的准确率)

Zero-Shot Classification

  • question pointer能够使模型可选择的从问题中找出答案,而不经过任何fine-tuning(例如,将标签 positive 转为 happy/supportive,将 negative 转为 sad/unsupportive)
  • 能使模型不经过任何训练就能回应新的任务
    在这里插入图片描述

decaNLP: A Benchmark for Generalized NLP

  • 为多NLP任务(问题)训练一个单独的问答模型
  • 需要处理的框架
    • 更泛化的语言理解
    • 多任务学习
    • 领域适应(domain adaptation )
    • 迁移学习
    • 权重分享、预训练、微调
    • zero-shot 学习

Related Work (tiny subset)
在这里插入图片描述

What’s next for NLP?

在这里插入图片描述

总结

  • 作者提出了继机器学习、深度学习、对特定任务研究特定的神经网络架构之后,单个多任务模型是以后研究的热点
  • 讲了一个模型,将十个任务混合在一起,组织成统一的QA模式。
  • 对具体模型分别训练,和将所有任务混合在一起训练进行了对比,起初两者差距很大,后来进行了一系列优化使得两种方式的性能都提高了,并且两者分差不大
  • 作者的思想是,构建一个更加泛化的模型,不同任务学习到的知识可能能够相互促进。其中包含了很多要处理的问题:多任务学习、领域适应、迁移学习、权重分享等等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值