APP下载

基于T5的多项选择题自动生成模型研究

2021-12-08张利明

曲靖师范学院学报 2021年6期
关键词:选择题文本文章

徐 坚,孙 瑜,张利明

(1.云南师范大学 民族教育信息化教育部重点实验室,云南 昆明 650500; 2.曲靖师范学院 信息工程学院,云南 曲靖 655011; 3.云南师范大学 信息学院,云南 昆明 650500; 4.曲靖师范学院 文化旅游学院,云南 曲靖 655011)

0 引 言

近年来,人工智能教育研究的前沿是深度学习[1],尤其基于深度学习的自然语言处理研究更具挑战[2].自然语言处理 (Natural Language Processing, NLP) 是研究计算机处理和理解文本及语音以完成某些任务的研究领域.NLP 扎根于许多其他研究领域,如计算机和信息科学、语言学、数学、电气工程、人工智能、机器人学和心理学.NLP研究包括两个方向:自然语言理解和自然语言生成.多项选择题生成作为一项对话和话语任务,它同时利用自然语言理解和自然语言生成.

多项选择题研究是NLP领域的重点和难点,因为它涉及问题的自动生成和干扰项的智能生成.虽然当前已有一些文献开展问题生成和干扰项生成方面的研究[3-5],但是他们普遍采用复杂的模型架构、广泛的特征和额外的机制,导致这些模型难以训练、代码复现,这种庞杂的问题生成思路对探索自然语言生成的学习者构成了很大挑战.[6]为此,文章旨在以谷歌2019推出的最先进的文本生成模型——T5模型[7]为基础,清晰且完整地呈现端到端多项选择题自动成流程,并通过实验验证.

文章的结构如下,第二节分析问题生成和干扰项生成的研究进展,第三节探讨多项选择题自动生成的模型架构和代码实现,第四节开展实验研究,第五节对全文作总结.

1 相关工作

多项选择题生成任务包括三个子任务:问题(题干)生成、正确答案生成和干扰项(错误答案)生成.创建一个多选选择题涉及三个要件:一个问题、一个正确答案、三个干扰项.鉴于答案生成属于问题生成的子任务,本节重点讨论问题生成和干扰项生成的相关工作.

上世纪50年代以来,问题生成主要基于规则和模型的方法,但机器生成的问题与人类生成的问题在性能上有较大差距.随着人工智能的发展,深度神经网络的发展为自动问题生成提供了新契机,特别是谷歌大脑团队提出的基于多头注意力机制的Transformer架构[8],颠覆了传统的基于RNN的Seq2Seq问题生成模型,促使问题生成模型的训练速度和问题生成质量产生了巨大飞跃,从此引领自然语言问题生成进行了Transformer时代.基于Transformer演变出多种模型变体,比较著名的BERT、GPT、T5(text-to-text transform transformer,T5)[9]等.T5是谷歌于2019年推出的一款具有划时代意义的通用型文本生成框架,它改变了人们对自然语言生成的思维模式和研究模式.T5基于Transformer架构,旨在将一切文本生成任务如翻译、自动摘要、文本分类、问题生成等统一整合为text-to-text的任务,即,以输入为文本,输出也为文本,其思想精髓为文本到文本的迁移学习.T5具有易用性,由于它要将所有的自然语言生成任务转换成text-to-text(文本到文本)任务,为了区分不同任务类型,它通过对输入文本格式化来实现,例如,对于问题生成任务,输入文本为:“generate question: 42 ”,则输出文本为“What is 42? ”;中英翻译时,输入文本“translate Chinese to English: 我爱深度学习”,则输出文本“I enjoy deep learning”.对于情感分类任务,输入文本“sentiment: This movie is terrible!”,输出文本”negative”,表明输入句子具有负面情绪.

多项选择题生成任务的干扰项生成极为困难,因为干扰项可与正确答案在语义上要尽可能相似.通常,干扰项很难从原始阅读理解文章中直接找到.生成干扰项的传统策略主要依赖“选择法”来得到干扰项,选择法又细分为:基于词频的方法,基于词性的方法[10-11],基于共现的方法,基于干扰项与正确答案共现的方法[12],基于机器学习生成干扰项.2017以来,Liang等人[13-14]和Liu等人[15-16]通过组合先前的特征,使用机器学习模型来对干扰项进行排序.生成干扰项的主导方法还基于相似度的方法,通过计算干扰项与正确答案的相似度,比如,句法相似(相似的词性、类似的字母)[17]、特征相似[18-19]、上下文相似[20-21].借鉴前人的研究成果,文章将基于干扰项与正确答案的相似度来生成干扰项,并基于机器学习的方法对这些干扰项进行进一步优化.

2 多项选择题自动生成的模型架构

英语阅读理解多项选择题的自动生成过程较为复杂,具体包括数据集的构建、答案的抽取、问题的生成和干扰项(错误答案)的生成等环节,模型的工作原理如图1所示.

