Generating Sentences by Editing Prototypes
Kelvin Guu, Tatsunori B. Hashimoto, Yonatan Oren, Percy Liang
cs.CL, cs.AI, cs.LG, cs.NE, stat.ML
2017-09-26
Stanford用「先抽语料原型再神经编辑」做无条件语言模型,Yelp困惑度26.87对比LSTM的39.03,并且其编辑向量还能做句级类比。
2017 年的神经语言模型从空白从左到右吐词,容易塌成「I don't know」这类万能句。把温度拧高能换来多样性,语法往往一起垮。人写长句很少一遍成型,通常是先有草稿再改。
Stanford 的 Kelvin Guu、Tatsunori Hashimoto、Yonatan Oren、Percy Liang 把这个过程写成无条件生成模型:先从训练集均匀抽一句原型,再由 neural editor 按随机 edit vector 改成新句。语料里的句子本来就语法完整、长短不齐、没有「短而空」的偏置;编辑器只要对着原型做局部修改,比从零生成容易得多。
他们在 Yelp 上数过:测试集 70% 的句子能在训练集里找到词集合 Jaccard 距离小于 0.5 的邻居,几乎没有一字不差的重复。大部分测试句都可以看成对某句训练句的小改。
句子 x 的似然是对所有原型 x' 与编辑向量 z 的边缘化,算不清。训练用两层下界。
原型求和只留词面相近的邻居:Jaccard 距离小于 0.5 的训练句,用 LSH 和 minhash 预计算。250 对人评里,这类邻居 35.2% 被判成严格复述,84% 至少大致等价,改成否定或换题的只有 7.2%。词面近在评论语料里大多语义也近。
z 的期望用 ELBO:再训一个 inverse neural editor q(z|x',x),专门猜「什么样的 z 会把 x' 改成 x」。编辑器是 3 层双向 LSTM 编码器加 3 层带 attention 的 LSTM 解码器,每步把 z 拼进解码输入。q 把插入词与删除词的 GloVe 向量分别求和再拼接,方向加 von Mises-Fisher 噪声,长度加均匀噪声。先验是长度 Unif(0,10)、方向在单位球上均匀。κ 直接控制 KL 项大小,κ=0 时 KL 可压到接近 0。
测试时对找不到邻居的稀有句,用权重 0.1 与普通 NLM 线性平滑,相当于偶尔抽一个能改成任意句的空原型。
| 模型 | Yelp 困惑度 | BillionWord 困惑度 |
| KN5 | 56.55 | 78.36 |
| NLM(LSTM) | 39.03 | 55.15 |
| NLM+KN5 | 37.31 | 47.47 |
| NeuralEditor(κ=0) | 26.87 | 48.76 |
Yelp 上它低于 NLM 约 12 点,也低于 NLM 与 5-gram 的最佳集成。BillionWord 邻近句更少,它仍低于单独 NLM,但没超过 NLM+KN5。只检索不编辑的 Memorization 集成几乎帮不上忙。
400 条人评里,编辑器在温度 1、不做退火时,语法和「像不像会出现在语料里」已经能追上调过温度的 NLM,unigram 熵还更高。温度降下去,语法略升、多样性不怎么掉。原因很直接:多样性来自抽到的原型,解码器就算贪心也不会塌成同一句。
对 He 等人的句法变换,模型给恒等映射最高概率(每词负对数似然 0.33),to 从句换位 1.62,主动被动 3.27,随机打乱 4.42,改成无关句 6.07。
语义上,反复随机编辑走出的句子链 1% 与原型无关;句 VAE 要么原样重复,要么一步跳到无关句。把同一 edit vector 搬到新句上做词级类比,top-10 命中率接近 GloVe 做单词类比的水平,SVAE 的 top-k 接近 0。
这是检索增强生成在无条件语言模型上的一次早期完整表述:训练时对输出空间做近邻边缘化,推理时「先找草稿再改」。后来的 RAG、retrieval-augmented LM、基于编辑的 paraphrase 和文本风格迁移,都能在这里看到骨架。
对现在做可控生成的人,edit vector 比整句潜向量好用:局部变化比全局句子流形更容易学。论文自己也说,编辑的局部变化比句子的全局变化更好建模。
放到今天,LSTM 骨架和 Jaccard 邻居当然旧了。想法没有过期:生成器不必从空白采样,可以从语料里已有的好句子出发。
没有单独的局限节。困惑度用的是邻居下界再加平滑,不是精确似然,跨模型比较要打折。邻居阈值 0.5 是人为的,语义评价主要在 Yelp,换到开放域会弱一截。BillionWord 上它没赢集成基线,说明原型策略吃「测试句离训练集近」这块红利。SVAE 基线是 2016 年的句 VAE,后面对抗崩溃的技巧没包含进来。人评没有给出可直接引用的均分数字,只描述了相对关系。