基于异构图注意力网络的数学应用题自动求解方法及系统

未命名 09-22 阅读:101 评论:0


1.本发明属于自然语言处理领域,具体涉及一种基于异构图注意力网络的数学应用题自动求解方法及系统。


背景技术:

2.机器自动求解数学应用题(math word problem,mwp)是机器解答领域中的热门问题。自动解决数学应用题的目的是根据文本描述,用数学表达式回答问题。数学应用题类型多种多样,并且复杂程度不一,并且它需要计算机理解人类如何理解自然语言,应用数学规则使用领域知识进行逻辑推理。
3.数学应用题自动求解是机器解答研究中的一个重要研究方向之一。数学应用题自动求解的方法主要分为四种:基于规则的方法、基于统计机器学习的方法、基于语义解析的方法和基于深度学习的方法。近年来,深度学习方法因其自动特征学习和通用性的优点而被广泛应用。一些研究将机器学习作为机器翻译任务,直接将输入的数学应用题文本转换为解表达式。wang等人提出了一个深度神经求解器是一个seq2seq模型,它直接将输入问题转换为输出表达式。wang等人提出了t-rnn模型,应用递归神经网络来预测预测模板中的未知算子。然而,直接转换为解表达式并没有考虑数学算式的规则,容易生成一些不符合规范、不能计算的解表达式。因此,一些研究人员将生成解表达式的任务转换为树结构,提出了seq2tree模型,采用树形解码器模拟人类解答数学应用题的思路,并且学习算术表达式中数字与操作符之间的约束关系,避免生成一些不符合规范且不能计算的算术表达式。xie等人提出了基于目标驱动的树结构mwp求解器(gts),通过树结构的神经网络生成表达式,以目标驱动的方式生成树。随着图神经网络的发展,一些研究人员将图结构引入了数学应用题文本编码过程中,将文本解析为图结构,使用句法依赖树等结构构建图。zhang等人提出了grap2tree模型,应用一个基于图的编码器来捕获数量之间的关系和顺序信息。wu等人提出了边增强的层次group2tree模型(eeh-g2t)构造了用于问题表示的边缘标记图,并基于外部知识库捕获常识信息,取得了很好的效果。但现有的基于graph2tree结构的神经网络模型只是简单的将整个数学应用题文本构图,没有充分利用文本中的子句级信息和文本中的词之间的结构关系,这导致了许多更细粒度的信息没有被利用。


技术实现要素:

4.本发明的目的在于提供一种基于异构图注意力网络的数学应用题自动求解方法及系统,该方法及系统有利于提高数学应用题自动求解的准确性。
5.为实现上述目的,本发明采用的技术方案是:一种基于异构图注意力网络的数学应用题自动求解方法,包括以下步骤:
6.步骤a:采集数学应用题文本、解表达式和答案,构建数学应用题训练集ds;
7.步骤b:使用训练集ds训练基于异构图注意力网络的深度学习网络模型g,用于求解数学应用题;
8.步骤c:将数学应用题文本输入深度学习网络模型g中,输出当前数学应用题的相应解表达式和答案。
9.进一步地,所述步骤b具体包括以下步骤:
10.步骤b1:从训练集ds中的每个训练样本提取出其中的数字并替换为特殊的token[num],然后进行编码,得到数学应用题文本的初始表征向量e、依赖树邻接矩阵as和成分树邻接矩阵列表cs,对每个训练样本中提取出来的数字进行单独编码得到数字编码表示e
num
,然后对数字按照大小关系进行构图,并输入图卷积神经网络中,得到融合大小关系的数字隐藏表示h
num
,将初始表征向量e中的数字表示与融合大小关系的数字隐藏表示h
num
进行双仿射融合,得到数字表征向量h
new
,再将其放回初始表征向量e,得到融合数字表示的表征向量h
fs

[0011]
步骤b2:对训练集ds中的每个训练样本按照标点符号进行分句,将融合数字表示的表征向量h
fs
按照子句分割,得到分割后子句的表示h
c_s
,同样对分句后的每个子句构建依赖树邻接矩阵a
c_s
和成分树邻接矩阵列表c
c_s

[0012]
步骤b3:将步骤b2得到的句法依存邻接矩阵a
c_s
和成分树矩阵列表c
c_s
进行融合,得到子句级邻接矩阵列表adj
c_s
,将子句级邻接矩阵adj
c_s
和子句的表征向量h
c_s
输入到多层图注意力神经网络中,得到子句级数学应用题文本表示g
c_s
,然后将子句级文本表示g
c_s
重新拼接,得到融合子句表示的数学应用题表征向量h
c_g