图1 多项选择题的自动生成模型

如图1所示,多项选择题模型旨在根据用户输入文章产生多项选择题——含一个问题、一个正确答案和三个干扰项.本模型用到两个深度神经网络模型:问题生成器和干扰项生成器,二者须经过“预训练+微调”才可用.问题生成器和干扰项生成器都有两个状态“训练中”和“训练后”,训练中的模型继续优化参数,训练后的模型可投入使用.鉴于答案生成和问题生成是孪生兄弟,所以将答案和问题生成合为一模块,干扰项生成是另一模块.在答案和问题生成模块,首先使用NLTK技术从文章抽取答案,其次将答案集馈送至问题生成器(深度神经网络模型)以生成问题,并依据得到的“答案、问题和文章”来生成3个干扰项,最后生成选择题.

2.1 基于T5的答案感知型问题生成

本节将研究基于答案感知生成问题的思想[22],基于T5来生成多先选项题的问题、正确答案、干扰项.

2.1.1 答案片断的抽取

英语语阅读理解出题任务是一种多项选择题生成任务,目前最先进的问题生成技术是基于答案感知(answer-aware),即,先得到答案,再基于答案并结合给定的文章来生成问题,答案的获取一般是从文章中抽取重要的语义概念,如命名实体[23]、动词或数字等,采用的技术有命名实体识别、术语抽取等.

在实验中,文章定义了一个专门进行答案抽取的函数def _extract_answers(self, context),其执行步骤如下:

step 1: 给定输入文本

context = "My name is Jack. I study in CAS."

step 2:预处理输入文本

将输入文本拆分成句子,为了从每个句子抽取answer span,需要对输入文本格式化:

["extract answers:句子1","extract answers: 句子1 句子2"]

以上是文档格式化后的结果,其类型为一个列表,列表长度等于句子个数,每个列表元素只对某个句子的前后分别添加标记,以突出要产生answer span的句子.即,第一个列表元素突出第一个句子,第二个列表元素突出第二个句子,以此类推.为此,输入文本"My name is Jack. I study in CAS."的预处为:

["extract answers My name is Jack.",

"extract answers:My name is Jack. I study in CAS."]

step3:将格式化后的句子转换成张量

inputs_tensor = self._tokenize(inputs,padding=True,truncation=True)

此时,每个句子被转化为一个512维的张量,每个张量元素是一个整数,表示句子中对应单词在词汇表中的编号即id.

step4: 调用答案感知型问题生成模型的生成函数以输出答案片断

outs = ans_model.generate(inputs_tensor['input_ids'].to(self.device),

attention_mask=inputs_tensor['attention_mask'].to(self.device),

max_length=16)

answers = [self.ans_tokenizer.decode(ids, skip_special_tokens=False) for ids in outs]

dec = [self.ans_tokenizer.decode(ids, skip_special_tokens=False) for ids in outs]

answers = [item.split('') for item in dec]

answers = [i[:-1]for i in answers]

step5: 输出用于生成问题的答案

[['Jack'], ['CAS']]

说明:对给定的输入文本"My name is Jack. I study in CAS.",从中抽取得到的答案片断为[['Jack'], ['CAS']],它们将用于下一步的答案感知型问题生成任务.

2.1.2 答案感知型问题生成

通过以上内容,基于给定的输入文本生成了两个答案片断['Jack']和['CAS'],就可生成问题,具体步骤如下:

step1:获取答案片断

['Jack']和['CAS']

step2: 在问题生成任务中对输入文本的预处理

generate question:42

step3:问题生成

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

qg_text = "generate question: I am Jack "

tokenizer = AutoTokenizer.from_pretrained("valhalla/t5-base-qg-hl")

model= AutoModelForSeq2SeqLM.from_pretrained("valhalla/t5-base-qg-hl")

input_ids_mask = tokenizer([qg_text],return_tensors='pt')

output_tensors = model.generate()

for elem in output_tensors:

question_str=tokenizer.decode(elem)

print(question_str)

step4: 输出

What is my real name? Where I study in?

2.2 干扰项的自动生成

多项选择题的干扰项通常很难从源文本直接获取,因此,需要借助其它来源以生成干扰项.作者调查了干扰项生成任务,仅能生成单词或短语的干扰项[24-25],该文章的目标则是生成的干扰项更长且语义丰富.鉴于干扰项生是一项尖端任务,文章仅给出实现思路.

3 实 验

3.1 数据集的构建研究

