近年来,深度学习在自然语言处理(NLP)领域取得了革命性进展,其中 BERT 的出现标志着双向语言建模的强大能力。然而,BERT 也存在一些局限性,限制了其在生成任务中的表现。2019 年,由 Google 和 Carnegie Mellon University 联合提出的 XLNet 模型,通过引入 排列语言建模(Permuted Language Modeling, PLM) 和 Transformer-XL 结构,打破了 BERT 的瓶颈,并在多个 NLP 任务中实现了超越。
本文将从 XLNet 的核心概念、设计原理、优势与局限 等方面,详细介绍这款强大的预训练语言模型。
1. XLNet 是什么?
XLNet 是一种基于 Transformer 的预训练语言模型,旨在结合自回归模型(如 GPT)和自编码模型(如 BERT)的优势,解决 BERT 的以下局限性:
- 预训练和微调不一致:BERT 的
Masked Language Model
(MLM)依赖于遮掩的[MASK]
token,但在微调时[MASK]
不存在,导致不一致。 - 上下文利用有限:BERT 只能预测被遮掩 token,而未显式建模所有 token 的联合分布。
为此,XLNet 提出了 排列语言建模,并结合了 Transformer-XL 的记忆机制,实现了对更长上下文的建模和对联合概率分布的显式优化。
2. 核心创新:排列语言建模(Permuted Language Modeling, PLM)
传统的语言模型训练目标通常是固定的:
- 自回归模型(如 GPT):从左到右依次预测下一个 token。
- 自编码模型(如 BERT):遮掩部分 token,然后预测这些 token。
(1) 排列语言建模的核心思想
XLNet 使用随机排列的方式改变 token 的预测顺序,例如:
- 对于序列
x = [x1, x2, x3, x4, x5]
,生成随机排列[x3, x1, x2, x5, x4]
。 - 按照排列的顺序,模型依次预测 token(如预测
x3
时仅考虑排列中x1, x2
)。
通过排列语言建模,XLNet 显式优化了 token 的联合概率分布:
P ( x ) = ∏ t = 1 T P ( x z t ∣ x z 1 , . . .