一种基于图神经网络的考试阅读理解自动问答方法转让专利

申请号 : CN202110859073.6

文献号 : CN113553402B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨陟卓李沫谦张虎李茹

申请人 : 山西大学

摘要 :

本发明提供了一种基于图神经网络的考试阅读理解自动问答方法,包括以下步骤:从互联网的考试网站中爬取考试阅读理解真题和模拟题,并对其进行预处理,构建考试阅读理解问答数据集;利用异构图神经网络构建问答模型;利用异构图神经网络对答案句进行推理分析;对问答模型进行训练,将一个新的考试问题与背景材料中的所有候选句组成测试样本,送入问答模型并获取答案。本发明采用一种基于端对端的神经网络模型对高考阅读理解中复杂问题进行建模。该方法可以方便地将丰富的语义节点和语义关系融入图神经网络中,更加合理的对答案句进行推理分析。

权利要求 :

1.一种基于图神经网络的考试阅读理解自动问答方法,其特征在于,包括以下步骤:步骤S1,从互联网的考试网站中爬取考试阅读理解真题和模拟题,并对其进行预处理,构建考试阅读理解问答数据集;

步骤S2,利用异构图神经网络构建问答模型;

步骤S3,利用异构图神经网络对答案句进行推理分析;

步骤S4,对问答模型进行训练,将一个新的考试问题与背景材料中的所有候选句组成测试样本,送入问答模型并获取答案;

所述步骤S2的具体步骤为:

步骤S201、对问句、候选句以及词语节点进行初始化:从训练数据集中取出问句与候选句,使用BERT模型得到问句和候选句的编码表示,Xs和Xq分别表示背景材料句子节点和问题节点的输入特征矩阵;找出问句和候选句的共现词语w,利用word2Vector获得训练好的词向量,Xw表示词语的输入特征矩阵,dw为嵌入词语的维数;

步骤S202、对节点之间的语义关联进行初始化,包括构建词语节点与问句节点、候选句节点的语义关联,问句节点与候选句节点的语义关联;所述构建词语节点与问句节点、候选句节点的语义关联时,利用TF‑IDF值计算词语节点和问句节点、候选句节点之间的关联,相似度分数记为ewqs;所述构建问句节点与候选句节点的语义关联时,利用知网HowNet计算问句节点与候选句节点之间的关联,相似度分数记为eqs;

步骤S203、基于步骤S201和S202的结果,构建异构网络图G=(V,E),其中,V为图的节点集合,包括问句节点、候选句节点以及词语节点;E为图中节点间的边集合,包括词语节点与问句节点、候选句节点的相似度,问句节点与候选句节点的相似度;

所述步骤S3的具体步骤为:

步骤S301、利用图注意网络对图节点表示学习:根据步骤S203得到的异构网络图G,使d用图注意网络更新节点的表示,以i、j表示网络图中的节点,以hi∈R (i∈{1,...,(m+n)})作为所有输入句子节点和词语节点的隐藏状态,图注意力层GAT的更新规则如下:zij=LeakyReLU(Wa[Wqhi;Wkhj;eqs;ewqs])   (1)式中Wa、Wq、Wk、Wv为可训练权重,eqs为问句节点与所有候选句节点之间的语义关联,ewqs为词语节点与所有候选句节点和问题节点之间的语义关联,Zij表示节点间的注意力系数,αij为hi和hj之间的注意力权重,Ni表示与节点i有关联的邻居节点,ui表示节点i的注意力,多头注意可表示为:k

式中K表示维度, 和W表示在不同维度上的注意力权重和训练权重;

为了避免多次迭代后梯度消失,还添加了一个残差连接,最终输出可以表示为:h′i=ui+hi   (5)

式中h′i表示加入多头注意力后的i节点的隐藏状态;

步骤S302、对节点进行迭代更新:对词语节点、背景材料候选句节点和问题节点的表示进行更新,直到节点的重要度不再发生变化;在节点及边初始化之后,通过GAT和FFN层来更新词语节点,即聚合其相邻的候选句节点和问题节点更新词语节点:式中 为通过候选句节点和问题节点更新词语节点的多头注意力,GAT表示使用 作为注意查询, 和 作为键和值, 为更新后的词语节点;

