菅朋朋 王彦丽 夏 盟
1(华中师范大学国家数字化学习工程技术研究中心 湖北 武汉 430079)2(河南财经政法大学 河南 郑州 450000)
在多媒体分析、自然语言处理及机器学习等技术的快速发展和智能教育需求的合力推动下,自动解答成为人工智能领域的活跃研究问题[1]。物理电路题目的自动理解与解答有文字和图形两种题面形式,是自动解答的一个代表性分支[2],同样面临着复杂多变的自然语言理解、图形的识别与分析困难,以及多模态题目理解等困难挑战。
面对这一挑战,许多专家学者投入到该领域的研究,并在解决问题的方法探索中取得不断的进步。文献[3]指出电路模型的分析理解内容,包括电路器件、特定节点、电流电压分支的识别与分析。在分析电路图形时,文献[4]则关注多节点直流电路结构与电路方程的关联关系,认为完整的解题步骤比一个正确答案更有价值。然而,该文没有给出实现机器理解题目或图形的方法。在电路图形中电路符号和连接关系的识别方面,文献[5]提出了基于符号表达式验证的方法对电路进行分析。文献[6]提出了分层量化的方法。文献[7]提出了一种基于图形构建的图对决策树的方法。这些方法分别从不同角度尝试完成电路题目自动理解任务,部分完成将人类解题逻辑思路机器化执行的设定。然而,现有的方法均不能以端到端的方式实现电路题目的自动解答。
在自动解答中,文献[8-10]提出的句法语义模型及其解题框架很好地完成了语义理解问题,即从题目的文本提取实体间的数量关系,以此作为题目理解,并实现自动解答。在此基础上,本文将多媒体处理技术引入面向自动解答的题目理解,以题目中的多模态数据为对象,建立题目中双模态数据的特征表达,并融合双模态数据,提出融合文本和图形理解的电路题目自动解答方法。
本文的主要贡献总结为以下三个方面:
(1) 将双模态题目形式下的电路题目的理解问题抽象为一个从题目中抽取各种关系的过程,同时可用方程形式来等效表示所抽取的关系,即完成了题目理解。
(2) 利用句法语义模型抽取电路题目文本中的关系的同时,提出网孔搜索法来简化电路图的理解,并与卷积神经网络相结合的方法,提取电路图形中的结构和数量关系。
(3) 基于以上分析与处理,对文本与图形中含有的数量关系抽取需要形成一致性题目理解,提出基于双模态融合的题目理解用于电路题目的自动解答。
题目理解是从题目提供的所有资料,包括文字、图形、公式等方面提取出用于解题的信息,理解的结果形成题目的等价表示,而题目理解过程可视为题目的等价转换。
题目文本是解题关系的重要信息源,其特点为句式简单、逻辑清晰、表意明确,一般由i个句子(w1,w2,…,wi)、j个量(q1,q2,…,qj),以及未知数x共同组成。自动解答的目标即为将相关实体映射到带有运算符中的算术表达式E中,求解未知数。
经典语义的题目理解方法[11]是通过使用模板匹配提取题目文本中的知识,优点是信息能够较完整地保存,而且能够通过再解释重现情景,有利于人的理解;另一方面则要求模板充足以适应不同题目背景。对于解答来说,模板数量过多妨碍题目理解。科学类题目文本内容中,句式单一,包含语义部分和句法部分,而其修饰性的辅助背景表述对于解题无关紧要。因此,文中采用句法语义模型(Syntax-semantics model,S2模型)来抽取题目文本中的实体数量关系,并提出精简模板的方法,通过仅保留句法语义部分所需模板,去除修饰性模板,以此形成对电路题目文本的理解。
这里将S2模型定义为三元组形式:
S=(K,P,E)
(1)
式中:K对应电路题目文本中的关键词,P是词性模式,E则是对应的电路实体的数学关系。由此构建一个电路题目的S2模型池。模型池结构如下:
(2)
形成共m个模板的S2模型池,而所需自动解答的电路题目均可据此抽取题目文本中关系,形成电路题目文本的理解。
算法1给出了基于S2模型的电路实体关系抽取算法。
算法1电路题目文本关系抽取算法
输入: 电路题目文本,记为T
输出: 一组表示关系的电路方程,记为E
步骤1: 题目文本预处理,构建包含语义词性序列的文本元数据,记为T(kn,pn);
步骤2: 初始化S2模型池S(km,pm,rm);
步骤3: 使用Sm对题目文本中的关键词k和词性模式p进行匹配,即S(km,pm,rm)∩T(kn,pn);
步骤4: 标记匹配上的T(kn,pn),并分配对应的符号sm、数值vm和电路单位um;
步骤5: 结合步骤4中已分配的信息,将S(km,pm,rm)模型中对应的关系rm实例化为一个电路方程,并存于E中;
步骤6: 返回已获得所有电路实体关系E(rm,sm,vm,um)。
算法输入为自然语言描述下的电路题目文本,首先需要对题目文本进行标准化处理和语言分析,构建相应的题目文本元数据。这里使用自然语言处理工具ICTCLAS[12]对文本进行词性标注,即对文本进行格式化处理形成统一的表达格式,进一步地将其解析为一组含有词性标注的句法语义序列,然后进行句子边缘检测与分割,从而得到题目文本的元数据。接着,使用S2模型中的关键词和词性模式分别与所输入分句中的电路元素词和带磁性标签的词进行匹配,如果匹配成功,则将模型中的数学关系实例化为一个电路方程并输出;否则,跳转到下一个模型进行匹配,直至所有模型被匹配完为止。通过逐句分析,并对题目文本的元数据进行关系抽取形成电路关系组,从而实现对电路题目文本的理解。
电路图形包含着丰富的结构信息,因此电路图形理解是电路题目理解的重要组成部分,是题目文本无法清晰表达电路结构时的有效补充。通过分析图形中的内容及连接方式来直接理解电路图形是棘手且费时的,本文提出一种替代方法来简化这一任务。首先将电路图形转换为一组含有结构信息的图形元数据,包括图形元件、子图形,然后结合图形结构和元数据对电路图形进行分析,并抽取其中的电路关系,以此实现电路图形的理解。
基于以上分析,可将电路图形的理解简化为电路元件与电路图形、结构识别,以及相应关系抽取问题。前者是电路分析问题,后者则是图形关系等价表示问题。电路分析要求获取元器件准确信息,包括器件类型和电路中的位置,为经典的物体检测问题。为了高效准确地完成器件检测,文中采用一种深度卷积神经网络算法(Fast Region-based Convolutional Neural Networks, Faster-RCNN[13])对电路图形进行自动化识别,在完成电路元器件准确分类的同时,得到相应区域信息。然后,通过网孔搜索算法实现电路图形中的关系抽取。
基于深度卷积神经网络的目标检测算法Faster-RCNN由Fast-RCNN和RPN两部分组成。电路图形存在尺寸不同的问题,而Faster-RCNN通过使用空间金字塔池化层SPP满足处理任意大小图片的需要。而位置信息为由RPN生成电子元件对象的建议区域。
2.1.1RPN网络训练
电路图形元器件检测需要得到的是元器件位置,用框体位置及宽高四维向量表示(x*,y*,w*,h*)。电路图形的特征提取由RPN与Fast-RCNN共享卷积层形成。RPN网络前5层与ZF网络相同,在conv5-3的卷积特征图中通过n×n大小的滑动窗口进行滑动卷积,每个滑窗将特征图映射生成一个低维向量(选用ZF网络,则为256维)作为中间特征,建议层在宽w高h的特征图上的每个像素位置采集k个初始区域,得到w×h×k个锚框初始值[14]。之后由该向量产生两个分支全连接层,即区域分类CLS层和区域回归REG层,前者是目标和非目标的概率,后者则是将前面甄选出的所有可能存在目标区域的候选锚框,通过调整锚框的边界得到目标候选区域。然后将所得矩形候选区域送入兴趣区域进行池化,作为Fast-RCNN的输入。
在RPN网络训练时,考虑电路元器件的对称性,以每个像素为中心点生成长宽比为1∶1的3种尺度面积的锚框,对于产生的锚框采用交并评估法(Intersection over-Union,IoU)进行正负样本集的选择。在完成锚框标注后,RPN网络采用梯度下降算法进行反向传播训练,损失函数定义如下:
L({pi},{ti})=
(3)
(4)
式中:x、y、h和w分别代表预测框的中心点位置、宽和高;xa、ya、ha和wa分别代表锚框的中心坐标、宽和高。
2.1.2Fast-RCNN网络训练
Fast-RCNN是在得到候选框基础上,对框体的位置及框内物体类别进行细致计算。这里使用可视化卷积网络架构ZF网络生成Fast-RCNN特征图,其中,ZF网络选用ReLu(Rectified Linear Units)[15]作为激活函数,将其应用于所有的卷积层和全连接层进行训练。在第5层卷积网络中特征图维数最大为256×256,这里将该特征图中的所有特征串连成一个4 096维向量,并增加一个4 096维的特征层FC6形成FC7特征层,使得FC7层具有计算候选区域检测的概率和标识其目标位置的功能。最后通过使用反向传播算法对检测网络精细化调整参数,直到候选区域满足限定条件为止。
2.1.3联合寻优
为了优化检测元器件并得到其位置信息目标,这里采用联合RPN和Fast-RCNN完成,过程如下:首先使用ImageNet模型对RPN网络进行初始化,固定两者共有的卷积层,再对RPN网络中的独有层细致地调整参数,使其满足两个网络共享卷积层的效果。接着,在保持共享卷积层不变前提下,通过使用Fast-RCNN对上述共享卷积层的检测结果进行区域回归,可得到每一个区域的边界框和置信度,从而实现对检测网络的微调。由此便将RPN与Fast-RCNN完成合并,形成一个统一的共享卷积特征网络。最后通过交替优化参数,使得该网络在提高电路元器件检测效率的同时,获取准确的目标位置信息。
在获得电路图形中电路元器件类型及其位置信息后,仍需要在此基础上抽取电路图像中的关系才能完在电路图形识别,因此,提出网孔搜索算法用于获取电路图形中的关系。
电路图形中除了结构信息外,主要描述的数量关系方程可归为以下三种:电压与电流关系(VCR)方程、基尔霍夫电流定律(KCL)方程和基尔霍夫电压定律(KVL)方程[16],可根据此三类用电路方程将实体数量关系关联起来。
下面通过实例说明电路图形理解过程。图1给出代表性电路图形,不失一般性,以此为例分析,电路图形的基本回路由元器件、节点和连接线以及隐藏其中的电流和电压组成,这里将其定义为一个电路网孔。一个电路网孔有与其对应的VCR方程、KCL 方程和KVL方程,形成渐进式的基本回路图形理解。
最后电路图形理解结果记为得到正确的KVL方程关系式。如图2所示,这里根据识别的节点与连接线,搜索电路回路以抽取电路图形中的KVL方程关系。电路回路的搜索包含两个步骤:利用深度优先算法遍历电路图形中所有回路,并根据KVL将搜索到的回路实例化为电路方程组,如图2所示;接着对KVL方程组的系数矩阵进行初等变换形成初等矩阵,并将初等矩阵恢复成线性无关的KVL方程组。基于网孔搜索的图形关系抽取算法如算法2所示。
图2 网孔分析电路图
算法2基于网孔搜索的图形关系抽取算法
输入:一个电路图形,记为D
输出:一组表示关系的电路方程组,记为F
1: 将电路图形识别得到的元器件、节点和连接线集合,记为D=(Γ,Φ,Ψ);
2: 初始化元器件集合Γ={τi|i=1,2,…,m}、节点集合Φ={φj|j=1,2,…,n},将电源处节点初始化为φ1、连接线集合Ψ={ψk|k=1,2,…,o},存放回路的集合θ(l)设为θ(1);
3: fori=1 tomdo
4: 根据欧姆定律列写VCR方程,并存于集合F中;
5: end for
6: forj=1 tondo
7: 根据KCL列写节点电流方程,并存于集合F′;
8: fork=1 toodo
9: 使用深度优先算法搜索从φj出发并回到φj的节点列表;
10: 将搜索到的节点列表存于θ(l)中;
11:l←l+1;
12: end for
13: 从Ψ中删除连接线ψk;
14: end for
15: 对F′中方程组的系数矩阵进行初等变换形成初等矩阵,然后将初等矩阵恢复成线性无关的KCL方程组,并存于F中;
16: 根据KVL将θ(l)中的回路实例化为KVL方程组F″,再对F″中方程组的系数矩阵进行初等变换形成初等矩阵;
17: 将初等矩阵恢复成线性无关的KVL方程组,并存于F中。
前文中通过设定的解题框架分别实现了题目文本与图形的理解。进一步地,将电路题目文本的理解与图形理解的结果相结合,形成电路题目的一致性理解结果,即将其转化为等价方程组,代入已知条件,实现问题求解。
为了验证本文方法的有效性,设计三类对比实验,分别从题目文本理解准确性、电路图形理解准确性和融合文本和图形理解的电路题目自动解答实现进行验证。分别验证基于Faster-RCNN和网孔搜索算法抽取图形关系的准确率以及的方法求解电路题目的准确率。
目前尚没有电路题目自动解答相关公开数据集,这里从人民教育出版社出版的初中物理课本中收集全部45道电路题目作为实验的标准数据集,其相应的信息如表1所示。针对电路图形的检测实验,本文从历年中考题目和权威教育类网站上收集1 054幅电路图形作为训练样本,其中包含8类共9 000多个元器件、节点和连线等电路元件。
表1 电路题目数据集的信息统计
题目文本理解准确性主要体现在S2模型抽取题目文本关系的准确率。为验证S2模型抽取题目文本中关系的准确率,按照不同程度的关系抽取分别进行定义理解结果,包括关系完全抽取、关系的部分抽取和关系无抽取。当关系方程中的表达式、符号、数值、单位均抽取无误,则称为关系的完全抽取;当关系方程中的符号和单位部分抽取有误,则称为部分抽取;如果方程中的表达式抽取错误,则称为关系无抽取。选取文献[12]中提出的方法作为基线方法,与本文的关系是均为通过使用语义模板将题目文本转化为数学关系。
由表2可知,本文方法在抽取文本关系时,在完全抽取和部分抽取的准确率分别达到97.22%和2.78%,略高于基线方法的90.74%和9.26%的准确率,两种方法均实现了文本关系的抽取,因此没有抽取关系的准确率为0。然而,相较于基线方法,本文方法使用的模板数量要远小于基线的模板数,原因是基线方法使用语义模板匹配来抽取文本中的关系,而本文方法是使用句法模式代替大量的语义描述。M表示模板数量,N表示关系抽取的数量,P表示关系抽取准确率。
表2 基线方法和本文方法在文本关系抽取的结果
图形理解首先需要验证电路图形的识别,包括电路元件识别准确率和关系抽取准确率。电路图形识别实验环境采用Ubuntu 16.04操作系统,在Caffe框架上运行。基于Faster-RCNN的电路图形识别和区域定位示例如图3所示。
图3 基于Faster-RCNN电路图形识别示例
基于Faster-RCNN的电路图元件识别准确率如表3所示。由表可知,电路元件中识别的平均准确率达到了93.81%,其中灯泡的识别准确率最高,达到97.97%。由于一些元件的训练样本不足,导致训练时特征提取不足,识别时产生区域漏检或错检等问题限制了Faster-RCNN的识别精度,但目前的结果基本满足电路图形识别的要求。
表3 基于Faster-RCNN的电路图形识别结果
如表4所示,VCR关系、KCL关系和KVL关系的抽取正确率分别是90.91%、81.82%和91.30%,这表明网孔搜索算法可以有效地抽取电路图形中的关系;召回率分别为88.24%、81.82%和80.77%,这说明网孔搜索算法可以抽取更多的电路图形中的关系;F1-score分别为89.55%、81.82%和85.71%,这说明网孔搜索算法具有较高的电路关系抽取性能。
表4 基于网孔搜索算法的图形关系抽取结果 %
电路题目的自动解答实验通过正确解答题目的数量来评估自动解答有效性。运用本文提出的方法分别对文本题目、图文结合电路题目进行自动解答,相应的实验结果统计见表5。第一类仅含文本的题目,通过S2模型实现题目理解后求解,29道题目中有26道题目正确解答,达到89.66%的解答准确率;第二类为文本与图形结合的电路题目,通过使用本文提出的方法实现87.50%的解答准确率;最终有40道电路题目被正确解答,解答正确率达到了88.89%。实验结果表明,本文提出的融合文本和图形理解的电路题目自动解答方法是有效的。
表5 融合文本和图形理解的电路题目自动解答实验结果
从以上实验结果分析可知,本文提出的针对图文结合的电路题目理解及解答方法能够基本完成题目解答。验证了所提方法的有效性。
分析错误理解及解答的原因,主要有以下几个方面:① 现有的句法语义模板未能完全覆盖所有的题目文本出现的数量关系,可通过改进句法语义模板池改进;② 题目中符号表达形式多样,未能准确匹配,改进方法是提高符号识别范围,将一些非标准符号表达考虑进来;③ 电路元器件分类错误,引起题目的错误理解,下一步需要将图文结合互相印证,改进单一识别引起的低级错误。
选择自动解答中极具代表性的物理电路题目作为研究对象,在分析其双模态题目形式时,提出对文本与图形中含有的数量关系抽取形成一致性题目理解这一解题思想。针对图形理解,本文提出利用Faster-RCNN算法识别电路元器件的类型及位置,并创新地提出了网孔搜索算法,提取电路图像中存在的数学关系,实现电路图形理解。最后将二者相结合自动解答电路题目,并通过实验验证了本文所提方法的有效性。