[0013]
步骤b4:将步骤b1得到的句法依存邻接矩阵as和成分树邻接矩阵列表cs进行融合,得到样本级邻接矩阵列表adj,将样本级邻接矩阵列表adj和融合子句表示的数学应用题表征向量h
c_g
输入到多层图注意力神经网络中,得到样本级的数学应用题文本表示h,然后将样本级数学应用题文本表示h进行平均池化,得到初始目标向量q;
[0014]
步骤b5:将步骤b4中得到的样本级的数学应用题文本表示h和初始目标向量q输入到树型解码器中,根据目标损失函数loss,利用反向传播方法计算深度学习网络模型中各参数的梯度,并利用随机梯度下降方法更新各参数;
[0015]
步骤b6:当深度学习网络模型产生的损失值迭代变化小于所给定阈值、或者达到最大迭代次数,则终止深度学习网络模型的训练过程。
[0016]
进一步地,所述步骤b1具体包括以下步骤:
[0017]
步骤b11:对训练集ds进行遍历,将其中的解表达式转换为前缀表达式p,将数学应用题文本中的数字统一转换为特殊的token[num],并记录其数值v;构建解码器的目标词汇表v,其中包括运算符op、常量con和在数学应用题中出现过的数字n
p
,即v=pv
op
,v
con
,n
p
};ds中的每个样本表示为ds=(s,v,p);其中s为数学应用题文本,v为数学应用题中出现的数字,p为数学应用题的解表达式;
[0018]
数学应用题文本s表示为:
[0019][0020]
其中,为数学应用题文本s中的第i个词,i=1,2,3

,n,n为数学应用题文本中的词语数量;
[0021]
数学应用题的数字v表示为:
[0022]
v={v1,v2,v3,

,vk}
[0023][0024]
其中,为数学应用题文本中出现的第i个数字中第j个字符,i=1,2,3

,k,k为数学应用题文本中出现的数字的个数,j=1,2,3

,m,m为数字vi的长度;
[0025]
数学应用题的解表达式p表示为:
[0026][0027]
其中,为数学应用题解表达式的第i个部分,i=1,2,3

,m,m为数学应用题文本解表达式的长度,有两种类型{op,number},其中op表示运算符{+,-,
×

÷
},number表示数字;
[0028]
步骤b12:对步骤b11中得到的数学应用题文本使用bert作为编码器进行编码,得到初始表征向量e;
[0029]
对训练集中的每个样本进行句法依存分析和句法成分分析,得到句法依赖树和成分树,并将其编码为n阶邻接矩阵as和n阶邻接矩阵列表cs,as表示为:
[0030][0031]
其中,a
ij
为1表示词和词之间存在句法依存关系,为0则表示词和词不存在句法依存关系;
[0032]cs
表示为:
[0033][0034]
其中表示第i层成分树的邻接矩阵,c
ij
为1表示词和词之间存在成分依存关系,为0则表示词和词不存在成分依存关系;
[0035]
步骤b13:将步骤b11得到的数字v={v1,v2,v3,

,vk},通过随机初始化得到数字v的初始表征en;将初始表征输入到一层双向门控循环神经网络的前向层和反向层中,分别得到前向隐层的状态向量序列和反向隐层状态向量序列和反向隐层状态向量序列其中,其中,将前向隐层状态向量和反向隐层状态向量拼接,并进行平均池化,得到数字编码表示e
num

[0036][0037]
[0038][0039]
其中,表示拼接操作;
[0040]
步骤b14:将步骤b11得到的数字v={v1,v2,v3,

,vk},按照数字的大小关系构建邻接矩阵adj
num

[0041][0042]
然后将邻接矩阵adj
num
和数字特征向量e
num
输入一个图卷积神经网络中,得到融合大小关系的数字隐藏表示h
num

[0043]hnum
=gcn(adj
num
,e
num
)
[0044]
步骤b15:将步骤b14得到的融合大小关系的数字隐藏表示h
num
与初始表征向量es中的数字表示e
org
进行双仿射融合,得到融合上下文表示的数字表征向量h
new

[0045][0046]
其中,w2和w3是可学习的权重矩阵;并将h
new
替换掉初始表征向量e中的数字表示,得到融合数字表示的表征向量h
fs

[0047]
进一步地,所述步骤b2具体包括以下步骤:
[0048]
步骤b21:对每个训练样本按照标点符号进行分句,将融合数字及其邻居节点的表征向量h
fs
按照子句切割,得到分句后每个子句的表示其中,k表示文本中一共有k个子句;
[0049]
步骤b22:对步骤21中得到的每个子句进行句法依存分析和句法成分分析,得到句法依赖树和成分树,并将其编码为n阶邻接矩阵a
c_s
和n阶邻接矩阵列表c
c_s
,a
c_s
表示为:
[0050][0051][0052]
其中,为1表示词和词之间存在句法依存关系,为0则表示词和词不存在句法依存关系,表示第i个子句的依赖树邻接矩阵;
[0053]cc_s
表示为:
[0054][0055][0056][0057]
其中,表示第i个子句的第j层成分树邻接矩阵,表示第i个子句的成分树
邻接矩阵,为1表示词和词之间存在成分依存关系,为0则表示词和词不存在成分依存关系。
[0058]
进一步地,所述步骤b3具体包括以下步骤:
[0059]
步骤b31:选择步骤b2中得到的子句的成分树的邻接矩阵c
c_s
的最后k层,得到子句的成分树邻接矩阵将步骤b2中得到的子句的依赖树的邻接矩阵a
c_s
复制k次并将其与成分树矩阵以取并集的方式融合,即当两者有一方为1,则邻接矩阵对应位置为1,否则为0,得到子句级邻接矩阵列表adj
c_s

