北京大学学报(自然科学版) 第59卷 第6期 2023年11月
Acta Scientiarum Naturalium Universitatis Pekinensis, Vol. 59, No. 6 (Nov. 2023)
doi: 10.13209/j.0479-8023.2023.085
基于Transformer模型的手写数学公式
语法树解码器
周伯瀚曹健†王源
北京大学软件与微电子学院, 北京 102600; †通信作者
摘要目前对数学公式进行树结构解码的方法大多基于循环神经网络的结构, 训练效率低, 训练过程复杂,基于此问题, 提出一种基于Transformer结构的手写数学公式识别模型, 可以直接对公式的语法树进行解码。在手写公式识别任务多个数据集上的实验结果表明, 所提出的Transformer树解码方法都取得超越Trans-former序列解码方法的性能, 并展现出超越循环神经网络树解码方法的潜力。
关键词手写数学公式识别; Transformer; 树解码器; 图表理解
A Transformer-based Syntax Tree Decoder for Handwritten
Mathematical Expression Recognition
ZHOU Bohan, CAO Jian†, WANG Yuan
School of Software and Microelectronics, Peking University, Beijing 102600; † Corresponding author,
Abstract  Most of the existing tree-structured decoding methods of handwritten mathematical expression recog-nition are based on the recurrent neural networks, which have low training efficiency and complicated training process. In order to prove this problem, the authors propose a handwritten mathematical expression recognition model based on Transformer structure, which can decode the syntax tree of expressions directly. Experimental results show that the proposed tree-structured decoding method achieves better performance than the string decoding methods base on Transformer on several datasets of handwritten formula recognition tasks, and show the potential to surpass recurrent neural network tree decoding methods.
Key words handwritten mathematical expression recognition; Transformer; tree decoder; document comprehension
作为光学文字识别(optical character recognition, OCR)的一部分, 手写公式识别在文档理解、图表理解、AI作业批改和AI解题等领域发挥着重要作用。现有的手写公式识别系统大多使用基于卷积神经网络(CNN)和循环神经网络(RNN)[1]的编码器–解码器模型[2–4]。这些模型将手写公式识别任务建模为图像到序列的解码任务, 卷积神经网络负责将图像编码, 循环神经网络负责将编码后的图像信息解码为公式。编码器–解码器模型是近年来自然语言处理领域应用最广泛的模型, 在许多任务中都有巨大的应用潜力。在同样用于解码序列、可以替换循环神经网络的更强大的Transformer模型[5]出现后, 基于Transformer的编码器–解码器模型开始在目标检测和语义分割[6–7]等视觉任务中得到应用。在手写公式识别任务中, 解码器不仅可以解码公式的LaTeX序列, 还有直接解码数学公式语法树的潜力。相比于LaTeX序列, 语法树显式地存储了数学公式中的结构信息, 更加接近数学公式的本质。解码语法树能显著地降低公式的结构错误率, 且对具有复杂空间关系的公式具有更强的鲁棒性。Alva-rezMelis等[8]提出能用于解码树结构的编码器–解码器。Zhang等[9]提出在手写公式识别任务中使用两
收稿日期: 2022–11–16; 修回日期: 2023–01–10
909
北京大学学报(自然科学版)第59卷 第6期 2023年11月
910
图1  Transformer树解码器框架Fig. 1 Framework of Transformer tree decoder
个RNN解码器, 分别负责父节点和子节点的解码, 并将父子节点信息交由全连接层, 解码出父子节点间的关系, 由此不断循环, 解码出整棵语法树。但是, 目前的树解码方法并不适用于基于Transformer 模型的解码器。
本文提出适用于Transformer模型解码的语法树序列化方法以及对应的训练策略, 使得Transfor-mer模型也能够进行树结构解码。此方法能够与任
何序列解码方法融合, 具有可迁移性。
1 研究方法
本文提出的基于Transformer的语法树解码框架如图1所示。将训练集中的LaTeX序列形式的数学公式建树后, 重新序列化, 用于训练模型。训练好的模型可以从图片解码出序列化形式的语法树, 再从语法树序列中还原出语法树或LaTeX形式的序列。
1.1 公式语法树
作为结构化数据, 数学公式除可以用LaTeX序列表示外, 也可以用语法树来表示。数学公式的语法树定义
有多种, 常见的定义是使用六叉树[9]。六叉树中的每个节点代表公式中的一个符号, 而每个节点最多可以有6个子节点, 分别代表字符间的6 种关系: 上标、下标、右延、上方、下方和里侧。图2是6种关系在公式及语法树中的示例。
语法树的一种形式化表达是使用若干形如(父节点, 子节点, 字符间关系)的节点三元组, 每个节点三元组都表示从父节点拓展出的一个子节点。
图2  数学公式语法树示例
Fig. 2 An example of syntax tree of mathematical expression
Zhang等[9]通过从根节点开始解码节点三元组, 不断拓展语法树, 最终解码出整颗语法树。但是, Zhang等[9]对节点的建模仅保留了符号, 在解码父节点时无法分辨已解码的相同符号的节点, 故引入额外的记忆模块用于存储已解码的符号, 并通过点积相似度得到父节点符号位置。这种建模方式引入较复杂的结构和额外的参数量, 且无法直接迁移到Transformer模型结构中。因此, 本文提出适用于Transformer模型的手写公式树解码器模型, 模型结构如图3所示。
1.2 语法树序列化
由于Transformer的解码方式是序列解码, 因此本文首先将语法树通过自定义的规则进行序列化, 从而将
语法树解码问题转换为序列解码问题[10]。每棵语法树被序列化为一个由多个节点三元组序列(父节点指针、字符间关系、子节点符号)组成的长序列。父节点指针(记为S)是词表中新增的一组特
周伯瀚等  基于Transformer 模型的手写数学公式语法树解码器
911
图3  Transformer 手写公式树解码模型
Fig. 3  Handwritten mathematical expression syntax tree decoder base on Transformer
殊符号, 形式为“\X ”。“\”为转义符, 用于与普通的数字符号做区分; X  表示指针指向已解码的第 X  个子节点符号。为了统一节点三元组的表示, 解码出的第一个节点的父节点指针总是“\0”。父节点指针在词表中的总数量由数据集中公式的最长长度决定, 默认为 60 个。字符间关系(记为 R)同样为新增的一组特殊符
号, 共 6 个, 分别代表字符间的 6 种关系。子节点符号(记为 T)为原词表中的 LaTeX  字符, 共 111 个。加上 3 个序列控制符(<start>, <end>和<pad>分别代表序列开始、序列结束以及序列填充符号), 词表总长度为 180。部分词表中的字符示例如表 1 所示。
同一棵语法树同时对应多个正确的序列化结果, 比如, 节点三元组之间可以按树的前序遍历方式排列, 也可以按树的层序遍历方式排列, 而节点
表1  语法树词表示例
Table 1  Examples of the dictionary of syntax tree
字符类型 字符示例
父节点指针S  \0, \1, \2, \3, …
字符间关系R  \Sup, \Sub, \Above, \Below, \Inside, \Right  子节点符号T
x , y , 1, 2, \int, \frac, +, –, …
三元组内部的排列方式也有多种。本文默认将节点三元组按照前序遍历方式排列, 三元组内部则默认按
照 S, R, T  的顺序排列。排列规则确定后, 同一棵序列化后的语法树可以使用同样的规则转换为唯一的 LaTeX  格式的公式序列。
例如, 采用前序遍历时, 图 2 对应语法树的一种序列化方式为
<start>, \0, \Right, \sqrt, \1, \Inside, \frac, \2, \Above, x, \3, \Sup, 2, \3, \Sub, 1, \2, \Below, y, \6, \Sub, 0, \1, \Right, +, \8, \Right, 1, <end>。
损失函数为序列化语法树中每个字符分类损失的加权平均, 可以通过为 S, R  和 T  这 3 种不同类型的字符赋予不同的重要性权重 α (默认均为 1), 来设置模型对树结构的学习偏好:
()log (|,,),j j j j p y y x θαθ<=-
(1)正则化几何因子
1
1()(),L
j j L θθ==
∑  (2)
其中, αj
为不同类型字符的重要性权重, θ 为模型参数, y j
为第 j  个位置的字符, x  为图像。
1.3 指针解码模块
在序列化的语法树中, 指针符号的语义为直接
北京大学学报(自然科学版)  第59卷  第6期  2023年11月
912
图4  指针解码模块 Fig. 4  Pointer decode module
指向已解码序列中的某个词, 这种建模方式类似摘要生成任务中的指针生成网络。故本文参考指针生成网络[11–12]中指针生成器的结构, 提出适用于树结构生成的指针解码网络结构。
设词表长度为 V , 解码器在解码每个字符时, 都需要给出词表中每个字符的得分 r , 并通过 soft-max  操作得到当前字符的归一化概率 p 。在解码S  符号(即父节点指针符号)时, 通过引入对已解码序列的自注意力得分 a  来修正解码器得分 r 。最终的得分为解码器得分 r  与自注意力得分 a  之和:
softmax (),=+p r a  (3)
其中, 向量 p , a  和 r  的维度均为 V 。
如式(4)所示, 自注意力得分 a  是通过将解码 S 符号时指向已解码的 T  符号的自注意力权重向量p attn  (维度为最大序列长度 L )经过一次可选的线性变换 W V ×V , 转换为词表中 S  符号的得分, 并将词表其余类型符号得分置零而得到:
attn =⨯。a W M p
(4)
因为 S  符号的语义即为指向第 X  个已解码的 T 符号的指针, 所以解码 S  符号过程中, 对 T  符号的自注意力权重可以将 T  符号的位次直接作为对应 S  符号的得分使用。由于 T  符号总是出现在序列中序号被 3 整除的位置, 所以注意力权重 p attn  可以通过一个预置的矩阵V L ⨯M 来转换成词表得分。矩阵元素,i j M 仅在 i  为 S  符号词表编号且j 为该指针所指节点的 T  符号位置时为 1, 其他情况下则为 0。
,1,,{,idx(\),=3,},
0,i j i j i j |i =k j k k M ∀∈∈⎧=⎨
。 其他(5)
如图 4 所示, 解码器在解码第 3 个节点的 S  符号时, 前两个节点的 T  符号\int  和 0 的自注意力将分别转换为词表中 S  符号\1 和\2 的得分。若模型解码时更关注第一个节点符号\int, 则该 S  符号的解码结果会更偏向于\1, 即第 3 个节点的父节点指针更偏
向于指向第一个节点。
指针解码模块的目的是利用父节点指针 S  符号的语义, 将解码时的注意力权重转换为解码得分, 实现注意力权重的重复利用, 但是给 S  符号的解码带来额外的信息。解码时的注意力权重在网络推理时自然产生, 除线性变换V V ⨯M 外, 不会给网络带来额外的参数量和过多的额外计算量。由于注意力权重具有概率分布的含义, 因此可跳过线性变换直接加在得分上, 以便规避模型参数量的增加。
2 实验结果
将本文提出的 Transformer  树解码方法在 CRO-HME  数据集[13–15]上进行实验, 与目前先进的手写公式识别模型进行对比, 并进行消融实验, 验证本文方法的有效性。
2.1 网络结构与实验数据
本文采用的网络结构为编码器–解码器结构。解码器部分为 Transformer  解码器, 除本文提出的指针解码模块外, 其余结构与文献[16]的单向 Trans-former  模型相同; 编码器部分采用与文献[3]相同设置的 DenseNet  卷积神经网络编码器。本文在数据集 CROHME  上进行实验, 数据集概况如表 2 所示。
2.2 实验结果与分析
手写数学公式识别任务主要有准确率和结构准确率两个评价指标。准确率是完全识别正确的公式在数据集中的比例, 结构准确率是识别结果结构正
表2  CROHME 数据集概况
Table 2  Overview of the CROHME datasets
数据集
公式数量 训练集
8836 CROHME 2014测试集 986 CROHME 2016测试集 1147 CROHME 2019测试集
1199
周伯瀚等  基于Transformer 模型的手写数学公式语法树解码器
913
表3  CROHME 测试集上各方法对比
Table 3  Comparison of various recognition methods on CROHME datasets
测试集
剪枝方法
基础模型
方法类型
准确率/%
结构准确率/%
CROHME 2014
UPV [17] – Tree grammar 37.20 – PAL [18] RNN
序列解码 39.70 – DenseWAP [4] RNN 序列解码 43.00 63.20 DenseWAP-TD [9] RNN 树解码 49.10 68.60 Vanilla-Transformer [16] Transformer 序列解码 48.17 65.01 本文方法
Transformer
树解码
50.72 66.53
CROHME 2016
TOKYO [19] – Tree grammar 43.90
61.60 DenseWAP [4] RNN 序列解码
40.10 59.20 DenseWAP-TD [9] RNN 树解码 48.50 65.90 Vanilla-Transformer  [16] Transformer 序列解码 44.55 61.55 本文方法
Transformer
树解码
49.00 64.25 CROHME 2019
DenseWAP [4] RNN 序列解码
41.70 60.70 DenseWAP-TD [9] RNN 树解码 51.40 69.80 Vanilla-Transformer  [16] Transformer 序列解码 44.95 60.63 本文方法
Transformer
树解码
49.87 67.14
确的公式在数据集中的比例。结构准确率只关心模型解析出的语法树拓扑结构是否正确, 而不关心符号识别的准确率, 能较好地评价模型捕捉公式语法树结构的能力。
本文方法在 CROHME 2014/2016/2019 数据集上的实验结果如表 3 所示。为保证方法比较的公平性, 所有方法都没有使用数据增强策略。从表 3 可以看出, 本文提出的 Transformer  树解码方法的性能可以与当前最先进的 RNN  树解码方法性能竞争。考虑到 Transformer  模型在其他领域已经展现出随着数据集规模增大而性能增强的特点, 可以期望在大数据集场景下, Transformer  树解码模型会具有更强的潜力。
相比序列解码的 Transformer  模型, 本文方法取得更好的准确率和结构准确率表现, 尤其是在 CROHME 2016/2019 数据集上的性能远好于序列解码 Transformer  模型。
指针解码模块是本文提出的独立模块, 本文通过消融实验来验证该模块是否能协助模型解码父节点指针, 是否对模型推理结果有正面影响。实验结果如表 4 所示。可以看出, 指针解码模块能够在模型解码父节点指针时提供有效信息, 从而提升模型的最终性能。
3 结论
本文依据数学公式树解码的建模方法, 针对
表4  CROHME  测试集上消融实验 Table 4  Ablation study on CROHME datasets
测试集 指针解码模块
准确率/% CROHME 2014
否 49.3 是 50.7 CROHME 2016
48.2 是 49.0 CROHME 2019
49.1 是
49.9
Transformer  模型的特点, 提出一种基于Transformer 模型的手写数学公式树解码模型。它通过将语法树序列化, 将树解码问题转换为序列解码的形式, 从而使其适用于 Transformer  模型。参考指针生成网络中生成指向文本中词语的指针的方法, 通过注意力机制协助模型生成父节点指针, 以期提高模型的识别性能。实验结果表明, 本文方法很好地将公式的树解码这一建模方法迁移到 Transformer  模型上, 超越普通的 Transformer  模型, 取得优异的性能。
但是, 本文方法存在一定的局限性。由于语法树的序列表示的序列长度更长, 相比传统的序列解码方法, 本文方法需要在解码上花费更长的时间。在未来的研究中, 我们将进一步探索更合适的建模方式, 比如直接从解码器注意力中解码出父节点指针, 以便减少解码序列的长度; 或以更合适的先验

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。