在自然语言处理 (NLP) 的世界里,我们经常惊叹于 Transformer 等大型语言模型 (LLM) 的复杂架构。我们分析注意力机制、前馈网络和巨大的参数量。然而,我们经常忽略这些模型那个朴实无华的“前门”: 分词 (Tokenization)

字节对编码 (BPE) 或 SentencePiece (Unigram) 等标准分词方法是目前的行业标准。它们是强大的统计工具,旨在高效地压缩文本并限制词表大小。然而,它们有一个主要缺陷: 它们实际上并不理解被拆分的单词。它们是基于频率而非含义来拆分单词的。

例如,标准分词器可能会将单词 “unhappiness” 拆分为 unhappiness——这看起来不错。但它同样可能将一个罕见词拆分成掩盖其词根含义的无意义碎片。这在单词的统计表示与其语言学现实 (形态学) 之间造成了脱节。

本文将深入探讨 Jindřich Libovický 和 Jindřich Helcl 撰写的一篇引人入胜的论文 “Lexically Grounded Subword Segmentation” (基于词汇语义的子词分割) 。 这些研究人员提出了一种新颖的框架,强迫分词器尊重单词的含义——将子词与实际的词素对齐——同时不牺牲现代神经网络所需的效率。

问题所在: 当统计学忽略了含义

目前最先进的分词器是“形态学盲”的。它们的运作原则是合并出现频率最高的字符序列。虽然这对于像英语这样的高资源语言效果很好,但对于形态丰富的语言 (如捷克语、土耳其语或芬兰语) 或低资源场景,往往会失效。

当分词器将一个单词打碎成随机片段时,模型必须付出更多努力来学习这些片段构成了一个单一的概念。这篇论文的作者认为,一个好的分词应当保留统计方法的效率 (对罕见词的拆分多于常见词) ,但要确保子词边界与实际的词素边界相匹配

三步走框架

为了解决这个问题,研究人员将分词重新概念化为一个三步过程,而不是单一的黑盒操作。

图 1: 我们将子词分词学习组织为四个步骤: 预分词、词表学习、推理和用于提高效率的蒸馏。黄色高亮的步骤 (1)-(3) 是本文的具体贡献。

如上图 1 所示,该流程允许在不同阶段进行干预:

  1. 预分词 (Pre-tokenization) : 我们最初如何分割原始文本 (通常通过空格或标点符号) 。
  2. 词表构建 (Vocabulary Construction) : 构建可用 token 的列表 (使用 BPE 或 Unigram) 。
  3. 分割 (Segmentation) : 使用词表决定如何切分特定单词的实际算法。

作者在每个层面都引入了创新,我们将详细拆解。

第 1 步: 更智能的预分词

标准流程通常将文本预分词为“类词”单元——基本上是通过空格和标点符号进行分割。这假设“空格”字符是含义的终极边界。

作者建议在这一步使用 Morfessor , 这是一种无监督的形态分割工具。他们不是将原始单词输入给分词器,而是输入经过语言学分析并拆分为词素 (morphemes 的表层形式) 的文本。

通过使用 Morfessor 作为预处理步骤,随后的词表构建 (BPE 或 Unigram) 将从语言学上有意义的单元开始,而不是任意的字符串。这确保了在神经网络看到任何 token 之前,数据就已经建立在形态学基础之上了。

第 2 步: 基于词汇语义的分割 (核心方法)

这是论文的核心部分。一旦我们有了词表,我们要如何决定如何切分一个单词?标准方法是最大化序列的概率。而作者建议最大化语义相似度

假设很简单: 一个词及其子词应当共享相同的含义。

为了实现这一点,作者开发了一种数学方法来计算子词嵌入 (subword embeddings) , 这些嵌入与词嵌入处于同一向量空间中。

推导子词嵌入

研究人员使用经典的 Skip-gram 模型 (Word2Vec) 作为基础。在 Skip-gram 中,训练词嵌入是为了预测上下文词。作者观察到,Skip-gram 模型的训练目标本质上是试图逼近单词的归一化共现矩阵。

从数学上讲,如果 \(E\) 是输入嵌入矩阵,\(W\) 是输出矩阵,模型试图满足:

公式近似

这里,\(C\) 是单词共现矩阵。

研究人员将这一逻辑扩展到了子词。他们保持输出矩阵 \(W\) 固定 (来自预训练的词模型) ,并试图找到一个新的矩阵 \(E_s\) (子词嵌入) 。他们定义了一个“分割矩阵” \(A\),用于映射哪些子词属于哪些单词:

分割矩阵 A 的定义

如果子词 \(s\) 是单词 \(x\) 的一部分,则值为 1。利用这一点,他们寻找一个子词嵌入矩阵 \(E_s\),以满足子词与原始单词上下文之间的关系:

子词 Softmax 近似

通过使用最小二乘近似求解,他们推导出了一个闭式解,可以为任何子词生成嵌入:

Es 的公式

通俗地说: 这个公式允许研究人员为任何子词 (如 “ing” 或 “un”) 生成一个向量,该向量在数学上代表了它对包含它的完整单词含义的贡献。

基于相似度的分割算法

有了这些有意义的子词嵌入,分割算法也随之改变。算法不再问“最频繁的切分是什么?”,而是问“哪种切分方式最能保留单词的含义?”

算法寻找一个子词序列 \(s_1, s_2, \dots, s_n\),使得完整单词的嵌入 \(E(x)\) 与子词嵌入 \(E_s(s_i)\) 之间的余弦相似度最大化。