[0060]
步骤b32:将步骤b31中得到的子句级邻接矩阵adj
c_s
和子句的表征向量h
c_s
输入到k层图注意力神经网络中,得到子句级数学应用题文本表示g
c_s
,然后进行拼接,得到融合子句表示的数学应用题表征向量h
c_g

[0061]hc_s
=g0[0062][0063][0064][0065][0066]hc_g
=||gk[0067]
其中,w4和w5是可学习的权重矩阵,||表示拼接操作,ffc表示前馈神经网络,表示第1层i节点的邻居节点。
[0068]
进一步地,所述步骤b4具体包括以下步骤:
[0069]
步骤b41:将步骤b1中得到的依赖树邻接矩阵as和成分树邻接矩阵列表cs按照子句级邻接矩阵的融合方式融合,得到样本级邻接矩阵adj;
[0070]
步骤b42:将步骤b41中得到的样本级邻接矩阵adj和步骤b3得到的子句级的表征向量输入到k层图注意力神经网络中,得到样本级的表征向量h,然后对其进行平均池化,得到初始目标向量q;
[0071]hc_g
=g0[0072][0073][0074]
[0075][0076]
h=gk[0077]
q=meanpool(h)
[0078]
其中,w6、w7和是可学习的权重矩阵,d表示输入维度,h表示注意力头数。
[0079]
进一步地,所述步骤b5具体包括以下步骤:
[0080]
步骤b51:h
p
表示样本p的样本级表征向量,将步骤b1中得到的对于样本p的目标词汇表v中的每个token,定义他们的embedding为:
[0081][0082]
其中,m
op
和m
con
是可学习的权重矩阵,通过查询嵌入矩阵得到初始化的token表示,表示步骤b4中得到的样本p的样本级表征向量在y位置上的表示,即样本p中出现的数字的表示;
[0083]
步骤b52:通过步骤b4中得到的目标向量q和样本级表征向量h,推导出一个上下文向量c,计算公式如下:
[0084][0085][0086][0087]
然后从目标词汇表v中生成一个tokeny,它的非归一化对数概率为:
[0088][0089]
其中,ws是可学习的权重矩阵;然后对其做归一化,生成概率最高的token作为预测值:
[0090][0091][0092]
步骤b53:假设步骤b52中预测的token为一个运算符,那么当前的目标向量q将由一个左子目标和一个右子目标来实现;左子目标是由一个具有门控机制的两层前馈神经网络计算的:
[0093][0094]
[0095]hl
=o
l
⊙cl
[0096][0097]qle
=tanh(w
lehl
)
[0098]ql
=g
l
⊙qle
[0099]
其中,w
ol
、w
cl
、w
gl
和w
le
是可学习的权重矩阵;
[0100]
步骤b54:右子树的右子目标要考虑左子树,将左子树自下而上编码为:
[0101][0102][0103][0104][0105]
其中,w
gt
和w
ct
是可学习的权重矩阵;
[0106]
然后计算右子节点的目标向量qr,hr是隐藏状态,其父节点自上而下传递给它所在的右子节点:
[0107][0108][0109]hr
=or⊙cr
[0110]gr
=σ(w
gr
[hr,t
l
])
[0111]qre
=tanh(w
re
[hr,t
l
])
[0112]
qr=gr⊙qre
[0113]
其中,w
or
、w
cr
、w
gr
和w
re
是可学习的权重矩阵;
[0114]
步骤b54:对于训练数据集ds=(s,v,p),设置目标损失函数为负对数似然函数:
[0115][0116]
其中,m表示前缀表达式的长度。
[0117]
本发明还提供了一种基于异构图注意力网络的数学应用题自动求解系统,包括存储器、处理器以及存储于存储器上并能够被处理器运行的计算机程序指令,当处理器运行该计算机程序指令时,能够实现上述的方法步骤。
[0118]
与现有技术相比,本发明具有以下有益效果:本发明首先对数学应用题中的数字进行编码,然后利用数字之间的大小关系构图,通过一个图卷积神经网络学习数字本身的信息,然后对文本进行分句,利用子句的成分树和依赖树进行融合构图,通过多层图注意力神经网络得到子句粒度的文本表示,将其拼接回样本级并同样进行依赖树和成分树融合构图,通过图注意力神经网络得到样本级表示,并将其输入到基于树结构的解码器,从而提高模型预测数学应用题解表达式的准确性。
附图说明
[0119]
图1是本发明实施例的方法实现流程图;
[0120]
图2是本发明实施例的模型架构图。
具体实施方式
[0121]
下面结合附图及实施例对本发明做进一步说明。
[0122]
应该指出,以下详细说明都是示例性的,旨在对本技术提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本技术所属技术领域的普通技术人员通常理解的相同含义。
[0123]
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0124]
如图1所示,本实施例提供了一种基于异构图注意力网络的数学应用题自动求解方法,包括以下步骤:
[0125]
步骤a:采集数学应用题文本、解表达式和答案,构建数学应用题训练集ds。
[0126]
步骤b:使用训练集ds训练基于异构图注意力网络的深度学习网络模型g,用于求解数学应用题。本实施例中,基于异构图注意力网络的深度学习网络模型g的架构如图2所示。
[0127]
步骤c:将数学应用题文本输入深度学习网络模型g中,输出当前数学应用题的相应解表达式和答案。
[0128]
在本实施例中,所述步骤b具体包括以下步骤:
[0129]
步骤b1:从训练集ds中的每个训练样本提取出其中的数字并替换为特殊的token[num],然后进行编码,得到数学应用题文本的初始表征向量e、依赖树邻接矩阵as和成分树邻接矩阵列表cs,对每个训练样本中提取出来的数字进行单独编码得到数字编码表示e
num
,然后对数字按照大小关系进行构图,并输入图卷积神经网络中,得到融合大小关系的数字隐藏表示h
num
,将初始表征向量e中的数字表示与融合大小关系的数字隐藏表示h
num
进行双仿射融合,得到数字表征向量h
new
,再将其放回初始表征向量e,得到融合数字表示的表征向量h
fs

