论文引用格式:Yang C, Du J, Xue M B and Zhang J S. 2023. An encoder-decoder based generation model for online handwritten mathematical expressions. Journal of Image and Graphics, 28(08):2356-2369(引用格式:杨晨, 杜俊, 薛莫白, 张建树. 2023. 用于在线手写公式合成的编解码网络. 中国图象图形学报, 28(08):2356-2369)[0 引 言随着各行各业对数字化和智能化的需求日益旺盛,有关文本识别的各种应用场景不断涌现,包括但不限于办公领域的表格和文档识别、金融领域的卡证和票据识别、电商领域的商品和广告内容识别以及教育领域的拍题和手绘识别等。如何从纸质文档、照片或其他输入来源中接受并识别出文本内容已经成为一个非常重要且有价值的问题。20世纪90年代,Lecun等人(1998)设计了卷积神经网络识别简单的手写数字,这项技术成功应用于邮编和支票的数字读取中,大幅提高了信息的读取效率。近年来,智慧教育成为教育改革的重要基石之一,受到了广泛的关注,手写数学公式识别作为不可或缺的一项基础技术更是值得研究。如今,手机、平板等便携式设备已经成为工作学习中不可或缺的一部分,有很多手写输入及进行在线识别的应用场景。这种在线场景下,公式以轨迹点序列的形式输入,需要在手写设备上进行实时收集才能进一步进行标注。因此在线数据收集成本相对于离线数据是更高的,基于一些商业化应用才有可能收集到大量的在线公式数据,因此,数学公式的合成与增广是数学公式识别的重要组成之一。基于编码—解码模型的公式识别方法相比于传统方法显著提升了公式识别的性能,但仍有很大的改进空间。不同于直接改进编码—解码模型的网络结构进而提升模型性能,本文旨在从数据增广方面对在线手写公式识别模型的泛化性能进行提升。目前,针对公式场景的在线数据增广方法依赖于精心设计的变换函数和启发式规则,导致增广过程不够灵活且受到原有数据集的限制。本文尝试基于神经网络模型,完成从公式二维结构文本生成在线轨迹点序列的目标,现有从文本生成在线轨迹点的研究主要集中在一维文本的生成。在文本轨迹合成领域,很多工作已经提出有效的理论与方案。Graves(2013)首次构建了一个从英文文本行生成在线轨迹点的模型,成功解决了轨迹点中的连续值的预测和注意力对齐问题。但英文文本作为一维文本,生成难度要低于公式这种二维文本。Zhang等人(2018)将Graves(2014)方法应用于汉字的生成,但由于汉字种类繁多,笔画连接复杂,生成难度大幅提高,且该方法只限于生成单个汉字并未尝试扩展到文本行。同时,在生成汉字时也没有考虑到对手写人风格进行显式的刻画。Tang等人(2019)提出了能进行不同风格生成的汉字轨迹点方法,但每种风格都需要单独训练一个模型,资源消耗大。现有的公式场景下在线数据增广方法通常在符号层级上进行变化,通过对在线轨迹点的坐标值应用各类函数映射,造成笔画形状的改变,如图1所示。该类方法利用解析树和LaTeX语法规则,可以在子公式层级上对公式进行拆分,但其所能生成的样本受到原始数据集限制,同时人工设计规则也较为复杂。考虑到基于神经网络对公式进行增广的方法还未被广泛研究,基于此,本文提出了一个可以从任意给定文本生成在线轨迹点序列的生成模型,无需额外的大量先验知识设计规则算法或特征工程。在编码器端从生成的角度设计了结合上下文语义的文本特征提取模块,在解码器端引入位置感知的注意力机制来帮助进行二维文本的识别。此外,本文方法通过在模型中融入不同手写人风格特征,实现生成多种手写人风格的样本。最后,在真实场景的在线数据集中,本文通过实验验证了生成模型所合成的增广数据对识别模型性能有显著提升。10.11834/jig.220894送排稿.F001图1基于在线数据增广方法的公式识别系统流程Fig.1The flow of online mathematical expression recognition system based on online data augmentation method本文主要贡献如下:1)提出一种端到端的在线数据生成模型,可直接将文本转化为轨迹点,并且根据二维结构文本的特点设计了更合适的编码器网络;2)在解码器中融入手写人风格信息,在端到端生成轨迹点序列的同时能刻画出不同的手写人风格;3)基于真实的在线数据集验证了生成模型所提供的增广数据对在线识别模型的帮助。1 相关工作1.1 基于编码—解码器模型的公式识别受端到端学习在语音识别、机器翻译和图像字幕生成等诸多应用中取得成功的启发(Cho等,2014),基于编码—解码模型的方法广泛应用于在线手写公式识别。对于一个给定公式的一段轨迹点序列,编解码模型可以直接以端到端方式生成目标公式文本。这种方式相对于传统方法具有以下几点优势:1)注意力机制可以对符号进行隐式的切分,从而解决数学符号切分困难的问题; 2)端到端全局优化,简化了复杂的前处理和后处理步骤,同时降低了多步骤累积错误的概率; 3)编码—解码模型在数据驱动下可以隐式获得语言模型知识,提升识别的鲁棒性。根据不同的目标序列形式,可以将基于编码—解码模型的手写公式识别方法根据解码器分为序列解码和树形解码两类。前者的模型输出是LaTeX文本序列,而后者可以输出一串子树结构的序列。每类方法中同样也都可以按照输入为离线图像还是在线轨迹点进行进一步的细分。下面按照应用场景和解码器类型分别介绍相关的研究工作。在基于序列解码器的离线公式识别模型中,Deng等人(2017)提出了一个名为WYGIWYS(what you get is what you see)的模型,该模型引入了一个粗粒度注意力和细粒度注意力相结合的模块用于数学公式的识别,证明了该序列解码器可以应用于其他二维标记语言。Truong等人(2020)用一个辅助的符号分类器来改进编码—解码模型中对高层特征进行定位和分类的性能。针对基于序列解码器的在线数学公式识别,Zhang等人(2020)根据轨迹点的时序特性,提出了结合空间对齐和时间对齐的混合注意力机制,同时使用符号的精准切分信息在训练阶段对注意力的学习进行指导,大幅提升了在线公式识别的性能。Hong等人(2019)则根据多层循环神经网络的编码器训练不容易收敛的问题,增加了残差连接,并在解码器端采用状态转移矩阵的方式来完成公式语法规则的学习。Zhang等人(2021)基于数学公式是一种典型的树状结构语言的思想,基于树结构长短期记忆网络(tree-based long short term memory,Tree-LSTM)结构改进了公式识别模型中的编码器网络,但解码器部分仍是进行序列形式的输出。Bian等人(2022)提出了一种基于注意聚合的双向互学习网络,该网络包含两个译码器,并且在每个训练步骤中进行一对一的知识转移,充分利用来自两个反向的互补信息。不同于基于序列解码器的公式识别研究,基于树形解码器的公式识别研究在近年才提出并得到应用。Zhang等人(2021)首次提出了一个能真正输出树形结构的识别模型(DenseNet WAP with tree decoder, DenseWAP-TD),其在每个解码步骤中可以生成完整的子树结构。树形解码器总体上分为3个模块,分别是节点预测模块、关系预测模块和记忆模块。节点预测模块完成对父节点和孩子节点的预测,关系预测模块利用父节点和孩子节点对应的特征进行字符间空间结构的预测,设计的记忆模块消除解码过程中存在的歧义情况。此外,Zhang等人(2021)提出了能适应在线数学公式识别的顺序关系解码器,其输出序列也是子树结构形式。而Wu等人(2021)将在线手写公式识别问题描述为一个图到图的学习问题,在编码器端和解码器端都采用了结构化的图网络进行特征学习,可以显式地分割数学符号并分析其复杂的层次结构。Yuan等人(2022)将语法约束和特征学习结合到统一的框架中,自然地将语法树划分成不同的组件,有效地减少树结构的歧义。1.2 基于数据增广的公式识别数学公式作为一类较为特殊的文本,收集难度和标注难度相较于英文或汉字文本都更高一些。以应用最为广泛的学术数据集CRHOME(competition on recognition of online handwritten expression)为例,其训练集只有8 000多条数据。2020年新公开的OffRaSHME(competition on offline recognition and spotting of handwritten mathematical expressions)的训练集也不到20 000幅图像。而数据驱动的编码—解码模型往往需要依赖充足的训练数据才能更充分地发挥网络的真正性能。数据增广作为人工智能领域中缓解数据稀疏困境的通用解决途径之一,在公式识别领域也受到越来越多的关注。在在线公式识别场景中,Le和Nakagawa(2017)通过改变轨迹点的坐标值来增广出新的公式数据,帮助在线识别模型提升性能。首先,Le和Nakagawa(2017)提出通过局部和全局的形变对单个符号或整个公式进行改变的方法。然后,在2019年提出利用拆分的方式从原始数学公式生成不同结构复杂度的子公式。在拆分过程中,Le等人(2019)设计了基于符号关系树的启发式规则,保证了子公式的合理性。后续又从符号关系树没有考虑到语义信息的角度出发,尝试以句法解析树的形式来表示公式的句法结构(Truong 等,2020),并在此基础上进行更彻底的子公式提取。上述这些方法最终生成的都是轨迹点序列,但也可以将输出的在线轨迹点转成离线图像,用于离线识别模型的训练。2 基于编解码模型的在线数据生成首先介绍针对在线轨迹点序列的预处理方式,而后介绍提出的生成模型的详细网络结构,最后对基于位置的注意力模型进行描述。模型的整体结构如图2所示。10.11834/jig.220894送排稿.F002图2基于编码—解码模型的在线数据生成模型Fig.2Encoder-decoder based generation model for online mathematical expression2.1 数据预处理对于一个手写轨迹点样本,可以用序列进行表示,具体为{[x1, y1, s1],[x2, y2, s2],⋯,[xN, yN, sN]} (1)式中,xi和yi分别是第i个轨迹点对应的横坐标点和纵坐标点,N表示该条手写样本的总轨迹点数。在手写过程中,会天然地记录每个抬笔与落笔的时刻。si表示书写状态,是一个非0即1的指示参数,当其为0时,表示第i个轨迹点是连续书写的状态,与下一轨迹点连通;当其为1时,表示第i个轨迹点是提笔的状态,与下一轨迹点不连通。最后一个落笔时刻sN同时也标识整个在线序列的结束时刻。在实际应用中,因为不同手写者的手写风格和手写速度不同,会出现采样差异过大的情况,同一个符号在不同书写人笔下得到的采样数量会相差多倍。对于生成任务而言,这种不一致性会增大模型学习的难度。因此,本节首先采用Zhang 等人(2018)工作中的预处理策略对原始轨迹点序列进行规整,以去除冗余点。此外,利用采集设备进行数据采集时,采集设备的不同和书写者书写起始点不同,导致相同符号对应的轨迹点坐标数值差别较大,不利于生成模型进行拟合。为此,采用相对偏移量的形式来表示生成模型的目标轨迹点序列(丁杰 等,2009),具体为{[Δx1, Δy1, Δs1],⋯,[ΔxM, ΔyM, ΔsM]}Δxi=Δxi+1-ΔxiΔyi=Δyi+1-Δyi (2)式中,M为规整后的总轨迹点数量(丁杰 等,2009)。为了描述和表达的便捷,本文使用D={d1,d2,⋯,dM}表示规整后的目标轨迹点序列,其中di对应一组[Δxi,Δyi,Δsi]轨迹特征。2.2 结合树形表示的编码器在生成任务中,编码器的表征能力和区分能力直接影响模型生成的效果,对于公式这种拥有二维结构的文本,应当根据其特点进行充分挖掘,使模型利用更多的有效信息。作为识别任务的逆向任务,生成任务中解码器所要预测的轨迹点均对应于实际的符号,而不会包含虚体符号。所以轨迹点的预测完全不需要虚体符号的信息,故而选择LaTeX序列形式表示作为输入文本是不合适的。此外,对于二维文本结构而言,每个新符号的生成起始点位置会随着符号间空间关系的变化而变化。因此,为了适应公式文本的特点,输入文本形式应该能提供两类信息,一类是字符的符号类别(运算符、数字变量等),用于指示模型明确生成对象;另一类是字符之间的空间位置关系,用于指示模型预测下一字符于当前字符的相对位置。从上述分析可知,基于树形表示的公式文本更适合于生成模型的编码器端。以C++标准库STL(standard template library)中的树形表示对一个公式的内容进行表示时得到的序列为{[y1c, y1p, y1re],⋯,[yTc, yTp, yTre]} (3)式中,yic(child),yip(parent),yire(relationship)分别代表孩子节点、父节点和空间关系所属的类别,T为输入序列的长度。常规情况下,将LaTeX文本转为STL序列时,最后一个孩子节点是结束符“〈/s〉”。该符号用于识别任务中指示模型停止解码的时机,而在生成任务中序列为已知条件,因此不再需要该符号标识序列的结束,在当前任务中最后一个节点将被删除。为了使模型有效利用离散文本信息,编码器端利用一个可学习矩阵,将one-hot形式的字符类别编码转换为高维词嵌入向量,其维度与网络相匹配,具体为wic=Ecyicwip=Epyipwip=Ereyire (4)式中,Ec,Ep,Ere均为词嵌入矩阵。除此之外,由于手写人风格的差异,在学习从文本到轨迹序列映射时,会出现一对多的问题,即输入是相同的文本而对应的轨迹点序列却不同。因此,需要将手写人序号编码为高维特征作为风格表征用于区分不同书写人wist=Estyist,并将其与文本的多维度词向量一起进行拼接。在输入序列中耦合手写人信息可以解决这种一对多问题。由此得到经过初步编码后的文本特征序列为Q={[w1c;w1p;w1re;w1st],⋯,[wTc;wTp;wTre;wTst]} (5)对于给定的文本特征序列Q,采用双向长短记忆网络(bi-directional long short term memory, Bi-LSTM)对文本的语义特征进行建模。Bi-LSTM会按照顺序与逆序对输入序列进行两次建模,从而可以充分利用到过去和未来的信息,获得更为完整的上下文语义信息。具体为ft=[f tf;f tb]f tf=LSTM(qt,f t-1f)f tb=LSTM(qt,f t+1b) (6)式中, ftf和ftb分别为前向LSTM网络和后向LSTM网络在t时刻的隐状态。最终得到的编码器端输出特征序列为F={f1, f2,⋯, fT} (7)2.3 结合手写人风格的解码器从图2可以看到,解码器使用了3层单向的LSTM网络进行书写轨迹点的预测。第1层循环神经网络通过注意力模型与编码器输出特征进行交互,完成输入序列和输出序列间的对齐。后两层堆叠的循环神经网络进一步完成对轨迹点间时序信息的建模,并最终得到手写轨迹点序列的预测信息。另外,为了融入手写人风格信息,在每个时间步上手写人风格向量被送入网络中用于风格的学习。具体的计算过程为ht1=LSTM(ht-11, ft, wst)ct=fat(ht-11, ft)htn=LSTM(ht-1n, htn-1, ct, wst) (8)式中,htn表示第n层LSTM当前时刻t的隐状态,ct表示LSTM网络t时刻的细胞状态, fat表示注意力模型的函数表示,该模块将在2.4节详细介绍。此外,第1层LSTM中h01的初始状态由编码器输出特征F通过初始化矩阵Winit映射得到。具体为h01=1T∑i=1TfiWinit (9)在得到最终输出状态hN后,需要对轨迹点序列D进行预测。由于对轨迹点偏移量的预测是一个连续值预测问题,无法直接参照识别任务将输出状态映射到某一类别分布上。为此,网络中使用了由M个高斯分布构成的混合高斯模型(Gaussian mixture model,GMM)对Δx和Δy进行联合建模(Reynolds,2009),该模型理论上可以拟合任意的条件概率分布。此外,本文采用一个伯努利分布对笔画状态s进行建模,判断书写状态处于连笔还是提笔。对于(Δx,Δy)的概率密度函数为p(Δx, Δy)=∑j=1MπjΝ(Δx, Δyθj)θj={μx, j, μy, j, σx, j, σy, j, ρj} (10)式中,Ν(⋅ ⋅)是二元高斯分布,共使用M个分布组建成混合高斯模型。每个分布的参数集θ包含5个参数,其中μ为均值、 σ为标准差、 ρ为两个变量之间的相关系数。πj对应第j个分布的混合权重系数,且系数满足∑j=1Mπj-1。为了得到上述混合高斯分布中各项参数的预测,引入混合密度网络(Bishop,1994),该网络能够使用神经网络的输出向量来参数化混合高斯分布。具体来说,对最后一层htN进行线性变换后得到的输出向量ot,对应混合高斯模型中需要估计的各项参数值,具体为ot=Wg×htN+bg= ({π^j, μ^x, j, μ^y, j, σ^x, j, σ^y, j, ρ^j}jM, s^t) (11)式中,ot∈R6M+1,Wg与bg为GMM模块可学习参数。6M对应混合高斯模型中所有需要估计的参数数量,最后一个参数通过sigmoid函数激活,得到对笔画状态的预测s^t。此外,为了保证标准差的非负性和相关系数的值处于-1和1之间,会分别使用exp指数函数和tanh非线性函数对输出层的预测值进行处理,具体为σx=exp(σ^x)σy=exp(σ^y)ρ=tanh(ρ^) (12)经过以上步骤,利用输出结果o重新构建书写序列,模型已经可以完成每一时刻对轨迹点d^t的预测。最终,模型的损失函数由轨迹点坐标偏移量对应的损失和笔画状态对应的损失两部分组成。具体为Lgen=-∑tNlogp(Δxt, Δytπ^t,θ^t)+stlogs^t (13)2.4 基于位置的注意力模型在线公式生成需要从给定的任意文本序列中得到对应的轨迹点序列,这要求解码器在每个解码时刻能够动态地关注到当前需要生成的输入字符。因此,为了实现这种对齐,注意力机制的引入是必不可少的。在公式识别任务中,每个解码时刻都用解码器的隐状态和全局的编码器输出特征计算得分,并对得分进行softmax函数归一化,得到权重系数相加为1的概率分布。在生成任务中,由于输出轨迹点序列的长度和输入文本序列的长度之间可能有几倍到几十倍的差异,每次都使用解码器隐状态对编码器的全局特征进行计算很可能会因一次性所需要关注的范围过大导致得分计算的不准确。因此,引入了基于位置的注意力模型(Graves,2014),该模型在输入序列的不同位置设置一个窗口范围,在窗口内单独进行注意力的计算,借此获得每个输入序列位置在当前解码时刻被关注到的程度,而不是在全局内进行比较。在计算注意力得分时,结合核函数和一维离散卷积进行,其中核函数采用高斯函数。为了加强得分计算的准确性,使用多个高斯函数进行混合。其计算过程为wi, t=∑k=1Kαt, kexp-βt, k(κt, k-i)2{α^t, k, β^t, k,κ^t, k}kK=Wpht1+bpαt, k=expα^t, kβt, k=expβ^t, kκt, k=κt-1, k+expκ^t, k (14)式中, wi, t表示位置为i的字符在第t个时间步时受关注的权重, K是使用的窗口个数, αt, k为t时刻第k个窗口的权重系数, βt, k用于控制窗口的宽度, κt, k是窗口相对于上一时刻字符位置的偏移量,即高斯函数的数量。Wp和bp是混合密度网络中的可学习参数,维度为3K。将每个字符位置的置信度与对应的字符特征进行加权求和得到上下文特征向量ct,即ct=∑i=1Lwi, tfi (15)最后,模型会根据wi,t判断整个解码过程是否结束。由于本节的注意力模型是基于位置感知的,当模型对最后一个位置的置信度比其他所有位置中最高的置信度还要高时,就意味着在下一时刻模型应当停止生成。3 在线公式识别模型本文提出了一个基于Transformer解码器的在线公式识别模型,用于验证上述在线数据增广方法的有效性。由于Transfomer网络在设计时不像卷积神经网络或循环神经网络有明显的归纳偏置,因此在缺乏足够训练数据时其泛化能力是不佳的。而当数据量充足时,Transformer网络较强的表征能力和对长距离信息进行建模的优势能被体现出来。本文识别模型的结构如图3所示。10.11834/jig.220894送排稿.F003图3基于Transformer解码器的在线公式识别模型结构图Fig.3The framework of online mathematical expression recognition model based on transformer decoder3.1 模型细节在在线生成模型中,使用[Δxi,Δyi,Δsi]来表示一个在线公式样本中的轨迹点。但在识别任务中,为了充分利用轨迹点的内部信息,使用8维特征向量,具体为[xi, yi, Δxi, Δyi, Δ'xi, Δ'yi, δ-(si), δ+(si)]Δ'xi=xi+2-xiΔ'yi=yi+2-yi (16)式中, δ-(si)表示判断si与si-1是否相等,当相等时值为1,反之为0; δ+(si)用于判断si与si+1是否相等。最后两维为 [1, 0] 时表示落笔时刻,为 [0, 1] 时则表示抬笔时刻。基于上述定义,编码器的输入序列表示为X={x1,⋯,xN},其中xi是一个8维的特征向量。3.1.1 编码器为了提取轨迹点序列的高层特征,本节在编码端采用了卷积神经网络叠加循环神经网络网络叠加循环神经网络的结构,如图4所示。卷积神经网络可以学习和聚合邻域的局部信息,在对轨迹点序列进行特征提取的同时达到降采样的目的。而后,模型使用两层的双向门控循环神经网络进行进一步的特征提取,从而建模出轨迹点序列中的时序信息。特征经过循环神经网络的建模,已经隐式编码了时序信息,因此不需要再额外添加位置编码特征。10.11834/jig.220894送排稿.F004图4在线编码器的结构图Fig.4The encoder of online mathematical expression recognition model3.1.2 解码器根据编码器提供的特征A,解码器端将输出得到y1s, y2s,⋯, yTs,其中,T是LaTeX序列的长度。解码器采用Transformer Decoder结构(Zhao等,2021),该网络由N层结构相同的模块进行堆叠而成,其优点在于可以组合来自不同表征子空间的信息,从而学习到更多样的依赖关系。每个模块包含多头注意力(multi-head attention,MA)与前馈网络层(feed-forward layer,FFN)。MA算法步骤如下:1)将输入特征从维度上进行切分,得到多组查询特征q和键值K; 2)每组特征独立地进行缩放点积注意力Attn计算,得到多组注意力结果; 3)对每组的输出进行拼接,经过另一个线性变换最终得到多个头拼接后的结果。Attn与MA算法的数学形式化描述为Attn(q^, K^, V^)=softmaxq^K^TdV^hi=Attn(qWiQ, KWiK, VWiV)MA(q, K, V)=[h1, h2, ⋯, hH]WO (17)式中,d是特征向量的维度,对点积结果进行缩放,可促进模型收敛;“[]”表示在特征维度上进行拼接操作;i表示共H个头中的第i个头,WQ, WK, WV, WO均为可学习参数。解码器自注意力模块对目标序列的内部特征进行交互学习,因此它所有的键、值和查询特征都来自前一层的输出,这也是将其称为自注意力的原因。第n层中第t个符号位置的交互结果stn定义为st0=MA(A, Ctn-1, Ctn-1)st0=MA(ctn-1, Ctn-1, Ctn-1) (18)式中, ctn表示第n层、第t个符号的高维表征,Ctn表示ctn中第t个符号之前的所有特征序列。按照自回归的特性,模型基于输入图像和先前生成的符号预测下一个符号,所以需要在自注意力计算时对每个时间步的注意力作用区域进行限制。FFN对前面所得到的特征应用两个线性变换和一个非线性激活函数,完成对交互结果进行筛选和过滤的作用。具体为cn=max(snW1n+b1n, 0)W2n+b2n (19)最终,解码器最后一层的输出特征cN经过归一化得到最后的符号类别概率预测。即p(yt)=softmaxWoutctN (20)识别模型的损失定义为Locr=-∑t=1Tytlogp(yt) (21)3.2 算法过程本节介绍基于在线数据增广的公式识别训练过程。首先利用给定的原始训练集对在线数据生成模型进行训练,然后将需要进行增广的公式文本送入训练好的生成模型中得到对应的轨迹点数据,最后在线识别模型利用增广后的训练数据进行参数更新。具体流程如下:1)训练生成模型。2)从原始训练图像Xori与目标文本Yori中获取批次大小的训练数据。3)根据式(13)对该批次计算损失Lgen。4)优化器计算梯度并更新生成模型参数。5)若生成器未收敛,则跳转至步骤2)。6)利用训练好的生成模型对需要进行数据增广的文本Yaug合成轨迹点数据Xaug。7)训练识别模型。8)从原始、增广训练图像Xaug⋃Xori与目标文本Yaug⋃Yori中获取批次大小的训练数据。9)根据式(21)对该批次计算损失Locr。10)优化器计算梯度并更新识别模型参数。11)若识别器未收敛,则跳转至步骤8)。12)结束。4 实验配置本节首先介绍在线数据生成模型和在线识别模型在训练和测试时的相关实验配置,然后对生成模型的效果通过可视化的方式进行展示和分析,最后通过实验证明了利用生成模型产生的增广数据有助于识别模型性能的提升。4.1 数据集本文同时采用公开数据集CRHOME 2016与私有数据集进行实验,旨在验证本文方法在学术数据集与真实工业场景中均有良好效果。所使用的私有数据集采集自某平板设备中获取的真实用户手写数据,应用场景主要是手写输入的初高中数学填空题答案。数据集包含30个不同手写人,共约205 000个在线公式样本。经过随机打乱后,数据集被划分为训练集、验证集和测试集,分别约190 000个,5 000个和10 000个在线手写公式。其中训练集包含96个数学符号类别和10种空间关系。空间关系分别为开始(start)、右方(right)、上方(above)、下方(below)、上标(sup)、下标(sub)、换行(nextline)、内部(inside)、右开(rstart)和结束(end)。新增加的“换行(nextline)”和“右开(rstart)”是为了定义方程组和行列式等多行公式的情形(杨巨峰 等,2010)。此外,私有数据集中还包含有同样来自初高中数学填空题场景的约10万条LaTeX文本,这将作为后续进行数据增广的候选文本。4.2 实验相关设置4.2.1 在线生成模型参数本文中孩子节点词向量、父节点词向量和空间关系词向量的嵌入维度分别为128、128和64;手写人风格向量的维度大小为64;卷积块共包含3层一维卷积,每层的卷积核大小为5,步长为1;Bi-LSTM的前向和后向单元个数均为128;解码器采用3层单向的LSTM,每层有400个节点;输入轨迹点向量特征维度为3;基于位置的注意力模型中使用的窗口个数为10。4.2.2 在线识别模型参数1)编码器参数。卷积神经网络共包含20层卷积,详细结构如图4所示。在线编码器中有5个密集卷积块,每个密集卷积块由3个1×3的1维卷积组成,卷积的输出通道数设置为24。相邻的密集块之间有一个输入和输出通道数相同的1×1卷积。第3个和第5个密集卷积块的输出会经过两层1×2的平均池化层。此外,在将轨迹点序列输入第1个密集卷积层之前,还会经过一个1×3的卷积层。2)解码器参数。循环神经网络的每层门控循环神经网络的单元维度设置为256;Transformer解码器在本文中使用了4层进行堆叠;词向量维度设置为256;每层的注意力维度为256;前馈层的维度大小为1 024;注意力层使用了8头注意力模型。4.3 训练和推理细节4.3.1 在线生成模型训练过程采用Adam优化器(Kingma和Ba,2017),初始学习率设置为0.001,每迭代40轮数据,学习率会以0.5的倍率衰减,进行两次衰减后学习率将保持不变。在推理阶段,为了提高生成样本的稳定性,本文选择每个解码时间步上混合权重最大的高斯模型对应的均值作为偏移量的预测值。4.3.2 在线识别模型识别模型在训练过程中采用AdaDelta算法(Zeiler,2012)进行优化,优化器中的学习率初始值设为1,衰变常数ρ设为0.95,数值稳定常数ε为10-8。在训练阶段,本文使用验证集的词错误率作为指标,判断学习率是否需要衰减。当该指标在一定轮次内没有出现更优的结果时,学习率会以0.1的倍率衰减,学习率衰减3次后会自动停止训练。推理阶段也使用束分支大小为3的束搜索策略进行解码。5 结果与分析5.1 生成效果分析实验时,对模型的生成结果可视化,进而分析模型的性能,图5和图6分别展示了不同难度文本与不同书写风格的合成数据。10.11834/jig.220894送排稿.F005图5同一手写人风格下的生成效果展示Fig.5The generation results of the single handwriting style((a) simple sequence; (b) complex fraction;(c) multi-line expression; (d) long text)10.11834/jig.220894送排稿.F006图6不同手写人风格下的生成效果展示Fig.6The generation results of different writing styles((a) the 2nd writer; (b) the 8th writer; (c) the 10th writer)图5展示了同一个手写人风格下多种输入文本类型所对应的生成样例。图5(a)的简单文本均不包含嵌套结构,其展示了模型对基本字符的生成效果和文本行整体的连续性。简单样例中既包含在训练集出现频率较高的数字和字母,也包含出现频率较低的希腊字母和特殊符号。图5(b)的嵌套文本是带有分式、根式和上标等嵌套结构的公式。图5(c)的多行文本展示的是方程组和行列式这两种公式类型文本的生成效果,以此体现模型对复杂的多行公式文本的生成能力。图5(d)的长文本展示了模型的稳定性,在面对长序列输入时模型的输出不会崩溃。从整体效果来看,本文提出的基于编码—解码模型的在线生成模型已经具备生成较高质量增广数据的能力。图6可视化了来自3个不同手写人的生成样例。从图中可以看出,对于相同的目标文本,不同手写人风格造成的风格差异是比较明显的。手写人10和手写人8的笔迹风格很相近,但书写的字符大小存在差异。而手写人2与前两者在笔迹风格和书写大小上都存在明显不同。这说明在模型设计中融入的手写人风格信息起到了很好的区分作用,增加了数据生成的多样性。最后,对当前生成模型产生的两种典型失败样例进行了展示,并分析了导致生成失败的可能原因,图7给出了两个生成失败的样例。对于第1个分式(图7(a))而言,虽然只有一重嵌套,但分母部分长度包含了11个字符,导致分号需要很长才能完整覆盖住分母。模型只是正确生成了每个字符,生成的分号并不合理,未结合全局信息进行局部调整。产生这种现象的原因是分号作为分式中第1个被生成的字符,尽管解码器利用注意力模型成功将分母和分号进行了对齐,但当前的解码器还无法对分母的长度进行感知,因此无法让分号覆盖住未来时刻才进行生成的分母部分内容。第2个样例是多重嵌套的分式(图7(b)),由于结构的复杂度过高,模型在生成最上面的分子部分后就变得混乱。这种错误一方面是由于训练集中几乎没有这种复杂的嵌套结构;另一方面也说明生成模型对空间结构信息的泛化能力还有很大的改进空间。10.11834/jig.220894送排稿.F007图7生成错误样例展示Fig.7The generated results with bad performance((a) the semicolon is too short;(b) the result is quite different from the expectation)5.2 识别性能分析5.2.1 数据增广规模对识别模型的影响实验时,利用本文提出的在线生成模型生成增广数据,进一步扩大训练集的规模,探讨数据增广的规模对识别性能的影响,并分析该方法在私有数据集与公开数据集CRHOME 2016上的实验结果。首先,从候选语料中挑选出字符均属于训练集词典,同时文本长度短于150的文本作为增广语料。其次,生成模型会按照挑选出的语料和不同的手写人风格进行在线轨迹点序列的生成。由于不同书写人的书写风格不同,过于潦草的风格不利于后续的识别任务。为了保证用于识别模型的增广数据在视觉上是正确合理的,本文通过人工评估的方式对整体生成效果不佳的手写人风格进行剔除,防止质量不佳的样本给识别模型带来负面影响。在实验中,使用了24个手写人风格进行最终的增广。另外,在进行数据增广时需要选择适合的增广数据规模,而不是一味地扩充增广数据,随着长难文本数量的增加,质量较差的合成数据比例也会增加,一定程度上破坏了网络的学习。因此,本文采用自训练(self-training)的方式来缓解这一影响,利用网络对合成数据的预测置信度作为筛选样本的指标,将置信度低于阈值的样本剔除。借助网络在真实数据上学到的知识,避免低质量样本对网络的学习产生影响。图8对比了用24个手写人风格分别对5 000、10 000、20 000和40 000条公式文本进行增广后,基于Transformer解码器的在线识别模型的性能变化。在不使用增广数据的情况下,模型在私有数据集与CRHOME 2016数据集上的识别率为90.10%与49.32%。在加入不同规模的增广数据后,模型的识别性能均获得提升,且在增广语料规模为20 000条时,模型达到了90.99%与50.26%的最佳识别率。同时,从图中也可以看到,继续增加增广语料规模到40 000条样本后,模型的性能虽然高于基线结果,但没有在最优的识别率上继续提升,反而由于低质量的合成数据比例增加,给模型带来了负面影响。最终实验结果证明,20 000条有效增广数据带来的性能提升最优。10.11834/jig.220894送排稿.F008图8增广语料规模变化时在线识别模型性能对比Fig.8Comparison of online mathematical expression recognition models with increasing data augmentation5.2.2 数据增广在不同模型上的表现为了验证本文提出的数据增广方法在不同模型、不同数据场景下的有效性,在私有数据集与CRHOME 2016数据集上进行实验。在私有数据集上,采用上一节的最优配置,将20 000条公式文本得到的在线增广数据应用于训练其他在线识别模型,以此验证在线数据增广方法的通用性,不同模型的性能变化如表1所示。需要说明的是,实验使用的TAP(track, attention and parse)模型是基于论文中Pytorch版本的TAP模型(Zhang等,2019)。此外,将DenseWAP-TD(DenseNet WAP with tree decoder)模型(Zhang等,2021)的编码器部分更换为与TAP模型相同的编码器结构,使得识别离线公式的DenseWAP-TD模型可以应用于在线场景,在表1中以DenseTAP-TD表示(Ma等,2019)。从表1可以看到,增广数据分别给TAP和DenseTAP-TD模型带来了1.55%和1.06%的绝对提升,在相对较高的基线结果上还能继续提升识别性能。这也从侧面反映了本文生成模型所产生增广样本的丰富性和多样性,在真实的用户使用场景下可发挥作用。10.11834/jig.220894送排稿.T001表1基于在线数据增广方法的公式识别模型在私有数据集上的实验对比Table 1Comparison of online mathematical expression recognition model based on online data augmentation method on private datasets模型在线数据增广词错误率识别率TAP×5.0187.47√3.1889.02DenseTAP-TD×3.6789.28√2.3390.34注:加粗字体表示各模型的最优结果。%图9展示了使用在线增广数据前后,模型在不同长度测试集上的识别率增益变化情况。从图中可以看到,3个识别模型在使用了增广数据后均对复杂样本的识别有了更好的泛化性。在“+15”(序列长度超过15)测试集上的识别率增益分别是其在“1~15”(序列长度在1~15之间)测试集上识别率增益的约13倍、16倍和14倍。因此,整体性能的提升绝大部分来源于模型对复杂样本的识别能力提升。10.11834/jig.220894送排稿.F009图9使用在线增广数据后,不同文本长度的识别率增益Fig.9The improvement of recognition rate of mathematical expressions with different lengths此外,在公开数据集CRHOME 2016上进行了增广实验,将20 000条公式文本得到的合成数据作为训练集的增广,在CRHOME 2016数据集的测试集上进行测试。实验结果如表2所示,表中所采用的OnSCAN模型为SCAN(stroke constrained attention network)模型(Wang 等,2021)的在线公式识别模型。增广数据分别给TAP、DenseTAP-TD和OnSCAN模型带来了1.74%、1.62%和1.21%的绝对提升,在数据规模较小、基线较低的情况下,本文方法依旧可以为模型的识别性能带来有效提升。10.11834/jig.220894送排稿.T002表2基于在线数据增广方法的公式识别模型在CRHOME 2016数据集上的实验对比Table 2Comparison of online mathematical expression recognition model based on online data augmentation method on CRHOME 2016 dataset模型在线数据增广词错误率识别率TAP×14.6745.95√14.2147.69DenseTAP-TD×13.8548.50√13.1950.12OnSCAN×12.8851.22√12.5652.43注:加粗字体表示各模型的最优结果。%6 结 论本文提出了一种基于编码—解码模型的在线数据生成方法,实现了从给定公式文本到在线轨迹点序列的生成,并且生成的数据可以更加灵活地对原有数据集进行增广。通过可视化结果展示了生成模型的性能,模型在不同难度的输入文本上都有良好表现,并且可以适应不同手写人风格。另外,本文也将基于Transformer解码器的识别模型扩展到在线公式识别中,通过在多个模型上的实验,验证了生成模型所合成的增广数据可以为识别任务带来有效帮助。然而,本文方法仍有不足之处。目前对于书写人风格采用基于人工设定的方式,在实际应用中,数据和模型都在不断地迭代,该方案显然不够高效。未来研究的重点包括如何将生成模型和识别模型进行联合建模和优化,以及如何通过识别模型的反馈自动选择合适的增广数据。另外,将在合成模型中进一步尝试加入手写人风格自适应模块,以增强生成数据的可扩展性,实现少样本或零样本学习的能力。
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读