博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
论文笔记|Self-Supervised Test-Time Learning for Reading Comprehension
阅读量:4289 次
发布时间:2019-05-27

本文共 1600 字,大约阅读时间需要 5 分钟。

作者:孙嘉伟

单位:燕山大学


目录


0.研究背景

        1.常见的QA模型在回答问题时依赖于所使用的训练数据集,而在所提供的数据集当中有些信息可能会随着时间的推移发生改变,这就会导致模型输出错误的结果。

        2.与此同时,有监督的QA模型在对抗性样本(adversarial example)、域外样本(domain shift、out of domain)和含有偏见(bias)的样本上表现很差。

        3.阅读理解任务需要大规模标注,成本较高。

        为了摆脱上述监督学习方式训练QA模型所带来的问题,作者提出了一种无监督方法“test-time learning” (TTL)来完成阅读理解任务。让模型在进测试(预测)时根据问题的context上下文,通过自我监督的形式合成训练所需要的问答对,从而进行无监督式的学习,省去了在训练集上的训练过程。


1、TTLRC的形式

        该篇文章研究的仍然是抽取式阅读理解任务,损失函数是答案片段的起始和终止位置的交叉熵损失函数。不同于之前使用标注数据集训练的形式,该方法(框架)使用测试时的文本内容context自动生成问答对,然后使用生成的问答对训练模型。又根据训练的方式不同,分为以下四种方法:

(1)  Single-Context Test-Time RC 给定上下文,模型生成问答并进行训练。

(2)  K-neighbor Test-Time RC ——通过为每个测试上下文检索 top-K 个相关上下文,其他部分与(1)相同。

(3)  Curriculum Test-Time RC.——生成方式与(1)中相同,但按照复杂性递增的顺序学习问题类型。

(4)  Online Test-Time RC.——对每个传入的测试样本按顺序依次微调模型参数。

        TTL框架的整体流程如下图:

2、QA问答对生成方法

一.使用的工具模型

生成问答对的所用到的模型:named-entity recognition from Spacy、dependency parsing from Berkeley Neural Parser、semantic role labeling

二.生成问答对的方法

  1. 通过完形填空的方式挖掉特定词语,生成特定的句子。再根据某些基于规则的方法将该句子转换为更自然的问题。

     
  2. 基于模板的方法:例如“Wh+B+A+?”的形式,然后进行填充即可得到所需要的问答对

  3. 基于依赖分析的问题生成:生成方法如下:

        (1).保留答案的右子节点,修剪左子节点。

        (2).对于解析树的每个节点,如果子节点的子树包含答案,则子节点将移动到第一个子节点。

        (3).对重构树进行有序遍历。采用基于规则的映射,将完形填空的特殊掩码标记替换为适当的Wh-word。

    4.问答语义角色标记,例子如下:

3、实验结果&结论

一.数据集&基础模型

使用SQuAD1.1和NewsQA,在BERTLarge trained with wholeword masking和DistilBERT来验证模型效果

二.实验效果

作者比较了其他无监督方法和论文所提出方法在两个数据集上的EM 和F1值:

同时还进行了消融实验,比较出了4种训练方法对模型最终效果的比较:

 少样本(few-shot)情况下模型表现效果:


4、总结

       提出了Test-time-learning(TTL),一种无监督抽取式问答的训练框架。并根据训练和上下文扩展方法的不同给出了TTL的四个变体,其中使用K-neighboring contexts of the test context方法效果最好。使用四种问答对生成方法进行无监督的抽取式阅读理解模型训练,其中使用QA-SRL作为问答对的生成方法效果最好。文中还比较了大模型(BERT-large)和小模型(DistilBERT)的效果,结果显示两者之间差距不大。


论文地址:

转载地址:http://yemgi.baihongyu.com/

你可能感兴趣的文章
MYSQL 相关
查看>>
python 构建client 程序
查看>>
c++ 加载so动态库中的资源
查看>>
加解密 签名
查看>>
linux top 命令分析
查看>>
Linux vmstat命令详解
查看>>
linux pmap命令
查看>>
MySQL数据同步【双主热备】
查看>>
Mysql主从复制实践手册
查看>>
nginx配置正向代理支持HTTPS
查看>>
Perf -- Linux下的系统性能调优神器
查看>>
C++ 用libcurl库进行http通讯网络编程
查看>>
秒杀多线程第十篇 生产者消费者问题
查看>>
信号量与互斥锁
查看>>
linux 查看CPU个数,核数
查看>>
string 序列化
查看>>
va_start(),va_end()函数应用
查看>>
crontab命令
查看>>
State Threads——异步回调的线性实现
查看>>
va_start va_end
查看>>