[0130]
在本实施例中,所述步骤b1具体包括以下步骤:
[0131]
步骤b11:对训练集ds进行遍历,将其中的解表达式转换为前缀表达式p,将数学应用题文本中的数字统一转换为特殊的token[num],并记录其数值v;构建解码器的目标词汇表v,其中包括运算符op、常量con和在数学应用题中出现过的数字n
p
,即v={v
op
,v
con
,n
p
};ds中的每个样本表示为ds=(s,v,p);其中s为数学应用题文本,v为数学应用题中出现的数字,p为数学应用题的解表达式。
[0132]
数学应用题文本s表示为:
[0133][0134]
其中,为数学应用题文本s中的第i个词,i=1,2,3

,n,n为数学应用题文本中
的词语数量。
[0135]
数学应用题的数字v表示为:
[0136]
v={v1,v2,v3,

,vk}
[0137][0138]
其中,为数学应用题文本中出现的第i个数字中第j个字符,i=1,2,3

,k,k为数学应用题文本中出现的数字的个数,j=1,2,3

,m,m为数字vi的长度。
[0139]
数学应用题的解表达式p表示为:
[0140][0141]
其中,为数学应用题解表达式的第i个部分,i=1,2,3

,m,m为数学应用题文本解表达式的长度,有两种类型{op,number},其中op表示运算符p+,-,
×

÷
},number表示数字。
[0142]
步骤b12:对步骤b11中得到的数学应用题文本使用bert作为编码器进行编码,得到初始表征向量e。
[0143]
对训练集中的每个样本进行句法依存分析和句法成分分析,得到句法依赖树和成分树,并将其编码为n阶邻接矩阵as和n阶邻接矩阵列表cs,as表示为:
[0144][0145]
其中,a
ij
为1表示词和词之间存在句法依存关系,为0则表示词和词不存在句法依存关系。
[0146]cs
表示为:
[0147][0148]
其中表示第i层成分树的邻接矩阵,c
ij
为1表示词和词之间存在成分依存关系,为0则表示词和词不存在成分依存关系。
[0149]
步骤b13:将步骤b11得到的数字v={v1,v2,v3,

,vk},通过随机初始化得到数字v的初始表征en;将初始表征输入到一层双向门控循环神经网络的前向层和反向层中,分别得到前向隐层的状态向量序列和反向隐层状态向量序列和反向隐层状态向量序列其中,其中,将前向隐层状态向量和反向隐层状态向量拼接,并进行平均池化,得到数字编码表示e
num

[0150]
[0151][0152][0153]
其中,表示拼接操作。
[0154]
步骤b14:将步骤b11得到的数字v={v1,v2,v3,

,vk},按照数字的大小关系构建邻接矩阵adj
num

[0155][0156]
然后将邻接矩阵adj
num
和数字特征向量e
num
输入一个图卷积神经网络中,得到融合大小关系的数字隐藏表示h
num

[0157]hnum
=gcn(adj
num
,e
num
)
[0158]
步骤b15:将步骤b14得到的融合大小关系的数字隐藏表示h
num
与初始表征向量es中的数字表示e
org
进行双仿射融合,得到融合上下文表示的数字表征向量h
new

