查看全课大纲(第 4 / 69 节)
  1. 1.NLP 的研究领域、应用与学习路径
  2. 2.自然语言的基本术语
  3. 3.信息论基础:信息熵与交叉熵
  4. 4.语言的进化与语义变迁
  5. 5.主观概率、客观概率与条件概率
  6. 6.贝叶斯原理与推理
  7. 7.随机变量:二项式、期望方差与联合概率
  8. 8.常见概率分布
  9. 9.辛普森悖论与贝叶斯解题实例
  10. 10.语言模型:语言概率与词袋模型
  11. 11.n-gram 语言模型(二元 / 三元 / N-Gram)
  12. 12.语言模型评价:交叉熵、困惑度与插值
  13. 13.朴素贝叶斯文本分类:垃圾邮件
  14. 14.拼写检查
  15. 15.中文分词:构词法、最大匹配、最优路径与 Jieba
  16. 16.词表示问题与语义相似度
  17. 17.TF-IDF 权重处理
  18. 18.One-Hot 表达与词表示的局限
  19. 19.Word2Vec 核心思想
  20. 20.Word2Vec 训练过程
  21. 21.Skip-gram 模型详解
  22. 22.词性标注任务与标注方法(规则 + N-Gram)
  23. 23.EM 算法与混合模型
  24. 24.高斯混合模型 GMM
  25. 25.从混合模型到隐马尔可夫模型
  26. 26.隐马尔可夫模型(HMM)推导与维特比解码
  27. 27.线性链条件随机场 CRF
  28. 28.贝叶斯网络与图模型
  29. 29.隐马尔可夫链与 HMM 推导
  30. 30.PLSA 主题模型
  31. 31.LSI 与 SVD 向量表达
  32. 32.LDA 与狄利克雷分布
  33. 33.主题模型实验复现(困惑度 / 分类 / 相似度 / 延展)
  34. 34.上下文无关文法(CFG)与句法分析
  35. 35.概率上下文无关文法 PCFG
  36. 36.统计机器翻译:词对齐与翻译模型
  37. 37.统计机器翻译中的对齐模型与参数估计
  38. 38.从统计机器翻译到神经机器翻译
  39. 39.神经元与反向传播速览(指向深度学习课)
  40. 40.CNN 原理及其在 NLP 中的应用
  41. 41.循环神经网络的基本原理与 Elman / Jordan 网络
  42. 42.LSTM:长短期记忆网络的核心思想与分步实现
  43. 43.Encoder-Decoder 框架
  44. 44.Seq2Seq 与早期注意力机制
  45. 45.注意力机制的背景与动机
  46. 46.注意力模型实现原理与匹配函数
  47. 47.记忆网络:组成与计算
  48. 48.注意力机制的应用与历史延展
  49. 49.Transformer 结构:Encoder-Decoder 栈与 Self-Attention
  50. 50.Multi-Head Attention、FFNN 与位置编码
  51. 51.层归一化、损失函数与 Universal Transformer 延展
  52. 52.预训练范式:从 ELMo 到 BERT
  53. 53.BERT 与掩码语言模型
  54. 54.BERT 下游任务微调与 GLUE 口径
  55. 55.GPT 与自回归语言建模
  56. 56.GPT-1 到 GPT-4 的演进
  57. 57.指令微调与 RLHF
  58. 58.分词器:BPE、WordPiece 与中文词表
  59. 59.上下文窗口与长文本处理
  60. 60.能力边界、成本与适用场景
  61. 61.文本分类实战:从朴素贝叶斯到逻辑回归
  62. 62.命名实体识别实战
  63. 63.文本生成与摘要实战
  64. 64.语义检索与向量库实战
  65. 65.RAG 知识库问答
  66. 66.NLP 评估指标:BLEU / ROUGE / BERTScore 与人工评估
  67. 67.幻觉与事实性问题
  68. 68.文本与知识结合(知识图谱压缩)
  69. 69.跨媒体信息检索与未来展望

语言的进化与语义变迁

小象实战讲义 · 自然语言处理

