Processing math: 41%
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

自适应的流水线式无监督问题生成方法

李昆泽, 张宇

李昆泽, 张宇. 自适应的流水线式无监督问题生成方法[J]. 计算机研究与发展. DOI: 10.7544/issn1000-1239.202330857
引用本文: 李昆泽, 张宇. 自适应的流水线式无监督问题生成方法[J]. 计算机研究与发展. DOI: 10.7544/issn1000-1239.202330857
Li Kunze, Zhang Yu. Adaptive Pipeline Unsupervised Question Generation Method[J]. Journal of Computer Research and Development. DOI: 10.7544/issn1000-1239.202330857
Citation: Li Kunze, Zhang Yu. Adaptive Pipeline Unsupervised Question Generation Method[J]. Journal of Computer Research and Development. DOI: 10.7544/issn1000-1239.202330857
李昆泽, 张宇. 自适应的流水线式无监督问题生成方法[J]. 计算机研究与发展. CSTR: 32373.14.issn1000-1239.202330857
引用本文: 李昆泽, 张宇. 自适应的流水线式无监督问题生成方法[J]. 计算机研究与发展. CSTR: 32373.14.issn1000-1239.202330857
Li Kunze, Zhang Yu. Adaptive Pipeline Unsupervised Question Generation Method[J]. Journal of Computer Research and Development. CSTR: 32373.14.issn1000-1239.202330857
Citation: Li Kunze, Zhang Yu. Adaptive Pipeline Unsupervised Question Generation Method[J]. Journal of Computer Research and Development. CSTR: 32373.14.issn1000-1239.202330857

自适应的流水线式无监督问题生成方法