[0159][0160]
其中,w2和w3是可学习的权重矩阵;并将h
new
替换掉初始表征向量e中的数字表示,得到融合数字表示的表征向量h
fs

[0161]
步骤b2:对训练集ds中的每个训练样本按照标点符号进行分句,将融合数字表示的表征向量h
fs
按照子句分割,得到分割后子句的表示h
c_s
,同样对分句后的每个子句构建依赖树邻接矩阵a
c_s
和成分树邻接矩阵列表c
c_s

[0162]
在本实施例中,所述步骤b2具体包括以下步骤:
[0163]
步骤b21:对每个训练样本按照标点符号进行分句,将融合数字及其邻居节点的表征向量h
fs
按照子句切割,得到分句后每个子句的表示其中,k表示文本中一共有k个子句。
[0164]
步骤b22:对步骤21中得到的每个子句进行句法依存分析和句法成分分析,得到句法依赖树和成分树,并将其编码为n阶邻接矩阵a
c_s
和n阶邻接矩阵列表c
c_s
,a
c_s
表示为:
[0165][0166][0167]
其中,为1表示词和词之间存在句法依存关系,为0则表示词和词不存在句法依存关系,表示第i个子句的依赖树邻接矩阵。
[0168]cc_s
表示为:
[0169]
[0170][0171][0172]
其中,表示第i个子句的第j层成分树邻接矩阵,表示第i个子句的成分树邻接矩阵,为1表示词和词之间存在成分依存关系,为0则表示词和词不存在成分依存关系。
[0173]
步骤b3:将步骤b2得到的句法依存邻接矩阵a
c_s
和成分树矩阵列表c
c_s
进行融合,得到子句级邻接矩阵列表adj
c_s
,将子句级邻接矩阵adj
c_s
和子句的表征向量h
c_s
输入到多层图注意力神经网络中,得到子句级数学应用题文本表示g
c_s
,然后将子句级文本表示g
c_s
重新拼接,得到融合子句表示的数学应用题表征向量h
c_g

[0174]
在本实施例中,所述步骤b3具体包括以下步骤:
[0175]
步骤b31:选择步骤b2中得到的子句的成分树的邻接矩阵c
c_s
的最后k层,得到子句的成分树邻接矩阵将步骤b2中得到的子句的依赖树的邻接矩阵a
c_s
复制k次并将其与成分树矩阵以取并集的方式融合,即当两者有一方为1,则邻接矩阵对应位置为1,否则为0,得到子句级邻接矩阵列表adj
c_s

[0176]
步骤b32:将步骤b31中得到的子句级邻接矩阵adj
c_s
和子句的表征向量h
c_s
输入到k层图注意力神经网络中,得到子句级数学应用题文本表示g
c_s
,然后进行拼接,得到融合子句表示的数学应用题表征向量h
c_g