语言并非一成不变的化石,而是随着社会使用、技术进步和文化演变而不断进化的活体。理解语言的动态性,对于我们构建能够处理真实、多变文本的自然语言处理系统至关重要。本节我们将从历史语言学的研究出发,探讨语言在语法、语义层面的进化规律,并介绍如何用数学模型来刻画和模拟这些过程,为后续学习语言模型和词表示打下基础。

💡 核心导读

  • 语言是动态的:从动词的规则化到新词义的诞生,语言始终在进化,其变化规律可以用定量方法研究。
  • 语义会变迁:词语的含义并非固定,会随着时间、社会事件和技术发展而改变,这为词义消歧和词表示带来了挑战。
  • 语言游戏模型:我们可以用数学和计算模型(如进化博弈论)来模拟语言如何从无到有地产生,以及交流如何达成。
  • 信息论基础:交叉熵和KL散度不仅是衡量语言模型性能的工具,其背后也蕴含着最优编码的思想,与语言的效率性紧密相连。

语言学简史:从规定语法到普遍语法

要理解语言为什么会“变”,先要知道语言学曾经怎样看待语言。这条线索大致有五段。

逻辑与语言(19 世纪末—20 世纪初)。语言与推理的关系最早由逻辑学承接:三段论(Syllogism)给出“大前提—小前提—结论”的演绎结构;Frege 在《概念文字》中把“如果—那么”等联结词形式化,P → Q 等价于 ¬P ∨ Q,也等价于 ¬(P ∧ ¬Q),命题因此可以像代数式一样变换。但朴素集合论很快暴露出形式化的边界:罗素悖论(“不属于自身的集合构成的集合”)说明并非任何可定义的集合都能自洽存在。这条脉络把语言的意义、真值与形式规则绑在一起,是后来用数学工具刻画语言的先声。

规定语法(18—19 世纪)。以拉丁语为模板,判断什么说法“正确”、什么说法“错误”,目标是教人写出合乎规范的句子。它关心的是应然,不关心实然——这正好解释了为什么早期语法书对英语不规则动词的“退化”视而不见。

结构主义描写语言学(20 世纪初)。Saussure 在《普通语言学教程》(1916)中把语言学从规定转向描写,提出 langue(语言系统)与 parole(言语行为)的区分、能指与所指的任意性、组合关系与聚合关系两条轴;Bloomfield(1933)进一步用分布分析把音位、语素切分出来。这一派的方法论遗产至今还在——语料统计、共现分析、分布假设,都是从这条脉络里长出来的。

生成语法(1957 年起)。Chomsky《句法结构》把语言能力(competence)与语言运用(performance)分开,提出深层结构与表层结构的转换,并用 “Colorless green ideas sleep furiously” 说明:一句话可以完全合乎语法却毫无意义,语法性不等于可解释性。1980 年代的原则与参数框架进一步提出普遍语法假设——人类语言共享一套抽象原则,具体语言只在参数上不同。这一假说至今仍有争论,但它把“语言为何能无限生成”变成了可形式化的问题,直接催生了上下文无关文法与后来的句法分析。

语义学的转向。范畴并不总有充分必要条件:Rosch 在 1970 年代提出原型理论,“鸟”这类范畴以原型成员为中心、边缘成员靠相似度归入;Zadeh 1965 年提出的模糊集合则用隶属度刻画“边界不清”的概念(0.7 属于“高”)。这两条线索合起来解释了 NLP 里的多层级歧义:词汇层(“bank”)、句法层(PP 附着)、语义层(“大”对大象与蚂蚁的标准不同)、语用层(反讽)。歧义不是模型的缺陷,而是语言本身在多个层级上都留了余地。

从动词的规则化看语言进化

语言进化的一个经典案例是英语不规则动词的“规则化”过程。哈佛大学的 Martin Nowak 教授团队在 2007 年发表于《自然》杂志的研究,对此进行了定量分析。

