原文标题:Sketch and Customize: A Counterfactual Story Generator
原文链接:https://arxiv.org/pdf/2104.00929.pdf
目录
二、S&C: Sketch-and-Customize Model
一、Introduction
大部分条件文本生成任务关注的都是如何在给定条件下生成合适的文本内容,那么如果给定的条件发生了变化,下文应该如何改变呢?它们之间的因果关系是怎样建立的呢?
如图所示,一个好的模型应该能够注意到有哪些条件发生了改变,并且将故事结尾中矛盾的词替换掉。
在原有的工作中,模型可能会去复制初始结尾中的句子,导致生成的故事结尾与反事实条件产生矛盾。
二、S&C: Sketch-and-Customize Model
1、Formulation and Notations
2、Model Overview
本文的模型包含两个阶段:草图(sketch)和定制(customize)。
3、Stage 1: Sketch
本文将故事文本分为两部分,一部分是背景内容,另一部分是因果内容。sketch阶段的目标就是分离出这两部分,并且用空格将因果内容替换掉。
具体来说,是将BERT作为基础结构,将故事前提、原始条件、反事实条件、原始结尾作为输入,再通过FC和Softmax,得到每个词的标签。这样得到因果内容之后,就可以用空格将因果内容替换掉,生成因果骨架(causal skeleton)。
4、Stage 2: Customize
在customize阶段,主要使用GPT2生成反事实故事结尾。 具体来说,是将故事前提、反事实条件和第一阶段得到的因果骨架作为输入,到GPT2中生成反事实故事结尾。
5、Training
本文采用两阶段训练方式,在第一阶段中,因果内容和背景内容已经分别被标记为0和1,由于因果内容的词数远小于背景内容,所以要适当增加因果内容的权重。在第二阶段,采用负对数似函数损失进行训练。
当然,给定一个反事实条件,有多种方法可以修改现有的结尾。于是本文还训练了三种增强模型 1)用空白随机替换20%的背景词,2)从词汇表中采样单词随机替换 20% 的背景单词,3)随机打乱每个骨架中的背景词顺序。
6、Inference
这一阶段只提供原始故事和反事实条件,本文先预测原始结尾中每个词的类型,并用空格替换因果内容,最后用top-k抽样方法来生成新的故事结尾。
三、Experiments
1、Evaluation Metrics
本文使用PRE、CF、PLOT作为评价指标,当然也有人类评价。
2、Main Results
分析结果,本文发现,S&C-0.8具有最高的CF分数,也就是说,它生成的故事结尾是最贴合反事实条件的。它的PRE同样也高于Seq2Seq-GPT,也就是说,它生成的故事结尾与故事前提有一致性。但是,S&C-0.8的PLOT分数却低于Seq2Seq-GPT,这是因为,Seq2Seq-GPT具有复制的策略,我们前面说过,这可能会带来错误。
我们也看到S&C比R&C的表现更好,这就是说,使用因果骨架是有意义的。
提权后的S&C-0.8的CF分数比原来的S&C-0.5分数高,一方面是因为提权减少了数据不平整度,另一方面,增加权重使生成的因果骨架中包含更多的空格,减少了生成的限制。
数据增强后的S&C-0.8在所有维度的评价分数都高于不做数据增强的S&C-w/o-Aug。
四、Conclusion
总结一下,本文从因果关系角度重新审视了文本生成任务,将文本分为背景内容和因果内容,分别和故事前提以及改变的反事实条件有关。于是,本文提出了Sketch-and-Customize模型来提高因果分析能力,最后通过大量实验成功验证了本模型的有效性。