[0177]hc_s
=g0[0178][0179][0180][0181][0182]hc_g
=||gk[0183]
其中,w4和w5是可学习的权重矩阵,||表示拼接操作,ffc表示前馈神经网络,表示第1层i节点的邻居节点。
[0184]
步骤b4:将步骤b1得到的句法依存邻接矩阵as和成分树邻接矩阵列表cs进行融合,得到样本级邻接矩阵列表adj,将样本级邻接矩阵列表adj和融合子句表示的数学应用题表征向量h
c_g
输入到多层图注意力神经网络中,得到样本级的数学应用题文本表示h,然后将样本级数学应用题文本表示h进行平均池化,得到初始目标向量q。
[0185]
在本实施例中,所述步骤b4具体包括以下步骤:
[0186]
步骤b41:将步骤b1中得到的依赖树邻接矩阵as和成分树邻接矩阵列表cs按照子句
级邻接矩阵的融合方式融合,得到样本级邻接矩阵adj。
[0187]
步骤b42:将步骤b41中得到的样本级邻接矩阵adj和步骤b3得到的子句级的表征向量输入到k层图注意力神经网络中,得到样本级的表征向量h,然后对其进行平均池化,得到初始目标向量q;
[0188]hc_g
=g0[0189][0190][0191][0192][0193]
h=gk[0194]
q=meanpool(h)
[0195]
其中,w6、w7和是可学习的权重矩阵,d表示输入维度,h表示注意力头数。
[0196]
步骤b5:将步骤b4中得到的样本级的数学应用题文本表示h和初始目标向量q输入到树型解码器中,根据目标损失函数loss,利用反向传播方法计算深度学习网络模型中各参数的梯度,并利用随机梯度下降方法更新各参数。
[0197]
在本实施例中,所述步骤b5具体包括以下步骤:
[0198]
步骤b51:h
p
表示样本p的样本级表征向量,将步骤b1中得到的对于样本p的目标词汇表v中的每个token,定义他们的embedding为:
[0199][0200]
其中,m
op
和m
con
是可学习的权重矩阵,通过查询嵌入矩阵得到初始化的token表示,表示步骤b4中得到的样本p的样本级表征向量在y位置上的表示,即样本p中出现的数字的表示。
[0201]
步骤b52:通过步骤b4中得到的目标向量q和样本级表征向量h,推导出一个上下文向量c,计算公式如下:
[0202][0203][0204]
[0205]
然后从目标词汇表v中生成一个token y,它的非归一化对数概率为:
[0206][0207]
其中,ws是可学习的权重矩阵;然后对其做归一化,生成概率最高的token作为预测值:
[0208][0209][0210]
步骤b53:假设步骤b52中预测的token为一个运算符,那么当前的目标向量q将由一个左子目标和一个右子目标来实现;左子目标是由一个具有门控机制的两层前馈神经网络计算的:
[0211][0212][0213]hl
=o
l
⊙cl
[0214]gl
=σ(w
glhl
)
[0215]qle
=tanh(w
lehl
)
[0216]ql
=g
l
⊙qle
[0217]
其中,w
ol
、w
cl
、w
gl
和w
le
是可学习的权重矩阵。
[0218]
步骤b54:右子树的右子目标要考虑左子树,将左子树自下而上编码为:
[0219][0220][0221][0222][0223]
其中,w
gt
和w
ct
是可学习的权重矩阵。
[0224]
然后计算右子节点的目标向量qr,hr是隐藏状态,其父节点自上而下传递给它所在的右子节点:
[0225][0226][0227]hr
=or⊙cr
[0228]gr
=σ(w
gr
[hr,t
l
])
[0229]qre
=tanh(w
re
[hr,t
l
])
[0230]
qr=gr⊙qre
[0231]
其中,w
or
、w
cr
、w
gr
和w
re
是可学习的权重矩阵。
[0232]
步骤b54:对于训练数据集ds=(s,v,p),设置目标损失函数为负对数似然函数:
[0233][0234]
其中,m表示前缀表达式的长度。
[0235]
步骤b6:当深度学习网络模型产生的损失值迭代变化小于所给定阈值、或者达到最大迭代次数,则终止深度学习网络模型的训练过程。
[0236]
本实施例还提供了一种基于异构图注意力网络的数学应用题自动求解系统,包括存储器、处理器以及存储于存储器上并能够被处理器运行的计算机程序指令,当处理器运行该计算机程序指令时,能够实现上述的方法步骤。
[0237]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0238]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0239]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0240]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0241]
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

技术特征:
1.一种基于异构图注意力网络的数学应用题自动求解方法,其特征在于,包括以下步骤:步骤a:采集数学应用题文本、解表达式和答案,构建数学应用题训练集ds;步骤b:使用训练集ds训练基于异构图注意力网络的深度学习网络模型g,用于求解数学应用题;步骤c:将数学应用题文本输入深度学习网络模型g中,输出当前数学应用题的相应解表达式和答案。2.根据权利要求1所述的基于异构图注意力网络的数学应用题自动求解方法,其特征在于,所述步骤b具体包括以下步骤:步骤b1:从训练集ds中的每个训练样本提取出其中的数字并替换为特殊的token[num],然后进行编码,得到数学应用题文本的初始表征向量e、依赖树邻接矩阵a
s
和成分树邻接矩阵列表c
s
,对每个训练样本中提取出来的数字进行单独编码得到数字编码表示e
num
,然后对数字按照大小关系进行构图,并输入图卷积神经网络中,得到融合大小关系的数字隐藏表示h
num
,将初始表征向量e中的数字表示与融合大小关系的数字隐藏表示h
num
进行双仿射融合,得到数字表征向量h
new
,再将其放回初始表征向量e,得到融合数字表示的表征向量h
fs
;步骤b2:对训练集ds中的每个训练样本按照标点符号进行分句,将融合数字表示的表征向量h
fs
按照子句分割,得到分割后子句的表示h
c_s
,同样对分句后的每个子句构建依赖树邻接矩阵a
c_s
和成分树邻接矩阵列表c
c_s
;步骤b3:将步骤b2得到的句法依存邻接矩阵a
c_s
和成分树矩阵列表c
c_s
进行融合,得到子句级邻接矩阵列表adj
c_s
,将子句级邻接矩阵adj
c_s
和子句的表征向量h
c_s
输入到多层图注意力神经网络中,得到子句级数学应用题文本表示g
c_s
,然后将子句级文本表示g
c_s
重新拼接,得到融合子句表示的数学应用题表征向量h
c-g
;步骤b4:将步骤b1得到的句法依存邻接矩阵a
s
和成分树邻接矩阵列表c
s
进行融合,得到样本级邻接矩阵列表adj,将样本级邻接矩阵列表adj和融合子句表示的数学应用题表征向量h
c_g
输入到多层图注意力神经网络中,得到样本级的数学应用题文本表示h,然后将样本级数学应用题文本表示h进行平均池化,得到初始目标向量q;步骤b5:将步骤b4中得到的样本级的数学应用题文本表示h和初始目标向量q输入到树型解码器中,根据目标损失函数loss,利用反向传播方法计算深度学习网络模型中各参数的梯度,并利用随机梯度下降方法更新各参数;步骤b6:当深度学习网络模型产生的损失值迭代变化小于所给定阈值、或者达到最大迭代次数,则终止深度学习网络模型的训练过程。3.根据权利要求2所述的基于异构图注意力网络的数学应用题自动求解方法,其特征在于,所述步骤b1具体包括以下步骤:步骤b11:对训练集ds进行遍历,将其中的解表达式转换为前缀表达式p,将数学应用题文本中的数字统一转换为特殊的token[num],并记录其数值v;构建解码器的目标词汇表v,其中包括运算符op、常量con和在数学应用题中出现过的数字n
p
,即v={v
op
,v
con
,n
p
};ds中的每个样本表示为ds=(s,v,p);其中s为数学应用题文本,v为数学应用题中出现的数字,p为数学应用题的解表达式;
数学应用题文本s表示为:其中,为数学应用题文本s中的第i个词,i=1,2,3