他们追踪了 177 个古英语中的不规则动词(如 sing/sang/sung)在过去 1200 年间的变化。研究发现:

  1. 不规则动词在减少:这 177 个动词中,有 145 个在中古英语时期仍保持不规则,而到现代英语,仅剩 98 个。
  2. 使用频率决定进化速度:一个动词越不常用,它“规则化”(即变为加 -ed 的规则形式)的速度就越快。具体而言,一个使用频率低 100 倍的动词,其规则化速度要快 10 倍。不规则动词的“半衰期”与其使用频率的平方根成正比。
  3. 下一个可能消失的动词:根据模型预测,下一个可能完全规则化的动词是 wed(结婚),其过去式 wed 正逐渐被 wedded 所取代。

这个研究揭示了语言进化中的一个重要原则:实用性驱动简化。高频词因其强大的认知固化效应而更顽固地保持不规则形态(如 be, have, go),而低频词则更容易被新兴的、更简单的通用规则(如加 -ed)所同化。这种现象不仅存在于英语,在许多语言的形态变化中都能观察到类似的规律。

这给我们的启示是:在构建处理历史文本或预测语言变化的NLP系统时,必须考虑词语的历时频率变化,而不能假设其语法属性是静态的。

语义的时空漂流:词义如何变迁

如果说语法规则在缓慢简化,那么词语的语义则像河流一样,始终处于动态漂流之中。同一个词在不同时代、不同语境下,所指代的概念可能截然不同。

一个著名的研究案例是对“Apple”一词的语义追踪。通过分析《纽约时报》数十年的语料,研究者构建了词的语义空间,并观察“Apple”在这个空间中的位置移动:

  • 在1990年代早期,“Apple”的邻近词是 cream、chocolate、tart、strawberry、pear,显然与“水果”紧密相关。
  • 到了2005-2009年,它的位置开始靠近 tablet、iTunes、iPod、Microsoft、Google。
  • 到2016年,它已稳定在 wireless、Google、Samsung 等科技词汇区域。

类似的变迁也发生在“Amazon”(从河流到电商巨头)、“mouse”(从动物到鼠标)、“cell”(从细胞到电池)等词上。中文里也有同类现象:“网”在“渔网”“网络”“网球”三类语境中的邻词分布各自成簇,语义向量的重心随语料年代明显迁移——同一个字面,在不同的语境簇里指的不是同一件事。

语义变迁对NLP的挑战:

  1. 词义消歧:一个词在当下可能有多个含义(如“苹果”指水果还是公司?),而历史文本中可能还有已消亡的旧义。
  2. 词表示:静态的词向量模型(如Word2Vec)无法捕捉词义随时间的变化。需要引入历时词嵌入或上下文感知的动态模型。
  3. 信息检索与理解:基于关键词的搜索系统可能无法理解用户查询中的词在当前语境下的真实含义。

语言游戏:用数学模型模拟交流的起源

语言是如何产生的?两个人如何通过一串声音或符号达成理解?哲学家维特根斯坦提出了“语言游戏”的概念,认为交流就像在玩一个游戏,成功的关键在于双方大脑中能激发出相似的“图像”或概念。

我们可以用进化博弈论和噪声信道模型来数学化地模拟这个过程。

基本思想:

  • 假设有两个智能体(Agent):说话者(Speaker)和听话者(Hearer)。
  • 存在一个共享的“概念空间”,其中分布着各种物体(如不同形状、颜色、大小的图形)。
  • 说话者看到一个物体 X,试图用一组语言标签 L(如“左上、大的、紫色三角形”)来描述它。
  • 听话者接收到标签 L,根据自己的理解,在脑海中重构出一个物体 X'。
  • 交流的目标是让 X' 尽可能接近 X。成功的交流会带来“奖励”(更高的适应度),促使智能体调整其“标签-概念”的映射关系,最终使得社群内形成一套稳定的、可互理解的符号系统。

模拟实验: 在一个模拟实验中,研究者让两个智能体通过多次交互来学习如何用标签描述虚拟空间中的物体。最初,听话者重构的物体与原始物体相去甚远。但经过约100轮的交互和学习(调整对标签如“大”、“紫色”、“左上”的定义),听话者重构的物体在形状、位置、颜色和大小上都与说话者意图描述的物体高度一致。

