2020.10.4论文笔记
- PRETRAINED ENCYCLOPEDIA: WEAKLY SUPERVISED KNOWLEDGE-PRETRAINED LANGUAGE MODEL
- NON-AUTOREGRESSIVE NEURAL MACHINE TRANSLATION
- Insertion Transformer: Flexible Sequence Generation via Insertion Operations
- Levenshtein Transformer
- Non-Autoregressive Neural Dialogue Generation
- LAVANAT : A Non-Autoregressive Translation Model with Look-Around Decoding and Vocabulary Attention
- An EM Approach to Non-autoregressive Conditional Sequence Generation
- FlowSeq: Non-Autoregressive Conditional Sequence Generation with Generative Flow
关于可控文本生成的一些文章
PRETRAINED ENCYCLOPEDIA: WEAKLY SUPERVISED KNOWLEDGE-PRETRAINED LANGUAGE MODEL
该文章设计了一种以实体为中心训练目标,利用弱监督的训练方式在预训练过程中学习实体的相关知识。给定输入文本,首先识别其中的实体并将其与维基百科知识库中的实体进行链接,定义原始文本为正例。随机选取文本中的实体,再随机选择同类型的其他实体名对选中实体进行替换,生成负例。训练过程即为对上下文C中出现的实体e是否被替换进行二分类预测。
进行实体替换时,首先需通过Wikidata知识库确定其实体类型,并随机选取该实体类型下的其他实体替换原实体,每个实体会通过同样的方式进行10次替换,生成10个不同的负例。相邻实体不会被同时替换,以避免多个连续的负例组成了符合事实的描述。
使用了BERT-base预训练模型,对于每个实体,取最后一层Transformer输出中该实体第一个词的前一个词和最后一个词的后一个词的隐层表示用于预测,预测通过将两表示连接后,经过一线性层,进行二分类。
NON-AUTOREGRESSIVE NEURAL MACHINE TRANSLATION
以往的NMT模型都是采用的autoregressive的方式进行infer结果,也即模型每次基于之前生成的词去生成序列中的下一个词。这种做法的一个主要劣势就是模型在infer的时候计算速度会受这种计算方式限制,无法进行并行计算。这篇文章提出一种non-autoregressive的方式来生成翻译结果,在翻译时能够并行地输出整个句子结果。
简单的非自回归模型有很多问题,作者举例英语的"Thank you" 翻译成德语有三种形式“Danke.”, “Danke sch¨on.”, or “Vielen Dank.”,如果用这种naïve的模型很可能会翻译出来“Danke Dank.”的结果。
为了解决这个问题,作者提出引入隐含变量的方式,这个隐含变量包含了目标句子的mode信息,再用这个 mode 信息来指导 decode 过程,减小了 decoder 的搜索空间。
作者选择了Fertility predictors的结果作为隐含变量。Fertility predictors输出的是源句子中每个词的含义在目标句子中重复的次数,将Fertility值和原始输入X结合得到了decoder的输入。
non-autoregressive nmt 训练的loss 分为两部分,为上式中的translation loss 和 fertility loss,训练过程分别对翻译结果和Fertility进行监督。Fertility的监督信息有单独的判别模型进行学习。
为了帮助模型训练,作者还采用了两种辅助训练的方式,Sequence-level knowledge distillation和Fine-tuning这两种辅助方式都是为了补足fertility作为隐含变量可能不是那么完美的问题。最终,fine-tuning阶段,训练用的loss是
训练好的模型在infer的时候,采用以下三种方式:
argmax decoding: 先取最大概率的 f t f_t f