如果你关注了近年来自然语言处理 (NLP) 的爆发式增长,你一定知道 Transformer 架构是这场革命背后的引擎。从 GPT-4 到 Claude,Transformer 似乎已经掌握了复杂的推理、编程和创意写作。但在研究界,一个根本性的问题仍然存在: 我们真的理解它们是如何学习的吗?

大量的理论工作探索了 Transformer 表示什么。例如,我们在数学上知道,Transformer 能够模仿一个 n-gram 语言模型 (一种基于前 \(n-1\) 个词来预测下一个词的简单模型) 。但仅仅因为神经网络在理论上表示某个函数,并不意味着它能通过梯度下降从数据中实际学习到该函数。

这引出了一篇引人入胜的论文,题为 “Can Transformers Learn n-gram Language Models?” (Transformer 能学会 n-gram 语言模型吗?) 。 研究人员 Svete, Borenstein 等人决定剥离自然语言的复杂性,在一个基础任务上测试 Transformer: 学习合成的 n-gram 分布。他们的结果揭示了关于 Transformer “归纳偏置 (inductive biases) ”的惊人见解——本质上也就是它们更倾向于学习什么样的模式。

在这篇文章中,我们将剖析他们的方法论、他们测试的不同类型的 n-gram 模型,以及为什么 Transformer 有时在某些方面难以击败 90 年代的统计技术,而在其他领域却能占据主导地位。

基础知识: 我们到底在测试什么?

在深入实验之前,我们需要建立基本规则。这篇论文将现代神经网络与经典统计模型在学习概率分布的任务上进行了对比。

语言模型 (LM)

从核心上讲,语言模型仅仅是文本字符串上的概率分布。如下面的公式所示,我们通常以自回归的方式定义它: 整个序列的概率是给定历史记录时每个 Token 概率的乘积。

公式 1: 自回归语言模型的定义。