评分公式为:

相似度评分公式

\(\alpha\) 参数作为一个长度惩罚项。没有它,如果碎片与词根非常相似,模型可能倾向于将单词切分成极小的碎片。惩罚项迫使模型保持高效——在保持高语义相似度的同时,尽可能少地使用子词。

第 3 步: 蒸馏为二元组模型

上述方法在语言学上很美妙,但在计算上很繁重。它在推理过程中需要预训练的词嵌入、Morfessor 处理以及复杂的矩阵运算。这对于高速生产环境来说并不理想。

为了弥合“语言学纯粹”与“计算快速”之间的差距,作者提出了一个蒸馏步骤 (图 1 中的第 3 步) 。

  1. 他们在一个大型语料库上运行繁重的、基于嵌入的分割。
  2. 他们计算子词如何在这些高质量分割数据中相互跟随的统计数据 (二元组/Bigrams) 。
  3. 他们构建了一个子词二元组模型 (Subword Bigram Model)

在推理时,这个轻量级模型只需根据从“智能”模型中学到的二元组统计数据来预测最可能的分割。这保留了大部分的形态学质量,却没有繁重的计算成本。


实验与结果

研究人员根据标准 BPE 和 Unigram 模型评估了他们的新分词器,名为 LEGROS (Lexically Grounded Subword Segmentation,基于词汇语义的子词分割) 。他们在 9 种语言上进行了测试,包括捷克语、英语、法语和俄语。

1. 内在评估: 词素边界

最直接的测试是检查分词器是否真的在词素边界处切分单词。为此,他们使用了 SIGMORPHON 2022 共享任务数据集。

图 2: SIGMORPHON 2018 测试集中捷克语在不同词表大小下的边界精确率、召回率和 \\(\\mathrm { F _ { 1 } }\\) 分数。更多其他语言请参见附录中的图 3。

图 2 显示了捷克语的结果。实线代表标准方法,而虚线代表这种新的基于嵌入的方法。

  • 精确率 (左图) : 基于嵌入的方法 (特别是 Morfessor 预分词) 始终达到更高的精确率。这意味着当模型进行切分时,它很有可能是一个真实的语言学边界。
  • 召回率 (中图) : 随着词表大小的增加 (x 轴) ,所有方法的召回率都会下降 (因为更大的词表意味着总体切分更少) 。然而,LEGROS 方法仍然具有竞争力。

结论很明确: 基于词汇语义的分割显著提高了 token 的形态学合理性。

2. 外在评估: 词性标注 (POS Tagging)

为了观察这种“语言学正确性”是否有助于神经网络,他们在词性标注 (POS) 任务上测试了分词器。这项任务非常依赖于理解形态学 (例如,识别出 “-ed” 暗示过去时态) 。

表 2: 词性标注的测试准确率。最后一列显示了平均归一化准确率 (减去特定语言的均值并除以特定语言的标准差后) 。蓝黄配色比例尺适应每列的数值范围。更详细的结果和其他基线见附录表 9。

表 2 显示了各种语言的结果。 “Aggr.” 列 (归一化准确率) 说明了一切。所提出的方法 (标记为 “Ours”) 始终优于 “Orig.” (原始 BPE/Unigram) 基线。

  • Morfessor + Bigram (Ours) 获得了最高的聚合得分( 0.7450.712 )。
  • 这证实了为模型提供形态学上准确的 token 有助于它更好地理解语法结构。

3. 外在评估: 机器翻译

最后,他们将分词器应用于使用 IWSLT 2017 数据集的机器翻译 (MT) 任务。这是一个比 POS 标注复杂得多的任务。

表 3: IWSLT 2017 的 18 个语言对与平均 chrF 分数的平均偏差。蓝黄配色比例尺适应全表的数值范围。

这里的结果 (表 3) 更加微妙。这些值代表与平均 chrF 分数 (一种基于字符的指标) 的偏差。

  • 性能没有出现巨大飞跃。所提出的方法 (“Ours”) 与标准 BPE 和 Unigram 表现相当。
  • 在某些情况下,Morfessor 预分词实际上有显著帮助 (见底部的绿色单元格) ,但在其他情况下,影响微乎其微。

作者诚实地总结道,虽然他们的方法提高了形态学的正确性,但这并不自动转化为更好的翻译分数。然而,改进后的分割提供了更好的可解释性 , 并且在低资源场景中 (每个 token 都很宝贵) 可能具有更好的性能。

结论

论文 “Lexically Grounded Subword Segmentation” 为 NLP 中经常被视为理所当然的一个组件提供了令人耳目一新的视角。通过将语言学知识 (通过 Morfessor) 和语义基础 (通过子词嵌入) 注入分词过程,作者成功创建了一个尊重语言结构的系统。

虽然它可能还无法在通用机器翻译中取代 BPE,但它在 POS 标注和形态边界检测方面的成功证明了含义很重要

对于学生和研究人员来说,这项工作凸显了未来的几个不同方向:

  1. 可解释性: 基于有意义子词训练的模型更容易让人类分析。
  2. 效率: “蒸馏”技术证明了我们可以使用复杂、缓慢的方法来训练快速、轻量级的推理模型。
  3. 低资源语言: 对于数据稀缺的语言,依靠形态学而不是仅仅依靠频率统计可能是前进的道路。

这项研究提醒我们,统计相关性不等于理解——将一点点语言学带回深度学习可以产生结构上更优越的模型。