Loading [MathJax]/jax/output/SVG/jax.js

一种自动求解数学应用题的双路文本编码器

肖菁, 何岱俊, 曹阳

肖菁, 何岱俊, 曹阳. 一种自动求解数学应用题的双路文本编码器[J]. 华南师范大学学报(自然科学版), 2023, 55(1): 36-44. DOI: 10.6054/j.jscnun.2023003
引用本文: 肖菁, 何岱俊, 曹阳. 一种自动求解数学应用题的双路文本编码器[J]. 华南师范大学学报(自然科学版), 2023, 55(1): 36-44. DOI: 10.6054/j.jscnun.2023003
XIAO Jing, HE Daijun, CAO Yang. A Dual Channel Text Encoder for Solving Math Word Problems[J]. Journal of South China Normal University (Natural Science Edition), 2023, 55(1): 36-44. DOI: 10.6054/j.jscnun.2023003
Citation: XIAO Jing, HE Daijun, CAO Yang. A Dual Channel Text Encoder for Solving Math Word Problems[J]. Journal of South China Normal University (Natural Science Edition), 2023, 55(1): 36-44. DOI: 10.6054/j.jscnun.2023003

一种自动求解数学应用题的双路文本编码器

基金项目: 

国家自然科学基金项目 62177015

国防科技重点实验室稳定支持经费项目 WDZC20205250410

详细信息
    通讯作者:

    肖菁, Email: xiaojing@scnu.edu.cn

  • 中图分类号: TP319