然后使用更新后的词语节点和初始化后的文章候选句节点获得问题节点的表示:式中 为通过候选句节点和词语节点更新问题节点的多头注意力,以相同的方式可以得到第一轮迭代过程中最终的候选句表示,迭代t次结束时,使用时间t时刻的词语节点和问题节点更新得到候选句节点:其中 为t‑1时刻通过词语节点和问题节点更新候选句节点的多头注意力, 为t时刻的词语节点, 为t时刻的问题节点, 表示t时刻的候选句节点。

2.根据权利要求1所述的一种基于图神经网络的考试阅读理解自动问答方法,其特征在于,所述步骤S1的具体步骤为:步骤S101、利用爬虫技术,从互联网的考试网站中爬取考试阅读理解真题和模拟题;

步骤S102、对步骤S101中爬取的考试阅读理解真题和模拟题进行预处理,包括标注背景材料中的答案句、构建训练集中的正例和负例以及问题和候选句中的断字处理,得到问句q、候选句s以及问句和候选句的共现词语w。

3.根据权利要求1所述的一种基于图神经网络的考试阅读理解自动问答方法,其特征在于,所述步骤S4的具体步骤为:步骤S401、构建交叉熵损失函数,并对问答模型进行训练,具体为:首先,在学习到问答异构图中的节点表示之后,从异构图中提取文章中包含的句子节点;其次,对句子进行节点分类,并以交叉熵损失作为问答模型的训练目标,交叉熵损失表达式如下:式中 为候选句节点Si的隐藏状态,N为候选句节点的总数,yi为节点i的标签,当yi=

0时,表示节点i不是答案候选句,当yi=1时,表示节点i是答案候选句;

步骤S402、将一个新的考试问题与背景材料中的所有候选句组成输入样本,送入利用步骤S401训练完成的考试问答模型,计算问题与候选答案之间相关度;根据候选句的分数高低进行排序,从所有结果中选取概率值最高的6个候选句作为答案推送给用户。

说明书 :

一种基于图神经网络的考试阅读理解自动问答方法

技术领域

[0001] 本发明属于自然语言处理技术领域,具体涉及一种基于图神经网络的考试阅读理解自动问答方法。

背景技术

[0002] 近年来,让计算机通过不同层次的入学考试成为人工智能领域的一项重大挑战。基础教育考试中所涉及的复杂问题包含大量主观问答题,其特点是需要深度理解文本语义,综合各类信息才能正确回答,因此,阅读理解问答任务是基础教育考试中的重点和难点。此外,高考是基础教育考试中具有选拔性质的考试,在各类考试中难度系数最大。
[0003] 高考阅读理解中的问答题与一般问答型阅读理解任务相比更具有多样性和复杂性,且通常篇幅较长,不同答案句在材料中相隔较远。句子间的语义关联对句子的表征学习起着至关重要的作用,采用传统的序列编码模型,例如RNN,LSTM等,难以捕捉句子级的长距离依赖关联,尤其对于篇幅较长的阅读材料而言,进而影响模型的句子表征能力。因此,采用传统的词语匹配的方式或序列编码模型难以高性能地召回高考阅读理解问答的中答案句。

发明内容

[0004] 本发明的目的在于提供一种基于图神经网络的考试阅读理解自动问答方法。
[0005] 为实现上述目的,本发明是通过以下技术方案来实现:
[0006] 一种基于图神经网络的考试阅读理解自动问答方法,其特征在于,包括以下步骤:
[0007] 步骤S1,从互联网的考试网站中爬取考试阅读理解真题和模拟题,并对其进行预处理,构建考试阅读理解问答数据集;
[0008] 步骤S2,利用异构图神经网络构建问答模型;
[0009] 步骤S3,利用异构图神经网络对答案句进行推理分析;
[0010] 步骤S4,对问答模型进行训练,将一个新的考试问题与背景材料中的所有候选句组成测试样本,送入问答模型并获取答案。
[0011] 进一步,所述步骤S1的具体步骤为:
[0012] 步骤S101、互联网上有着大量的考试阅读理解真题和模拟题,其内容是开放可获取的,利用爬虫技术,从互联网的考试网站中爬取考试阅读理解真题和模拟题;
[0013] 步骤S102、对步骤S101中爬取的考试阅读理解真题和模拟题进行预处理,包括标注背景材料中的答案句、构建训练集中的正例和负例以及问题和候选句中的断字处理,得到问句q、候选句s以及问句和候选句的共现词语w。
[0014] 进一步,所述步骤S2的具体步骤为:
[0015] 步骤S201、对问句、候选句以及词语节点进行初始化:从训练数据集中取出问句与候选句,使用BERT模型得到问句和候选句的编码表示,Xs和Xq分别表示背景材料句子节点和问题节点的输入特征矩阵;找出问句和候选句的共现词语w,利用word2Vector获得训练好的词向量,Xw表示词语的输入特征矩阵,dw为嵌入词语的维数;
[0016] 步骤S202、对节点之间的语义关联进行初始化,包括构建词语节点与问句节点、候选句节点的语义关联,问句节点与候选句节点的语义关联;
[0017] 步骤S203、基于步骤S201和S202的结果,构建异构网络图G=(V,E),其中,V为图的节点集合,包括问句节点、候选句节点以及词语节点;E为图中节点间的边集合,包括词语节点与问句节点、候选句节点的相似度,问句节点与候选句节点的相似度。
[0018] 进一步,所述步骤S202中构建词语节点与问句节点、候选句节点的语义关联时,利用TF‑IDF值计算词语节点和问句节点、候选句节点之间的关联,词频(TF)是句子中出现的词频,而反文档频率(IDF)是逆文本频率指数,相似度分数记为ewqs;所述构建问句节点与候选句节点的语义关联时,利用知网HowNet计算问句节点与候选句节点之间的关联,相似度分数记为eqs。
[0019] 进一步,所述步骤S3的具体步骤为:
[0020] 步骤S301、利用图注意网络对图节点表示学习:根据步骤S203得到的异构网络图dG,使用图注意网络更新节点的表示,以i、j表示网络图中的节点,以hi∈R(i∈{1,...,(m+n)})作为所有输入句子节点和词语节点的隐藏状态,图注意力层GAT的更新规则如下:
[0021] zij=LeakyReLU(Wa[Wqhi;Wkhj;eqs;ewqs])             (1)[0022]
[0023]
[0024] 式式中Wa、Wq、Wk、Wv为可训练权重,eqs为问句节点与所有候选句节点之间的语义关联,ewqs为词语节点与所有候选句节点和问题节点之间的语义关联,Zij表示节点间的注意力系数,αij为hi和hj之间的注意力权重,Ni表示与节点i有关联的邻居节点,ui表示节点i的注意力,多头注意可表示为:
[0025]
[0026] 式中K表示维度, 和Wk表示在不同维度上的注意力权重和训练权重;
[0027] 为了避免多次迭代后梯度消失,还添加了一个残差连接,最终输出可以表示为:
[0028] hi′=ui+hi                          (5)
[0029] 式中hi′表示加入多头注意力后的i节点的隐藏状态;
[0030] 步骤S302、对节点进行迭代更新:对词语节点、背景材料候选句节点和问题节点的表示进行更新,直到节点的重要度不再发生变化;在节点及边初始化之后,通过GAT和FFN层来更新词语节点,即聚合其相邻的候选句节点和问题节点更新词语节点:
[0031]
[0032]
[0033] 式中 为通过候选句节点和问题节点更新词语节点的多头注意力,GAT表示使用 作为注意查询, 和 作为键和值, 为更新后的词语节点;
[0034] 然后使用更新后的词语节点和初始化后的文章候选句节点获得问题节点的表示:
[0035]
[0036]
[0037] 式中 为通过候选句节点和词语节点更新问题节点的多头注意力,以相同的方式可以得到第一轮迭代过程中最终的候选句表示,迭代t次结束时,使用时间t时刻的词语节点和问题节点更新得到候选句节点:
[0038]
[0039]
[0040] 其中 为t‑1时刻通过词语节点和问题节点更新候选句节点的多头注意力,为t时刻的词语节点, 为t时刻的问题节点, 表示t时刻的候选句节点。
[0041] 进一步,所述步骤S4的具体步骤为:
[0042] 步骤S401、构建交叉熵损失函数,并对问答模型进行训练,具体为:首先,在学习到问答异构图中的节点表示之后,从异构图中提取文章中包含的句子节点;其次,对句子进行节点分类,并以交叉熵损失作为问答模型的训练目标,交叉熵损失表达式如下:
[0043]
[0044] 式中 为候选句节点Si的隐藏状态,N为候选句节点的总数,yi为节点i的标签,当yi=0时,表示节点i不是答案候选句,当yi=1时,表示节点i是答案候选句;
[0045] 步骤S402、将一个新的考试问题与背景材料中的所有候选句组成输入样本,送入利用步骤S401训练完成的考试问答模型,计算问题与候选答案之间相关度;根据候选句的分数高低进行排序,从所有结果中选取概率值最高的6个候选句作为答案推送给用户。
[0046] 与现有技术相比,本发明的有益效果如下:
[0047] (1)本发明采用一种基于端对端的神经网络模型对考试阅读理解中复杂问题进行建模,在端到端的框架中,注意力权重和神经网络参数共同被学习得到。
[0048] (2)本发明构建异构关系神经网络图,在神经网络模型中加入了不同粒度的语义节点,包括词语、问题和候选句。在神经网络模型中融入了丰富的语义关联,包括问词语与问题、候选句之间的关联,问句和候选句之间的语义关联。
[0049] (3)本发明在所构建的神经网络图模型中,综合考虑全局语义信息,对答案句进行获取和推理,在一定程度上提高了答案句的召回率和准确率。
[0050] (4)本发明提出的方法可以为我国中小学生、老师和家长提供高科技教育产品和服务,产生直接的实用价值和经济效益。