,n,n为数学应用题文本中的词语数量;数学应用题的数字v表示为:v={v1,v2,v3,

,v
k
}其中,为数学应用题文本中出现的第i个数字中第j个字符,i=1,2,3

,k,k为数学应用题文本中出现的数字的个数,j=1,2,3

,m,m为数字v
i
的长度;数学应用题的解表达式p表示为:其中,为数学应用题解表达式的第i个部分,i=1,2,3

,m,m为数学应用题文本解表达式的长度,有两种类型{op,number},其中op表示运算符{+,-,
×

÷
},number表示数字;步骤b12:对步骤b11中得到的数学应用题文本使用bert作为编码器进行编码,得到初始表征向量e;对训练集中的每个样本进行句法依存分析和句法成分分析,得到句法依赖树和成分树,并将其编码为n阶邻接矩阵a
s
和n阶邻接矩阵列表c
s
,a
s
表示为:其中,a
ij
为1表示词和词之间存在句法依存关系,为0则表示词和词不存在句法依存关系;c
s
表示为:其中表示第i层成分树的邻接矩阵,c
ij
为1表示词和词之间存在成分依存关系,为0则表示词和词不存在成分依存关系;步骤b13:将步骤b11得到的数字v={v1,v2,v3,

,v
k
},通过随机初始化得到数字v的初始表征e
n
;将初始表征输入到一层双向门控循环神经网络的前向层和反向层中,分别得到前向隐层的状态向量序列和反向隐层状态向量序列和反向隐层状态向量序列其中,其中,t=1,2,3

,m,将前向隐层状态向量和反向隐层状态向量拼接,并进行平均池化,得到数字编码表示e
num

