这篇论文在GPT模型的基础上,根据人类认知科学,提出了对非抽取式阅读理解任务的三个优化策略,分别被作者称为前后阅读(BACK AND FORTH READING,BF),高亮阅读(HIGHLIGHT, HL),自我评价(SELF-ASSESSMENT,SA),实际上分别对应输入策略,附加信息,数据增强的策略,对如何进行阅读理解的优化有启发作用。
作者认为,相对于抽取式阅读理解问题,非抽取式的任务由于其不限定于用原文回答,大部分问题不在原文出现,因此需要多样的阅读技巧才能回答,比抽取式的简单匹配更能体现阅读能力。
上图展示了几个非抽取式数据集的统计信息和非抽取问题的比例。
作者认为,预训练模型的提升要求的代价很大,从计算力方面和语料方面皆是如此。作者认为在fine-tuning阶段的训练策略也可以很大提升性能。
实际上,就是压榨模型的能力。当然,作者提出的策略也很有启发意义。
作者研究了人类认知学的几篇论文
Measuring esl students’ awareness of reading strategies
Assessing students’ metacognitive awareness of reading strategies.
iSTART: Interactive strategy training for active reading and thinking
提出了三个在实验中证明有效提升效果的策略:
前后阅读(BACK AND FORTH READING,BF):为了找到答案,常常反复按不同顺序进行阅读,在模型中,作者用颠倒问题、答案、文章的输入顺序来模拟这一点。
高亮阅读(HIGHLIGHT, HL):阅读时,高亮有用的信息常常有利于记忆,在模型中作者通过将文章的词嵌入附加问题、答案相关信息来模拟这一点。
自我评价(SELF-ASSESSMENT,SA)阅读时,人类通常会通过对自己提问题来确定自己对文章的理解。作者通过从文章中生成一些问题进行反复训练来模拟这点。
实际上SA策略只是通过数据增强来进行训练,而没有在实际预测时进行这一操作,从这一点说,这一策略并不能被称为“自我评价”,只是作者往概念上凑的。
作者简单地将阅读理解问题(主要是针对现有数据集)分为了两类:抽取式和非抽取式,抽取式是从文章中摘取一段作为回答,这点没有什么争议,但在本文中作者认为非抽取式都可以转化为多项选择,即我们平时英语考试的阅读理解问题,代表性的数据集是MCTest和RACE。
文章中,对这类问题的定义为,给定一个文章 d d d,一个问题 q q q,目标是从答案集合 { o 1 , o 2 , . . . , o n } \{o_1,o_2,...,o_n\} {o1,o2,...,on} 中选择出一个正确答案。
特别的,对于文中用的GPT模型,每次输入是 一组 ( d , q , o i ) (d,q,o_i) (d,q,oi),并在对所有 o i o_i oi计算出结果后使用softmax得到分类结果。
作者使用了GPT作为基线模型,总体的模型架构如下图所示:
将在下文对上图进行解释。
如上文描述,GPT的单次输入可以描述为:[dq$o],其中,“[”、“]”分别表示开始符,“$"表示结束符。
作者应用这一策略的方式是,将它们的顺序变为: [o$qd],但其中token的顺序不变。单独训练一个模型,之后将这两个模型进行集成。集成的方式作者没有说,但可以尝试用boost,决策树之类的吧。
作者使用为文章的词嵌入附加问题、答案信息的方式实现“高亮”机制。
实现的方法比较有意思,首先,定义一个词性 (part of speech, POS) 标签集合:例如{名词,动词,数字,舶来词,等等}。
对于每一次前馈的 ( d , q , o i ) (d,q,o_i) (d,q,oi), 作者对 d d d中的每个token, d j d_j dj进行处理:
d j i = { d j + l + , P O S ( d j ) ∈ T 且 d j ∈ q 或 o i d j + l − , 其 他 d^i_j=\begin{cases}d_j + l^+ & ,POS(d_j)\in T 且d_j\in q 或o_i\\d_j + l^- & ,其他 \end{cases} dji={dj+l+dj+l−,POS(dj)∈T且dj∈q或oi,其他
其中 l + l^+ l+ 和 l − l^- l− 是可训练的向量,随机初始化。
区别于之前手工特征中为 d j d_j dj附加一位来标注是否出现的做法,作者加了一步判断词性,以此去除停用词等的影响。并且,使用可训练向量而不是标志位,更有利于模型的判断,是一个很好的做法。
作者提出了一种数据增强的方法:
首先选取一段终端任务(这里作者指RACE数据集)中的一篇文章,进行不超过 n q n_q nq次以下操作:
其中几个超参数用于控制数量和问题难度。
这样就生成了一些新的问题。
作者整体训练时,首先对RACE数据集运用SA策略,选取 n q = 10 , n s = 3 , n c = 4 , n t = 4 n_q=10,n_s=3,n_c=4,n_t=4 nq=10,ns=3,nc=4,nt=4,得到了119k个新的数据。首先用这些生成的数据训练一个epoch,然后在RACE数据集上训练5个epoch,之后,在具体的下游任务(指具体要测试的数据集)训练最多10个epoch。
在HL中的T定义为{NN, NNP, NNPS, NNS,VB, VBD, VBG, VBN, VBP, VBZ, JJ, JJR, JJS,RB, RBR, RBS, CD, FW}。
作者在RACE数据集上的结果以及消融分析如上图,其中RACE-M和RACE-H分别代表初中和高中级别的问题(RACE数据来自于中国英语考试)。
作者将RACE中的问题大致分为五类:details 事实细节,inference 推理,main 文章主题,attitude作者态度, vocabulary 词汇知识。
并得到下图分析:
可以看出,采用SA和HL对所有问题都有了一定提升,而BF对于主旨问题有更好的表现。
作者分析了一些错误样例,发现82%需要至少一个外部知识,而19.7%需要指代解析知识。
作者也尝试了一些其他的认知学的策略,例如总结(即附加抽取摘要信息),发现并没有提升。
对于BF策略,作者也尝试了其他的顺序,也都有少量提升。
对于HL策略,作者尝试加入指代信息,也没有得到很多提升
作者尝试使用Wiki进行SA操作,也稍微提高了一些,但比RACE少提升一个百分点。
我个人猜想,HL加入指代没有提升是由于作者简单地向量相加,这样才能不该变GPT的结构,而这并不适合添加指代信息。
作者使用了一些策略将其他数据集形式转变为问题定义中的形式,这里不细表。都取得了比基线更好的效果。