模型的训练选择RACE数据集(large-scale ReAding Comprehension dataset from Examinations),RACE是一个用于评价阅读理解任务的基准数据集(https://www.cs.cmu.edu/~glai1/data/race/),它的数据来源于中国中学生英语考试中的阅读理解文章及其多项选择题,再由专家加工标注而成,该数据集涵盖2800篇短文的10万个问题,涉及丰富多样的主题.由于RACE中的每篇文章有多个问题,属于是一对多的关系,需要将对输入数据作格式化处理.根据Enrico等人[26]的思想,需要将段落与问题这种一对多的关系作处理,处理方式有两种:段落和文章放在一行(All questions Per Line, AQPL)和每个问题和文章占一行(One Question Per Line, OQPL).鉴于OQPL方式能提升模型性能,文章采用OQPL来加工RACE中的数据.

基于深度神经网络的多项选择题自动生成模型需要大规模的训练数据.然而,数据集的构建是一项耗时耗力的浩大工程,非个人和机构能够轻易完成.近年来,“预训练+微调”技术能较好解决这一问题,首先,在数据丰富的任务上预训练整个模型,使得模型获得通用能力和知识,这就是模型的预训练过程,其次,将该模型迁移到下游任务中,这过程称为模型的微调.在计算机视觉中,已广泛采用迁移学习[27-30],迁移学习是指在预训练时,通常以有监督的方式在诸如ImageNet[31-32]的大型有标签数据集上预先训练模型的参数.相比之下,NLP 中的迁移学习通常采用无监督学习对未标记数据进行预训练.这种方法最近被用于在许多最常见的 NLP 基准测试并获得最优性能[33-36].

因此,文章也将基于“预训练+微调”的思想来构建数据集.当前可用的相关数据集有SQuAD[37]和RACE[38]等,文章根据数据集的适用对象,从数据集RACE中、阅读理解材料中选取3000篇左右的文章,构建数据集.

3.2 实验分析

3.2.1 文章模型与纯T5模型的对比

文章采用Sharmat等[39]开发的评估包,它涵盖的评估指标有BLEU(Bleu_1Bleu_2Bleu_3Bleu_4)、ROUGH_L、METEOR和CIDEr ,其中BLEU评估精确率,ROUGE评估召回率,METEOR同时考虑精确率和召回率.CIDEr 可评估更长的文本.文章模型与纯T5模型的对比见表1.

表1 文章模型与T5的对比

从以上数据可以看出,文章模型先在T5模型预训练,再微基于RACE进行微调,其各项指标优于未开展微调步骤的T5模型.

3.2.2 文章模型中答案感知型和无答案监督型的对比实验

鉴于答案感知型问题生成模型的问题个和质量跟原谅中抽取的答案正相关,最近有人尝试无答案监督的问题生成[40],主要基于transformer技术来实现.为了开展答案感知型和无答案监督型的对比实验,给定同样的输入文本,通过实验比较答案感知型和无答案监督型的区别.

·输入文本

"A group of old classmates,who have succeeded in their work,got together to visit their teacher.Their conversation soon turned to complaining about the stress in their work and life.The teacher went to the kitchen and returned with a large pot of coffee and many cups.Some of the cups are expensive and lovely,but some are cheap and not beautiful.The teacher told them to help themselves to the coffee."

·答案感知型问题生成模型的输出

[{'answer':'the coffee','question':'What did the teacher tell them to help themselves to?'},

{'answer':'the kitchen','question':'Where did the teacher return with a large pot of coffee and many cups?'}]

·无答案监督型问题生成模型的输出

['What did a group of old classmates get together to visit their teacher?',

'When did the teacher go to the kitchen?',

'What were some of the cups expensive and not beautiful?']

以上实验结果表明,答案感知型问题生成模型输出2对“答案—问题”,说明问题的个数和质量受到原文中答案片断质量的限制.形成鲜明对比的是,无答案监督型问题生成模型则得到了更多的3个问题,但由于这些问是随机产生,导致有的答案质量不高.因此,实际的多项选择题任务中,可结合两种方式来生成多样化的问题.

4 结 论

多项选择题自动生成研究包括许多尖端技术,主要包括问题生成和干扰项生成,这些工作虽然前人已有研究,但鲜有文献将二者结合起来研究,以生成可用的多项选择题.为此,文章探索了多项选择题生成框架,并通过实验证明其可行性.文章的研究成果,对于研究者继续开展相关研究和应用,具有理论意义和实践价值.

需要指出的是,本研究虽然能较好实现端到端的选择题生成,但模型效果还有提升空间,如文章的BLUE分值18.96还与人类的表现有较大差异,也表明其研究潜力很大.同时,未来的工作还应进一步研究输入文本格式、长度对模型性能的影响,干扰项的生成只提出思想,代码实现有待进一步研究.

猜你喜欢

选择题文本文章
文本联读学概括 细致观察促写作
单项选择题狂练
数列选择题精选精练
例说速解选择题的几种有效方法
作为“文本链”的元电影
细致入微的描写让文章熠熠生辉
基于doc2vec和TF-IDF的相似文本识别
放屁文章
小处着眼,写大文章
十种妙招握在手 破解选择题无忧