Attribute Alignment: Controlling Text Generation from Pre-trained Language Models:利用属性标签指导属性文本生成

主要工作

在本文中,我们提出了属性对齐,将属性表示注入到预先训练的无条件 LM 中,而不改变 LM 参数。然而,由于在大规模预训练期间属性信号并未使用 LM 进行训练(Johnson et al., 2016;Keskar et al., 2019),因此我们引入了一个对齐函数来将属性表示桥接到 LM,以便它可以解释属性表示中的权重。

简单来说,先使用LM对属性建模,然后使用属性对齐将其融合指导文本生成

image.png

带对齐函数的属性表示(A)

这段论文描述了一种属性对齐方法,它通过先运行预训练的语言模型来获取属性的隐藏状态。接着使用一个对齐函数(记为 F F F),该函数实现为带有非线性连接的多层感知机(MLP),以获得对齐的属性表示。具体来说,在Transformer架构中,隐藏状态以键值对的形式表示,属性表示对齐后的键值对由下式给出:

K t ′ , V t ′ = [ F ( K a ) ; K t ] , [ F ( V a ) ; V t ] K'_t, V'_t = \left[ F(K_a); K_t \right], \left[ F(V_a); V_t \right] Kt,Vt=[F(Ka);Kt],[F(Va);Vt]

其中, K a , V a K_a, V_a Ka,Va 来自于属性短语 x a x_a xa 在语言模型 L M LM LM 中的表示,而 K t , V t K_t, V_t Kt,Vt 来自于在生成的句子中直到时间步 t t t 的标记在 L M LM LM 中的表示。然后,我们可以根据原始Transformer模型计算注意力和输出。

在训练期间,预训练的语言模型(LM)被冻结,并且在带有属性 a a a的数据集上计算语言建模损失,以训练对齐函数 F \mathcal{F} F。因此,损失函数如下:

L A = − ∑ t = 0 l log ⁡ p ( x t ∣ a , x : t ) \mathcal{L}_A = -\sum_{t=0}^{l} \log p(x_t | a, x_{:t}) LA=t=0llogp(xta,x:t)

在这里,我们仅更新对齐函数的参数,使用梯度来进行更新。图1展示了模型架构。在推断时,所有从提示开始的tokens都会注意到通过训练后的对齐函数转换的目标属性表示,除此之外还有标准的自注意力来生成下一个token。直观上,这可以被认为是一个条件性的语言模型,因为所有的tokens现在都可以注意到对齐的属性表示。

如何消除不相关属性的问题。

学习到的对齐函数在预训练的语言模型(LM)中桥接了属性表示。然而,在训练数据中我们并没有分离不同的特征。例如,如果我们在情感控制的电影评论数据集上训练对齐函数,那么 F \mathcal{F} F在对齐情感属性表示后,会同时编码情感和电影评论风格。因此,目标属性表示可能会变得模糊。为了解决这个问题,我们提出了两种分离方法。

与语料库表示一同进行属性表示消歧的方法(AC)

我们提议在训练期间添加一个语料库域表示 d d d来与属性表示 a a a一同进行消歧。对于包含多个属性(如正面和负面情绪)的训练语料库(如电影评论), d d d在所有训练数据中使用,而 a a a只在标有目标属性的训练数据子集中使用。类似于Liu和Lapata(2018)的工作,这可以鼓励模型将目标属性和其他特征分别编码成不同的表示。具体来说,键值对可以表示为:

K t ′ ′ , V t ′ ′ = [ F ( K a ) ; F d ( K d ) ; K t ] , [ F ( V a ) ; F d ( V d ) ; V t ] K''_{t}, V''_{t} = \left[ F(K_{a}); F_{d}(K_{d}); K_{t} \right], \left[ F(V_{a}); F_{d}(V_{d}); V_{t} \right] Kt′′,Vt′′=[F(Ka);Fd(Kd);Kt],[F(Va);Fd(Vd);Vt]

其中, F d F_{d} Fd是用于语料库域表示的独立对齐函数,而 K d , V d K_{d}, V_{d} Kd,Vd来自于语料库域名称的LM编码。与属性相比,语料库域名称可能更抽象,因此我们对 d d d使用特殊的标记(如<movie review>)和原始文本中的属性(如athlete)。在推断时,我们想要生成给定任何(包括域外)提示的连贯句子。因此,我们在令tokens注意到属性表示的同时忽略语料库表示,此外还有正常的自注意力,如方程1所示。

贝叶斯消歧(ACB)

为了进一步消除不同特征之间的混淆,我们使用贝叶斯法则来分离域相关分布与属性相关分布。根据贝叶斯定理(见附录A.1),我们有

p ( x ∣ a ) ∼ p ( x ∣ a , d ) ⋅ p ( x , a ) p ( x ∣ d ) ⋅ p ( a ∣ x , d ) p(x|a) \sim \frac{p(x|a, d) \cdot p(x, a)}{p(x|d) \cdot p(a|x, d)} p(xa)p(xd)p(ax,d)p(xa,d)p(x,a)

其中, p ( x ∣ a , d ) p(x|a, d) p(xa,d)是在属性和语料库域两者条件下生成句子的概率分布,而 p ( x ∣ d ) p(x|d) p(xd)是仅在语料库域条件下生成句子的概率分布。在训练期间,我们假设语料库中不同属性(例如电影评论中的不同情绪)的分布接近于均匀分布。因此,我们认为 p ( a ∣ x , d ) p(a|x, d) p(ax,d)对于来自语料库 d d d的给定句子 x x x是一个常数。同样,我们认为 p ( x , a ) p(x, a) p(x,a)是一个来自冻结的预训练LM,并且在任何句子上都有大致相当的属性分布,以逼近 p ( a ∣ x ) p(a|x) p(ax),类似于Li等人(2016)的做法。因此,我们通过消除其余部分来近似这个等式,其中的消除并不直接影响特定训练句子的目标条件分布。我们可以近似地在对数空间中计算所需的条件概率:

log ⁡ p ( x ∣ a ) ∼ log ⁡ p ( x ∣ a , d ) − log ⁡ p ( x ∣ d ) \log p(x|a) \sim \log p(x|a, d) - \log p(x|d) logp(xa)logp(xa,d)logp(xd)

在训练期间,我们通过在属性和域上条件化的LM上运行,训练属性和域对齐函数( F , F d \mathcal{F}, \mathcal{F}_d F,Fd),以及仅在域上条件化的LM上运行( p ( x ∣ a ) p(x|a) p(xa))。具体地,损失函数是:

L A C B = − ∑ t = 0 l [ log ⁡ p ( x t ∣ a , d , x : t ) + log ⁡ p ( x t ∣ d , x : t ) ] \mathcal{L}_{ACB} = -\sum_{t=0}^{l} \left[ \log p(x_t|a, d, x_{:t}) + \log p(x_t|d, x_{:t}) \right] LACB=t=0l[logp(xta,d,x:t)+logp(xtd,x:t)]

类似于其他提出的方法,这个损失用于更新 F \mathcal{F} F F d \mathcal{F}_d Fd。在推断时,根据Li等人(2016)的建议,我们使用一个超参数 λ \lambda λ来平衡两个分布。因此,我们从中采样tokens的分布是:

log ⁡ p ( x ∣ a ) ∼ log ⁡ p ( x ∣ a , d ) − λ log ⁡ p ( x ∣ d ) \log p(x|a) \sim \log p(x|a, d) - \lambda \log p(x|d) logp(xa)logp(xa,d)λlogp(xd)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青云遮夜雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值