通过编辑重建的离散扩散

在自然语言背景下,离散扩散模型都只使用替换操作(随机token或掩码token),以及词嵌入上的连续扩散。这篇论文提出一种更灵活的方法,使用四种编辑操作(插入、删除、保持、替换)。
DiffusionER
DIFFUSER是一种基于扩散的方法,主要有两个步骤:破坏和去噪。我们的破坏过程和去噪过程都是基于Levenshtein操作,允许我们的模型在生成时学习利用文本编辑的灵活性。

编辑操作

基于编辑的破坏
对于每个时间步长,破坏过程有两个分布参数化:编辑类型的分布(比如60%不变,20%替换,10%删除,10%插入),以及编辑长度的分布。编辑长度的分布可以用非负整数的任意分布来参数化,比如均匀分布或泊松分布。例如,为了在重建过程中学习删除操作,我们随机插入采样的诱导性tokens;为了学习添加操作,我们删除序列中包含的tokens的子集。
基于编辑的重建
生成过程是通过基于编辑的重建过程训练的。基于编辑的重建是破坏过程的对立面。在重建过程中,我们需要找到适当的编辑操作,通过\(X_{T-1},...,X_{1}\)将\(X_{T}\)转化为\(X_{0}\)。
也就是说,给定一个损坏的序列xT,我们的目标是学习以以下形式反转损坏的过程:
这个反转编辑重建过程可以视为两个步骤:
- 确定应该进行哪些编辑(比如增删改)————标记过程
- 确定哪些token应该放在这些位置————生成过程
如下所示:
其中,\(p_{\theta}^{tag}\) 是标记模型的参数,用于估计给定 \(x_{t}\)下,产生{增、删、改、保持}的可能性。
\(p_{\theta}^{gen}\) 参数表示给定序列 \(x_{t}\) 和编辑操作 \(e_{t}\) 的生成器模型。
这样分解使得生成过程更加灵活可控,因为它显式地指定了要编辑的token以及对应的编辑类型。
用transformers实现
transformer架构图

当用transformer实现时,DiffusER包含两个组件:标记器和生成器。
- 标记器是一个transformer网络,它用真实标签类型(增、删、改、不变)进行交叉熵损失训练,预测序列要进行的编辑操作,为生成步骤做准备。
- 在生成步骤中,先移除用于删除的token,然后 we sum a learned embedding to insert and replace types and generate the inserted and replaced sequences autoregressively.
- 接下来,我们将这个扩散步骤的输出输入标记器,并执行另一个扩散步骤。
该过程的一个步骤可以与Aghajanyan等人(2022)使用的重建过程进行比较。
CM3: A CAUSAL MASKED MULTIMODAL MODEL OF THE INTERNET(Aghajanyan等人(2022))
在提示上下文中,掩码语言模型和因果语言模型各有利弊。
掩码语言模型提供了双向性的能力,但代价是在训练中仅解码大约15%输入序列的token。
仅有解码器的因果语言模型解码输入序列的每个token,但通常仅限于左边的上下文。

为了充分利用这两方向的优点,引入了一个新的目标,结合了生成每个token的优点和专门为提示定制的可选双向性。
对于大小为s的文档,选择 n ∼ Clamp(Poisson(1), 1, 16) (均值为 1 的泊松分布,并且这些值会被限制在 1 到 16 的范围内)mask。
对于每个mask,选择跨度 m ∼ (Uniform(0, s), Uniform(0, s)) ,它不与其他 m 相交。
平均而言,选择相对较少的长跨度,我们期望这将允许模型学习填充长跨度。
然后,按照它们在原文档出现的顺序排序这些 masks ,用枚举的掩码token(mask:0,mask:1)替代原文档中的掩码跨度,并将掩码跨度移动到文档结尾,后跟一个唯一的文档结束token。

结果

浙公网安备 33010602011771号