bert模型原理详解:带你读论文8篇论文梳理BERT相关模型进展与反思
bert模型原理详解:带你读论文8篇论文梳理BERT相关模型进展与反思为了说明 XLNet 与 BERT 的区别,作者举了一个处理“New York is a city”的例子。这个可以直接通过两个模型的公式得到。假设我们要处理 New York 这个单词,BERT 将直接 mask 这两个 tokens,使用“is a city”作为上下文进行预测,这样的处理忽略了 New 和 York 之间的关联;而 XLNet 则通过 permutation 的形式,可以使得模型获得更多如 York | New is a city 这样的信息。图5:XLNet 与 BERT 的区别示例图4:Recurrence Mechanism 机制该机制来自 Transformer-XL,即在处理下一个 segment 时结合上个 segment 的 hidden representation,使得模型能够获得更长距离的上下文信息。而在 XLNet 中,虽然在前端采用相对位置编
Two-Stream Self-Attention
图3:Two-Stream Self-Attention 机制
该机制所要解决的问题是,当我们获得了 g_θ (x_{Z<t} z_t) 后,我们只有该位置信息以及“上文”的信息,不足以去预测该位置后的 token;而原来的 h_θ (x_{Z<t}) 则因为获取不到位置信息,依然不足以去预测。因此,XLNet 引入了 Two-Stream Self-Attention 机制,将两者结合起来。
Recurrence Mechanism
图4:Recurrence Mechanism 机制
该机制来自 Transformer-XL,即在处理下一个 segment 时结合上个 segment 的 hidden representation,使得模型能够获得更长距离的上下文信息。而在 XLNet 中,虽然在前端采用相对位置编码,但在表示 h_θ (x_{Z<t}) 的时候,涉及到的处理与permutation 独立,因此还可以沿用这个机制。该机制使得 XLNet 在处理长文档时具有较好的优势。
XLNet 与 BERT 的区别示例
图5:XLNet 与 BERT 的区别示例
为了说明 XLNet 与 BERT 的区别,作者举了一个处理“New York is a city”的例子。这个可以直接通过两个模型的公式得到。假设我们要处理 New York 这个单词,BERT 将直接 mask 这两个 tokens,使用“is a city”作为上下文进行预测,这样的处理忽略了 New 和 York 之间的关联;而 XLNet 则通过 permutation 的形式,可以使得模型获得更多如 York | New is a city 这样的信息。
公平地比较 XLNet 与 BERT
为了更好地说明 XLNet 的优越性,XLNet 团队发表了开头提到的博文“A Fair Comparison Study of XLNet and BERT”。
在这篇博文中,XLNet 团队控制 XLNet 的训练数据、超参数(Hyperparameter)以及网格搜索空间(Grid Search Space)等与 BERT 一致,同时还给出了三个版本的 BERT 进行比较。BERT 一方则使用以下三个模型中表现最好的模型。
实验结果如下。