4. FELIX
FELIX是Google Research在“FELIX: Flexible Text Editing Through Tagging and Insertion”一文中提出的文本生成模型,该论文发表于EMNLP 2020 Findings。
受限于有限的编辑操作标签,LaserTagger、Seq2Edits主要进行单词或短语的保留、删除、替换操作,更多的是对文本的局部编辑,无法直接改变文本的结构特征(例如主动句改被动句:“They ate steak for dinner.” “Steak was eaten for dinner.”)。
同时,受限于词典规模,LaserTagger与Seq2Edits也不支持大量插入新文本。而如果使用自回归的方法来支持大量插入新文本,势必大大降低模型的推理速度。所以,FELIX希望能够兼顾文本生成的推理速度和灵活性。
本篇工作的主要改进有:
(1)在保留、删除等基本编辑操作上引入重排序(reorder)操作。通过重排序操作,在复用重复文本的同时实现文本结构特征的改变,提高文本生成的灵活性。
(2)受BERT自监督预训练任务启发,通过引入Masked Language Model(MLM)来预测待插入的新词。
4.1 主要方法
FELIX将文本生成分为两步:通过标注模型(tagging model)对源文本标注编辑标签后进行重排序,然后输入插入模型(insertion model)对要插入的新文本进行预测。
标注
以图10为例,源文本为 “The big very loud cat.” ;目标文本为 “The noisy large cat.” 。其中为tagger模块预测的标签序列;为经过Pointer重排序后加入特殊标签(, )得到的序列,将输入插入模型预测得到最终结果。
图 10 FELIX对插入文本的两种预测方式
FELIX对编码后的源文本进行标注,保留操作和删除操作标签仍为和。结合MLM,FELIX设计了两种方式预测要插入的新文本:Masking 和 Infilling 。Masking 方式不仅需要模型预测插入内容,还需要模型预测插入文本的长度(如,对应中加入两个标签)。
Infilling 方式直接让模型预测待插入的新文本的内容,不需要模型预测插入文本的长度。即,在中插入固定个数的标签(实验中插入8个即可覆盖99%的样本),预测插入内容时多余的标签使用标签覆盖。
需要注意的是,在将输入到MLM进行预测时,FELIX保留了待删除的span(用一对特殊的token 和 将span括起来,而非直接将待删除部分替换为标签)。即使这样做会导致fine-tuning和pre-training的不一致,但能够保留更多的语义信息,提高模型预测的准确性。
重排序
为了保证推理效率,FELIX的重排序也是非自回归(non-autoregressive)的,类似于non-projective dependency parsing。具体实现时使用constrained beam search来保证除了待删除的token外,每一个token都会被指向,且避免有token被指向两次而产生循环。
4.2 模型概述
FELIX tagging model:
Encoding: 使用12层的BERT-base模型对源文本进行编码。
Tagging: 使用一层feed-forward layer预测标签。
Pointing: 基于注意力机制的pointer network进行重排序。
FELIX insertion model:
12层的BERT-base模型。并使用预训练权重进行初始化。
5. 实验评价
三篇工作分别在句子融合、句子分割复述、语法纠错等多种文本生成任务上进行了实验,主要验证了模型在三方面的性能:生成文本的质量、模型推理效率以及模型在小样本上的表现。
句子融合(Sentence Fusion) | ✓ | ✓ | ✓ |
句子分割复述(Split & Rephrase) | ✓ | ✓ | |
文本摘要(Summarization) | ✓ | ✓ | |
语法纠错(Grammatical Error Correction) | ✓ | ✓ | |
文本规范化(Text Normalization) | ✓ | ||
文本简化(Text Simplification) | ✓ | ✓ | |
自动后编辑(Automatic Post-Editing) | ✓ | ||
LaserTagger | Seq2Edits | FELIX |
---|
5.1 生成质量
句子融合 & 分割复述
三篇工作均在句子融合任务上进行了实验,使用数据集为DiscoFuse,评价指标为SARI、Exact。其中SARI将预测输出与输入文本以及reference比较,评价模型对源文本进行各种编辑操作后生成文本的“好坏”;Exact主要评价模型生成的文本和标准答案之间“有多接近”。
SARI | Exact | ||
---|---|---|---|
full sequence model | BERT2BERT | 89.52 | 63.90 |
Seq2SeqBERT | 85.30 | 53.60 | |
edit-based model | LaserTagger | 85.45 | 53.80 |
Seq2Edits | 88.73 | 61.71 | |
FELIX | 88.78 | 61.31 |
从上表中可以看出,基于编辑方法的生成模型较之传统full sequence model在生成文本的质量上有下降,但改进后的Seq2Edits和FELIX在两项指标上已经和full sequence model十分接近。
LaserTagger和Seq2Edits均在句子分割复述任务上进行了实验。该任务为句子融合任务的逆任务,使用数据集为WikiSplit 。Seq2Edits在该项任务上表现较优。
SARI | Exact | ||
---|---|---|---|
full sequence model | Seq2SeqBERT | 62.3 | 15.1 |
edit-based model | LaserTagger | 61.7 | 15.2 |
Seq2Edits | 63.6 | 17.0 |
文本简化
Seq2Edits和FELIX均在文本简化任务上进行了测试,并与LaserTagger进行了对比。该任务需要在保持源文本基本语义的情况下,通过改写降低源文本的复杂度,以方便儿童等特殊群体阅读。实验使用数据集为WikiLarge,评价指标为SARI。在该项任务上FELIX有着较好的表现。
SARI | ||
---|---|---|
edit-based model | LaserTagger | 32.31 |
Seq2Edits | 37.16 | |
FELIX | 38.13 |
5.2 推理效率
在推理效率方面三篇工作均与传统full sequence model进行了对比实验,结果证明相较于传统seq2seq方法,基于编辑方法确实能够大大提高模型的推理速度。在推理速度上对三种模型进行横向对比,FELIX最优,而Seq2Edits由于模型本身的复杂性,在三者中速度最慢(FELIX > LaserTagger > Seq2Edits)。
5.3 小样本表现
LaserTagger和FELIX两篇工作均在小样本训练数据上测试了模型性能。相比full sequence model而言,LaserTagger和FELIX两者对训练数据规模变化并不敏感(训练数据规模从45k缩小到4.5k时full sequence model性能出现了较大下降),且在小样本数据上FELIX表现要好于LaserTagger。
6. 总结
LaserTagger |
token-level; 保留、删除、插入 |
根据训练数据构造短语词典,从词典中直接选择。 |
一轮序列标注; 非自回归; |
加速10x-100x (相比SEQ2SEQBERT) |
Seq2Edits |
span-level; 三元组 不同任务有不同tag vocabulary |
open-vocab |
预测N个三元标签组; 自回归; |
加速5.2x(相比 full sequence model) |
FELIX |
token-level; 保留、删除、MASK、重排序 |
open-vocab 用MLM预测MASK对应的token |
标注+重排序+MLM; 非自回归; |
加速100x(相比 full sequence model) |
模型 | 编辑操作 | 插入新文本 | 推理方式 | 推理效率 |
---|
基于编辑方法的文本生成优势与不足主要如下:
与full sequence models相比,推理速度大大加快。 模型输出可解释性强。 对训练数据规模较不敏感;在小样本上表现较好。 |
遵循较弱的语言模型。 生成的灵活性不足。 |
Pros | Cons |
---|
未来工作的关键在于生成质量和推理效率的对立统一。目前基于编辑方法使用非自回归预测输出时,虽然能够提高推理效率,但势必会损失生成文本的质量。因此,质量和效率尽量做到“鱼与熊掌二者兼得”将成为未来研究工作的希冀。
References
[1] Malmi, Eric, et al. "Encode, tag, realize: High-precision text editing." arXiv preprint arXiv:1909.01187 (2019).
[2] Stahlberg, Felix, and Shankar Kumar. “Seq2Edits: Sequence Transduction Using Span-level Edit Operations.” arXiv preprint arXiv:2009.11136 (2020)。
[3] Mallinson, Jonathan, et al. “Felix: Flexible text editing through tagging and insertion.” arXiv preprint arXiv:2003.10687 (2020)。
[4] https://ai.googleblog.com/2020/01/encode-tag-and-realize-controllable-and.html
[5] https://ai.googleblog.com/2021/05/introducing-felix-flexible-text-editing.html
[6] https://thinkwee.top/2021/05/11/text-edit-generation/
编辑:jq
全部0条评论
快来发表一下你的评论吧 !