xlnet

2次阅读

共计 4721 个字符,预计需要花费 12 分钟才能阅读完成。

Autoregressive 和 Autoencoding

假如输出序列为 $(w_1,w_2,w_3,w_4,w_5)$。

Autoregressive

autoregressive 模型应用前 t - 1 个单词预测第 t 个单词,指标函数如下,
$$\max_{\theta} \log p_{\theta}(\mathbf{x})=\sum_{t=1}^{T}\log p_{\theta}(x_t|\mathbf{x}_{<t})$$
长处:

  1. = 而非 $\approx$, 能够严格推到
  2. no discrependency
  3. 思考被预测单词之间的依赖关系

毛病:

  1. 不能同时思考双向信息(要么从左到右,要么从右到左)

Autoencoding

autoencoding 模型,应用未被 mask 掉的单词预测被 mask 掉的单词,指标函数如下,
$$\max_{\theta} \log p_{\theta}(\overline{\mathbf{x}})|\hat{\mathbf{x}})\approx\sum_{t=1}^T m_t \log p_{\theta}(x_t | \hat{\mathbf{x}}) $$
其中,$\overline{\mathbf{x}}$ 示意句子中被 mask 掉的单词,$\hat{\mathbf{x}}$ 示意句子中没有被 mask 掉的单词。$m_t$ 示意如果输出句子的第 t 个单词被 mask 掉,则为 1,否则为 0。

长处:

  1. 能同时思考双向信息

毛病:

  1. Independent Assumption 没有思考被 mask 掉的单词的相关性(即独自地思考被 mask 掉的单词);
  2. Training 和 Testing 之间存在 Discrependency(在训练时,输出有 mask token,然而在预测时没有)。

两种模型取其精华,去其糟粕。

改良

使 Autoregressive model 能够同时思考双向信息

具体做法是应用Permutation Language Model

对于长度为 $T$ 的序列,有 $T!$ 种排列。为了缩小计算复杂度,对所有的 permutation 进行采样,最初计算冀望。
$$\max_{\theta}\mathbb{E}_{z\sim \mathcal{Z}_T}[\sum_{t=1}^{T}\log p_{\theta}(x_t | \mathbf{x}_{<t})]$$
其中,$\mathcal{Z}_T$ 示意所有可能的 permutation。
训练时,还是应用一部分词去预测另一部分词,然而会思考相关性。
在具体实现时,输出单词的程序是不扭转的,通过引入 attention mask,起到 permutation 的成果。

图 2
例如,对于一个输出 $(x_1,x_2,x_3,x_4)$,对单词 $x_3$ 进行预测,当 permutation 为 $(x_3,x_2,x_4,x_1)$ 时,通过 attention mask 使得 $h_3$ 只会思考 $mem$,即求 $p_{\theta}(x_3|mem)$;当 permutation 为 $(x_2,x_4,x_3,x_1)$ 时,$h_3$ 会思考 $mem$、$x_2$ 和 $x_4$ 的信息,即求概率 $p_{\theta}(mem,x_2,x_4)$。

target aware

假如应用规范的 softmax 来示意 next-token 的散布,即给定前 t - 1 个单词,第 t 的单词的概率 $p_\theta(x_{z_t}|\mathbf{x}_{z_{<t}})$,
$$p_\theta(x_{z_t}=x|\mathbf{x}_{z_{<t}})=\frac{exp(e(x)^Th_{\theta}(\mathbf{x}_{z_{<t}}))}{\sum_{x^{‘}}exp(e(x^{‘})^Th_{\theta}(\mathbf{x}_{z_{<t}}))}$$
其中,$h_{\theta}(\mathbf{x}_{z_{<t}})$ 示意 permutation z 种前 t - 1 个单词的组成的序列的 hidden representation。显然,$h_{\theta}(\mathbf{x}_{z_{<t}})$ 不蕴含 predict word $x_{z_t}$ 的地位信息,这样就会造成在预测 predict word 的散布时,没有思考它在句子中的地位信息,从而使得如果两个不同的单词,在句子中的地位不同,然而在不同 permutation 中的地位雷同(sequence position 不同然而 factorization position 雷同),则这两个单词预测的概率分布也会雷同。例如,
存在两个不同的 permutation $z^{(1)}$ 和 $z^{(2)}$,满足 $z^{(1)}_{<t}=z^{(2)}_{<t}=z_{<t}$,然而 $z^{(1)}_t = i \neq j=z^{(2)}_t$,尽管单词 $x_i$ 和 $x_j$ 不同,然而却具备雷同的预测值,这显然是不正确的。
为此,xlnet 提出了 target position aware next-token distribution。
$$p_\theta(x_{z_t}=x|\mathbf{x}_{z_{<t}})=\frac{exp(e(x)^T g_{\theta}(\mathbf{x}_{z_{<t}},z_t))}{\sum_{x^{‘}}exp(e(x^{‘})^Tg_{\theta}(\mathbf{x}_{z_{<t}},z_t))}$$
其中,$g_{\theta}(\mathbf{x}_{z_{<t}},z_t)$ 额定思考了 taget position $z_t$。

地位信息

