CN112860856A - 一种算数应用题智能解题方法及系统 - Google Patents

一种算数应用题智能解题方法及系统 Download PDF

Info

Publication number
CN112860856A
CN112860856A CN202110183217.0A CN202110183217A CN112860856A CN 112860856 A CN112860856 A CN 112860856A CN 202110183217 A CN202110183217 A CN 202110183217A CN 112860856 A CN112860856 A CN 112860856A
Authority
CN
China
Prior art keywords
arithmetic
known conditions
vector
questions
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110183217.0A
Other languages
English (en)
Other versions
CN112860856B (zh
Inventor
陈羽中
胡潇炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuzhou University
Original Assignee
Fuzhou University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuzhou University filed Critical Fuzhou University
Priority to CN202110183217.0A priority Critical patent/CN112860856B/zh
Publication of CN112860856A publication Critical patent/CN112860856A/zh
Application granted granted Critical
Publication of CN112860856B publication Critical patent/CN112860856B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3335Syntactic pre-processing, e.g. stopword elimination, stemming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3346Query execution using probabilistic model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Biology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Machine Translation (AREA)

Abstract

本发明涉及一种算数应用题智能解题方法及系统,该方法包括以下步骤:步骤A:对采集到的算数应用题进行预处理,建立包含算数应用题的已知条件、问题以及答案的训练集;步骤B:构建用于算数应用题智能解题的深度学习模型,确定损失函数,在训练集上通过最小化损失函数训练用于算数应用题智能解题的深度学习模型;步骤C:将算数应用题的已知条件和问题输入训练好的深度学习模型中,输出问题的答案。该方法及系统能够理解输入的算数应用题的已知条件文本和问题,并给出对应的答案。

Description

一种算数应用题智能解题方法及系统
技术领域
本发明属于自然语言处理领域,具体涉及一种算数应用题智能解题方法及系统。
背景技术
随着深度学习在自然语言处理领域的不断尝试与应用,一些端到端模型已经在一些机器算数应用题自动计算任务上表现出了非常不错的效果。这些模型不需要依赖于传统方法所使用的复杂的人工设计的特征,并且性能比传统方法要好得多。
在基于深度学习的机器算数应用题自动计算模型上,Wang等人提出了Match-LSTM+Pointer Network模型,其是基于SQuAD数据集的首个神经网络模型,模型的整体结构是将match-LSTM和Pointer Network进行结合,match-LSTM用于获取感知问题的应用题一直条件表示,而Pointer Network用来从输入文本中提取并构造一个应用题答案。Seo等人提出Bi-Directional Attention Flow,该模型采用不同级别的粒度作为输入,包括字符级别、单词级别和上下文嵌入,并且它使用双向注意力流,即从问题到应用题已知条件的注意力和从已知条件到问题的注意力,来获得感知问题的段落表示。Xiong等人提出了DCN(Dynamic Coattention Networks),其中引入了Coattention机制,用来结合问题和应用题已知条件的相互依赖表示和动态迭代,以避免陷入与先前的单遍模型之类的错误答案相对应的局部最大值。Weissenborn等人提出FastQA,FastQA通过简单的体系结构获得了良好的性能,FastQA的提出质疑了提高问答系统模型复杂性的必要性。R-NET是MSRA在2017年提出的,并在SQuAD和MS-MARCO数据集上取得了最优异的成绩。R-NET使用双向GRU来编码问题和应用题已知条件,其中融合输入的问题和应用题已知条件文本信息是通过它的门控注意力做到的,这里匹配层负责输出应用题已知条件的表征,输出层的做法和以前的模型类似,也是预测答案的边界。Shen等人提出了ReasoNet,ReasoNe的做法与以前不同的是,它有自己独特的阅读或推理的轮数处理机制,对待不同复杂度的问题和应用题已知条件,都通过强化学习去获得对应的阅读或推理轮数。Yu等人提出了QAnet模型,QAnet在嵌入和建模编码器时只使用卷积和自注意力机制,抛弃了常用的RNN,它的卷积使用的是深度可分离的卷积(depthwise separable convolutions),深度可分离的卷积可以捕获文本的局部结构,并且其中多头注意机制则可以模拟整个篇章内的全局交互,在TriviaQA数据集上取得了不错的效果。Dheeru等人提出了NAQANet模型,该模型主要是为了解决DROP数据集的推理难点而提出的,该模型是在QANet的基础上做了扩展,对不同答案类型的问题做了分类处理,对应四个不同的输出层,其分别是计算题已知条件文本答案预测、问题答案预测、统计数字和算数应用题自动计算。
深度学习的提出,改变了很多自然语言处理任务的研究思路,并且深度学习应用于机器算数应用题自动计算任务中取得了不错的效果,这也从侧面说明了深度学习对算数应用题自动计算任务的重要性。由于生活中的算数应用题自动计算数据更加复杂,所以现在的机器算数应用题自动计算任务对于机器的推理能力提出了更高的要求,越来越多的新颖的算数应用题自动计算数据集被提出,回答这些数据集中的问题,对离散推理能力有很高的要求,如何处理这些数据集,成为提升模型推理能力的关键,然而现有的深度学习模型可能还不够成熟,其结构上还存在一定的改进空间。
发明内容
本发明的目的在于提供一种算数应用题智能解题方法及系统,该方法及系统能够理解输入的算数应用题的已知条件文本和问题,并给出对应的答案。
为实现上述目的,本发明采用的技术方案是:一种算数应用题智能解题方法,包括以下步骤:
步骤A:对采集到的算数应用题数据进行预处理,建立包含算数应用题的已知条件、问题以及答案的训练集;
步骤B:构建用于算数应用题智能解题的深度学习模型,确定损失函数,在训练集上通过最小化损失函数训练所述深度学习模型;
步骤C:将算数应用题的已知条件和问题输入训练好的深度学习模型中,输出问题的答案。
进一步,所述步骤A具体包括以下步骤:
步骤A1:采集用于训练的算数应用题数据,每条算数应用题数据包括算数应用题的已知条件、问题与答案;
步骤A2:对每条算数应用题数据进行预处理,分别对算数应用题的已知条件、问题以及答案进行分词并去除停用词,得到三元组(p,q,a),其中p表示算数应用题的已知条件,q表示问题,a表示问题的答案;
其中,
Figure BDA0002942684610000021
Figure BDA0002942684610000022
为对算数应用题的已知条件进行分词并去除停用词后已知条件中的第i个词,i=1,2,...,L(p),L(p)为对算数应用题的已知条件进行分词并去除停用词后已知条件中剩余的词数;
Figure BDA0002942684610000031
Figure BDA0002942684610000032
表示对问题进行分词并去除停用词后问题中的第j个词,j=1,2,...,L(q),L(q)为对问题进行分词并去除停用词后的问题中剩余的词数;
Figure BDA0002942684610000033
Figure BDA0002942684610000034
表示对答案进行分词并去除停用词后答案中的第k个词,k=1,2,...,L(a),L(a)为对答案进行分词并去除停用词后答案中剩余的词数;
步骤A3:使用步骤A2处理后的算数应用题数据的三元组(p,q,a)构成训练集。
进一步,所述步骤B具体包括以下步骤:
步骤B1:构建用于算数应用题智能解题的深度学习模型,模型包括编码器和答案预测器,首先将算数应用题的已知条件和问题输入编码器进行编码,得到融合已知条件和问题的语义信息的表征向量M0,M1,M2;然后将融合已知条件和问题的表征向量输入到答案预测器中,得到构成算数表达式需要从已知条件中提取的数字的数量,从已知条件中提取相应数量的数字,为每个数字分配运算符,最终得到算术表达式,计算算数表达式,输出答案a′;
步骤B2:确定所述深度学习模型的损失函数loss,选择交叉熵作为深度学习网络模型的损失函数,根据答案预测器预测得到的答案a′与训练集中的答案a计算损失值;
步骤B3:遍历训练集,对每一个三元组(p,q,a),将算数应用题的已知条件p与问题q输入到编码器中,得到融合已知条件和问题的语义信息的表征向量M0,M1,M2,其中编码器包括输入编码层、文本编码层、交互编码层与堆叠编码器层;
步骤B4:将步骤B3得到的融合已知条件和问题的语义信息的表征向量M0,M1,M2输入到答案预测器中,预测构造算数表达式需要从已知条件中提取的数字的数量,从已知条件中提取相应数量的数字,为每个数字分配运算符,得到算数表达式,对算数表达式求值得到问题的答案;
步骤B5:根据目标损失函数loss计算损失,并利用反向传播方法计算网络中各参数的梯度,通过多次迭代最小化损失函数,在每次迭代中,训练集被分成多个批次进行分批优化,并利用随机梯度下降方法更新参数;
步骤B6:答案预测器采用强化学习训练模型,使用策略梯度方法进行强化学习训练,最大化回报期望;
步骤B7:当深度学习模型产生的损失值迭代变化小于设定阈值不再降低或者达到最大迭代次数,终止深度学习模型的训练。
进一步,所述步骤B3具体包括以下步骤:
步骤B31:利用输入编码层,将算数应用题的已知条件与问题中的每一个词映射为连续的低维向量,得到已知条件的初始表征向量
Figure BDA0002942684610000041
与问题的初始表征向量
Figure BDA0002942684610000042
设Lw∈Rd×|V|是预训练的词向量矩阵,其中d是词向量的维度,|V|是Lw中的词语数量;对于算数应用题的已知条件
Figure BDA0002942684610000043
其初始表征向量为
Figure BDA0002942684610000044
对于算数应用题的问题
Figure BDA0002942684610000045
其初始表征向量为
Figure BDA0002942684610000046
其中
Figure BDA0002942684610000047
为已知条件p中第i个词
Figure BDA0002942684610000048
在预训练的词向量矩阵Lw中查找得到的词向量,
Figure BDA0002942684610000049
为问题q中第j个词
Figure BDA00029426846100000410
在预训练的词向量矩阵Lw中的查找得到的词向量;
步骤B32:将步骤B31得到的算数应用题的已知条件的初始表征向量
Figure BDA00029426846100000411
与问题的初始表征向量
Figure BDA00029426846100000412
输入到文本编码层,得到已知条件的文本表征向量
Figure BDA00029426846100000413
和问题的文本表征向量
Figure BDA00029426846100000414
分别将算术应用题的已知条件的初始表征向量
Figure BDA00029426846100000415
与问题的初始表征向量
Figure BDA00029426846100000416
输入到独立的CNN网络中获取多个特征映射(feature map),每一个特征映射都是一个具有固定窗口大小的卷积过滤器的输出,通过使用不同窗口大小的多个卷积过滤器来生成多个特征映射,然后连接多个特征映射,得到算数应用题的已知条件与问题的表征向量
Figure BDA00029426846100000417
Figure BDA00029426846100000418
具体公式如下:
Figure BDA00029426846100000419
Figure BDA00029426846100000420
其中CNN表示卷积神经网络,由于
Figure BDA00029426846100000421
因此,已知条件与问题的表征向量
Figure BDA0002942684610000051
Figure BDA0002942684610000052
可以表示为以下形式:
Figure BDA0002942684610000053
Figure BDA0002942684610000054
其中
Figure BDA0002942684610000055
将算数应用题的已知条件的表征向量
Figure BDA0002942684610000056
与问题的表征向量
Figure BDA0002942684610000057
分别输入文本编码层的自注意力模块,得到注意力权重加权后的已知条件的表征向量
Figure BDA0002942684610000058
与注意力加权后的问题的表征向量
Figure BDA0002942684610000059
注意力权重加权后的已知条件的表征向量
Figure BDA00029426846100000510
的计算公式如下:
Figure BDA00029426846100000511
Figure BDA00029426846100000512
Figure BDA00029426846100000513
Figure BDA00029426846100000514
其中,
Figure BDA00029426846100000515
W1,W2表示待训练的权重参数;
注意力加权后的问题的表征向量
Figure BDA00029426846100000516
的计算公式如下:
Figure BDA00029426846100000517
Figure BDA00029426846100000518
Figure BDA00029426846100000519
Figure BDA00029426846100000520
其中,
Figure BDA00029426846100000521
W3,W4表示待训练的权重参数;
将注意力权重加权后的已知条件的表征向量
Figure BDA00029426846100000522
与问题的表征向量
Figure BDA00029426846100000523
输入到前馈神经网络,输出已知条件的文本表征向量
Figure BDA0002942684610000061
与问题的文本表征向量
Figure BDA0002942684610000062
具体公式如下:
Figure BDA0002942684610000063
Figure BDA0002942684610000064
其中,FNN表示前馈神经网络;
步骤B33:将步骤B32得到的算数应用题的已知条件的文本表征向量
Figure BDA0002942684610000065
和问题的文本表征向量
Figure BDA0002942684610000066
输入到交互编码层,计算已知条件与问题之间的语义交互,得到已知条件的问题感知的表征向量
Figure BDA0002942684610000067
问题的已知条件感知的表征向量
Figure BDA0002942684610000068
首先计算算数应用题的已知条件与问题的语义相似度,获得相似度矩阵
Figure BDA0002942684610000069
计算公式如下:
Figure BDA00029426846100000610
Figure BDA00029426846100000611
其中TF(.,.)表示三线性函数相似度函数,
Figure BDA00029426846100000618
表示哈达玛积,[;]表示向量连接,W5是待训练的参数矩阵;
通过softmax函数分别对spq做行归一化处理和列归一化处理,行归一化是将spq中每个行向量分别用softmax做归一化处理,将行向量中的每个数值映射到(0,1)区间内,且行向量中各个数值的累加和为1,从而得到归一化的s||,列归一化是将spq中每个列向量分别用softmax做归一化处理,将列向量中的每个数值映射到(0,1)区间内,且列向量中各个数值的累加和为1,得到s
然后,计算已知条件的问题感知的表征向量
Figure BDA00029426846100000612
问题的已知条件感知的表征向量
Figure BDA00029426846100000613
分别为:
Figure BDA00029426846100000614
Figure BDA00029426846100000615
其中,
Figure BDA00029426846100000616
步骤B34:将步骤B33得到的
Figure BDA00029426846100000617
输入到堆叠编码层,得到融合已知条件和问题的语义信息的表征向量M0,M1,M2
其中堆叠编码层包括三个编码器,每个编码器由7个编码模块构成,每个编码模块包括两个卷积层、一个自注意力层和一个前馈层;三个编码器依次表示为MEB0、MEB1与MEB2,输出分别为M0,M1,M2
Figure BDA0002942684610000071
M1=MEB2(M0)
M2=MEB3(M1)。
进一步,所述步骤B4具体包括以下步骤:
步骤B41:预测需要从算数应用题的已知条件中提取的数字的数量;
计算算数应用题的答案首先需要根据已知条件与问题构造算数表达式,构造算数表达式需要获得构成算数表达式的数字与运算符,首先将预测需要从算数应用题的已知条件中提取的数字的数量视作分类问题,计算从算数应用题的已知条件中提取的数字的数量在[1,L(p)]整数区间上的概率分布pnum,选取最大概率值对应的整数值,作为要从算数应用题的已知条件中提取的数字的数量,具体公式如下:
Figure BDA0002942684610000072
其中,[;]表示连接,FFN表示前馈神经网络,选取最大概率值对应的整数K,作为需要从算数应用题的已知条件中提取的数字的数量;
步骤B42:根据步骤B41得到的需要从算数应用题的已知条件中提取的数字的数量K,从算数应用题的已知条件中提取相应数量的数字;
根据步骤B34输出的M0,M1,M2,通过softmax得到在已知条件中的所有数字上的选取概率分布pn,计算公式如下:
pn=softmax(FFN([M1;M2]))
其中,FFN表示前馈神经网络,根据B41中得到的需要从算数应用题的已知条件中提取的数字的数量K,选择概率值最大的前K个数字,按照在已知条件中出现的顺序排列,构成算数应用题的算数表达式的数字集合{n1,...,ni,...,nK};
步骤B43:根据步骤B42得到的构成算数应用题的算数表达式的数字集合{n1,...,ni,...,nK},计算{n1,...,ni,...,nK}中每个数字对应的表征向量,计算公式如下:
Figure BDA0002942684610000081
其中
Figure BDA0002942684610000082
表示数字集合中ni的表征向量,FFNi()表示计算数字ni的表征向量使用的前馈神经网络,不同数字所输入的前馈神经网络的参数不共享;
然后,为数字集合{n1,...,ni,...,nK}中的每个数字分配运算符,模型支持生成包括加减法运算的算数表达式,因此,模型将为每个数字分配运算符视为二分类问题,通过softmax计算为每个数字ni分配的运算符(加法或减法)的概率分布
Figure BDA0002942684610000083
计算公式如下:
Figure BDA0002942684610000084
选取概率分布
Figure BDA0002942684610000085
中最大概率值的类别所对应的运算符,作为为ni分配的运算符,依次得到数字集合{n1,...,ni,...,nK}中各个数字对应的运算符,从而得到一个带运算符的算术表达式,对该算数表达式求值,得到模型输出的答案a′。
进一步,所述步骤B6具体包括以下步骤:
步骤B61:答案预测器使用强化学习训练模型,首先从算术应用题的已知条件中提取所有数字,随机选取一个数字ni的表征向量
Figure BDA0002942684610000086
作为状态,在训练每个阶段选择每个动作,即选择为数字ni分配的运算符,对比正确运算符给出反馈,如果一样则给出正反馈奖励,如果不一样则给出负反馈奖励,采用策略梯度的方法进行强化学习训练,优化目标最大回报期望,具体计算公式如下:
J(θ)=E(R-b|θ)
其中E()表示奖励的期望值,R表示反馈的奖励,b为基线值是一个使得训练稳定的平衡项,θ是超参数;
步骤B62:由步骤B61的损失值公式,通过使用似然比计算上述公式的梯度:
Figure BDA0002942684610000087
其中
Figure BDA0002942684610000088
是步骤B43中为每个数字ni分配的运算符(加法或减法)的概率分布,b是基准值,是使训练稳定的平衡项;对比正确运算符给出反馈,如果一样则给出正反馈奖励,如果不一样则给出负反馈奖励;基于梯度更新,重新训练网络的参数,经过多次迭代更新得到训练好的网络模型。
本发明还提供了一种算数应用题智能解题系统,包括存储器、处理器以及存储于存储器上并能够被处理器运行的计算机程序模块,所述计算机程序模块包括:
数据收集模块,用于采集算术应用题进行预处理,建立包含算术应用题的已知条件、问题以及答案的训练集;
网络预训练模块,用于将算术应用题的已知条件、问题和答案表征向量输入到深度学习网络中进行预训练,得到经过预训练的深度网络模型;
强化学习模块,用于将算术应用题的已知条件、问题和答案表征向量输入到深度学习网络中,各个组件得到融合算术应用题的已知条件和问题表征向量并以此通过强化学习训练深度学习网络,利用该表征向量预测算术运算符类别的概率作为损失,以最小化损失为目标来对整个深度学习网络进行训练,得到经过强化学习训练的深度学习网络模型;以及
算术应用题计算模块,利用经过强化学习训练的深度学习网络模型对输入的算术应用题的已知条件和问题进行分析处理,输出问题对应的答案;
当处理器运行该计算机程序模块时,能够实现所述的方法步骤。
相较于现有技术,本发明具有以下有益效果:本发明建立了能够自动求解小学低年级较简单的算数应用题的深度学习模型,能够理解算数应用题中的已知条件与问题所包含的语义信息、数字之间的逻辑关系,自动生成算数表达式,并给出算数应用题的答案,可用于在线教育等领域,有效减少人力投入。
附图说明
图1为本发明实施例的方法实现流程图。
图2为本发明实施例的模型结构图。
图3为本发明实施例的系统结构示意图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
如图1所示,本实施例提供了一种算数应用题智能解题方法,包括以下步骤:
步骤A:对采集到的算数应用题数据进行预处理,建立包含算数应用题的已知条件、问题以及答案的训练集。
所述步骤A具体包括以下步骤:
步骤A1:采集用于训练的算数应用题数据,每条算数应用题数据包括算数应用题的已知条件、问题与答案。
步骤A2:对每条算数应用题数据进行预处理,分别对算数应用题的已知条件、问题以及答案进行分词并去除停用词,得到三元组(p,q,a),其中p表示算数应用题的已知条件,q表示问题,a表示问题的答案。
其中,
Figure BDA0002942684610000101
Figure BDA0002942684610000102
为对算数应用题的已知条件进行分词并去除停用词后已知条件中的第i个词,i=1,2,...,L(p),L(p)为对算数应用题的已知条件进行分词并去除停用词后已知条件中剩余的词数。
Figure BDA0002942684610000103
Figure BDA0002942684610000104
表示对问题进行分词并去除停用词后问题中的第j个词,j=1,2,...,L(q),L(q)为对问题进行分词并去除停用词后的问题中剩余的词数。
Figure BDA0002942684610000105
Figure BDA0002942684610000106
表示对答案进行分词并去除停用词后答案中的第k个词,k=1,2,...,L(a),L(a)为对答案进行分词并去除停用词后答案中剩余的词数。
步骤A3:使用步骤A2处理后的算数应用题数据的三元组(p,q,a)构成训练集。
步骤B:构建用于算数应用题智能解题的深度学习模型,确定损失函数,在训练集上通过最小化损失函数训练所述深度学习模型。构建的深度学习模型如图2所示。
步骤C:将算数应用题的已知条件和问题输入训练好的深度学习模型中,输出问题的答案。
所述步骤B具体包括以下步骤:
步骤B1:构建用于算数应用题智能解题的深度学习模型,模型包括编码器和答案预测器,首先将算数应用题的已知条件和问题输入编码器进行编码,得到融合已知条件和问题的语义信息的表征向量M0,M1,M2。然后将融合已知条件和问题的表征向量输入到答案预测器中,得到构成算数表达式需要从已知条件中提取的数字的数量,从已知条件中提取相应数量的数字,为每个数字分配运算符,最终得到算术表达式,计算算数表达式,输出答案a′。
步骤B2:确定所述深度学习模型的损失函数loss,选择交叉熵作为深度学习网络模型的损失函数,根据答案预测器预测得到的答案a′与训练集中的答案a计算损失值。
步骤B3:遍历训练集,对每一个三元组(p,q,a),将算数应用题的已知条件p与问题q输入到编码器中,得到融合已知条件和问题的语义信息的表征向量M0,M1,M2,其中编码器包括输入编码层、文本编码层、交互编码层与堆叠编码器层。其具体包括以下步骤:
步骤B31:利用输入编码层,将算数应用题的已知条件与问题中的每一个词映射为连续的低维向量,得到已知条件的初始表征向量
Figure BDA0002942684610000111
与问题的初始表征向量
Figure BDA0002942684610000112
设Lw∈Rd×|V|是预训练的词向量矩阵,其中d是词向量的维度,|V|是Lw中的词语数量。对于算数应用题的已知条件
Figure BDA0002942684610000113
其初始表征向量为
Figure BDA0002942684610000114
对于算数应用题的问题
Figure BDA0002942684610000115
其初始表征向量为
Figure BDA0002942684610000116
其中
Figure BDA0002942684610000117
为已知条件p中第i个词
Figure BDA0002942684610000118
在预训练的词向量矩阵Lw中查找得到的词向量,
Figure BDA0002942684610000119
为问题q中第j个词
Figure BDA00029426846100001110
在预训练的词向量矩阵Lw中的查找得到的词向量。
步骤B32:将步骤B31得到的算数应用题的已知条件的初始表征向量
Figure BDA00029426846100001111
与问题的初始表征向量
Figure BDA00029426846100001112
输入到文本编码层,得到已知条件的文本表征向量
Figure BDA00029426846100001113
和问题的文本表征向量
Figure BDA00029426846100001114
分别将算术应用题的已知条件的初始表征向量
Figure BDA00029426846100001115
与问题的初始表征向量
Figure BDA00029426846100001116
输入到独立的CNN网络中获取多个特征映射(feature map),每一个特征映射都是一个具有固定窗口大小的卷积过滤器的输出,通过使用不同窗口大小的多个卷积过滤器来生成多个特征映射,然后连接多个特征映射,得到算数应用题的已知条件与问题的表征向量
Figure BDA00029426846100001117
Figure BDA0002942684610000121
具体公式如下:
Figure BDA0002942684610000122
Figure BDA0002942684610000123
其中CNN表示卷积神经网络,由于
Figure BDA0002942684610000124
因此,已知条件与问题的表征向量
Figure BDA0002942684610000125
Figure BDA0002942684610000126
可以表示为以下形式:
Figure BDA0002942684610000127
Figure BDA0002942684610000128
其中
Figure BDA0002942684610000129
将算数应用题的已知条件的表征向量
Figure BDA00029426846100001210
与问题的表征向量
Figure BDA00029426846100001211
分别输入文本编码层的自注意力模块,得到注意力权重加权后的已知条件的表征向量
Figure BDA00029426846100001212
与注意力加权后的问题的表征向量
Figure BDA00029426846100001213
注意力权重加权后的已知条件的表征向量
Figure BDA00029426846100001214
的计算公式如下:
Figure BDA00029426846100001215
Figure BDA00029426846100001216
Figure BDA00029426846100001217
Figure BDA00029426846100001218
其中,
Figure BDA00029426846100001219
W1,W2表示待训练的权重参数。
注意力加权后的问题的表征向量
Figure BDA00029426846100001220
的计算公式如下:
Figure BDA00029426846100001221
Figure BDA00029426846100001222
Figure BDA0002942684610000131
Figure BDA0002942684610000132
其中,
Figure BDA0002942684610000133
W3,W4表示待训练的权重参数。
将注意力权重加权后的已知条件的表征向量
Figure BDA0002942684610000134
与问题的表征向量
Figure BDA0002942684610000135
输入到前馈神经网络,输出已知条件的文本表征向量
Figure BDA0002942684610000136
与问题的文本表征向量
Figure BDA0002942684610000137
具体公式如下:
Figure BDA0002942684610000138
Figure BDA0002942684610000139
其中,FNN表示前馈神经网络。
步骤B33:将步骤B32得到的算数应用题的已知条件的文本表征向量
Figure BDA00029426846100001310
和问题的文本表征向量
Figure BDA00029426846100001311
输入到交互编码层,计算已知条件与问题之间的语义交互,得到已知条件的问题感知的表征向量
Figure BDA00029426846100001312
问题的已知条件感知的表征向量
Figure BDA00029426846100001313
首先计算算数应用题的已知条件与问题的语义相似度,获得相似度矩阵
Figure BDA00029426846100001314
计算公式如下:
Figure BDA00029426846100001315
Figure BDA00029426846100001316
其中TF(.,.)表示三线性函数相似度函数,
Figure BDA00029426846100001319
表示哈达玛积,[;]表示向量连接,W5是待训练的参数矩阵。
通过softmax函数分别对spq做行归一化处理和列归一化处理,行归一化是将spq中每个行向量分别用softmax做归一化处理,将行向量中的每个数值映射到(0,1)区间内,且行向量中各个数值的累加和为1,从而得到归一化的s||,列归一化是将spq中每个列向量分别用softmax做归一化处理,将列向量中的每个数值映射到(0,1)区间内,且列向量中各个数值的累加和为1,得到s
然后,计算已知条件的问题感知的表征向量
Figure BDA00029426846100001317
问题的已知条件感知的表征向量
Figure BDA00029426846100001318
分别为:
Figure BDA0002942684610000141
Figure BDA0002942684610000142
其中,
Figure BDA0002942684610000143
步骤B34:将步骤B33得到的
Figure BDA0002942684610000144
输入到堆叠编码层,得到融合已知条件和问题的语义信息的表征向量M0,M1,M2
其中堆叠编码层包括三个编码器,每个编码器由7个编码模块构成,每个编码模块包括两个卷积层、一个自注意力层和一个前馈层。三个编码器依次表示为MEB0、MEB1与MEB2,输出分别为M0,M1,M2
Figure BDA0002942684610000145
M1=MEB2(M0)
M2=MEB3(M1)。
步骤B4:将步骤B3得到的融合已知条件和问题的语义信息的表征向量M0,M1,M2输入到答案预测器中,预测构造算数表达式需要从已知条件中提取的数字的数量,从已知条件中提取相应数量的数字,为每个数字分配运算符,得到算数表达式,对算数表达式求值得到问题的答案。其具体包括以下步骤:
步骤B41:预测需要从算数应用题的已知条件中提取的数字的数量。
计算算数应用题的答案首先需要根据已知条件与问题构造算数表达式,构造算数表达式需要获得构成算数表达式的数字与运算符,首先将预测需要从算数应用题的已知条件中提取的数字的数量视作分类问题,计算从算数应用题的已知条件中提取的数字的数量在[1,L(p)]整数区间上的概率分布pnum,选取最大概率值对应的整数值,作为要从算数应用题的已知条件中提取的数字的数量,具体公式如下:
Figure BDA0002942684610000146
其中,[;]表示连接,FFN表示前馈神经网络,选取最大概率值对应的整数K,作为需要从算数应用题的已知条件中提取的数字的数量。
步骤B42:根据步骤B41得到的需要从算数应用题的已知条件中提取的数字的数量K,从算数应用题的已知条件中提取相应数量的数字。
根据步骤B34输出的M0,M1,M2,通过softmax得到在已知条件中的所有数字上的选取概率分布pn,计算公式如下:
pn=softmax(FFN([M1;M2]))
其中,FFN表示前馈神经网络,根据B41中得到的需要从算数应用题的已知条件中提取的数字的数量K,选择概率值最大的前K个数字,按照在已知条件中出现的顺序排列,构成算数应用题的算数表达式的数字集合{n1,...,ni,...,nK}。
步骤B43:根据步骤B42得到的构成算数应用题的算数表达式的数字集合{n1,...,ni,...,nK},计算{n1,...,ni,...,nK}中每个数字对应的表征向量,计算公式如下:
Figure BDA0002942684610000151
其中
Figure BDA0002942684610000154
表示数字集合中ni的表征向量,FFNi()表示计算数字ni的表征向量使用的前馈神经网络,不同数字所输入的前馈神经网络的参数不共享。
然后,为数字集合{n1,...,ni,...,nK}中的每个数字分配运算符,模型支持生成包括加减法运算的算数表达式,因此,模型将为每个数字分配运算符视为二分类问题,通过softmax计算为每个数字ni分配的运算符(加法或减法)的概率分布
Figure BDA0002942684610000155
计算公式如下:
Figure BDA0002942684610000152
选取概率分布
Figure BDA0002942684610000153
中最大概率值的类别所对应的运算符,作为为ni分配的运算符,依次得到数字集合{n1,...,ni,...,nK}中各个数字对应的运算符,从而得到一个带运算符的算术表达式,对该算数表达式求值,得到模型输出的答案a′。
步骤B5:根据目标损失函数loss计算损失,并利用反向传播方法计算网络中各参数的梯度,通过多次迭代最小化损失函数,在每次迭代中,训练集被分成多个批次进行分批优化,并利用随机梯度下降方法更新参数。
步骤B6:答案预测器采用强化学习训练模型,使用策略梯度方法进行强化学习训练,最大化回报期望。其具体包括以下步骤:
步骤B61:答案预测器使用强化学习训练模型,首先从算术应用题的已知条件中提取所有数字,随机选取一个数字ni的表征向量
Figure BDA0002942684610000162
作为状态,在训练每个阶段选择每个动作,即选择为数字ni分配的运算符,对比正确运算符给出反馈,如果一样则给出正反馈奖励,如果不一样则给出负反馈奖励,采用策略梯度的方法进行强化学习训练,优化目标最大回报期望,具体计算公式如下:
J(θ)=E(R-b|θ)
其中E()表示奖励的期望值,R表示反馈的奖励,b为基线值是一个使得训练稳定的平衡项,θ是超参数。
步骤B62:由步骤B61的损失值公式,通过使用似然比计算上述公式的梯度:
Figure BDA0002942684610000163
其中
Figure BDA0002942684610000161
是步骤B43中为每个数字ni分配的运算符(加法或减法)的概率分布,b是基准值,是使训练稳定的平衡项。对比正确运算符给出反馈,如果一样则给出正反馈奖励,如果不一样则给出负反馈奖励。基于梯度更新,重新训练网络的参数,经过多次迭代更新得到训练好的网络模型。
步骤B7:当深度学习模型产生的损失值迭代变化小于设定阈值不再降低或者达到最大迭代次数,终止深度学习模型的训练。
本发明还提供了一种算数应用题智能解题系统,包括存储器、处理器以及存储于存储器上并能够被处理器运行的计算机程序指令,当处理器运行该计算机程序指令时,能够实现所述的方法步骤。
本实施例还提供了一种算数应用题智能解题系统,包括存储器、处理器以及存储于存储器上并能够被处理器运行的计算机程序模块。
如图3所示,所述计算机程序模块包括:数据收集模块、网络预训练模块、强化学习模块以及算术应用题计算模块。
所述数据收集模块用于采集算术应用题进行预处理,建立包含算术应用题的已知条件、问题以及答案的训练集。
所述网络预训练模块用于将算术应用题的已知条件、问题和答案表征向量输入到深度学习网络中进行预训练,得到经过预训练的深度网络模型。
所述强化学习模块用于将算术应用题的已知条件、问题和答案表征向量输入到深度学习网络中,各个组件得到融合算术应用题的已知条件和问题表征向量并以此通过强化学习训练深度学习网络,利用该表征向量预测算术运算符类别的概率作为损失,以最小化损失为目标来对整个深度学习网络进行训练,得到经过强化学习训练的深度学习网络模型。
所述算术应用题计算模块利用经过强化学习训练的深度学习网络模型对输入的算术应用题的已知条件和问题进行分析处理,输出问题对应的答案。
当处理器运行该计算机程序模块时,能够实现上述的方法步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

Claims (7)

1.一种算数应用题智能解题方法,其特征在于,包括以下步骤:
步骤A:对采集到的算数应用题数据进行预处理,建立包含算数应用题的已知条件、问题以及答案的训练集;
步骤B:构建用于算数应用题智能解题的深度学习模型,确定损失函数,在训练集上通过最小化损失函数训练所述深度学习模型;
步骤C:将算数应用题的已知条件和问题输入训练好的深度学习模型中,输出问题的答案。
2.根据权利要求1所述的一种算数应用题智能解题方法,其特征在于,所述步骤A具体包括以下步骤:
步骤A1:采集用于训练的算数应用题数据,每条算数应用题数据包括算数应用题的已知条件、问题与答案;
步骤A2:对每条算数应用题数据进行预处理,分别对算数应用题的已知条件、问题以及答案进行分词并去除停用词,得到三元组(p,q,a),其中p表示算数应用题的已知条件,q表示问题,a表示问题的答案;
其中,
Figure FDA0002942684600000011
Figure FDA0002942684600000012
为对算数应用题的已知条件进行分词并去除停用词后已知条件中的第i个词,i=1,2,...,L(p),L(p)为对算数应用题的已知条件进行分词并去除停用词后已知条件中剩余的词数;
Figure FDA0002942684600000013
Figure FDA0002942684600000014
表示对问题进行分词并去除停用词后问题中的第j个词,j=1,2,...,L(q),L(q)为对问题进行分词并去除停用词后的问题中剩余的词数;
Figure FDA0002942684600000015
Figure FDA0002942684600000016
表示对答案进行分词并去除停用词后答案中的第k个词,k=1,2,...,L(a),L(a)为对答案进行分词并去除停用词后答案中剩余的词数;
步骤A3:使用步骤A2处理后的算数应用题数据的三元组(p,q,a)构成训练集。
3.根据权利要求1所述的一种算数应用题智能解题方法,其特征在于,所述步骤B具体包括以下步骤:
步骤B1:构建用于算数应用题智能解题的深度学习模型,模型包括编码器和答案预测器,首先将算数应用题的已知条件和问题输入编码器进行编码,得到融合已知条件和问题的语义信息的表征向量M0,M1,M2;然后将融合已知条件和问题的表征向量输入到答案预测器中,得到构成算数表达式需要从已知条件中提取的数字的数量,从已知条件中提取相应数量的数字,为每个数字分配运算符,最终得到算术表达式,计算算数表达式,输出答案a′;
步骤B2:确定所述深度学习模型的损失函数loss,选择交叉熵作为深度学习网络模型的损失函数,根据答案预测器预测得到的答案a′与训练集中的答案a计算损失值;
步骤B3:遍历训练集,对每一个三元组(p,q,a),将算数应用题的已知条件p与问题q输入到编码器中,得到融合已知条件和问题的语义信息的表征向量M0,M1,M2,其中编码器包括输入编码层、文本编码层、交互编码层与堆叠编码器层;
步骤B4:将步骤B3得到的融合已知条件和问题的语义信息的表征向量M0,M1,M2输入到答案预测器中,预测构造算数表达式需要从已知条件中提取的数字的数量,从已知条件中提取相应数量的数字,为每个数字分配运算符,得到算数表达式,对算数表达式求值得到问题的答案;
步骤B5:根据目标损失函数loss计算损失,并利用反向传播方法计算网络中各参数的梯度,通过多次迭代最小化损失函数,在每次迭代中,训练集被分成多个批次进行分批优化,并利用随机梯度下降方法更新参数;
步骤B6:答案预测器采用强化学习训练模型,使用策略梯度方法进行强化学习训练,最大化回报期望;
步骤B7:当深度学习模型产生的损失值迭代变化小于设定阈值不再降低或者达到最大迭代次数,终止深度学习模型的训练。
4.根据权利要求3所述的一种算数应用题智能解题方法,其特征在于,所述步骤B3具体包括以下步骤:
步骤B31:利用输入编码层,将算数应用题的已知条件与问题中的每一个词映射为连续的低维向量,得到已知条件的初始表征向量
Figure FDA0002942684600000021
与问题的初始表征向量
Figure FDA0002942684600000022
设Lw∈Rd×|V|是预训练的词向量矩阵,其中d是词向量的维度,|V|是Lw中的词语数量;对于算数应用题的已知条件
Figure FDA0002942684600000023
其初始表征向量为
Figure FDA0002942684600000024
对于算数应用题的问题
Figure FDA0002942684600000025
其初始表征向量为
Figure FDA0002942684600000031
其中
Figure FDA0002942684600000032
为已知条件p中第i个词
Figure FDA0002942684600000033
在预训练的词向量矩阵Lw中查找得到的词向量,
Figure FDA0002942684600000034
为问题q中第j个词
Figure FDA0002942684600000035
在预训练的词向量矩阵Lw中的查找得到的词向量;
步骤B32:将步骤B31得到的算数应用题的已知条件的初始表征向量
Figure FDA0002942684600000036
与问题的初始表征向量
Figure FDA0002942684600000037
输入到文本编码层,得到已知条件的文本表征向量
Figure FDA0002942684600000038
和问题的文本表征向量
Figure FDA0002942684600000039
分别将算术应用题的已知条件的初始表征向量
Figure FDA00029426846000000310
与问题的初始表征向量
Figure FDA00029426846000000311
输入到独立的CNN网络中获取多个特征映射(feature map),每一个特征映射都是一个具有固定窗口大小的卷积过滤器的输出,通过使用不同窗口大小的多个卷积过滤器来生成多个特征映射,然后连接多个特征映射,得到算数应用题的已知条件与问题的表征向量
Figure FDA00029426846000000312
Figure FDA00029426846000000313
具体公式如下:
Figure FDA00029426846000000314
Figure FDA00029426846000000315
其中CNN表示卷积神经网络,由于
Figure FDA00029426846000000316
因此,已知条件与问题的表征向量
Figure FDA00029426846000000317
Figure FDA00029426846000000318
可以表示为以下形式:
Figure FDA00029426846000000319
Figure FDA00029426846000000320
其中
Figure FDA00029426846000000321
将算数应用题的已知条件的表征向量
Figure FDA00029426846000000322
与问题的表征向量
Figure FDA00029426846000000323
分别输入文本编码层的自注意力模块,得到注意力权重加权后的已知条件的表征向量
Figure FDA00029426846000000324
与注意力加权后的问题的表征向量
Figure FDA00029426846000000325
注意力权重加权后的已知条件的表征向量
Figure FDA00029426846000000326
的计算公式如下:
Figure FDA00029426846000000327
Figure FDA0002942684600000041
Figure FDA0002942684600000042
Figure FDA0002942684600000043
其中,
Figure FDA0002942684600000044
W1,W2表示待训练的权重参数;
注意力加权后的问题的表征向量
Figure FDA0002942684600000045
的计算公式如下:
Figure FDA0002942684600000046
Figure FDA0002942684600000047
Figure FDA0002942684600000048
Figure FDA0002942684600000049
其中,
Figure FDA00029426846000000410
W3,W4表示待训练的权重参数;
将注意力权重加权后的已知条件的表征向量
Figure FDA00029426846000000411
与问题的表征向量
Figure FDA00029426846000000412
输入到前馈神经网络,输出已知条件的文本表征向量
Figure FDA00029426846000000413
与问题的文本表征向量
Figure FDA00029426846000000414
具体公式如下:
Figure FDA00029426846000000415
Figure FDA00029426846000000416
其中,FNN表示前馈神经网络;
步骤B33:将步骤B32得到的算数应用题的已知条件的文本表征向量
Figure FDA00029426846000000417
和问题的文本表征向量
Figure FDA00029426846000000418
输入到交互编码层,计算已知条件与问题之间的语义交互,得到已知条件的问题感知的表征向量
Figure FDA00029426846000000419
问题的已知条件感知的表征向量
Figure FDA00029426846000000420
首先计算算数应用题的已知条件与问题的语义相似度,获得相似度矩阵
Figure FDA00029426846000000421
计算公式如下:
Figure FDA00029426846000000422
Figure FDA0002942684600000051
其中TF(.,.)表示三线性函数相似度函数,
Figure FDA0002942684600000052
表示哈达玛积,[;]表示向量连接,W5是待训练的参数矩阵;
通过softmax函数分别对spq做行归一化处理和列归一化处理,行归一化是将spq中每个行向量分别用softmax做归一化处理,将行向量中的每个数值映射到(0,1)区间内,且行向量中各个数值的累加和为1,从而得到归一化的s||,列归一化是将spq中每个列向量分别用softmax做归一化处理,将列向量中的每个数值映射到(0,1)区间内,且列向量中各个数值的累加和为1,得到s
然后,计算已知条件的问题感知的表征向量
Figure FDA0002942684600000053
问题的已知条件感知的表征向量
Figure FDA0002942684600000054
分别为:
Figure FDA0002942684600000055
Figure FDA0002942684600000056
其中,
Figure FDA0002942684600000057
步骤B34:将步骤B33得到的
Figure FDA0002942684600000058
输入到堆叠编码层,得到融合已知条件和问题的语义信息的表征向量M0,M1,M2
其中堆叠编码层包括三个编码器,每个编码器由7个编码模块构成,每个编码模块包括两个卷积层、一个自注意力层和一个前馈层;三个编码器依次表示为MEB0、MEB1与MEB2,输出分别为M0,M1,M2
Figure FDA0002942684600000059
M1=MEB2(M0)
M2=MEB3(M1)。
5.根据权利要求3所述的一种算数应用题智能解题方法,其特征在于,所述步骤B4具体包括以下步骤:
步骤B41:预测需要从算数应用题的已知条件中提取的数字的数量;
计算算数应用题的答案首先需要根据已知条件与问题构造算数表达式,构造算数表达式需要获得构成算数表达式的数字与运算符,首先将预测需要从算数应用题的已知条件中提取的数字的数量视作分类问题,计算从算数应用题的已知条件中提取的数字的数量在[1,L(p)]整数区间上的概率分布pnum,选取最大概率值对应的整数值,作为要从算数应用题的已知条件中提取的数字的数量,具体公式如下:
Figure FDA0002942684600000061
其中,[;]表示连接,FFN表示前馈神经网络,选取最大概率值对应的整数K,作为需要从算数应用题的已知条件中提取的数字的数量;
步骤B42:根据步骤B41得到的需要从算数应用题的已知条件中提取的数字的数量K,从算数应用题的已知条件中提取相应数量的数字;
根据步骤B34输出的M0,M1,M2,通过softmax得到在已知条件中的所有数字上的选取概率分布pn,计算公式如下:
pn=softmax(FFN([M1;M2]))
其中,FFN表示前馈神经网络,根据B41中得到的需要从算数应用题的已知条件中提取的数字的数量K,选择概率值最大的前K个数字,按照在已知条件中出现的顺序排列,构成算数应用题的算数表达式的数字集合{n1,...,ni,...,nK};
步骤B43:根据步骤B42得到的构成算数应用题的算数表达式的数字集合{n1,...,ni,...,nK},计算{n1,...,ni,...,nK}中每个数字对应的表征向量,计算公式如下:
Figure FDA0002942684600000062
其中
Figure FDA0002942684600000063
表示数字集合中ni的表征向量,FFNi()表示计算数字ni的表征向量使用的前馈神经网络,不同数字所输入的前馈神经网络的参数不共享;
然后,为数字集合{n1,...,ni,...,nK}中的每个数字分配运算符,模型支持生成包括加减法运算的算数表达式,因此,模型将为每个数字分配运算符视为二分类问题,通过softmax计算为每个数字ni分配的运算符(加法或减法)的概率分布
Figure FDA0002942684600000064
计算公式如下:
Figure FDA0002942684600000065
选取概率分布
Figure FDA0002942684600000071
中最大概率值的类别所对应的运算符,作为为ni分配的运算符,依次得到数字集合{n1,...,ni,...,nK}中各个数字对应的运算符,从而得到一个带运算符的算术表达式,对该算数表达式求值,得到模型输出的答案a′。
6.根据权利要求3所述的一种算数应用题智能解题方法,其特征在于,所述步骤B6具体包括以下步骤:
步骤B61:答案预测器使用强化学习训练模型,首先从算术应用题的已知条件中提取所有数字,随机选取一个数字ni的表征向量
Figure FDA0002942684600000072
作为状态,在训练每个阶段选择每个动作,即选择为数字ni分配的运算符,对比正确运算符给出反馈,如果一样则给出正反馈奖励,如果不一样则给出负反馈奖励,采用策略梯度的方法进行强化学习训练,优化目标最大回报期望,具体计算公式如下:
J(θ)=E(R-b|θ)
其中E()表示奖励的期望值,R表示反馈的奖励,b为基线值是一个使得训练稳定的平衡项,θ是超参数;
步骤B62:由步骤B61的损失值公式,通过使用似然比计算上述公式的梯度:
Figure FDA0002942684600000073
其中
Figure FDA0002942684600000074
是步骤B43中为每个数字ni分配的运算符(加法或减法)的概率分布,b是基准值,是使训练稳定的平衡项;对比正确运算符给出反馈,如果一样则给出正反馈奖励,如果不一样则给出负反馈奖励;基于梯度更新,重新训练网络的参数,经过多次迭代更新得到训练好的网络模型。
7.一种算数应用题智能解题系统,其特征在于,包括存储器、处理器以及存储于存储器上并能够被处理器运行的计算机程序模块,所述计算机程序模块包括:
数据收集模块,用于采集算术应用题进行预处理,建立包含算术应用题的已知条件、问题以及答案的训练集;
网络预训练模块,用于将算术应用题的已知条件、问题和答案表征向量输入到深度学习网络中进行预训练,得到经过预训练的深度网络模型;
强化学习模块,用于将算术应用题的已知条件、问题和答案表征向量输入到深度学习网络中,各个组件得到融合算术应用题的已知条件和问题表征向量并以此通过强化学习训练深度学习网络,利用该表征向量预测算术运算符类别的概率作为损失,以最小化损失为目标来对整个深度学习网络进行训练,得到经过强化学习训练的深度学习网络模型;以及
算术应用题计算模块,利用经过强化学习训练的深度学习网络模型对输入的算术应用题的已知条件和问题进行分析处理,输出问题对应的答案;
当处理器运行该计算机程序模块时,能够实现如权利要求1-6所述的方法步骤。
CN202110183217.0A 2021-02-10 2021-02-10 一种算数应用题智能解题方法及系统 Active CN112860856B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110183217.0A CN112860856B (zh) 2021-02-10 2021-02-10 一种算数应用题智能解题方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110183217.0A CN112860856B (zh) 2021-02-10 2021-02-10 一种算数应用题智能解题方法及系统

Publications (2)

Publication Number Publication Date
CN112860856A true CN112860856A (zh) 2021-05-28
CN112860856B CN112860856B (zh) 2022-06-14

Family

ID=75988374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110183217.0A Active CN112860856B (zh) 2021-02-10 2021-02-10 一种算数应用题智能解题方法及系统

Country Status (1)

Country Link
CN (1) CN112860856B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113257063A (zh) * 2021-06-08 2021-08-13 北京字节跳动网络技术有限公司 一种交互方法及终端设备
CN116680502A (zh) * 2023-08-02 2023-09-01 中国科学技术大学 数学应用题智能求解方法、系统、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190189251A1 (en) * 2017-12-18 2019-06-20 International Business Machines Corporation Analysis of answers to questions
CN110751137A (zh) * 2019-09-04 2020-02-04 中山大学 一种自动求解数学题的方法和系统
CN111340661A (zh) * 2020-02-21 2020-06-26 电子科技大学 一种基于图神经网络的应用题自动解题方法
CN111598252A (zh) * 2020-04-30 2020-08-28 西安理工大学 基于深度学习的大学计算机基础知识解题方法
CN111783423A (zh) * 2020-07-09 2020-10-16 北京猿力未来科技有限公司 解题模型的训练方法及装置、解题方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190189251A1 (en) * 2017-12-18 2019-06-20 International Business Machines Corporation Analysis of answers to questions
CN110751137A (zh) * 2019-09-04 2020-02-04 中山大学 一种自动求解数学题的方法和系统
CN111340661A (zh) * 2020-02-21 2020-06-26 电子科技大学 一种基于图神经网络的应用题自动解题方法
CN111598252A (zh) * 2020-04-30 2020-08-28 西安理工大学 基于深度学习的大学计算机基础知识解题方法
CN111783423A (zh) * 2020-07-09 2020-10-16 北京猿力未来科技有限公司 解题模型的训练方法及装置、解题方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孙劲光等: "数字相关特征的文字应用题深度学习自动求解", 《辽宁工程技术大学学报(自然科学版)》, vol. 38, no. 3, 15 October 2019 (2019-10-15) *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113257063A (zh) * 2021-06-08 2021-08-13 北京字节跳动网络技术有限公司 一种交互方法及终端设备
CN116680502A (zh) * 2023-08-02 2023-09-01 中国科学技术大学 数学应用题智能求解方法、系统、设备及存储介质
CN116680502B (zh) * 2023-08-02 2023-11-28 中国科学技术大学 数学应用题智能求解方法、系统、设备及存储介质

Also Published As

Publication number Publication date
CN112860856B (zh) 2022-06-14

Similar Documents

Publication Publication Date Title
CN110175628A (zh) 一种基于自动搜索与知识蒸馏的神经网络剪枝的压缩算法
Blanco et al. A genetic algorithm to obtain the optimal recurrent neural network
CN109948029A (zh) 基于神经网络自适应的深度哈希图像搜索方法
CN109543838B (zh) 一种基于变分自编码器的图像增量学习方法
CN114860893B (zh) 基于多模态数据融合与强化学习的智能决策方法及装置
CN112860856B (zh) 一种算数应用题智能解题方法及系统
CN112699247A (zh) 一种基于多类交叉熵对比补全编码的知识表示学习框架
CN112052948B (zh) 一种网络模型压缩方法、装置、存储介质和电子设备
Elhani et al. Optimizing convolutional neural networks architecture using a modified particle swarm optimization for image classification
Jaafra et al. A review of meta-reinforcement learning for deep neural networks architecture search
Tian et al. Automatic convolutional neural network selection for image classification using genetic algorithms
CN110472746B (zh) 一种基于人工智能的编码预测方法和系统
CN116403231A (zh) 基于双视图对比学习与图剪枝的多跳阅读理解方法及系统
Wang et al. Efficient deep convolutional model compression with an active stepwise pruning approach
Castro et al. Focusing on interpretability and accuracy of a genetic fuzzy system
CN115066689A (zh) 细粒度的随机神经架构搜索
Mousa-Pasandi et al. Convolutional neural network pruning using filter attenuation
Phan et al. Information theory based pruning for CNN compression and its application to image classification and action recognition
CN116561376A (zh) 一种多智能体超图建模与表示方法
CN115455162A (zh) 层次胶囊与多视图信息融合的答案句子选择方法与装置
CN112668551B (zh) 基于遗传算法的表情分类方法
Wirayasa et al. Comparison of Convolutional Neural Networks Model Using Different Optimizers for Image Classification
KR20210157826A (ko) 심층 신경망 구조 학습 및 경량화 방법
CN114626284A (zh) 一种模型处理方法及相关装置
US20220343162A1 (en) Method for structure learning and model compression for deep neural network

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant