提纲
1. 简介

2. seq2seq
    2.1 RNN Encoder-Decoder

    2.2 CopyNet

3. 文本编辑

    3.1 LASERTAGGER

    3.2 FELIX
4. 总结

参考文献

1. 简介
文本生成是自然语言处理领域一种常见的任务,它实现了从源文本到目标文本之间的转换。应用于包括机器翻译(Machine Translation),文本简化(Text Simplification),文本摘要(Document Summarization)等更具体的场景,在具体不同的场景可能有所差异,但是底层的技术基本共通。对于机器翻译任务而言,它的源文本是一种语言的文本,而目标文本是另一种语言的文本;而对于文本摘要任务而言,则是将文档内容转换为更加言简意赅的摘要。
当下seq2seq模型提供了一个强有力的框架应用于文本生成任务,通过一个encoder对源文本进行编码,然后再通过一个decoder按自回归的方式进行预测输出。但是对于有的任务,如果源文本跟目标文本存在一定的重复,训练一个seq2seq的模型去生成输出文本显得有点浪费,而且这个训练过程会需要大量的数据。所以是不是有更合适的方法去处理这种源文本跟目标文本大量重复的文本生成任务的?答案是肯定的就是通过特定的机制,将合适的源头文本复制到输出文本中合适的位置去,将文本生成的任务转换成文本编辑任务,这也就是本文要提及的文本编辑方法。什么叫文本编辑,其实就是对文本进行保留,增加,删除,交换等操作,将源文本转换为目标文本的方法。
2. seq2seq
2.1 RNN Encoder-Decoder
    RNN Encoder-Decoder是用RNN循环神经网络来分别充当encoder跟decoder的seq2seq模型。
图1: RNN Encoder-Decoder原理图
    在实际应用中发现用LSTM或者GRU来替代RNN作为encoder或者decoder效果会更好,也可以使用attention机制来动态更新每个时刻的源文本表征。
但是这种方法有几个非常明显的问题,
a)OOV问题,输出文本是通过分类器从预先定义好的词表中选取概率值最大的词实现的,所以很容易遇到OOV问题。特别是在源文本跟目标文本之间存在大量重复的情形,如果词表中不包含源文本涉及的词,特别是实体或者新词,那么预测的目标文本就会跟实际情况偏差很大。
    b)数据效率,为了使模型在文本生成任务上有较好的表现,传统的seq2seq模型对训练数据跟训练时间都要很高的要求。
    c)推理时间,seq2seq模型在解码时是基于自回归的方式,虽然跟人类的语言习惯相符,但是大大增加了模型推理时间,不支持并行化。
    d)不可控,传统的seq2seq的词表非常庞大,对生成的内容缺乏可控性跟可解释性,容易生成重复的内容或者奇怪的内容。
2.2 CopyNet
    CopyNet本质上也是一种seq2seq模型,但是跟传统的seq2seq模型不同之处在于,它引进了copy的机制,在生成目标文本时支持从源文本复制一定的内容。
图2: CopyNet结构图
    CopyNet的encoder部分跟传统的seq2seq模型没有差异,都是根据源文本得到各个时刻的隐状态输出。但是它在decoder部分做了调整,从而实现了预测文本既能通过传统的seq2seq从预先定义的词表中生成,也能通过复制的方式从源文本中得到。
图3: CopyNet原理
CopyNet通过在传统seq2seq的基础上引进了copy的机制,极大的缓解了OOV的问题,输出文本不仅可以来源于预先定义好的词表,也可以来源于源文本。同时也在一定程度缓解了可控性的问题,通过记忆模块的机制,通常能复制源文本的片段,保证语义的完整跟合理。但是推理时间跟数据效率依旧是个难题。
3. 文本编辑
3.1 LASERTAGGER
ASERTAGGER完全抛弃了传统的seq2seq框架   ,将文本生成的任务转换成文本编辑任务。整个方法包括三个部分,Encode, Tag和Realize,其中Encode负责生成源文本的深层语义表征,Tag负责利用预先定义好的词表为源文本每个位置打上文本编辑的操作类型标签,Realize就是按照预先定义好的规则根据文本编辑的标签生成目标文本。
    在正式开始模型训练之前,需要解决的就是设置好Tag部分的文本编辑操作类型标签,首先需要从某训练数据中梳理出一个词表V,这里的词表会受限于特定数据,可以通过策略保证词表的大小跟有效性,同时源文本能借助于该词表转换为目标文本,所以大小会远小于seq2seq中基本覆盖所有词汇的词表。得到该词表V后,通过两种文本编辑操作保留跟删除可以生成对应的标签,生成的标签类型如下所示。
图4: LASERTAGGER文本
编辑基本操作类型