附图说明

[0051] 图1是基于图神经网络的阅读理解自动问答流程图;
[0052] 图2是步骤S1构建考试阅读理解问答数据集的流程框图;
[0053] 图3是步骤S2问答模型构建单元流程框图;
[0054] 图4是步骤S3语义推理单元流程框图;
[0055] 图5是步骤S4答案获取单元流程框图;
[0056] 图6是步骤S2所构建的异构网络结构框图;
[0057] 图7是本发明中异构图词语、句子和问题节点的更新示意图。

具体实施方式

[0058] 以下所述实例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但并不限制本发明专利的保护范围,凡采用等同替换或等效变换的形式所获得的技术方案,均应落在本发明的保护范围之内。
[0059] 实施例1
[0060] 如图1所示,本发明基于图神经网络的考试阅读理解自动问答方法,包括如下步骤:
[0061] 步骤S1,构建考试阅读理解问答数据集;
[0062] 步骤S2,利用异构图神经网络构建问答模型;
[0063] 步骤S3,利用异构图神经网络对答案句进行推理分析;
[0064] 步骤S4,构建交叉熵损失函数,对问答模型进行训练,将测试样本输入将一个新的考试问题与背景材料中的所有候选句组成测试样本,送入问答模型并获取答案。
[0065] 如图2所示,步骤S1中构建考试阅读理解问答数据集的具体步骤如下:
[0066] S101、利用Scrapy爬虫工具,从互联网的考试网站上爬取各省的高考真题和模拟题,构建考试阅读理解问答数据集,问答型阅读理解中的阅读材料和问题示例,如表1所示:
[0067] 表1
[0068]
[0069]
[0070]
[0071] S102、对步骤S101中从互联网的考试网站上爬取各省的高考真题和模拟题进行预处理,主要包括答案句标注和对阅读材料、问题和答案进行分词,得到问句q、候选句s以及问句和候选句的共现词语w;
[0072] S10201、根据参考答案对阅读材料中问题对应的答案句进行标注,答案句如表2所示:
[0073] 表2
[0074]
[0075] S10202、构建训练集的正例和负例,其中正例形式为:问题‑答案句,标签为1,其中答案句为问题对应的标注的相关答案句,负例的形式为:问题‑答案句,标签为0,其中1和0分别表示正例和负例,如表3所示:
[0076] 表3
[0077]
[0078] S10203、利用jieba分词工具对表1中阅读材料、问题和答案以及表2中的标注答案句进行分词处理,具体为:去停用词后,用空格分割;然后利用python中代码sentences=word2vec.Text8Corpus("file.txt")将其读取为参数格式:。
[0079] 如图3所示,步骤S2中利用异构图神经网络构建问答模型的具体步骤如下:
[0080] S201、对表1中的问题、表2中的答案候选句,以及分词得到的词语节点进行初始化,网络图中的节点如表4所示:(受到篇幅限制,这里仅仅列举出10个候选句和候选句中的词语节点)
[0081] 表4
[0082]
[0083]
[0084] 从表4中的训练数据集中取出问题与答案候选句,使用BERT模型得到问题和候选句的编码表示,Xs和Xq分别表示背景材料句子节点和问题节点的输入特征矩阵;找出将问句和候选句的共现词语w,利用word2Vector获得训练好的词向量表示词语的输入特征矩阵Xw。具体地,利用python中gensim.models.Word2Vec实现词向量的学习,需要设置的主要参数包括用于去除小于某阈值单词的min_count、神经网络层数size、算法选择sg、句子中当前词与目标词之间的最大距离window和线程数workers。
[0085] S202、对节点之间的语义关联进行初始化,包括词语节点与问句节点、候选句节点的关联,问句节点与候选句节点的关联;
[0086] S20201、构建词语节点与问句节点、候选句节点的关联:使用TF‑IDF值计算词语w和问句q、候选句s之间的关联。词频(TF)是句子中出现的词频,而反文档频率(IDF)是逆文本频率指数,相似度分数记为ewqs。具体地,调用sklearn中的TfidfVectorizer类计算TF‑IDF值,词语w的TF‑IDF值计算结果示例如下:
[0087] 表5
[0088]词语 TF‑IDF值 词语 TF‑IDF值
全球 0.0075 系统 0.0038
人口 0.0025 生物 0.0163
增长 0.0013 资源 0.0038
科学 0.0038 土地 0.0013
技术 0.0013 利用 0.0013
发展 0.0013 导致 0.0013
人类 0.0063 动植物 0.0063
创造 0.0013 栖息地 0.0025
文明 0.0038 … …
生态 0.0075    
[0089] S20202、构建问句节点与候选句节点的关联:使用知网HowNet计算问句q与所有候选句s节点之间的语义关联,相似度分数记为eqs,问句q与候选句s的相似度分数计算结果示例如下:
[0090] 表6
[0091]
[0092] S203、基于步骤S201和S202的结果,构建异构网络图G=(V,E),构建的异构网络结构框图如图6所示。
[0093] 步骤S3中利用异构图神经网络对答案句进行推理分析,具体步骤如下:
[0094] S301、如图4所示,用图注意网络对图节点表示学习:
[0095] 给定步骤S203中构造的具有节点特征和边特征的图G,使用图注意网络更新节点d的表示。以i、j表示网络图中的节点,以hi∈R (i∈{1,...,(m+n)})作为所有输入句子节点和词语节点的隐藏状态。
[0096] 根据输入节点的特征,使用自注意力机制计算得到的节点i对节点j的影响力系数,例如问题节点“就城市化与生物多样性的关系,上面三则材料分别表达了什么观点?说说这些观点对你认识这一关系有何启发。”对句子节点“长期以来对生物资源及土地的过度利用,导致了动植物栖息地丧失、环境污染等一系列问题的出现,生态环境及生物系统遭受了严重破坏。”的影响力系数,并且在此基础上加入步骤S20201和S20202计算得出的边权重,如公式(1)‑(5)所示。
[0097] zij=LeakyReLU(Wa[Wqhi;Wkhj;eqs;ewqs])              (1)[0098]
[0099]
[0100] 式中Wa、Wq、Wk、Wv为可训练权重,eqs为问句节点与所有候选句节点之间的语义关联,ewqs为词语节点与所有候选句节点和问题节点之间的语义关联,Zij表示节点间的注意力系数,αij为hi和hj之间的注意力权重,Ni表示与节点i有关联的邻居节点,ui表示节点i的注意力,多头注意可表示为:
[0101]k
[0102] 式中K表示维度, 和W表示在不同维度上的注意力权重和训练权重;
[0103] 为了避免多次迭代后梯度消失,还添加了一个残差连接,最终输出可以表示为:
[0104] hi′=ui+hi                          (5)
[0105] 式中hi′表示加入多头注意力后的i节点的隐藏状态;
[0106] S302、对所有节点进行迭代更新,更新示意图如图7所示。
[0107] 对词语节点、背景材料候选句节点和问题节点的表示进行更新,直到节点的重要度不再发生变化。在节点及边初始化之后,通过GAT和FFN层来更新词语节点,即聚合其相邻的候选句节点和问题节点更新词语节点。以相同的方式可以得到第一轮迭代过程中最终的候选句表示,迭代t次结束时,使用时间t时刻的词语节点和问题节点更新得到候选句节点。例如学习词语节点“生物”,背景材料候选句节点“长期以来对生物资源及土地的过度利用,导致了动植物栖息地丧失、环境污染等一系列问题的出现,生态环境及生物系统遭受了严重破坏。”和问题节点“就城市化与生物多样性的关系,上面三则材料分别表达了什么观点?说说这些观点对你认识这一关系有何启发。”的表示,直到节点的重要度不再发生变化,如公式(6)‑(11)所示。
[0108]
[0109]
[0110] 式中 为通过候选句节点和问题节点更新词语节点的多头注意力,GAT表示使用 作为注意查询, 和 作为键和值, 为更新后的词语节点;
[0111] 然后使用更新后的词语节点和初始化后的文章候选句节点获得问题节点的表示:
[0112]
[0113]
[0114] 式中 为通过候选句节点和词语节点更新问题节点的多头注意力,以相同的方式可以得到第一轮迭代过程中最终的候选句表示,迭代t次结束时,使用时间t时刻的词语节点和问题节点更新得到候选句节点:
[0115]
[0116]
[0117] 其中 为t‑1时刻通过词语节点和问题节点更新候选句节点的多头注意力,为t时刻的词语节点, 为t时刻的问题节点, 表示t时刻的候选句节点。
[0118] 如图5所示,步骤S4中答案获取单元,具体步骤如下:
[0119] S401、构建交叉熵损失函数,并对整个系统进行训练:
[0120] 根据S302中学到的节点表示计算问题与句子的匹配程度并排序,具体为:在学习到问答异构图中的节点表示之后,需要从异构图中提取文章中包含的句子节点,然后对句子进行节点分类,并以交叉熵损失作为整个系统的训练目标,计算方法如公式(12)所示:
[0121]
[0122] 式中 为候选句节点Si的隐藏状态,N为候选句节点的总数,yi为节点i的标签,当yi=0时,表示节点i不是答案候选句,当yi=1时,表示节点i是答案候选句;
[0123] S402,将一个新的考试问题与背景材料中的所有候选句组成输入样本,送入利用S401训练完成的考试问答模型,计算问题与候选句之间相关度。问题q与候选句s之间的相关度如表7所示:
[0124] 表7
[0125]候选句 与问句的关联度 候选句 与问句的关联度
S1 0.427 S21 0.809
S2 0.419 S22 0.467
S3 0.513 S23 0.456
S4 0.398 S24 0.376
S5 0.324 S25 0.453
S6 0.334 S26 0.342
S7 0.423 S27 0.167
S8 0.389 S28 0.488
S9 0.540 S29 0.752
S10 0.497 S30 0.453
S11 0.326 S31 0.257
S12 0.388 S32 0.501
S13 0.169 S33 0.628
S14 0.321 S34 0.463
S15 0.219 S35 0.456
S16 0.137 S36 0.502
S17 0.286 S37 0.421
S18 0.162 S38 0.837
S19 0.289    
S20 0.314    
[0126] 从所有结果中选取概率值最高的6个候选句作为答案推送给用户。输出候选句排序中得分最高的前六句作为答案句,具体地,根据候选句的分数高低进行排序,其中得分将图神经网络学习到的节点表示输入Softmax计算得出,而后选取前六句作为答案句,输出示例如表8所示。
[0127] 表8
[0128]