基金项目: 国家自然科学基金项目(62277002)
详细信息
    作者简介:

    李昆泽: 2000年生. 硕士研究生. CCF学生会员. 主要研究方向为自然语言处理、问题生成

    张宇: 1972年生. 博士,教授,博士生导师. CCF会员. 主要研究方向为自然语言处理、问答系统、信息检索

    通讯作者:

    张宇(zhangyu@ir.hit.edu.cn

  • 中图分类号: TP391

Adaptive Pipeline Unsupervised Question Generation Method

Funds: This work was supported by the National Natural Science Foundation of China (62277002).
More Information
    Author Bio:

    Li Kunze: born in 2000. Master candidate. Student member of CCF. His main research interests include natural language processing and question generation

    Zhang Yu: born in 1972. PhD, professor, PhD supervisor. Member of CCF. His main research interests include natural language processing, question answering system, and information retrieval

  • 摘要:

    在传统的问答任务中,模型一般需要大量的数据进行训练,而标注这些数据需要较多的时间和人力成本. 无监督问题生成是解决问答任务训练数据匮乏的一种有效方法,但是目前使用该方法生成的问题存在难以回答、种类单一、语义不明等问题. 针对这些问题,提出了一个自适应的多模块流水线式模型ADVICE,多个模块分别从问题可回答性、问题多样性和语法规范性对现有方法进行改进. 在问题可回答性模块中,使用了共指消解和命名实体识别技术来提升问题的可回答性. 在问题多样性模块中,针对不同提问方式的问题设计了不同的规则来提升问题类型多样性与答案类型多样性. 在语法规范性模块中,基于T5训练了一个针对问句的语法错误纠正模型,并设计了一个筛选模块对纠正后的问答数据进行过滤. 最后,训练了一个分类器自动选择所需要的模块. 实验表明,使用改进后的问题生成方法,下游的问答模型在SQuAD数据集上的EM值平均提升了2.9百分点,F1值平均提升了4.4百分点.

    Abstract:

    In traditional question-answering tasks, models generally require extensive data for training, which entails considerable time and manpower costs for data annotation. Unsupervised question generation represents an effective solution to address the scarcity of training data in question-answering tasks. However, the questions generated using this approach currently suffer from issues such as being difficult to answer, lacking variety, and having unclear semantics. To address these issues, we propose an adaptive multi-module pipeline model named ADVICE, with modules improving existing methods in answerability, question diversity and grammatical correctness. Within the question answerability module, we employ coreference resolution and named entity recognition techniques to improve the answerability of questions. For question diversity, we design specific rules for various question types to enhance the diversity of question and answer types. In the grammatical correctness module, a grammar error correction model targeted at questions is trained based on T5 model, and a filtering module is designed to refine the generated question-answer data. Finally, a classifier is trained to automatically select the necessary modules. Experiments demonstrate that the improved question generation method enhances the performance of downstream question-answering models on the SQuAD dataset, with the EM (exact match) score increasing by an average of 2.9% and the F1 score by an average of 4.4%.

  • 问答(question answering,QA)任务要求机器回答以自然语言形式提出的问题. 但是,现阶段效果比较好的问答模型一般都需要大量的数据进行训练,而标注这些数据需要大量的时间和人力成本. 在这样的前提下,问题生成(question generation,QG)任务应运而生. 问题生成任务定义为:给定一个自然语言的文本,自动生成内容相关、语法通顺的问题[1]图1给出了一个问题生成任务的示例:

    图  1  问题生成示例
    Figure  1.  Example of question generation

    图1中“上下文”部分是一段英文文本,作为任务的输入;“问题”和“答案”部分是问题生成任务的输出,由若干个问答对组成. 在本例中,输出由2个问题及对应的答案组成,每个问题均可以根据上下文中的文本信息作答.

    问题生成可以在一定程度上缓解问答领域的数据缺乏问题. 在缺乏人工标注的问答数据时,可以利用问题生成技术,在短时间内生成大量数据. 与此同时,问题生成在教育领域同样有很强的应用价值. 问题生成技术可以缓解教育工作者们在出题上的压力,从而使他们可以花费更多时间在其他更重要的教学活动上. 并且,问题生成技术生成的问题可以作为额外的教学资源供学生练习使用[2],并利用人工智能辅助教育[3].

    问题生成通常可以分为有监督和无监督2种. 有监督问题生成通常将该任务建模成Seq2Seq问题,并利用现有的问答数据集来对深度学习模型进行训练,代表工作来自Dong等人[4]提出的UniLM. 但是,有监督问题生成模型仍然需要人工标注的数据进行训练,从而不能完全解决数据匮乏的问题. 无监督问题生成常常直接利用规则等无监督方法来从文本中生成问题,代表工作为Lewis等人[5]提出的ClozeQA方法,先生成一个完形填空形式的问题,再转化为最终问题,或者使用深度学习模型对生成的问题进行优化,代表工作为Li等人[6]提出的RefQA,使用BERT[7]模型对生成的问题进行优化. 这些方法不再需要人工标注问答数据,从而可以更好地解决问答模型训练数据短缺的问题. 因此,本文主要研究无监督问题生成.

    本文发现现有的无监督问题生成方法虽然能在一定程度上缓解问答领域的数据匮乏问题,但使用这些方法得到的数据训练问答模型的效果仍不够理想,与使用人为标注数据训练模型的效果还有较大差距. 除此之外,生成问题本身的质量也不够高,这会导致问题很难应用在真实的教育场景中,从而影响问题的教育价值. 经过分析,本文发现现有方法存在着难以回答、种类单一、语义不明等问题,并针对这些问题设计了问题可回答性(answerability)、问题多样性(diversity)和语法规范性(grammatical correctness)的改进模块. 在此基础上,本文还训练了一个分类器为具体样本自动选择所需要的模块,最终构建了一个完整的流水线式模型ADVICE.

    在问题可回答性的改进模块中,本文借助共指消解与命名实体识别技术从不同角度对问题的可回答性进行了改进;在问题多样性的改进模块中,以提问方式对问题进行区分,针对不同的提问方式设计了基于规则和句法分析的方法来提升问题的多样性;在语法规范性的改进模块中,基于自建数据集训练了一个语法错误纠正模型来改进问题的语法规范性,并保证对问题的语义不做过度修改. 这3个模块形成了一种流水线式的结构,具体样本会根据分类器的判断结果通过其中的若干模块.

    实验表明,现有无监督问题生成方法得到的问答数据在经过本文提出的流水线式模型修改后作用在下游的问答模型上,模型在SQuAD[8]数据集上的EM值和F1值相较于之前分别平均提升2.9个百分点和4.4个百分点. 除此之外,本文还验证了改进方法可以在一定程度上提高生成问题的质量,从而提升问题的教育价值.

    本文的主要贡献有3点:

    1)提出了一种自适应的多模块流水线式模型,缓解了现有问题生成方法在可回答性、多样性、语法规范性等方面存在的问题,在改善生成问题质量的同时有助于提升下游问答模型的性能.

    2)提出了一种由分类任务指导下游问题生成方法的新思路,能够根据具体情况选择合适的生成策略,进行更加精细化的问题生成.

    3)通过在公共数据集SQuAD上进行实验和人工评价,验证了本文方法在提升下游问答模型的性能和改善生成问题的质量方面的有效性.

    近年来,随着问答领域对数据的需求量越来越大,问题生成技术逐渐得到越来越多的关注,而这其中最能有效缓解数据缺乏问题的便是无监督问题生成. 抽取式问答是问答领域的主流方向之一,与此同时抽取式的问题生成也是问题生成领域较早开展的工作. 现有的抽取式无监督问题生成方法大致可以分为两大类:基于规则的方法和规则与深度学习相结合的方法.

    1)基于规则的方法. 这类方法使用人为设计的规则进行问题生成,生成问题的效率较高. Lewis等人[5]选择名词短语或命名实体作为答案,进而对文本中的答案部分进行遮盖(mask)操作,从而生成一个完形填空形式的问题. 进而分别提出4种方法将这些问题转化成更自然的问题. 这4种方法分别是:①Identity Mapping,直接使用疑问词来替换被遮盖的部分来生成问题;②Noisy Clozes,对完形填空形式的问题施加随机的干扰(如词序变换等),然后随机或利用启发式算法确定疑问词;③Rule-Based,利用现有的Heilman等人[9]提出的方法将陈述句转化成问题;④Seq2Seq,利用一个无监督机器翻译模型进行转化. 经过实验发现,利用无监督机器翻译模型生成问题的效果最好. Fabbri等人[10]提出了一种两步式的方法. 针对待提问的句子,首先在语料库中寻找与之相似的句子,然后利用这个相似的句子结合模板生成问题. 假设返回的句子为[A][Answer][B]的结构,该方法可以生成形如“A+Wh+B+?”和“Wh+B+A+?”两种形式的问题. 基于规则的方法虽然效率很高,但由于规则往往很难考虑到所有可能出现的情况,导致生成问题的质量参差不齐.

    2)规则与深度学习相结合的方法. 这类方法将规则与深度学习相结合,比完全基于规则的方法要更加灵活、更加有效. Li等人[6]提出了RefQA方法. 这一方法很好地利用了维基百科的特点,把被引用的文档作为原文,使用当前引用的句子生成问题. 这很好地解决了生成出的问题和原文有大量单词重合的问题. 在生成问题时,该方法利用了依存解析树来将完形填空形式的问题转化成更自然的问题,并使用BERT模型进行筛选. Lyu等人[11]将新闻类的数据作为原文,将人为标注的摘要作为待提问的句子来生成问题,生成模型选用的是BART[12]. 由于摘要是人为标注的,质量很高,并且和原文之间的重复率低,不容易产生冗余信息,所以最终生成问题的效果也比较好. Nie等人[13]从答案的多样性角度入手,提出了DiverseQA方法,发现SQuAD,NewsQA[14]等数据集中以命名实体作为问题答案的大约占总问题答案数的50%,而现有无监督问题生成方法生成出的问题几乎都以命名实体作为答案,过于单一. 文献[13]提出了一种改进答案多样性的方法,步骤为:①提取句子中的命名实体;②迭代地对包含命名实体的短语进行拓展,直到该短语的长度超过一定阈值停止迭代;③利用BERT模型对生成的问题进行筛选. 规则与深度学习相结合的方法中,深度学习模型常常只起到一个筛选、过滤的作用,导致最终生成问题的质量虽略有提升但仍然不够理想,且生成速度较慢.

    现有的无监督问题生成方法基本秉持着“先确定答案,再生成问题”的思路. 在生成问题时,为了避免生成的问题与原文重叠率较高,部分方法选择利用一些外部语料生成问题,导致生成出的问题难以回答,可回答性较差;在确定答案时,现有方法通常选择命名实体作为答案,提问方式也是预先定义好的,导致问题单一、多样性较差;除此之外,部分方法选择基于规则的方法来生成,导致生成出的问题存在语法错误、语义不明、语法规范性较差.

    本节提出的自适应流水线式模型ADVICE可以看作是对现有无监督问题生成方法的“后处理”,即不对原方法进行任何修改,而是对其生成的问答数据进行进一步的处理. ADVICE包含3个模块和1个分类器. 图2是模型的整体结构图.

    图  2  ADVICE模型整体结构图
    Figure  2.  Overall structure diagram of ADVICE model

    现有无监督问题生成模型生成出的问答数据会首先输入分类器. 分类器分别从可回答性、多样性和语法3个角度对问题进行判断与分类,并根据分类结果选择相应的模块. 这3个模块是流水线模型的主体,问答数据会按照编号从小到大的顺序依次通过被分类器选中的模块,并最终输出修改后的数据. 下文将依次介绍图中的3个改进模块和分类器.

    经过分析,本文发现主要有三大类情况导致问题难以回答,它们分别是代词指代模糊、含有冗余信息和疑问词有误. 图3中是3种情况的实例展示与解释说明.

    图  3  不可回答问题示例
    Figure  3.  Examples of unanswerable questions

    本文将采用共指消解(coreference resolution,CR)技术和命名实体识别(named entity recognition,NER)技术来分别针对上述3种情况提出相应的改进方法.

    在模型的选择方面,本文选择的共指消解模型是fastcoref模型,该模型与当前的SOTA模型表现相当,但是推理速度较快. NER模型本文选择了huggingface上的flair/ner-english-ontonotes预训练模型,该模型的准确率较高且使用方便.

    设上下文为c,基于该上下文利用现有的问答模型生成了N个问题,记为{qi}Ni=1. 每次选取一个问题进行模糊代词替换. 设第k次选择的问题为qk,将其与上下文连接后输入至共指消解模型中. 模型会输出若干个聚类S={sl},每个聚类中出现的所有单词指代同一个命名实体. 对于qk中的某个代词w,若存在l,使得wslsl中的其他命名实体均不在qk中,就认为w是指代模糊的,应该被替换掉. 可以随机选择sl中的任何一个命名实体对w进行替换,得到修改后的问题qk.

    设上下文为c,基于该上下文利用现有的问答模型生成了N个问题,记为{qi}Ni=1. 每次选取一个问题进行冗余信息删除. 设第k次选择的问题为qk,将其与上下文连接后输入至共指消解模型中. 模型会输出若干个聚类S={sl},每个聚类中出现的所有单词指代同一个命名实体. 同时利用命名实体识别技术找到qk中的所有实体E={et},对于其中的某个实体e,若不存在l,使得esl,就认为实体e是冗余的,应该删去,得到修改后的问题qk.

    这里对esl的判断实际上是一个模糊匹配问题. e是由NER模型识别得到的,而sl是由CR模型得到的,即使指代的是同一实体,esl中单词的表述也未必完全相同,因此需要进行匹配.

    设当前问题中识别到实体e的开始与结束下标分别是e1e2,聚类sl中对实体的某一次提及m的开始与结束下标分别是m1m2. 定义函数f(,)为:

    f(e,m)={1,if m1 (1)

    利用NER模型对现有答案涉及的上下文中的句子进行命名实体识别,将识别到的实体类型与问题中的疑问词类型进行比对,如果不符合,则按照表1中的映射关系进行修正. 如果实体类型对应的疑问词为“how many”或“how much”,则随机选择其中之一作为修正后的疑问词.

    表  1  实体类型-疑问词映射表
    Table  1.  Entity Type-Query Word Mapping Table
    实体类型 疑问词
    PERSON,NORP,ORG who
    GPE,LOC,FAC where
    PRODUCT,EVENT,WORK_OF_ART,LAW,LANGUAGE what
    TIME,DATE when
    PERCENT,MONEY,QUANTITY,ORDINAL,CARDINAL how many/how much
    下载: 导出CSV 
    | 显示表格

    本节针对不同疑问词提问设计了3种策略来提升问题的多样性.

    1)以when或where提问的问题

    受到Sun等人[15]的启发,本文注意到了对时间和地点提问时人类会倾向于用更具体的提问方式(例如图4中的例子),而不是单纯地使用“when”或者“where”进行提问.

    图  4  问题多样性示例
    Figure  4.  Example of question diversity

    本文注意到现有无监督问题生成的方法在生成时间、地点相关的问题时,在疑问词后常常会出现一个表示时间或地点的介词. 本文利用这一规律进行规则的设计.

    设原问题q=A+B+C,其中A是“when”或“where”,B是一个介词,C是问题中剩余的所有单词;原答案为a. 本文通过式(2)(3)对原问答对进行修改(设修改后的问题为 q' ,答案为 a' ).

    q' = \left\{ {\begin{aligned} & {B + {\text{what}} + [type] + C,}\;\;{{\text{if }}p \lt 0.5,{\text{ }}} \\ & A + C{\text{ }},\;\;{{\text{if }}p \geqslant 0.5,} \end{aligned}} \right. (2)
    a' = \left\{ \begin{aligned} &a,\;\;{\text{if }}p \lt 0.5, \\ &{B + a,}\;\;{{\text{if }}p \geqslant 0.5,} \end{aligned} \right. (3)

    其中[type]表示答案的类型(例如:如果答案是年份,那么其类型就是“year”),随机变量p~U[0,1].

    图5是一个修改的示例,展示了p取不同值时的修改效果.

    图  5  修改示例
    Figure  5.  Modification example

    2)以why提问的问题

    现有的无监督问题生成方法难以生成用“why”来提问的问题. 现有方法通常先选择一个命名实体作为答案,然后生成相应的问题,但“why”往往提问的不是命名实体. 本文调研了SQuAD数据集,发现其中有一定比例的用“why”提问的问题. 因此,本文希望利用无监督的方法生成用“why”提问的问题,以增强问题多样性.

    本文参考了Stasaski 等人[16]的方法,设计了120个模板,用以提取段落中的因果关系. 本文删去了原有模板中因果关系不强的模板,保留的部分模板如表2所示(其中R表示“原因”,C表示“结果”,其他大写字母对应于成分句法分析中的标签). 最后,本文利用抽取的因果关系生成相应的问题与答案.

    表  2  因果关系抽取示例
    Table  2.  Examples of Causal Relationship Extraction
    模板 具体句子
    &C(,/;/. /--)(&AND)
    therefore (,)&R
    He never lies; therefore, everyone likes to make friends with him.
    &R (,)on account of &NP@C@ I prefer to call off the meeting on account of boss’s absence.
    &R(,)owing to &NP @C@ . She had a headache, owing to the weather here.
    下载: 导出CSV 
    | 显示表格

    对于抽取出的RC,本文通过一种很简单的方式生成问题q=why+C,答案a=R. 这样的问题在语法上很有可能是错误的,但考虑到后续可以通过语法规范性模块修正语法错误,并且在这一部分本文主要关注的是问题多样性,因而在这里选择了这种较为简单的问题生成方式.

    如果原文中能够抽取因果关系,本文会以大约10%的概率替换掉原有的问题(为了保证总的问题数量一致). 在问题的替换策略方面,优先选择长度较短的问题进行替换.

    3)以其他方式提问的问题

    在用其他疑问词提问的问题中,本文暂时没有找到一个统一的方法来提升问题类型的多样性. 在这部分中本文主要利用句法分析树来提升答案类型的多样性.

    通过句法依存树,可以递归地找到句子中的所有NP(名词短语)和ADJP(形容词短语),具体的算法如算法1所示. 得到所需类型的短语后用以下的3个条件进行过滤:①包含原答案;②长度不大于10个单词;③长度不超过原有答案的2倍. ②③这2个条件的设计主要是为了保证拓展后的答案尽量不包含太多的冗余信息(例如包含了整个从句),并且尽量和原答案相关. 在使用上述3个条件进行过滤后,只要有符合要求的候选答案,本文会以40%的概率对原答案进行替换.

    算法1. 提取指定类型的短语算法.

    输入:句法分析树中的节点node,短语类型type

    输出:指定类型的短语列表spans.

    ① function Search(node,type)

    ② if node.label == \phi then

    ③  return \phi

    ④ end if

    ⑤ spans \leftarrow \phi

    ⑥ for all child \in node.children do

    ⑦  spans \leftarrow spans \cup {Search(child,type)};/*在当   前节点的子节点中进行递归查找*/

    ⑧ end for

    ⑨ if node.label == type then

    ⑩  spans \leftarrow spans \cup {str(node)};/*若当前节点   的句法标签与type相符,就将其对应   的短语加入spans*/

    ⑪ end if

    ⑫ return spans

    ⑬ end function

    文本语法错误纠正(grammatical error correction,GEC)是自然语言处理领域中的一个重要任务,GEC任务要求模型能够检测句子中是否有语法错误,并将检测出的语法错误进行自动纠正. 表3是GEC任务的一个示例.

    表  3  语法错误纠正任务样例
    Table  3.  Example of GEC Task
    输入(有语法错误的)输出(纠正后的)
    She see Tom is catched by policeman
    in park at last night.
    She saw Tom caught by a policeman
    in the park last night.
    下载: 导出CSV 
    | 显示表格

    现有的GEC模型往往针对陈述句,训练语料也往往以陈述句为主. 考虑到问题生成任务的特殊性,本文训练了一个针对问句的语法错误纠正模型.

    本文首先构建一个针对问句的GEC任务数据集. 构建数据集的思路是:首先选择一个包含问句的数据集,然后通过无监督的方法对这些问句进行随机扰动,生成含有语法错误的问题. 在训练模型时,将修改后的问句作为模型的输入,要求模型恢复出原来的问句.

    本文选取Natural Questions[17]作为数据的主要来源. Natural Questions来源于Google搜索引擎的真实问题,其数据量充足、类型多样,非常适合本任务. 在对问句进行随机扰动时,本文参考了PIE模型[18]中的随机扰动方式(主要有插入、删除、替换、词性变换等). 除此之外,为了和实际应用场景保持一致,本文删去了原数据集中不以疑问词开头的问题,最终保留了221209对问题.

    本文提出的GEC模型由2部分组成:预训练模型T5[19]和筛选模块. T5模型的结构图如图6所示.

    图  6  T5模型结构图
    Figure  6.  T5 model structure diagram

    设GEC任务的输入为x=(x1, x2, …, xn),输出y=(y1, y2, …, ym). 设在第t步解码时,经过T5的Encoder和Decoder后的隐藏层向量为 {{\boldsymbol z}_t} \in \mathbb R^dd是隐藏层向量的维数. zt可由式(4)计算得到.

    {{\boldsymbol z}_t} = Decoder(Encoder(x),{y_{ \lt t}}). (4)

    经过线性层得到向量 {\tilde {\boldsymbol z}_t} \in \mathbb R^{|V|}|V|是单词表的维数. {\tilde {\boldsymbol z}_t} 可由式(5)计算得到.

    {\tilde {\boldsymbol z}_t} = Linear({{\boldsymbol z}_t}). (5)

    进而可以通过Softmax层将 {\tilde {\boldsymbol z}_t} 转化成在\mathbb R^{|V|} 上的概率分布,如式(6)所示. 式中上标i表示该向量第i个位置元素的值.

    p_t^i = \frac{{{\text{exp}}(\tilde {\boldsymbol z}_t^i)}}{{\displaystyle\sum_{k = 1}^{|V|} {{\text{exp}}(\tilde {\boldsymbol z}_t^k)} }}. (6)

    T5模型优化的损失函数如式(7)所示. 其中f(yt)表示yt在词表中对应的下标.

    L = - \displaystyle\sum_{t = 1}^m {\log p_t^{f({y_t})}} . (7)

    如果设T5模型的参数为 \theta ,则式(7)可以写成式(8)的形式.

    L(\theta )= - \displaystyle\sum_{t = 1}^m {\log P({y_t}|{y_{ \lt t}},x,\theta )} . (8)

    在训练时需要通过调整模型参数 \theta 来最小化损失函数 L(\theta ).

    训练完成后,在使用T5模型进行推理的过程中,本文发现模型输出的结果存在2个问题:1)修改后语法错误数量并没有减少,在少数情况下,语法错误数量甚至有可能增加;2)修改后问题的语义发生了较大的变化. 于是,在T5模型的基础上,本文设计了一个筛选模块来对模型的输出进行筛选与过滤,只保留符合要求的修改结果.

    设T5模型的输入为x=(x1, x2, …, xn),输出为y=(y1, y2, …, ym). 设过滤后的结果为 \tilde y \tilde y 可由式(9)、式(10)和式(11)计算得到.

    \tilde y = \left\{ {\begin{aligned} & {y,}\;\;{{\text{if }}{g_1}(x,y)\times {g_2}(x,y)= 1,{\text{ }}} \\ & {x,}\;\;{{\text{if }}{g_1}(x,y)\times {g_2}(x,y)= 0,} \end{aligned}} \right. (9)
    {g_1}(x,y)= \left\{ {\begin{aligned} & 1 ,\;\;{{\text{if }}err(x)\gt err(y),} \\ &{0,}\;\;{{\text{if }}err(x)\leqslant err(y),} \end{aligned}} \right. (10)
    {g_2}(x,y)= \left\{ {\begin{aligned} & 1 ,\;\;{{\text{if }}sim(x,y)\geqslant 0.85,} \\ &{0,}\;\;{{\text{if }}sim(x,y)\lt 0.85,} \end{aligned}} \right. (11)

    其中:函数err(∙)返回的是当前句子中语法错误的数量,本文使用language_tool_python工具进行统计; 函数sim(∙,∙)返回的是2个句子间的语义相似度,本文首先使用Sentence Transformers计算2个句子的嵌入表示,进而计算它们的余弦相似度作为相似度度量. 本文分别尝试了0.8,0.85,0.9这3个阈值,实验结果表明0.85的实验效果最好,因而本文选择采用0.85作为语义相似度的阈值.

    分类器从可回答性、多样性和语法3个维度进行判断,并根据结果选择合适的模块.

    1)从可回答性的角度. 基于RoBERTa[20]模型对问题的可回答性进行判断. 用该模型在SQuADv2.0[21]上进行了训练,对“no answer”问题识别的准确率达到了81.8%. 如果判断问题为“不可回答”,则使用问题可回答性模块,否则不使用该模块.

    2)从多样性角度. 可以人为设置使用多样性模块的概率,默认概率为1.0,即一定使用多样性模块.

    3)从语法角度. 基于DistilBERT[22]模型对问题是否含有语法错误进行识别. 在语法规范性模块中对自建的数据集进行训练,训练后模型识别语法错误的准确率达到了98.0%. 如果判断问题 “包含语法错误”,则使用语法规范性模块,否则不使用该模块.

    参考现有的关于无监督问题生成的文章,本文首先使用下游问答模型的性能来对问题生成方法进行评价. 除此之外,本文会对生成问题的质量进行评价.

    RefQA[6]和ClozeQA[5]是无监督问题生成中2个比较有代表性的方法,在后续的实验中主要选用这2种方法生成的问答数据进行实验. 由于原数据量较大,本文在实验时对其进行了采样,分别保留了5万条数据进行实验.

    在使用改进方法对问答数据进行修改后,本文会使用修改后的数据对下游的问答模型进行训练. 在对下游的问答模型进行评估时,本文选择的是SQuAD的验证集. SQuAD是问答领域最为权威的数据集之一,数据集里面的文章来自于多个不同领域,问答对质量较高,可以较好地衡量问答模型的性能.

    参考现有的无监督问题生成方法,本文采用了精准匹配度(exact match,EM)和F1值这2个指标来评价问答模型的性能,从而间接评价无监督问题生成方法的好坏. EM值的计算过程为:

    EM=\frac{完全预测正确的答案个数}{全部答案个数}. (12)

    F1值的计算过程如式(13)~(15)所示:

    F1 = 2 \times \frac{{P \times R}}{{P + R}}, (13)
    P=\frac{预测答案与真实答案重合的长度}{预测答案的长度}, (14)
    R=\frac{预测答案与真实答案重合的长度}{真实答案的长度}. (15)

    在问答模型方面,分别选用BERT-large[7],XLNet-large[23]和ALBERT-large[24]这3个预训练模型进行实验,在实验过程中采用模型的默认参数. 这3个模型是典型且常用的预训练模型,具有一定代表性.

    在使用不同问答数据进行实验时,上述3个问答模型的参数均保持不变,批处理大小固定为32,BERT的训练固定为10轮,XLNet和ALBERT的训练固定为5轮.

    在对语法规范性进行改进时,本文使用构建的数据集训练了一个T5-base模型,学习率为2E−5,批处理大小为32,一共训练了10轮.

    分别记问题可回答性模块、问题多样性模块、语法规范性模块为“ans”“div”“gram”,用“all”表示使用全部3个模块,记分类器为clf. 实验结果如表4所示.

    表  4  不同数据来源下各模型的结果比较
    Table  4.  Comparison of Results from Different Models with Respect to Data Sources %
    模型 RefQA(EM/F1) ClozeQA(EM/F1)
    BERT 48.3/60.0 48.3/57.6
    BERT + ans 52.0/62.2 46.1/55.0
    BERT + div 50.3/63.9 48.3/58.5
    BERT + gram 52.9/62.5 49.1/58.6
    BERT + all w/o clf 50.7/62.6 46.7/57.3
    BERT + all + clf 53.0/64.9 49.5/59.0
    XLNet 46.0/56.4 42.4/50.5
    XLNet + ans 49.1/59.8 42.7/51.6
    XLNet + div 49.6/63.0 44.6/54.1
    XLNet + gram 47.7/57.2 43.1/51.9
    XLNet + all w/o clf 48.9/61.6 44.6/54.3
    XLNet + all + clf 49.2/62.8 45.5/54.8
    ALBERT 35.8/45.9 38.4/46.7
    ALBERT + ans 37.1/47.5 39.2/47.7
    ALBERT + div 38.1/51.0 39.6/48.9
    ALBERT + gram 38.5/47.7 38.8/47.3
    ALBERT + all w/o clf 37.8/50.1 39.8/49.1
    ALBERT + all + clf 39.5/51.8 40.3/49.9
    注:黑体数值表示最优结果.
    下载: 导出CSV 
    | 显示表格

    从模型的角度来看,对BERT模型,gram对模型性能的提升最为有效,而ans甚至有可能起到负面的效果. XLNet和ALBERT模型的趋势较为相似,div对模型的性能提升效果明显.

    从数据来源的角度来看,在RefQA生成的问题上,使用3种改进方法后,EM值平均提升2.8%,F1值平均提升3.1%;在ClozeQA生成的问题上,使用3种改进方法后,EM值平均提升0.5个百分点,F1值平均提升1.0个百分点. 可以看出,本文提出的3种改进方法对RefQA生成的问题更加有效.

    从全局的角度来看,使用完整的流水线式模型在不同数据来源和不同模型上进行实验,问答模型在SQuAD数据集上的EM值平均提升2.9个百分点,最高提升4.7个百分点;F1值平均提升4.4个百分点,最高提升6.4个百分点. 对比有无clf的结果可以发现,clf对问答模型的性能总是起到正面的效果.

    除此之外,本文使用完整的ADVICE模型对SQuAD训练集进行优化,以测试本文方法对现有高质量问答数据集的有效性. 实验结果如表5所示.

    表  5  SQuAD数据集经过优化前后各模型结果比较
    Table  5.  Comparison of Results of Various Models Before and After Optimization on SQuAD Dataset %
    模型EMF1
    BERT86.092.6
    BERT + ADVICE85.992.7
    XLNet85.392.4
    XLNet + ADVICE85.492.7
    ALBERT83.190.2
    ALBERT + ADVICE83.190.4
    下载: 导出CSV 
    | 显示表格

    表5表明,使用经过优化的数据进行训练后,3种问答模型的EM值没有显著改善,但F1值均有一定提升. 这是由于SQuAD数据集质量较高,优化改善了原有问答数据多样性等问题,但另一方面也引入了一定的噪声. 不过,对F1值的提升仍然反映出ADVICE模型具有一定的实用价值.

    在ans模块中,本文分别设计了模糊代词替换、冗余信息删除和疑问词修正3个子模块提升问题的可回答性,现探究这3个模块在不同数据来源、不同模型的条件下起到的作用. 实验结果如表6所示. 由于ClozeQA生成的问题中不存在可以用冗余信息删除的情况,因而本文没有对这一情况进行实验.

    表  6  问题可回答性各模块消融实验
    Table  6.  Ablation Experiment of Each Module for Question Answerability %
    模型 RefQA(EM/F1) ClozeQA(EM/F1)
    BERT* 52.0/62.2 46.1/55.0
    BERT* w/o part1 49.8/60.6 44.7/53.8
    BERT* w/o part2 51.8/62.3
    BERT* w/o part3 48.7/59.0 45.3/54.0
    XLNet* 49.1/59.8 42.7/51.6
    XLNet* w/o part1 46.4/56.9 41.1/49.8
    XLNet* w/o part2 47.1/58.1
    XLNet* w/o part3 47.2/58.2 43.5/51.6
    ALBERT* 37.1/47.5 39.2/47.7
    ALBERT* w/o part1 39.0/49.3 38.4/46.8
    ALBERT* w/o part2 35.3/45.0
    ALBERT* w/o part3 35.1/44.3 39.6/47.8
    注:模糊代词替换、冗余信息删除和疑问词修正分别记作part1,part2,part3,模型右上角的“*”表示使用全部3个模块.
    下载: 导出CSV 
    | 显示表格

    总的来看,对于不同模型以及不同来源的问答数据,这3个模块起到的作用与效果不尽相同. 在大部分情况下这些模块对模型性能的提升都能起到正面的效果,但在少数情况下,部分模块的加入没有起到作用或起到负面作用.

    本节将分别从可回答性和语法规范性2个角度衡量问题的质量.

    本文参考了Bartolo等人[25]的论文,给出了问题可回答性的定义. 一个可回答的问题必须满足3点要求:1)问题可以用原文中的若干连续的单词来回答;2)问题必须有一个明确的答案;3)只要给予足够的时间,人类应当能够正确回答问题.

    本文随机抽取了200个RefQA方法生成的问题进行了人工评价,参照上文提到的标准比较这些问题的可回答性在经过问题可回答性模块前后是否有所变化. 结果如表7所示.

    表  7  修改前后问题可回答性对比分析
    Table  7.  Comparative Analysis of Question Answerability Before and After Modification %
    类别不可回答可回答
    代词指代模糊含有冗余信息疑问词有误其他
    修改前8.514716.554
    修改后13.532072.5
    下载: 导出CSV 
    | 显示表格

    表7中,对不可回答的问题按照不可回答的原因进行了分类. 经过模糊代词替换、冗余信息删除和疑问词修正这3个模块的修改后,问题的可回答性有明显的提升(从54%提升至72.5%). 这一提升主要是因为前3种原因出现的比例有了明显的下降,原来因为这3种原因造成问题不可回答的比例大约为30%,修改后降低至10%左右. 可以发现,“其他”的比例有略微的上升,这是因为在对前3种情况进行修改时,有时并不能完全解决不可回答的问题. 虽然这3种情况得到了解决,但问题本身依然是不可回答的,这类问题也会被归类至“其他”类别. 总的来看,问题的可回答性在修改后得到了显著的提高.

    除此之外,本文对问题的语法规范性进行了探究. 在语法规范性模块中,本文会对语法错误数量增加和原有语义发生较大变化这2种异常情况进行过滤,表8详细说明了2种异常情况的比例.

    表  8  异常情况统计
    Table  8.  Abnormal Situation Statistics %
    问题生成方法异常类型
    语法错误数量增加语义发生较大变化
    RefQA1.713.8
    ClozeQA3.85.7
    下载: 导出CSV 
    | 显示表格

    本文使用language_tool_python工具对经过语法规范性模块修改前后问题的语法数量进行了统计(修改后的问题排除了上述2种异常情况),结果如表9所示.

    表  9  语法错误数量统计
    Table  9.  Statistics on the Number of Grammatical Errors
    问题生成方法 每句语法错误数量
    修改前 修改后
    RefQA 1.64 1.01
    ClozeQA 1.24 0.98
    下载: 导出CSV 
    | 显示表格

    表9可以发现,经过语法规范性模块的修改,RefQA 和ClozeQA这2种方法生成的问题包含的语法错误数量都有了一定程度的下降,下降的比例分别达到了38%和21%.

    问题的语法规范性和可回答性对问题本身的质量有重要的影响. 通过上述实验与分析可知,现有无监督问题生成方法生成的问题在经过ADVICE模型的改进后质量有了一定的提升.

    本文针对现有无监督问题生成方法存在的问题,从问题可回答性、问题多样性和语法规范性入手设计并提出了一个自适应的多模块流水线式模型ADVICE. 实验证明,在现有方法的基础上使用本文提出的模型,可以有效提升下游问答模型的性能. 除此之外,本文的方法还可以在一定程度上改善生成问题的质量. 未来的工作将尝试从数据集、模型和参数选择等方面对语法规范性模块的性能进行改进,并尝试提出更加通用的方法提升问题的可回答性和多样性.

    作者贡献声明:李昆泽提出了算法思路,设计并完成实验,撰写论文;张宇提出指导意见并修改论文.

  • 图  1   问题生成示例

    Figure  1.   Example of question generation

    图  2   ADVICE模型整体结构图

    Figure  2.   Overall structure diagram of ADVICE model

    图  3   不可回答问题示例

    Figure  3.   Examples of unanswerable questions

    图  4   问题多样性示例

    Figure  4.   Example of question diversity

    图  5   修改示例

    Figure  5.   Modification example

    图  6   T5模型结构图

    Figure  6.   T5 model structure diagram

    表  1   实体类型-疑问词映射表

    Table  1   Entity Type-Query Word Mapping Table

    实体类型 疑问词
    PERSON,NORP,ORG who
    GPE,LOC,FAC where
    PRODUCT,EVENT,WORK_OF_ART,LAW,LANGUAGE what
    TIME,DATE when
    PERCENT,MONEY,QUANTITY,ORDINAL,CARDINAL how many/how much
    下载: 导出CSV

    表  2   因果关系抽取示例

    Table  2   Examples of Causal Relationship Extraction

    模板 具体句子
    &C(,/;/. /--)(&AND)
    therefore (,)&R
    He never lies; therefore, everyone likes to make friends with him.
    &R (,)on account of &NP@C@ I prefer to call off the meeting on account of boss’s absence.
    &R(,)owing to &NP @C@ . She had a headache, owing to the weather here.
    下载: 导出CSV

    表  3   语法错误纠正任务样例

    Table  3   Example of GEC Task

    输入(有语法错误的)输出(纠正后的)
    She see Tom is catched by policeman
    in park at last night.
    She saw Tom caught by a policeman
    in the park last night.
    下载: 导出CSV

    表  4   不同数据来源下各模型的结果比较

    Table  4   Comparison of Results from Different Models with Respect to Data Sources %

    模型 RefQA(EM/F1) ClozeQA(EM/F1)
    BERT 48.3/60.0 48.3/57.6
    BERT + ans 52.0/62.2 46.1/55.0
    BERT + div 50.3/63.9 48.3/58.5
    BERT + gram 52.9/62.5 49.1/58.6
    BERT + all w/o clf 50.7/62.6 46.7/57.3
    BERT + all + clf 53.0/64.9 49.5/59.0
    XLNet 46.0/56.4 42.4/50.5
    XLNet + ans 49.1/59.8 42.7/51.6
    XLNet + div 49.6/63.0 44.6/54.1
    XLNet + gram 47.7/57.2 43.1/51.9
    XLNet + all w/o clf 48.9/61.6 44.6/54.3
    XLNet + all + clf 49.2/62.8 45.5/54.8
    ALBERT 35.8/45.9 38.4/46.7
    ALBERT + ans 37.1/47.5 39.2/47.7
    ALBERT + div 38.1/51.0 39.6/48.9
    ALBERT + gram 38.5/47.7 38.8/47.3
    ALBERT + all w/o clf 37.8/50.1 39.8/49.1
    ALBERT + all + clf 39.5/51.8 40.3/49.9
    注:黑体数值表示最优结果.
    下载: 导出CSV

    表  5   SQuAD数据集经过优化前后各模型结果比较

    Table  5   Comparison of Results of Various Models Before and After Optimization on SQuAD Dataset %

    模型EMF1
    BERT86.092.6
    BERT + ADVICE85.992.7
    XLNet85.392.4
    XLNet + ADVICE85.492.7
    ALBERT83.190.2
    ALBERT + ADVICE83.190.4
    下载: 导出CSV

    表  6   问题可回答性各模块消融实验

    Table  6   Ablation Experiment of Each Module for Question Answerability %

    模型 RefQA(EM/F1) ClozeQA(EM/F1)
    BERT* 52.0/62.2 46.1/55.0
    BERT* w/o part1 49.8/60.6 44.7/53.8
    BERT* w/o part2 51.8/62.3
    BERT* w/o part3 48.7/59.0 45.3/54.0
    XLNet* 49.1/59.8 42.7/51.6
    XLNet* w/o part1 46.4/56.9 41.1/49.8
    XLNet* w/o part2 47.1/58.1
    XLNet* w/o part3 47.2/58.2 43.5/51.6
    ALBERT* 37.1/47.5 39.2/47.7
    ALBERT* w/o part1 39.0/49.3 38.4/46.8
    ALBERT* w/o part2 35.3/45.0
    ALBERT* w/o part3 35.1/44.3 39.6/47.8
    注:模糊代词替换、冗余信息删除和疑问词修正分别记作part1,part2,part3,模型右上角的“*”表示使用全部3个模块.
    下载: 导出CSV

    表  7   修改前后问题可回答性对比分析

    Table  7   Comparative Analysis of Question Answerability Before and After Modification %

    类别不可回答可回答
    代词指代模糊含有冗余信息疑问词有误其他
    修改前8.514716.554
    修改后13.532072.5
    下载: 导出CSV

    表  8   异常情况统计

    Table  8   Abnormal Situation Statistics %

    问题生成方法异常类型
    语法错误数量增加语义发生较大变化
    RefQA1.713.8
    ClozeQA3.85.7
    下载: 导出CSV

    表  9   语法错误数量统计

    Table  9   Statistics on the Number of Grammatical Errors

    问题生成方法 每句语法错误数量
    修改前 修改后
    RefQA 1.64 1.01
    ClozeQA 1.24 0.98
    下载: 导出CSV
  • [1] 吴云芳,张仰森. 问题生成研究综述[J]. 中文信息学报,2021,35(7):1−9

    Wu Yunfang, Zhang Yangsen. A survey of question generation[J]. Journal of Chinese Information Processing, 2021, 35(7): 1−9 (in Chinese)

    [2]

    Kurdi G, Leo J, Parsia B, et al. A systematic review of automatic question generation for educational purposes[J]. International Journal of Artificial Intelligence in Education, 2020, 30: 121−204

    [3] 刘铁园,陈威,常亮,等. 基于深度学习的知识追踪研究进展[J]. 计算机研究与发展,2022,59(1):81−104

    Liu Tieyuan, Chen Wei, Chang Liang, et al. Research advances in the knowledge tracing based on deep learning[J]. Journal of Computer Research and Development, 2022, 59(1): 81−104 (in Chinese)

    [4]

    Dong Li, Yang Nan, Wang Wenhui, et al. Unified language model pre-training for natural language understanding and generation[J]. Advances in Neural Information Processing Systems, 2019, 32: 13063−13075

    [5]

    Lewis P, Denoyer L, Riedel S. Unsupervised question answering by cloze translation[C]//Proc of the 57th Annual Meeting of the Association for Computational Linguistics. Stroudsburg, PA: ACL, 2019: 4896−4910

    [6]

    Li Zhongli, Wang Wenhui, Dong Li, et al. Harvesting and refining question-answer pairs for unsupervised QA[C]//Proc of the 58th Annual Meeting of the Association for Computational Linguistics. Stroudsburg, PA: ACL, 2020: 6719−6728

    [7]

    Devlin J, Chang Mingwei, Lee K, et al. BERT: Pre-training of deep bidirectional transformers for language understanding[C]//Proc of the 2019 Conf of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers). Stroudsburg, PA: ACL, 2019: 4171−4186

    [8]

    Rajpurkar P, Zhang Jian, Lopyrev K, et al. SQuAD: 100, 000+ questions for machine comprehension of text[C]//Proc of the 2016 Conf on Empirical Methods in Natural Language Processing. Stroudsburg, PA: ACL, 2016: 2383−2392

    [9]

    Heilman M, Smith N A. Good question! statistical ranking for question generation[C]//Proc of the 2010 Conf of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. Stroudsburg, PA: ACL, 2010: 609−617

    [10]

    Fabbri A R, Ng P, Wang Zhiguo, et al. Template-based question generation from retrieved sentences for improved unsupervised question answering[C]//Proc of the 58th Annual Meeting of the Association for Computational Linguistics. Stroudsburg, PA: ACL, 2020: 4508−4513

    [11]

    Lyu Chenyang, Shang Lifeng, Graham Y, et al. Improving unsupervised question answering via summarization-informed question generation[C]//Proc of the 2021 Conf on Empirical Methods in Natural Language Processing. Stroudsburg, PA: ACL, 2021: 4134−4148

    [12]

    Lewis M, Liu Y, Goyal N, et al. BART: Denoising sequence-to-sequence pre-training for natural language generation, translation, and comprehension[C]//Proc of the 58th Annual Meeting of the Association for Computational Linguistics. Stroudsburg, PA: ACL, 2020: 7871−7880

    [13]

    Nie Yuxiang, Huang Heyan, Chi Zewen, et al. Unsupervised question answering via answer diversifying[C]//Proc of the 29th Int Conf on Computational Linguistics. New York: ACM, 2022: 1732−1742

    [14]

    Trischler A, Wang Tong, Yuan Xingdi, et al. NewsQA: A machine comprehension dataset[C]//Proc of the 2nd Workshop on Representation Learning for NLP. Stroudsburg, PA: ACL, 2017: 191−200

    [15]

    Sun Yuan, Liu Sisi, Dan Zhengcuo, et al. Question generation based on grammar knowledge and fine-grained classification[C]//Proc of the 29th Int Conf on Computational Linguistics. New York: ACM, 2022: 6457−6467

    [16]

    Stasaski K, Rathod M, Tu T, et al. Automatically generating cause-and-effect questions from passages[C]//Proc of the 16th Workshop on Innovative Use of NLP for Building Educational Applications. Stroudsburg, PA: ACL, 2021: 158−170

    [17]

    Kwiatkowski T, Palomaki J, Redfield O, et al. Natural questions: A benchmark for question answering research[J]. Transactions of the Association for Computational Linguistics, 2019, 7: 452−466

    [18]

    Awasthi A, Sarawagi S, Goyal R, et al. Parallel iterative edit models for local sequence transduction[C]//Proc of the 2019 Conf on Empirical Methods in Natural Language Processing and the 9th Int Joint Conf on Natural Language Processing (EMNLP-IJCNLP). Stroudsburg, PA: ACL, 2019: 4260−4270

    [19]

    Raffel C, Shazeer N, Roberts A, et al. Exploring the limits of transfer learning with a unified text-to-text transformer[J]. Journal of Machine Learning Research, 2020, 21(140): 1−67

    [20]

    Liu Yinhan, Ott M, Goyal N, et al. RoBERTa: A robustly optimized BERT pretraining approach[J]. arXiv preprint, arXiv: 1907.11692, 2019

    [21]

    Rajpurkar P, Jia R, Liang P. Know what you don’t know: Unanswerable questions for SQuAD[C]//Proc of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers). Stroudsburg, PA: ACL, 2018: 784−789

    [22]

    Sanh V, Debut L, Chaumond J, et al. DistilBERT, a distilled version of BERT: Smaller, faster, cheaper and lighter[J]. arXiv preprint, arXiv: 1910.01108, 2019

    [23]

    Yang Zhilin, Dai Zihang, Yang Yiming, et al. XLNet: Generalized autoregressive pretraining for language understanding[C]//Proc of the 33rd Int Conf on Neural Information Processing Systems. Cambridge, MA: MIT, 2019: 5753−5763

    [24]

    Lan Zhenzhong, Chen Mingda, Goodman S, et al. ALBERT: A lite BERT for self-supervised learning of language representations[J]. arXiv preprint, arXiv: 1909.11942, 2019

    [25]

    Bartolo M, Thrush T, Jia R, et al. Improving question answering model robustness with synthetic adversarial data generation[C]//Proc of the 2021 Conf on Empirical Methods in Natural Language Processing. Stroudsburg, PA: ACL, 2021: 8830−8848

图(6)  /  表(9)
计量
  • 文章访问数:  50
  • HTML全文浏览量:  5
  • PDF下载量:  3
  • 被引次数: 0
出版历程
  • 收稿日期:  2023-10-30
  • 修回日期:  2024-07-07
  • 录用日期:  2024-08-08
  • 网络出版日期:  2024-08-13

目录

/

返回文章
返回