其中,表示拼接操作;步骤b14:将步骤b11得到的数字v={v1,v2,v3,

,v
k
},按照数字的大小关系构建邻接矩阵adj
num
:然后将邻接矩阵adj
num
和数字特征向量e
num
输入一个图卷积神经网络中,得到融合大小关系的数字隐藏表示h
num
:h
num
=gcn(adj
num
,e
num
)步骤b15:将步骤b14得到的融合大小关系的数字隐藏表示h
num
与初始表征向量e
s
中的数字表示e
org
进行双仿射融合,得到融合上下文表示的数字表征向量h
new
:其中,w2和w3是可学习的权重矩阵;并将h
new
替换掉初始表征向量e中的数字表示,得到融合数字表示的表征向量h
fs
。4.根据权利要求3所述的基于异构图注意力网络的数学应用题自动求解方法,其特征在于,所述步骤b2具体包括以下步骤:步骤b21:对每个训练样本按照标点符号进行分句,将融合数字及其邻居节点的表征向量h
fs
按照子句切割,得到分句后每个子句的表示其中,k表示文本中一共有k个子句;步骤b22:对步骤21中得到的每个子句进行句法依存分析和句法成分分析,得到句法依赖树和成分树,并将其编码为n阶邻接矩阵a
c_s
和n阶邻接矩阵列表c
c_s
,a
c_s
表示为:表示为:其中,为1表示词和词之间存在句法依存关系,为0则表示词和词不存在句法依存关系,表示第i个子句的依赖树邻接矩阵;c
c_s
表示为:表示为:表示为:
其中,表示第i个子句的第j层成分树邻接矩阵,表示第i个子句的成分树邻接矩阵,为1表示词和词之间存在成分依存关系,为0则表示词和词不存在成分依存关系。5.根据权利要求4所述的基于异构图注意力网络的数学应用题自动求解方法,其特征在于,所述步骤b3具体包括以下步骤:步骤b31:选择步骤b2中得到的子句的成分树的邻接矩阵c
c_s
的最后k层,得到子句的成分树邻接矩阵将步骤b2中得到的子句的依赖树的邻接矩阵a
c_s
复制k次并将其与成分树矩阵以取并集的方式融合,即当两者有一方为1,则邻接矩阵对应位置为1,否则为0,得到子句级邻接矩阵列表adj
c_s
;步骤b32:将步骤b31中得到的子句级邻接矩阵adj
c_s
和子句的表征向量h
c_s
输入到k层图注意力神经网络中,得到子句级数学应用题文本表示g
c_s
,然后进行拼接,得到融合子句表示的数学应用题表征向量h
c_g
;h
c_s
=g
0000
h
c_g
=||g
k
其中,w4和w5是可学习的权重矩阵,||表示拼接操作,ffc表示前馈神经网络,表示第l层i节点的邻居节点。6.根据权利要求5所述的基于异构图注意力网络的数学应用题自动求解方法,其特征在于,所述步骤b4具体包括以下步骤:步骤b41:将步骤b1中得到的依赖树邻接矩阵a
s
和成分树邻接矩阵列表c
s
按照子句级邻接矩阵的融合方式融合,得到样本级邻接矩阵adj;步骤b42:将步骤b41中得到的样本级邻接矩阵adj和步骤b3得到的子句级的表征向量输入到k层图注意力神经网络中,得到样本级的表征向量h,然后对其进行平均池化,得到初始目标向量q;h
c_g
=g
00
h=g
k
q=meanpool(h)其中,w6、w7和是可学习的权重矩阵,d表示输入维度,h表示注意力头数。7.根据权利要求6所述的基于异构图注意力网络的数学应用题自动求解方法,其特征在于,所述步骤b5具体包括以下步骤:步骤b51:h
p
表示样本p的样本级表征向量,将步骤b1中得到的对于样本p的目标词汇表v中的每个token,定义他们的embedding为:其中,m
op
和m
con
是可学习的权重矩阵,通过查询嵌入矩阵得到初始化的token表示,表示步骤b4中得到的样本p的样本级表征向量在y位置上的表示,即样本p中出现的数字的表示;步骤b52:通过步骤b4中得到的目标向量q和样本级表征向量h,推导出一个上下文向量c,计算公式如下:c,计算公式如下:c,计算公式如下:然后从目标词汇表v中生成一个tokeny,它的非归一化对数概率为:其中,w
s
是可学习的权重矩阵;然后对其做归一化,生成概率最高的token作为预测值:作为预测值:步骤b53:假设步骤b52中预测的token为一个运算符,那么当前的目标向量q将由一个左子目标和一个右子目标来实现;左子目标是由一个具有门控机制的两层前馈神经网络计算的:算的:
h
l
=o
l

c
l
g
l
=σ(w
gl
h
l
)q
le
=tanh(w
le
h
l
)q
l
=g
l

q
le
其中,w
ol
、w
cl
、w
gl
和w
le
是可学习的权重矩阵;步骤b54:右子树的右子目标要考虑左子树,将左子树自下而上编码为:步骤b54:右子树的右子目标要考虑左子树,将左子树自下而上编码为:步骤b54:右子树的右子目标要考虑左子树,将左子树自下而上编码为:步骤b54:右子树的右子目标要考虑左子树,将左子树自下而上编码为:其中,w
gt
和w
ct
是可学习的权重矩阵;然后计算右子节点的目标向量q
r
,h
r
是隐藏状态,其父节点自上而下传递给它所在的右子节点:子节点:h
r
=o
r

c
r
g
r
=σ(w
gr
[h
r
,t
l
])q
re
=tanh(w
re
[h
r
,t
l
])q
r
=g
r

q
re
其中,w
or
、w
cr
、w
gr
和w
re
是可学习的权重矩阵;步骤b54:对于训练数据集ds=(s,v,p),设置目标损失函数为负对数似然函数:其中,m表示前缀表达式的长度。8.一种基于异构图注意力网络的数学应用题自动求解系统,其特征在于,包括存储器、处理器以及存储于存储器上并能够被处理器运行的计算机程序指令,当处理器运行该计算机程序指令时,能够实现如权利要求1-7任一项所述的方法步骤。

技术总结
本发明涉及一种基于异构图注意力网络的数学应用题自动求解方法及系统,该方法包括以下步骤:步骤A:采集数学应用题文本、解表达式和答案,构建数学应用题训练集DS;步骤B:使用训练集DS训练基于异构图注意力网络的深度学习网络模型G,用于求解数学应用题;步骤C:将数学应用题文本输入深度学习网络模型G中,输出当前数学应用题的相应解表达式和答案。该方法及系统有利于提高数学应用题求解的准确性。及系统有利于提高数学应用题求解的准确性。及系统有利于提高数学应用题求解的准确性。


技术研发人员:陈羽中 徐俊杰 陈子阳
受保护的技术使用者:福州大学
技术研发日:2023.06.30
技术公布日:2023/9/20
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