接下来须要思考如何定义 $g_{\theta}(\mathbf{x}_{z_{<t}},z_t)$。应用规范的 transformer 架构会有如下问题。

  1. 在预测单词 $x_{z_t}$ 时,$g_{\theta}(\mathbf{x}_{z_{<t}},z_t)$ 该当晓得单词 $x_{z_t}$ 的地位信息 $z_t$ 然而不能晓得单词的内容;
  2. 当预测单词 $x_{z_j},(j>t)$,$g_{\theta}(\mathbf{x}_{z_{<t}},z_t)$ 须要晓得单词 $x_{z_t}$ 的内容(因为单词 $x_{z_t}$ 是单词 $x_{z_j}$ 的上下文,对单词 $x_{z_j}$ 预测时,须要晓得其上下文的内容)。

这就产生了矛盾,举例来说。例如,输出序列为 $(x_1,x_2,x_3,x_4)$,须要对 $x_2$ 和 $x_4$ 进行预测,此时 permutation 为 (3,2,4,1)。当预测 $x_2$,心愿模型只能晓得 $x_2$ 的地位信息然而不能晓得 $x_2$ 的内容,然而预测 $x_4$ 又心愿晓得 $x_2$ 的内容,即既不心愿 $g_2$ 蕴含 $x_2$ 的内容,又心愿 $g_2$ 蕴含 $x_2$ 的内容。这就产生了矛盾。

图 3

Two-Stream Self Attention

xlnet 的解决办法是,应用两种 hidden representation。

  1. content representation $h_{\theta}(\mathbf{x}_{\leq t})$
  2. query representation $g_{\theta}(\mathbf{x}_{z_{<t}},z_t)$

其中,content representation $h_{\theta}(\mathbf{x}_{\leq t})$ 与规范的 transfomer 中的 hidden state 一样,都编码了单词 $x_{z_t}$ 本身的内容信息和其上下文的内容信息。query representation $g_{\theta}(\mathbf{x}_{z_{<t}},z_t)$ 蕴含单词 $x_{z_t}$ 其上下文的内容信息和其地位信息。
能够将这两种 representation 类比 word2vec 模型中的 context embeding 和 target embedding。content representation $h_{\theta}(\mathbf{x}_{\leq t})$ 能够看作是单词 $x_{z_t}$ 作为其它单词的上下文(context)时,应用的 hidden state;query representation $g_{\theta}(\mathbf{x}_{z_{<t}},z_t)$ 能够看作是单词 $x_{z_t}$ 作为被预测的 token(target)时,应用的 hidden state。
如图 4(c)所示,在输出层,$h^{(0)}$ 为单词的 embedding,$g^{(0)}$ 为随机初始化的向量。

图 4

图 5

图 6
query representaion 和 hidden representation 在前向流传中的计算形式为
$$g^{(m)}_{z_t}=Attention(Q=g^{(m-1)}_{z_t},KV=h^{(m-1)}_{z_{<t}};\theta)$$
$$h^{(m)}_{z_t}=Attention(Q=h^{(m-1)}_{z_t},KV=h^{(m-1)}_{z_{\leq t}};\theta)$$
如图 4(c)所示在计算 query representaion$g^{(m)}_{z_t}$ 时不会应用到单词本身的内容信息,对应的 attention mask,其主对角线上的值为 0;在计算 hidden representaion$h^{(m)}_{z_t}$ 时,会应用到单词本身的内容信息,对应的 attention mask,其主对角线上的值不为 0。

xlnet 抉择的 Autoregressive Model 时 Transfomer-XL,引入 Transfomer-XL 的两大个性:relative positional encoding schemasegment recurrence mechanism
对于 xlnet 的输出,假设又两个 segment,$\tilde{\mathbf{x}}$ 和 $\mathbf{x}$,别离对两个 segment 进行 permutation,并且前一个 segment 的 hidden state 会被后一个 segment 应用。

训练采纳 partial prediction

xlnet 通过应用 permutation language modeling,使得模型能够同时思考双向的信息(上下文),然而也带来了一些问题。(1)permuation 数量大,可通过采样解决;(2)在一个 permutation 中地位靠前的单词,其上下文的长度是很短的,对这些单词进行预测,收益不大,因而 xlnet 在训练模型时,只对 permutation 中靠后的单词进行预测,即采纳 partial prediction 的做法。
这样做的益处是,(1)靠后的单词,上下文长度较长,因而对样本的利用较为充沛;(2)只对虑靠后的大量单词进行预测(假如为后 $c$ 个的单词),因而没必要计算前 $c$ 个单词的 query representation(前 $c$ 个单词全副充当的是上下文的角色,因而只需计算 hidden representation),极大地缩小了计算量。
指标函数为,
$$\max_{\theta}\mathbb{E}_{z\sim \mathcal{Z}_T}[\log p_{\theta}(\mathbf{x}_{z_{>c}}|\mathbf{x}_{z_{\leq c}})]=\mathbb{E}_{z\sim \mathcal{Z}_T}[\sum_{t=c+1}^{|z|}\log p_{\theta}(x_{z_t})|\mathbf{x}_{z_{<t}}]$$

正文完
 0