在受限文本生成 (Constrained Text Generation) 任务中,我们需要根据一些特定的信息 c 来生成目标文本 x,用数学的话说就是 p(x∣c)。但是我们无法得到足够多的语料对 (x,c) 去直接监督一个条件语言模型,而只能训练一个无条件的语言模型 p(x),但是我们可以设计一个指标来定量的描述 x 和 c 之间的联系。
举例来说,用关键词造句,那么 x 就是关键词的集合,我们可以定义示性函数:
X(x,c)={1, 如果x包含关键词集c0, 如果x不包含关键词集c.
继而定义
ρ(x,c)=p(x)X(x,c)
其中的 p(x) 保证了生成句子的流畅性,X(x,c) 保证了生成句子包含要求的关键词,那么问题就变成最大化操作 argmaxxρ(x,c) 或采样操作 x∼ρ(x,c)。当然,这个地方还不是真正的概率,需要归一化后才是真正的概率分布 (概率分布需要确保积分为 1)
∑xρ(x,c)ρ(x,c)=∑xp(x)χ(x,c)p(x)χ(x,c)
对于类似的文本摘要任务,我们可以定义:
ρ(x,c)=p(x)⋅sim(x,c)⋅X(x,c)
这里的 sim(x,c) 是某个文本相似度函数,而 X(x,c) 是一个长度的示性函数,即 x 在一定长度范围内为 1,否则为 0。我们在做文本生成时就可以对上述分布进行采样,或 者求最大值。