在这里,\(\mathbf{y}_{

n-gram 假设

现代大型语言模型 (LLMs) 关注巨大的上下文窗口。然而,n-gram 模型做了一个简化的假设: 下一个 Token 的概率取决于前 \(n-1\) 个 Token。

公式 2: n-gram 假设。

如果 \(n=3\) (一个 trigram/三元模型) ,模型只关心最后两个词来预测第三个词。这种限制使得 n-gram 模型成为探索神经网络的绝佳“玩具问题”,因为我们可以完美地从数学上定义“真实 (Ground Truth) ”分布。

核心方法: 构建 n-gram 的两种方式

作者引入了一个至关重要的区分,这也是整篇论文的驱动力。定义 n-gram 模型有两种截然不同的方式,而 Transformer 对它们的反应也各不相同。

1. 通用 n-gram 语言模型 (即“查找表”)

想象一个模型,其中针对每一个可能的历史记录,下一个词的概率是完全任意的。

  • 如果历史记录是 “the cat”,下一个词 “sat” 的概率是 0.5。
  • 如果历史记录是 “a dog”,下一个词 “sat” 的概率是 0.01。

“the cat” 和 “a dog” 之间没有任何关系。它们只是海量数据库中独立的条目。在一个 通用 n-gram LM 中,每个上下文的参数都是独立的。不存在参数共享。要学习这个模型,模型只需计算 “sat” 跟在 “the cat” 后面出现的次数。

2. 基于表示的 n-gram 语言模型 (即“神经”方法)

现在,想象一个模型,其中历史记录被转换成一个向量 (一种表示) 。

  • “the cat” 可能生成向量 \(v_1\)。
  • “a dog” 可能生成向量 \(v_2\)。
  • 如果 \(v_1\) 和 \(v_2\) 相似,那么对下一个词的预测概率也会相似。

这被称为 基于表示的 n-gram LM 。 它使用一组共享参数 (输出矩阵 \(\mathbf{E}\) 和表示函数 \(h\)) 来计算概率。

公式 20: 基于表示的 n-gram LM 的定义。

在这个框架中,概率不是原始计数;它是应用于权重和隐藏状态点积的 Softmax 函数。

公式 4: Softmax 函数定义。

作者怀疑,因为 Transformer 是依赖于密集向量表示的神经网络,它们在处理“通用”类型 (纯粹的记忆/计数) 时会很吃力,但在“基于表示”的类型上会表现出色。

参赛选手

为了验证这一假设,研究人员组织了一场各类模型之间的“较量”。他们生成了合成数据集,其中的真实分布是特定的 n-gram 模型,然后尝试训练各种架构来恢复该分布。

基线: 经典平滑技术

在深度学习时代之前,NLP 依赖于计数。极大似然估计 (MLE) 是最简单的方法: 直接统计频率。

公式 10: 极大似然估计公式。

然而,当 MLE 在测试集中看到训练集中从未出现过的序列时 (赋予其零概率) ,它就失效了。为了解决这个问题,研究人员开发了 平滑 (smoothing) 技术。

  • Add-\(\lambda\) 平滑: 给所有项增加一个小的伪计数 (\(\lambda\)),使任何项的概率都不为零。
  • Witten-Bell & 绝对折扣 (Absolute Discounting) : 更复杂的方法,在更高阶 (如 trigram) 和更低阶 (如 bigram) 统计数据之间进行插值。

这些模型在深度学习意义上是“非参数化”的——它们不通过梯度下降学习权重;它们只是直接从数据中估计统计量。

神经挑战者

  1. 对数线性模型 (Log-Linear Model): 一个简单的回归模型,试图学习历史记录的“稀疏”表示 (独热编码) 的权重。
  2. 神经 n-gram LM: 一个标准的前馈神经网络,学习词的嵌入,将它们连接起来,并预测下一个词。
  3. Transformer: 本场主角。研究人员使用了不同大小 (层数和头数) 的 GPT-2 风格架构。

他们还引入了一种使用 Sparsemax 注意力的 Transformer 变体。与标准的 Softmax (给所有事物分配非零概率) 不同,Sparsemax 可以为不相关的词分配完全为零的注意力。理论工作表明,这应该有助于 Transformer 更严格地学习 n-gram 结构。

我们如何评判成功?

由于研究人员是合成生成的数据,他们掌握了“真实”概率分布,记为 \(p_n\)。他们想要测量训练好的 Transformer (\(p_\mathcal{T}\)) 与这个真值有多接近。

选择的度量标准是 Kullback–Leibler (KL) 散度

公式 5: KL 散度公式。

  • 低 KL 散度: 训练后的模型成功学会了语言的潜在规则。
  • 高 KL 散度: 训练后的模型未能捕捉到真实分布。

实验 1: Transformer 的归纳偏置

第一个主要结果来自对比这些模型学习“通用” (任意) n-gram LM 与“基于密集表示”的 LM 的效果。

通用 n-gram LM 中,每个上下文都是独立的。最佳策略就是计数。在 基于密集表示的 LM 中,符号共享参数 (概念上类似于词嵌入的工作方式) 。

让我们看看在 6-gram 数据 (\(n=6\)) 上训练的模型结果:

表 2: 经典模型、对数线性模型、神经模型和 Transformer 模型的比较。

“通用”列 (无参数共享)

请看“参数共享 (Parameter Sharing)”下方标为“No”的列。

  • 经典技术 (顶行) 实现了非常低的 KL 分数 (例如 3.04) 。它们在这个任务上表现极佳。
  • Transformer (TF) 在这里表现糟糕 (例如 67.06) 。
  • 解读: 当上下文之间没有底层结构或共享特征时,Transformer 很难逼近这种任意分布。它们并不是高效的查找表。

“基于表示”列 (有参数共享)

现在看标为“Yes”的列。

  • Transformer 的误差从约 67.0 骤降至约 4.6。它们变得非常高效。
  • 经典技术 表现尚可,但由于无法利用共享结构,它们触碰到了性能天花板。
  • 神经模型 (Neural 和 TF) 显著优于对数线性基线。

核心结论: Transformer 对基于表示的语言有很强的 归纳偏置 。 它们假设相似的输入应该产生相似的输出。当数据本质上是说“记住这些随机数字”时,Transformer 相比简单的计数方法会失败。但当数据说“学习隐藏特征”时,Transformer 就会大放异彩。

实验 2: 复杂性与规模

随后,研究人员增加了任务的复杂性。他们改变了 n-gram 的阶数 \(n\) (历史长度) 、词汇表大小 \(|\Sigma|\) 以及用于生成数据的矩阵的秩 \(R\)。

他们进行了一项回归分析,以此观察哪些因素会让 Transformer 的学习变得更困难。

表 1: 预测 KL 散度的因素。

表 4: 预测因子的统计显著性。

观察表 4,我们可以看到预测误差 (KL 散度) 的系数 (\(\hat{\beta}\)):

  1. Dense (-1.28): 这是最强的预测因子。如果数据集是密集的 (基于表示的) ,误差会大幅下降。这在统计上证实了实验 1 的结果。
  2. \(n\) (0.63): 随着 \(n\)-gram 阶数的增加,Transformer 的任务变得更难。
  3. 层数 (L) 和头数 (H): 注意 \(L\) (-0.33) 和 \(H\) (-0.15) 的负系数。这意味着增加更多的层和头会降低误差。这与理论相符,理论认为 Transformer 需要特定的深度/宽度来模拟特定的 \(n\)-gram 阶数。

实验 3: Softmax vs. Sparsemax

标准的 Transformer 使用 Softmax 注意力。这意味着当模型回顾历史时,它会以至少微小的概率关注每一个之前的 Token。

然而,n-gram 模型是严格的: 它只关心窗口 \(n-1\) 内的特定 Token,而不关心其他任何东西。理论上,一种能将权重设置为完全为零的注意力机制应该更擅长此道。

研究人员通过将 Softmax 替换为 Sparsemax 来测试这一点。

表 9: 比较 Softmax 和 Sparsemax 的性能。

表 9 的结果令人震惊。在几乎所有词汇表大小 (\(\Sigma\)) 和阶数 (\(n\)) 的配置下, Sparsemax Transformer (底行) 都比标准 Softmax Transformer 实现了更低的 KL 散度 (更低的误差) 。

这表明,对于学习形式语言和严格的逻辑结构,我们目前标准的 Transformer 架构 (使用 Softmax) 可能是次优的。能够完全忽略不相关信息是 Sparsemax 提供的一项强大能力。

结论: 这对 AI 意味着什么?

这就篇研究论文为我们如何看待大型语言模型提供了一次现实检验。

  1. Transformer 能表示,但它们不仅仅是在“计数”。 虽然 Transformer 在理论上可以表示任何 n-gram 模型,但它并不是一个好的“计数器”。如果你需要一个模型来严格记忆不相关事件的频率表,一个简单的 90 年代平滑 3-gram 模型实际上可能会击败一个小型的 Transformer。
  2. 秘诀在于参数共享。 Transformer 之所以表现出色,是因为它们假设世界是有结构的。它们假设历史的“特征”定义了未来的概率。这就是为什么它们能如此好地泛化到自然语言中,因为自然语言充满了这样的结构,这与本研究中生成的随机“通用” n-gram 分布不同。
  3. 架构很重要。 Sparsemax 注意力在这些实验中的优势暗示我们还没有完成对 Transformer 模块的优化。对于需要精确度和严格依赖跟踪的任务 (如形式逻辑或特定的语言规则) ,稀疏注意力机制可能掌握着通往更高性能的钥匙。

通过研究这些“玩具”模型,我们对驱动现代 AI 的庞大引擎有了更清晰的认识。它们不是魔法;它们是带有非常特定偏置的统计学习器——而这些偏置恰好与人类语言的结构完美契合。