这个模型深刻地揭示了:

  • 语言的首要功能是交流:降低个体间信息交换的成本是语言最核心的效用之一(而不是唯一效用——表达情感、标识身份、组织思维同样成立)。
  • 共识通过迭代达成:没有先验的“正确”映射,只有通过反复试错和调整形成的社群共识。
  • 为后来的编码理论提供了直觉:如何用最经济(最短)的符号来指代最常见的事物?这个问题在二十世纪中叶被香农形式化,成为信息论与最优编码的起点;语言游戏的模拟则给出了它的“前史直觉”,而不是它的历史基础。

从摩斯电码到信息论:语言的效率性

语言游戏模型关注“能否交流”,而信息论则关注“如何高效交流”。摩斯电码是这一思想的早期实践。

观察摩斯电码表会发现:

  • 最常用的字母 E 和 T,编码最短(E 是“·”,T 是“-”)。
  • 最不常用的字母如 Z(--··)、Q(--·-),编码较长。
  • 这种设计使得传输一篇英文文章所需的平均点数/划数最小化。

这背后的数学原理是最优编码(如霍夫曼编码):给出现概率高的符号分配短的码字,出现概率低的符号分配长的码字,从而使整体信息的平均编码长度最短。

与NLP的关联:

  • 交叉熵:衡量当我们使用一个概率分布 Q(例如我们的语言模型预测的分布)来编码来自真实分布 P 的数据时,所需的平均编码长度。交叉熵越小,说明我们的模型 Q 越接近真实分布 P,编码效率越高。
  • KL散度:衡量两个分布 P 和 Q 之间的差异。它等于使用 Q 编码 P 所需的平均额外比特数。在语言模型中,我们努力最小化模型分布与真实数据分布之间的KL散度。

一个简化的例子: 假设有一种语言 P,其词汇 A, B, C 的出现概率分别为 1/2, 1/4, 1/4。它的一组合法霍夫曼编码是 A:0, B:10, C:11——每个码字都不是另一个码字的前缀,所以任意一串码都能唯一地切分回符号序列;平均编码长度为 0.5*1 + 0.25*2 + 0.25*2 = 1.5 比特,恰好等于 P 的熵。 如果另一种语言 Q 的概率分布是 1/4, 1/2, 1/4(B 变成最常见的词),按 Q 设计的最优编码会变成 B:0, A:10, C:11。若仍用这套“为 Q 优化的码”去传输 P 的数据,平均长度升到 0.5*2 + 0.25*1 + 0.25*2 = 1.75 比特。 多出来的 0.25 比特,正是 D_KL(P||Q)。这里之所以能精确相等,是因为三者的概率都是 2 的整数次幂,码长与理想长度 -log2 Q 完全一致;一旦概率不是 2 的幂,整数码长就会和理想长度差开(这一点在后面的练习里会看到)。它量化的是:用错配的编码去传输真实数据,平均要多付多少。

在NLP中,当我们训练语言模型时,本质上就是在寻找一个模型分布,使其对训练数据(真实分布的样本)的交叉熵最小,即用最“经济”的方式建模和预测语言。

📝 动手练一练

  1. 概念辨析:语言进化中的“规则化”现象(如不规则动词减少)与语义变迁(如“Apple”词义变化)背后的主要驱动因素有何不同?请简要说明。

  2. 编码计算:假设在一个微型语言中,符号 X、Y、Z 的出现真实概率 P 为 [0.5, 0.3, 0.2]。我们为 P 设计了一套编码:X->0, Y->10, Z->11。 a) 计算这套编码在真实分布 P 下的平均编码长度,并说明它为什么恰好等于 P 的熵。 b) 现在我们错误地把分布估成 Q = [0.2, 0.5, 0.3],并据此重新设计一套最优编码(Y->0, Z->10, X->11),仍用这套码去传输真实分布 P 的数据。平均码长是多少? c) 计算 b) 与 a) 的差值。这个差值是不是 D_KL(P||Q)?若不是,真正的 KL 是多少,两者为什么会差开?