A Dual Channel Text Encoder for Solving Math Word Problems

  • 摘要: 近年来,得益于人工智能技术(Artificial Intelligence, AI)的快速发展,关于自动求解数学应用题(Math Word Problem, MWP)的研究越来越趋向成熟。在自动求解数学应用题任务中,对问题文本进行建模至关重要。针对这一问题,文章提出了一个基于循环神经网络(Recursive Neural Network, RNN)和Transformer编码网络的双路文本编码器(Dual Channel Text Encoder, DCTE):首先,使用循环神经网络对文本进行初步的编码;然后,利用基于自注意力(Self-attention)机制的Transformer编码网络来获得词语的远距离上下文语义信息,以增强词语和文本的语义表征。结合DCTE和GTS(Goal-Driven Tree-structured MWP Solver)解码器,得到了数学应用题求解器(DCTE-GTS模型),并在Math23k数据集上,将该模型与Graph2Tree、HMS等模型进行了对比实验;同时,为探讨编码器配置方法对模型效果的影响,进行了消融实验。对比实验结果表明:DCTE-GTS模型均优于各基准模型,答案正确率达到77.6%。消融实验结果表明双路编码器的配置方法是最优的。
    Abstract: In recent years, with the rapid development of artificial intelligence (AI) technology, researches on automatic solving of Math Word Problems (MWP) have been improved. In the task of automatically solving MWP, the modeling of the problem text is very important. For this issue, a Dual Channel Text Encoder (DCTE) based on Recursive Neural Network (RNN) and Transformer is proposed. DCTE firstly uses an RNN to initially encode the problem text, and then uses the Transformer based on the self-attention mechanism to obtain the long-range contextual information to enhance the representation of the word and problem text. Combining DCTE and GTS (Goal-Driven Tree-structured MWP Solver) decoder to obtain our math word problem solver DCTE-GTS. In this paper, DCTE-GTS is experimented on Math23k dataset and compared with Graph2Tree, HMS and other models. Meanwhile, the ablation experiments are also conducted to explore impact of encoder configuration on model's perfor-mance. The experimental results show that the proposed DCTE-GTS is better than the baseline models, obtaining an answer accuracy of 77.6%. The ablation experiments show that the configuration of DCTE is the best.
  • 近年来,得益于互联网的迅速发展,线上教育也快速地发展起来。与传统的教育模式相比,线上教育有许多优势:学习资源门槛大大降低、教育成本降低以及学习路径个性化等。而且,线上教育中对学生答案进行自动化批改的技术,可以减轻教师批改大量重复作业的负担。在自动化批改技术中,尽管现在人工智能在通识教育中的文科科目上(如作文语法批改、解析阅读理解题目等)取得不错的进展,但在理科方面却没能够取得很大的突破,其中自动求解数学应用题就是难题之一。

    自动求解数学应用题是自然语言处理(Natural Language Processing, NLP)领域的一项基础研究,旨在通过对自然语言所描述的数学问题进行建模,然后计算得到该数学问题的答案。早在1960年,就有研究者开始使用人工智能(Artificial Intelligence, AI)方法来解决数学应用题[1]。数学应用题由一段描述数学问题的文本组成,在文本的最后进行提问,要求读者给出相应的答案。目前在自动求解数学应用题的研究领域中,中文数据集Math23k[2]是最常用的数据集,其中每个样本由问题文本、问题对应的求解表达式和问题答案组成。在自动求解数学应用题领域的初始阶段(1960—2010年),学者们通过设计规则和模式来进行模式匹配,从而得到数学问题对应的求解表达式[3-6]。2010年后,部分学者设计基于机器学习的方法来预测预定义的数学表达式模板,然后将数字填充到模板中,从而得到求解问题的数学表达式[7-8];部分学者利用语义分析,将数学应用题的问题文本转换成逻辑范式,然后通过预定义的逻辑规则来推理问题的答案[9-10]。显然,这些方法都需要大量的人力去进行特征工程和复杂的数据标注。

    随着大规模数据集的诞生和深度学习技术的迅猛发展,使用深度学习方法能更好地解决上述问题。第一个基于深度学习的数学应用题求解器是一个改进的序列到序列(Sequence to Sequence, Seq2Seq)模型[2],该模型曾广泛地应用在机器翻译、问答系统中。为了提高基于深度学习的数学应用题求解器的泛化性,WANG等[11]提出了等式正则化(Equation Normali-zation, EN)的数据预处理方法,大大减少了模型的输出词表。学者们发现数学表达式可以转换成二叉树,因此摒弃了线性的模型解码器(Decoder),转而设计树形的循环神经网络(Recursive Neural Network, RNN)作为模型的解码器,如抽象句法树解码器(Abstract Synatax Tree Decoder, AST-Dec)[12]和目标驱动的树状数学应用题求解器(Goal-Driven Tree-structured MWP Solver, GTS)[13]。后续研究中,多数学者设计的数学应用题求解器都以GTS为基础。如:ZHANG等[14]提出了一个基于图神经网络的编码器,通过在问题文本上提取数字变量相关的特征来提升文本理解水平,并结合GTS来设计数学应用题求解器。

    但是,这些数学应用题求解模型通常只使用双向的门控循环(Gated Recurrent Unit, GRU)网络[15]或者长短记忆(Long Short-Term Memory, LSTM)网络[16]等循环神经网络来对数学应用题的问题文本进行建模。而由于循环神经网络设计上的局限,模型在建模序列时会遗忘部分历史信息,特别是距离较远的历史信息。近年来,基于深度学习的文本建模方式发展迅猛,学者们将新的文本建模方法应用于自动求解数学应用题研究领域。如:王红等[17]提出了基于注意力机制的LSTM的语义关系抽取,通过注意力机制和LSTM的结合,将文本信息向量化;VASWANI等[18]摒弃了以往使用RNN序列计算的模式,设计了基于自注意力机制的文本模型(Transformer);张小川等[19]针对短文本建模缺乏上下文信息导致的问题,提出了一种融合卷积神经网络和多头自注意力机制的文本分类模型。

    为了提高模型对问题文本的理解水平,让模型学习到距离更远的文本语义信息,本文提出了一个基于循环神经网络和Transformer编码网络的双路文本编码器(Dual Channel Text Encoder, DCTE),在数学应用题的问题文本上进行建模,并结合GTS得到数学应用题求解器(DCTE-GTS)。在DCTE模型的编码中:首先,初级语义编码层通过门控循环网络对文本序列进行初次的建模;然后,使用基于自注意力机制的Transformer编码网络,使得每个词语都能捕捉到文本各个距离上的上下文语义信息,从而缓解因使用循环神经网络进行文本编码而带来的历史信息遗忘问题;其次,使用Transformer编码网络生成的句子表征向量作为模型解码器GTS的初始目标向量,并为下游解码任务提供更准确的词语语义表征和文本语义表征,从而提升模型的总体效果。最后,在Math23k数据集上,将DCTE-GTS模型与Graph2Tree、HMS等6个基线模型进行对比实验,并对DCTE-GTS模型进行消融实验。

    为了提升模型对文本编码的效果,我们设计了双路文本编码器(DCTE)用于模型编码。在该编码器中,经过数据处理的问题文本序列P首先通过嵌入层得到各词的嵌入向量;然后,初级语义编码层通过序列的正向和反向顺序计算得到各词的初级语义表征,远距离语义编码层通过自注意力机制来获取各词的远距离上下文语义信息;接着,在双路融合层中将2个编码层的输出进行拼接和降维,从而得到每个词的语义表征和文本的语义表征。在双路编码器计算完成后,结合GTS得到数学应用题求解器DCTE-GTS模型(图 1),使GTS根据双路文本编码器建模后的文本语义表征和词语语义表征,一步一步地生成求解表达式对应的二叉树。

    图  1  DCTE-GTS模型结构
    Figure  1.  The structure of DCTE-GTS

    一个数学应用题样本由问题文本序列P和对应的求解表达式T组成。

    问题文本序列P是一个由文字和数字量组成的序列。根据有效数字标识符算法[2]P中的第i个出现的数字量会标注为有效数符Ni(在例1所示的数学应用题样本中,N1=120,N2=80%,N3=15%)。接着,使用替换标识符“NUM”替换文本序列P中的所有数字量,并在序列的开头添加分类标识符“CLS”。最后,根据所有训练样本的问题文本序列建立输入词表Vin,并将所有训练样本的问题序列中的每个词语或符号转换成该词语或符号在词表中的位置索引。

    例1  问题文本:张明有120元钱,买书用去80%,买文具的钱是买书的15%。买文具用去多少元?

    求解表达式:120×80%×15%。

    问题答案:14.4。

    求解表达式T是一个由数学操作符、常数量和数字量组成的符号序列,用于解决问题文本序列P中蕴涵的问题。首先,将求解表达式T中的数字量替换成有效数字符(如例1所示的数学应用题样本中,求解表达式会转换成N1×N2×N3)。然后,根据所有训练样本的求解表达式建立和划分输出词表Vin= VopVconnP,其中,Vop表示数学操作符的集合(如+,-,×,÷等),Vcon表示常数量的集合(如1,3.141 59…等数学计算中常用到的数字量),nP表示问题文本序列P中出现的数字量的集合。其中,每个样本的nP都不一样,如例1所示的数学应用题样本中,nP={N1, N2, N3}。

    在嵌入层中,问题文本中的每一个词都会编码成一个嵌入向量。假如问题文本的符号序列为P=x1, x2, …, xn,其中xs为文本序列中第s个词在输入词表Vin中的位置索引,第s个词的嵌入向量xs由下式给出:

    xs=Min[xs],

    其中,MinR|Vin|×d为可训练的嵌入矩阵,|Vin|为输入词表的大小,d为模型隐层向量的维度,Min[xs]表示取Min的第xs行。

    该层使用GRU网络[4]进行编码, 从而捕捉文本中各个词的中距离和近距离的上下文语义信息。GRU网络是一个常用于处理序列数据的神经网络模型,模型通过门机制选择遗忘或者记住序列中各个位置的信息。给定当前时间步t的输入xt和上一时间步t-1的隐层向量ht-1,时间步t的隐层向量ht的计算公式如下:

    GRU(ht1,xt)=ht,ht=(11zt)mt+ztht1,mt=tanh(Wimxt+rt(Whmht1)),rt=σ(Wirxt+Whrht1),zt=σ(Wizxt+Whzht1),

    其中,WirWhrWizWhzWimWhmRd×d均为可训练的参数矩阵,σ(·)为sigmoid激活函数,*表示哈达玛积,tanh(·)为tanh激活函数。假如词嵌入向量序列为x1, x2, …, xn,第s个词的正向编码hsRd由第s个词的嵌入向量xs和它的前一个词的正向编码hs1计算得到:

    hs=GRU(hs1,xs)

    在序列的正方向上计算时,正向编码hs能够获取x1, x2, …, xs的语义信息。相似地,第s个词的反向编码hsRd的计算公式如下:

    hs=GRU(hs+1,xs) 。 

    最后,结合第s个词的正向编码hs和反向编码hs,给出第s个词的初级语义表征hs的计算公式:

    hs=hs+hs

    该层使用Transformer编码网络来捕捉文本的远距离上下文信息。在Transformer编码网络中,各个位置的词语通过自注意力(Self-attention)机制都可以直接与文本序列中每个位置的词语进行交互。如图 2所示,Transformer编码网络由以下3个模块组成:

    图  2  Transformer编码网络结构
    Figure  2.  The structure of Transformer encoder network

    (1) 多头自注意力。假设该模块的输入为g1, g2, …, gn,令输入的序列向量按行组成一个矩阵G = [g1,g2,,gn]TRn×d,由下式得到该模块的计算结果:

    MultiHead(G)=[A1:A2::Ak]WO,Ai=softmax(QiKTidk)Vi,Qi=GWQi,Ki=GWKi,Vi=GWVi,

    其中,WQiWKiWViRd×dkWORd×d均为可训练的参数矩阵;k为注意力头的数量,dk为各头的维度,满足k×dk=d;softmax(·)表示对向量或者矩阵的最后一维进行softmax计算;[· ∶ · ∶ … ∶ ·]表示将每个向量或者每个矩阵的最后一维拼接起来。该模块计算完成后,得到输出矩阵MultiHead(G)= GRn×d,按行解耦可得到输出序列g1, g2, …, gn

    (2) 前馈前向网络。假设该模块的输入为g1, g2, …, gn,由下式得到该模块的计算结果:

    FFN(gs)=W2ReLU(W1gs),

    其中,W1Rdff×d, W2Rd×dff均为可训练的参数矩阵,dff为该模块的隐层维度,一般取dff=4×d;ReLU(·)为ReLU激活函数。前馈前向网络给Transformer编码网络提供了非线性拟合能力。

    (3) 残差连接和层归一化。该模块是接在其他模块后的辅助模块,假设该模块的上一个模块的计算结果为SL(·),输入为g1, g2, …, gn,则由下式可得到该模块的计算结果:

    AddNorm(gs)=LN(gs+SL(gs)),

    其中,LN(·)为可训练的层归一化。通过残差连接,模型可以在训练时减轻梯度爆炸和梯度消失问题,而层归一化可以使模型在计算中保持隐层向量的分布稳定。

    以上为Transformer编码网络的各个模块的计算过程。假设初级语义编码层的输出序列为h1, h2, …, hn,将该序列输入到Transformer编码网络中,通过上述的各个模块计算可得到各个词语的远距离上下文语义表征t1, t2, …, tn。由于各词的初级语义表征是通过序列顺序计算得到的,本身会携带有隐式的位置信息,无需使用原生Transformer的隐式位置编码。

    通过远距离语义编码层后,各词语能够捕捉到与当前词语有关的远距离上下文语义信息,并将信息编码到各自的远距离上下文语义表征中,从而缓解初级编码层中使用循环神经网络进行顺序计算带来的历史信息遗忘问题。

    为了使得编码器输出的每个词的语义表征能够学习到各种距离上的上下文语义信息,本文将词嵌入向量xs、初级语义表征向量hs和远距离上下文语义表征向量ts拼接起来,并通过线性层进行降维操作,从而得到第s个词最终的语义表征向量us

    us=LN(Wdc[xs:hs:ts]),

    其中,WdcRd×3d为可训练的参数矩阵,LN(·)为可训练的层归一化。

    对于每个数学应用题,输出词yVdec 的嵌入向量由下式给出:

    e(y)={Mop[y](yVop),Mcon[y](yVcon),uloc(y,P)(ynP), (1)

    其中,MopR|Vop|×dMcon R|Vcon |×d都是可训练的嵌入矩阵,loc(y, P)表示y在输入序列P中的位置索引。可以看到,当输出词为操作符或者常数量时,该词对应的嵌入向量可以直接在嵌入矩阵中得到;当输出词为问题文本中提及的数字量时,该词的嵌入向量为问题文本中该词编码后的语义表征向量。这是符合直觉的,因为在问题文本中出现过的数字量(如N1N2nP)在不同的数学应用题中所蕴涵的含义必然不同。只有当编码器将该数字量对应的替换标识符“NUM”编码后,该位置的替换标识符“NUM”的语义表征向量uloc(y, P)才能正确地表达该数字量的含义。

    DCTE-GTS模型选择目标驱动的树状数学应用题求解器[3](GTS)为求解的解码器。该解码器将求解表达式转换成对应的二叉树,认为二叉树中的每个节点对应数学应用题的各个子目标,所以解码生成该二叉树的过程就是不断提出和解决各个子目标的过程,直到二叉树生成结束。

    在GTS的二叉树生成过程开始之前,模型需要一个表示该数学应用题总目标的根目标向量。这是一个类似于文本分类的过程,即用一个表征向量来概括整个文本。类似于预训练语言模型BERT中常用于文本分类的做法,本文使用问题文本中分类标识符“CLS”对应的远距离上下文语义表征向量t1作为表达总问题的根目标向量qroot。当模型将分类标识符“CLS”的远距离上下文语义表征向量t1用于概括整个文本内容信息的任务时,远距离编码层可以不受距离影响,通过自注意力机制将大量关键信息编码到t1中,所以t1能被视为一个准确的文本语义表征建模。

    GTS通过前序遍历的顺序来生成求解表达式对应的二叉树。首先,解码器将根节点视作当前节点,令当前节点的目标向量qqroot,进入下列步骤进行解码:

    步骤1:预测节点的输出词。

    为了解决当前目标向量q中蕴涵的目标,解码器使用注意力机制来计算解决该目标所需的上下文向量c

    c=sasus,as=exp(score(q,us))iexp(score(q,ui)),score(q,us)=vTattanh(Wat[q:us]),

    其中,vatRd是可训练的参数向量,WatRd×2d是可训练的参数矩阵。然后,根据目标向量q和上下文向量c,解码器计算得到当前节点中输出词表的概率分布prob(yq,c,P)

    prob(yq,c,P)=exp(s(yq,c,P))iexp(s(yiq,c,P)), (2)
    s(yq,c,P)=vTpdtanh(Wpd[q:c:e(y)]),

    其中,vpdRd是可训练的参数向量,WpdRd×3d是可训练的参数矩阵。接着,解码器选择概率最大的输出词作为当前节点预测词:

    ˆy=argmaxyVdec prob(yq,c,P)

    解码器将当前节点的输出词ˆy视作解决当前节点目标向量q的一个解决方案,然后将当前节点设置为非空。若ˆyVop ,即预测词为操作符,则当前节点会生成2个空的子节点,解码器进入步骤2。若ˆyVcon nP,即预测词为常数量或者问题文本中的数字量,说明当前节点为二叉树的叶子节点并且不再分裂子节点。此时解码器向上回溯找到第1个拥有空的右子节点的节点qR_empty,解码器来到该节点,令qqR_empty并进入步骤3;若找不到拥有空的右子节点的节点,说明二叉树已经生成完毕,解码器解码结束。

    步骤2:左子节点目标向量生成。

    为了填补空的左子节点,解码器通过当前目标向量q、上下文向量c和当前节点的预测词ˆy的嵌入向量e(ˆy)来生成左子节点的目标向量qL

    qL=ρqLωqL,ρqL=σ(WglηqL),ωqL=tanh(WulηqL),ηqL=oqLfqL,oqL=σ(Wol[q:c:e(ˆy)]),fqL=tanh(Wfl[q:c:e(ˆy)]),

    其中,WolWflRd×3d以及WglWulRd×d都是可训练的参数矩阵。左子节点的目标向量qL生成完毕后,解码器从当前节点来到左子节点,令qqL,返回步骤1。

    步骤3:右子节点目标向量生成。

    与左子节点不同的是,在右子节点的目标向量生成之前,当前节点的左子树已经生成完毕,所以右子节点的生成需要得到左子树的信息。解码器通过下列式子递归地计算得到某个节点的子树嵌入向量sst

    sst={comb(sstL,sstR,ˆy)(ˆyVop),e(ˆy)(ˆyVconnP),
    comb(sstL,sstR,ˆy)=ostfst,ost=σ(Wot[sstL:sstRt:e(ˆy)]),fst=tanh(Wft[sstL:sstR:e(ˆy)]),

    其中,WotWftRd×3d都是可训练的参数矩阵。可以看到,当节点是非叶子节点时,该节点的子树嵌入向量sst由该节点左子节点的子树嵌入向量sLst、该节点右子节点的子树嵌入向量sRst和该节点的预测词ˆy计算得到。

    为了填补空的右子节点,解码器通过当前的目标向量q、上下文向量c、当前节点的预测词ˆy的嵌入向量e(ˆy)和当前节点的左子树嵌入向量sLst来生成右子节点的目标向量qR

    qR=ρqRωqR,ρqR=σ(Wgr[ηqR:sstL]),ωqR=tanh(Wur[ηqR:sst L]),ηqR=oqRfqR,oqR=σ(Wor [q:c:e(ˆy)]),fqR=tanh(Wfr[q:c:e(ˆy)]),

    其中,WorWfrRd×3d以及WgrWur Rd×2d都是可训练的参数矩阵。右子节点的目标向量qR生成完毕后,解码器从当前节点来到左子节点,令qqR,返回步骤1。

    给定训练数据集D={(Pi,Ti),1iN},第i个样本的损失函数Li如下:

    Li=lij=1logprob(yjqj,cj,Pi),

    其中,liTi的长度,yjqjcj分别为求解表达式Ti对应的二叉树前序遍历顺序中第j个节点的真标签、目标向量、上下文向量。模型的训练目标是最小化模型在训练集上的总损失Ltotal,其计算公式如下:

    Ltotal =Ni=1Li

    在Math23k数据集[2]上,对DCTE-GTS模型和6个基线模型进行数学应用题求解的实验。Math23k是自动求解数学应用题领域中最常用的数据集,包含了23 161个中文数学应用题样本,其中每个数学应用题都能被一个代数式解决。Math23k数据集的数据分布如表 1所示。

    表  1  Math23k数据分布
    Table  1.  Distribution of Math23k
    求解表达式的长度 样本个数/个
    训练集 测试集
    0~3 4 462 174
    3~5 11 001 522
    5~7 4 407 191
    7~9 1 349 66
    9~11 574 34
    11+ 369 13
    下载: 导出CSV 
    | 显示表格

    在自动求解数学应用题时,各个求解器通常会推理出一个求解表达式来解决该问题,而一个数学应用题往往可以通过多个求解表达式来解决,因此,本文选择答案准确率为评估模型效果的指标。由模型预测出的求解表达式得到预测的结果后,将预测结果与样本的标注结果相比较,若相等则表示该模型正确预测该样本。

    本文设置了6个基准模型作为对比模型:

    (1) DNS[2]:为第一个基于深度学习的数学应用题求解器,其结构是一个结合注意力机制的Seq2Seq模型。

    (2) Math-EN[11]:为结合循环神经网络、卷积神经网络和Transformer编码网络的集成模型,设计了表达式正则化来减少输出空间。

    (3) GROUP-ATT[20]:为结合群注意力机制的Seq2Seq模型,其群注意力机制可以分别提取出文本中的全局特征、数字量相关特征、数字量交互特征和问题相关特征。

    (4) GTS[13]:为目标驱动的树状数学应用题求解器,其编码器是一个双向的GRU网络。

    (5) Graph2Tree[14]:使用GTS作为解码器,在编码器上设计了基于图卷积神经网络的图Transformer层来提取数字量相关的特征。

    (6) HMS[21]:使用GTS作为解码器,在编码器上设计了子句层次编码层,并提出层次注意力机制来提升模型对文本语义的理解水平。

    在Ubuntu操作系统上使用PyTorch深度学习平台来实现DCTE-GTS模型,并在图形处理器RTX3090上进行模型训练。在DCTE-GTS模型中,输入的文本按字粒度划分为词语,模型中设置嵌入向量和各个模块隐层向量的维度d=512,初级语义编码层的GRU网络层数设置为2,远距离语义编码层的Transformer编码网络层数设置为4、注意力头数量为8。在训练中,模型使用基于Adam的批梯度下降算法来优化模型参数,其中批大小为64,学习率为1e-3,在训练集上迭代100次,每20次迭代学习率减半。最后,模型使用束搜索(Beam Search)来计算最终结果,束大小设置为5。本论文开源代码可见于https://github.com/SCNU203/DCTE

    在Math23k数据集上,分别测试了6个基准模型和DCTE-GTS模型,结果(表 2)表明:

    表  2  不同模型在Math23k上的测试结果
    Table  2.  The test results of different models on Math23k
    模型 答案正确率/%
    DNS 59.5
    Math-EN 69.7
    GROUP-ATT 69.5
    GTS 75.3
    Graph2Tree 77.4
    HMS 76.1
    DCTE-GTS 77.6
    下载: 导出CSV 
    | 显示表格

    (1) 使用GTS作为模型解码器的4个数学应用题求解器(GTS、Graph2Tree、HMS、DCTE-GTS模型)的答案准确率均远超基于Seq2Seq模型的求解器(DNS、Math-EN、GROUP-ATT模型),说明GTS是自动求解数学应用题领域中的一个优秀的解码算法。这是因为树状的解码方式十分契合数学表达式的结构。由此,比起线性的解码方式,GTS在训练中可以更易于拟合训练样本的求解表达式。

    (2) Graph2Tree、HMS、DCTE-GTS模型都是在GTS模型的基础上改进了编码器,其答案正确率分别比GTS模型的提升了2.1%、0.8%、2.3%。由此可知:增加编码模块来提取问题相关的特征,可以提升模型对问题文本的理解水平,从而提高模型的答案准确率。

    (3) Graph2Tree模型通过依存句法分析工具在问题文本中显式地提取数字量以及与数字量相关的词语来组建图,并在图上进行图卷积神经网络的计算,以此增强数字量的表征向量,其答案准确率达到77.4%。而DCTE-GTS模型在远距离语义编码层的数字量的表征向量生成过程中,每个数字量通过自注意力都可以与所有词语进行相似度匹配,并有选择地与各个词语进行信息交互。这个过程在模型内部进行,无需使用依存句法分析工具,不仅省去了句法分析的时间,而且可以防止因句法分析工具分析错误带来的错误传播,其答案准确率(77.6%)略高于Graph2Tree的。

    (4) 在HMS模型中,编码器使用多个GRU网络对问题文本中的各个子句进行编码,从而得到各个子句的表征向量;然后用GRU网络来融合各个子句表征向量组成的序列,从而得到整个问题文本的语义表征向量,提高了模型对问题文本的概括能力。而DCTE-GTS模型简单地提取出分类符“CLS”对应的远距离上下文语义表征向量作为整个问题文本的语义表征向量,其答案正确率比HMS模型的高1.5%。

    在DCTE-GTS模型上进行了3个消融实验,以进一步评估该模型的有效性。首先,去掉远距离语义编码层,并使用GTS中的方法[13]来生成根节点目标向量qroot,记为DCTE-GTS-a模型;接着,去掉初级语义编码层,并将文本各词的嵌入向量加上原生Transformer的位置编码输入到远距离编码层,记为DCTE-GTS-b模型;然后,将远距离编码层的输入改变为文本各词的嵌入向量加上原生Transformer的位置编码,而不是原来的初级语义表征向量,记为DCTE-GTS-c模型。实验结果(表 3)表明:

    表  3  消融实验结果
    Table  3.  Results of ablation experiment
    模型 答案正确率/%
    DCTE-GTS 77.6
    DCTE-GTS-a 76.3
    DCTE-GTS-b 60.0
    DCTE-GTS-c 76.9
    下载: 导出CSV 
    | 显示表格

    (1) DCTE-GTS-a模型的答案准确率比DCTE-GTS模型的下降了1.3%,表明远距离语义编码层对模型答案正确率的提升是有帮助的;

    (2) DCTE-GTS-b模型的答案正确率仅为60.0%,说明在语料较小的数据集中不适合只使用Transformer编码网络作为编码器;

    (3) DCTE-GTS-c模型的答案正确率比DCTE-GTS模型的下降了0.7%, 说明初级编码层通过序列顺序计算得到的隐式位置信息要强于原生Transformer设计的显式位置编码中的位置信息。

    本文研究了自动求解数学应用题的文本建模问题,提出了基于循环神经网络和Transformer的双路文本编码器(DCTE),以给模型解码器提供更好的词语义表征和文本语义表征,并将其与GTS结合得到数学应用题求解器(DCTE-GTS)。DCTE-GTS模型与6个基准模型的对比实验结果证明:DCTE-GTS模型的答案正确率达到77.6%,优于各基准模型。同时,消融实验验证了DCTE-GTS模型中各个模块设计的有效性以及配置方法的影响,表明该模型的设计可达到最好效果。

    后续研究可探索双路文本编码器在问题文本语料上进行预训练的方法,设计适合自动求解数学应用题的无监督任务来使模型挖掘到问题文本中丰富的语义信息。

  • 图  1   DCTE-GTS模型结构

    Figure  1.   The structure of DCTE-GTS

    图  2   Transformer编码网络结构

    Figure  2.   The structure of Transformer encoder network

    表  1   Math23k数据分布

    Table  1   Distribution of Math23k

    求解表达式的长度 样本个数/个
    训练集 测试集
    0~3 4 462 174
    3~5 11 001 522
    5~7 4 407 191
    7~9 1 349 66
    9~11 574 34
    11+ 369 13
    下载: 导出CSV

    表  2   不同模型在Math23k上的测试结果

    Table  2   The test results of different models on Math23k

    模型 答案正确率/%
    DNS 59.5
    Math-EN 69.7
    GROUP-ATT 69.5
    GTS 75.3
    Graph2Tree 77.4
    HMS 76.1
    DCTE-GTS 77.6
    下载: 导出CSV

    表  3   消融实验结果

    Table  3   Results of ablation experiment

    模型 答案正确率/%
    DCTE-GTS 77.6
    DCTE-GTS-a 76.3
    DCTE-GTS-b 60.0
    DCTE-GTS-c 76.9
    下载: 导出CSV
  • [1]

    ZHANG D X, WANG L, BING L M, et al. The gap of semantic parsing: a survey on automatic math word problem solvers[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2019, 42(9): 2287-2305.

    [2]

    YAN W, LIU X J, SHI S M. Deep neural solver for math word problems[C]//Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing. Copenhagen: Association for Computational Linguistics, 2017: 845-854.

    [3]

    BOBROW D G. Natural language input for a computer problem-solving system[C]//Semantic Information Processing. Cambridge: MIT Press, 1968: 146-226.

    [4]

    SLAGLE J R. Experiments with a deductive question-answering program[J]. Communications of the ACM, 1965, 8(12): 792-798. doi: 10.1145/365691.365960

    [5]

    FLETCHER C R. Understanding and solving arithmetic word problems: a computer simulation[J]. Behavior Research Methods, Instruments & Computers, 1985, 17(5): 565-571.

    [6]

    BAKMAN Y. Robust understanding of word problems with extraneous information[J]. arXiv, (2007-01-14)[2022-05-20]. https://arxiv.org/abs/math/0701393.

    [7]

    KUSHMAN N, ARTZI Y, ZETTLEMOYER L, et al. Lear-ning to automatically solve algebra word problems[C]//Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics. Baltimore: Association for Computational Linguistics, 2014: 271-281.

    [8]

    ROY S, DAN R. Unit dependency graph and its application to arithmetic word problem solving[C] // Proceedings of the AAAI Conference on Artificial Intelligence. San Francisco: AAAI Press, 2017: 3082-3088.

    [9]

    SHI S M, WANG Y H, LIN C Y, et al. Automatically solving number word problems by semantic parsing and reasoning[C]//Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing. Lisbon: Association for Computational Linguistics, 2015: 1132-1142.

    [10]

    HUANG D Q, SHI S M, LIN C Y, et al. Learning fine-grained expressions to solve math word problems[C]//Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing. Copenhagen: Association for Computational Linguistics, 2017: 805-814.

    [11]

    WANG L, WANG Y, CAI D, et al. Translating a math word problem to a expression tree[C]//Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing. Brussels: Association for Computational Linguistics, 2018: 1064-1069.

    [12]

    LIU Q Y, GUAN W, LI S J, et al. Tree-structured decoding for solving math word problems[C]//Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing. Hong Kong: Association for Computational Linguistics, 2019: 2370-2379.

    [13]

    XIE Z P, SUN S C. A goal-driven tree-structured neural model for math word problems[C]//Proceedings of the Twenty-Eighth International Joint Conference on Artificial Intelligence. Macao: Morgan Kaufmann, 2019: 5299-5305.

    [14]

    ZHANG J P, WANG L, LEE R K, et al. Graph-to-tree learning for solving math word problems[C]//Procee-dings of the 58th Annual Meeting of the Association for Computational Linguistics. Seattle: Association for Computational Linguistics, 2020: 3928-3937.

    [15]

    CHO K, MERRIENBOER B V, GULCEHRE C, et al. Lear-ning phrase representations using RNN encoder-decoder for statistical machine translation[C]//Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing. Doha: Association for Computational Linguistics, 2014: 1724-1734.

    [16]

    HOCHREITER S, SCHMIDHUBER J. Long short-term memory[J]. Neural Computation, 1997, 9(8): 1735-1780. doi: 10.1162/neco.1997.9.8.1735

    [17] 王红, 史金钏, 张志伟. 基于注意力机制的LSTM的语义关系抽取[J]. 计算机应用研究, 2018, 35(5): 1417-1420. https://www.cnki.com.cn/Article/CJFDTOTAL-JSYJ201805030.htm

    WANG H, SHI J C, ZHANG Z W. Text semantic relation extraction of LSTM based on attention mechanism[J]. Application Research of Computers, 2018, 35(5): 1417-1420. https://www.cnki.com.cn/Article/CJFDTOTAL-JSYJ201805030.htm

    [18]

    VASWANI A, SHAZEER N, PARMAR N, et al. Attention is all you need[C]//Advances in Neural Information Processing Systems 30. Cambridge: MIT Press, 2017: 6000-6010.

    [19] 张小川, 戴旭尧, 刘璐, 等. 融合多头自注意力机制的中文短文本分类模型[J]. 计算机应用, 2020, 40(12): 3485-3489. https://www.cnki.com.cn/Article/CJFDTOTAL-JSJY202012013.htm

    ZHANG X C, DAI X Y, LIU L, et al. Chinese short text cla-ssification model with multi-head self-attention mechanism[J]. Journal of Computer Applications, 2020, 40(12): 3485-3489. https://www.cnki.com.cn/Article/CJFDTOTAL-JSJY202012013.htm

    [20]

    LI J R, WANG L, ZHANG J P, et al. Modeling intra-relation in math word problems with different functional multi-head attentions[C]//Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. Florence: Association for Computational Linguistics, 2019: 6162-6167.

    [21]

    LIN X, HUANG Z Y, ZHAO H K, et al. Hms: a hierarchical solver with dependency-enhanced understanding for math word problem[C]//Proceedings of the AAAI Confe-rence on Artificial Intelligence. Vancouver: AAAI Press, 2021: 4232-4240.

  • 期刊类型引用(1)

    1. 林加艺,夏鸿斌,刘渊. 基于类比学习的数学应用题求解模型. 计算机工程. 2024(07): 63-70 . 百度学术

    其他类型引用(3)

图(2)  /  表(3)
计量
  • 文章访问数:  246
  • HTML全文浏览量:  36
  • PDF下载量:  129
  • 被引次数: 4
出版历程
  • 收稿日期:  2022-06-01
  • 网络出版日期:  2023-04-11
  • 刊出日期:  2023-02-24

目录

/

返回文章
返回