图4.5: 如何获取数据的文本编辑操作。
    这里论文应该描述有误,没有写全,跟代码里的流程不完全一致。按照论文里的做法,训练数据中永远不会出现DELETE|p这种文本编辑操作,只会有DELETE, KEEP, KEEP|p这些文本编辑操作。所以需要在当前的流程图中新增一步,如果当前的文本编辑操作是KEEP|p,那么会去寻找当前片段第一个DELETE位置,如果找得到的话就把该位置的DELETE修改为DELETE|p,同时将当前位置的KEEP|p修改为KEEP,找不到的话就不做进一步修改。
Source text: a b c d
Target text:  e c d
按照论文得到的标签:
DELETE, DELETE, KEEP|e, KEEP
实际得到的标签:
DELETE|e, DELETE, KEEP, KEEP

图5: LASERTAGGER结构
    LASERTAGGER的Encode采用的是预训练模型Bert base的结构,Tag部分采用的是一层Transformer decoder,在每个时刻,decoder接收上一个时刻预测标签的词嵌入跟encoder在当前位置的激活值(这里没有通过attention计算encoder在所有位置的激活值,而只使用当前位置激活值的原因在于实际表现效果更好,并且收敛得更快。),进而预测当前位置的标签。在通过上述模型得到各个位置的文本编辑的操作标签后,通过简单的规则就可以得到输出文本了。
LASERTAGGER用文本编辑的方式解决了文本生成的任务,适合于源文本跟目标文本存在大量重复的场景,根据自己实际的任务不仅可以生成自己的词表,也可能设置个性化的文本编辑的操作(对实际效果会有帮助)。
    a)解决了seq2seq的数据效率问题,需要更少量的训练数据就可以得到较好的表现。
    b)同时文本编辑的方式生成的目标文本会更加可控和具备解释性,很少出现重复性内容或者难以理解的部分。
但是LASERTAGGER依旧是通过自回归方式生成文本的,依旧无法实现推理的并行化加速。
3.2 FELIX
    FELIX同样是一种文本编辑的方法,都是谷歌提出来的模型,FELIX其中一位作者同时也是LASERTAGGER的作者。FELIX模型分为两部分,一部分是tagging,即标记模型,决定哪些词应该保留,哪些词应该删除,以及词之间的顺序应该如何调整。另一部分是insertion,通过语言模型预测出[mask]位置的词,生成最后的输出文本。
    Tagging包括两部分,第一部分是Tagger,标记模型,通过一个预训练模型Bert Base加上一层前馈神经层预测出源文本各个位置的标签。这里的标签类型没有LASERTAGGER那么丰富,主要包括三种,KEEP表示源文本跟目标文本都出现的文本,DELETE表示源文本出现但是目标文本没出现的文本,INSERT表示目标文本出现但是源文本没出现的文本,根据不同的插入策略分为MASK跟Infill。另一部分是Pointer,是通过指针网络实现的,指针网络可以产生一系列指向输入序列元素的指针,主要用于调整文本编辑的顺序,使得FELIX能够进行更加全局化的文本编辑,最终它会输出一个指针的序列,通过这个序列很容易可能构造出一个新的文本序列,作为后续Insertion模型的输入。例如论文中提及的 Jonh and Mary如果要转换成 Mary and John, 一般的文本编辑操作需要先删除and Mary,然后在John前插入Mary and,但是通过指针网络就不需要任何删除跟插入操作就可以调整文本顺序了。
Insertion通过预训练模型Bert Base的MLM机制,对已经组织好顺序的文本序列中的[MASK]位置进行预测,生成输出序列。不同于LASERTAGGER能生成的内容取决于预先设置到的词表跟编辑类型,FELIX的Insertion借助于Bert的MLM机制可以生成更加丰富的表达。
图6: FELIX结构
FELIX相比于传统的seq2seq模型,有明显的优势,包括
    a)数据效率,通过预训练模型,少量编辑操作的标记模型,类似于MLM任务的文本插入模型,在使用少量监督数据的情况下可以训练得到一个高精度的文本生成模型。
    b)推理效率,Insertion的文本生成借助于bert的MLM机制,不再是自回归的方式,各个位置的文本生成可以相互独立,能够实现并行化加速。
    c)灵活的文本编辑,通过指针网络可以实现更加全局化的文本编辑操作。
4.总结
在文本生成任务中,在源文本跟目标文本存在大量重复的场景下,可以抛弃seq2seq的解决方案,用文本编辑的方式去解决此类问题,有非常巨大的优势。例如对数据要求更少,生成质量更加可控等。
参考文献
1.(COPYNET, 2016) incorporating Copying Mechanism in Sequence-to-Sequence Learning
https://arxiv.org/pdf/1603.06393v1.pdf
2.(Lasertagger, 2019) Encode, Tag, Realize: High-Precision Text Editing
https://www.aclweb.org/anthology/D19-1510.pdf
3.(FELIX, 2021) FELIX: Flexible Text Editing Through Tagging and Insertion
https://arxiv.org/abs/2003.10687
继续阅读
阅读原文