👉 点击查看参考答案
  1. 规则化的主要驱动因素是认知经济性与使用频率。高频词因重复强化而抵抗变化,低频词则更容易被更简单、通用的规则系统同化,从而降低学习和记忆成本。语义变迁的主要驱动因素则是社会、文化、技术的外部变化。新事物、新概念的出现,以及社会事件的冲击,会导致一个词所指代的对象或关联的意象发生根本性改变。

  2. 计算过程: a) 码长分别为 X:1、Y:2、Z:2,故 L_a = 0.5*1 + 0.3*2 + 0.2*2 = 1.5 比特。P 的熵 H(P) = 0.5*1 + 0.3*1.7370 + 0.2*2.3219 ≈ 1.4855 比特。L_a 略高于 H(P):本例 0.3、0.2 都不是 2 的整数次幂,霍夫曼码长必须为整数,不可能逐符号达到理想长度 -log2 P_i,所以不恰好等于熵。 b) 按 Q 重排后,最高频的 Y(0.5) 取 1 位,Z(0.3)、X(0.2) 各取 2 位:Y->0, Z->10, X->11。用它传输 P 的数据:L_b = 0.5*2 + 0.3*1 + 0.2*2 = 1.7 比特。 c) 差值 1.7 - 1.5 = 0.2 比特,它不是 KL 散度,而是“两套具体整数码”的平均码长差。精确的 KL 是: - 交叉熵 H(P,Q) = 0.5*2.3219 + 0.3*1 + 0.2*1.7370 ≈ 1.8084 比特 - D_KL(P||Q) = H(P,Q) - H(P) ≈ 1.8084 - 1.4855 = 0.3229 比特

    两者差开的原因很清楚:KL 比较的是**理想码长**,而霍夫曼只能给整数码长。第一套码比 `H(P)` 多花 `1.5 - 1.4855 ≈ 0.0145` 比特;第二套码反而比交叉熵**少**花 `1.8084 - 1.7 ≈ 0.1084` 比特(`X` 拿到 2 位、比理想 2.3219 短,`Z` 拿到 2 位、比理想 1.7370 长,加权后净省)。两笔偏差一抵,`0.2 = 0.3229 - 0.1229`。所以“平均码长差 = KL”只在概率恰为 2 的幂时成立,一般情况下只是近似。

    还有一处常被写错的秩序:1.7 ≥ H(P) = 1.4855 一定成立(任何唯一可译码的平均码长都不低于信源熵),但 1.7 与交叉熵 1.8084 之间没有必然大小关系——本例里它反而更小,这正是整数码长带来的偏差,不能拿来当定理用。

本章小结

本节我们穿越了语言的时空长廊,看到它并非静止的体系,而是充满活力的进化实体。我们从历史数据中量化了语法规则的简化趋势,从语料追踪中目睹了词义的漂流变迁。更重要的是,我们学习了用“语言游戏”和“信息论”这两种强大的数学模型来理解语言的根本:交流的效率与共识的达成。

这些知识为我们后续的学习奠定了关键视角:

  1. 任何NLP模型都必须对语言的动态性和歧义性保持敬畏。
  2. 词表示和语言模型的核心目标之一,是找到高效、准确刻画语义和句法规律的方法。
  3. 评价模型好坏的指标(如困惑度、交叉熵)背后,有着深刻的信息论和概率论原理。

📋 行动清单

  • 尝试在网上找一份英文动词列表,区分哪些是规则动词(加-ed),哪些是不规则动词,思考它们的使用频率。
  • 选定一个词(如“直播”、“内卷”),思考它在过去十年中语义发生了怎样的变化,并尝试分析变化的原因。
  • 理解交叉熵和KL散度的直观含义:它们不仅是损失函数,更是衡量“用错误地图导航”所付出代价的尺子。

—— 小象教研组