Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

图像到标记语言生成的树形结构解码器

摘要

最近encoder-decoder方式主要使用序列解码器来处理图像到标记预压的生成问题。但序列解码器并不能很好的处理结构复杂度

本文通过一系列toy problems验证了树形结构解码器相对于序列解码器的优势

提出了一个树形结构解码器,每一步同时生成一个子节点和它父节点以形成一个子树。该子树以递归的方式被用于构造最终的树结构。

本实验研究的树形解码器成功的关键主要在如下2个方面:

  • 它严格尊重树木的亲子关系
  • 它显式地输出与线性字符串相对的树

本文分别将该解码器用在了数学公式和化学公式识别上,均取得了优于序列解码器的成果

intro

基于注意力机制的编解码器被证明在序列到序列的学习上非常有效,这些编解码器均通过基于RNN的序列解码器,使用由Encoder提取得到的特征来生成目标序列,这是因为目前应用的目标都不包含内部结构,均为一维线性文本。

尽管如此,许多研究问题自然而然地表述为文本本身的生成以及直接从图像中生成内结构关系,这些问题通常被称为标记生成问题

虽然字符串解码器可以通过生成目标树的连续化序列来处理不同的结构,但默认情况下它们并不尊重树的结构完整性。这是因为字符串解码器通常以深度优先顺序遍历的方式对结构进行序列化,而没有具体的设计考虑来确保遍历过程中固有的父子关系。

image-20230620144355453

如图所示:

  • 蓝色虚线代表序列编码器的编码顺序
  • 蓝色实线树形编码器的编码顺序

左侧树表示的标记语言序列为A(B(CD)E)

右侧树表示的标记语言数列为A(B(CD(FG))E)

对于序列编码器而言,编码器会认为E与D节点的关系更大,但事实上E与其真正的父节点A的关系更大

那么当我们在实际任务中使用要使用模型去预测右图中序列时,模型通过左侧图片学习到的时D后更大概率出现E,于是预测D之后应该是E,然后并不是这样,D之后还有两个子节点分别为F和G

本文提出的树形编码器从两个方面控制解析顺序:

  • 它是专门为在解码时尊重树的父子关系而设计的
  • 它显式地生成一棵树作为最终输出。

最终的树结构有一串序列构成,其中序列的每一个元素是一个数据对(子节点,父节点)

本文的贡献由三:

  • 提出了一种新颖的树结构解码器,该解码器尊重树结构并直接输出树,也可以在基于注意力的编码器-解码器框架内进行联合优化。
  • 设计了一组玩具问题来说明字符串解码器失败的原因,特别是在其对更复杂结构的泛化能力方面,并反过来说明为什么在解码过程中尊重树结构会导致更好的泛化能力。
  • 在数学公式识别和化学式识别两个实际问题上证明了所提出的树形解码器的有效性,其中标记的结构复杂性是显著的。

方法

Encoder

使用DenseNet作为Encoder

Decoder

使用基于RNN的解码器,其中对于子树的生成分为两部分,分别是父节点的生成和子节点的生成,即由商议时刻的元素生成下一时刻的元素的序列生成可以转化为生成一对最合适的父子节点。

image-20230620152141938

模型将首先预测出父节点,然后根据父节点预测出子节点:

image-20230620152455165

训练和预测时,解码器会首先预测出N个最可能的父节点,接着根据这些父节点预测出子节点

image-20230620152731832

为了保证预测的子树序列能够重建出完整的树,本文执行了两个规则:

  1. 每个子节点必须有一个父节点,因此不会出现孤立节点
  2. 父节点必须是现有的节点之一

评论