自然语言处理与大模型
第 1 章 绪论
基本概念
术语理解
自然语言理解是探索人类自身语言能力和语言思维活动的本质,研究模仿人类语言认知过程的自然语言处理方法和实现技术的一门学科。它是人工智能早期研究的领域之一,是一门在语言学、计算机科学、认知科学、信息论和数学等多学科基础上形成的交叉学科。(宗成庆,黄昌宁)
计算语言学是通过建立形式化的计算模型来分析、理解和生成自然语言的学科,是人工智能和语言学的分支学科。计算语言学是典型的交叉学科,其研究常常涉及计算机科学、语言学、数学等多个学科的知识。与内容接近的学科自然语言处理相比较,计算语言学更加侧重基础理论和方法的研究。 (常宝宝)
自然语言处理是研究如何利用计算机技术对语言文本(句子、篇章或话语等)进行处理和加工的一门学科,研究内容包括对词法、句法、语义和语用等信息的识别、分类、提取、转换和生成等各种处理方法和实现技术。(宗成庆,黄昌宁)

研究内容(传统划分)

问题挑战
- 语言中大量存在不确定性——歧义 (ambiguity)
- 语言表达中大量地使用缩略语和隐喻。
- 大量存在未知的语言现象
- 新词 、人名、地名、 术语、网络用语等;
- 新含义;
- 新用法和新句型等。
- 知识表示和获取的复杂性
- 知识(尤其常识)往往是模糊、隐蔽、密切关联地通过自然语言描述的。
- 不同语言之间存在概念差异
- 由于历史、文化、宗教和思维方式等差异导致语义概念不对等。
- 关于
“理解” 的标准 - 如何判断计算机系统的智能?——图灵实验
(Turing test)
- 如何判断计算机系统的智能?——图灵实验
- 人脑是如何学习 、 记忆和理解语言的?
- 语言学、心理学
- 认知科学、神经科学
- 计算机科学
- 统计学、信息论
- 背景知识、常识等
技术方法

理性主义
通过对一些代表性语句或语言现象的研究得到对人的语言能力的认识,归纳语言使用的规律,以此分析、推断测试样本的预期结果 。
基本思路 :基于规则的分析方法建立符号处理系统
- 设计规则 :N + N → NP
- 标注词典 :#工作, N(uc); V;
- 推导算法 :归约、推导、歧义消解方法…
知识库 + 推理系统 → NLP 系统
经验主义
利用大规真实语言数据,借助人的帮助(标注数据和筛选特征等),统计发现语言使用的规律及其可能性(概率)大小,以此为依据计算预测测试样本的可能结果。统计单元是离散事件(词、短语、词性等 )。
问题求解思路:基于大规模真实数据 建立统计学习模型
- 收集标注数据:真实性、代表性、标注……
- 统计建型:模型的复杂性、有效性、参数训练……
语言数据收集、标注 + 统计模型 → NLP 系统
连接主义
利用超大规模真实语言数据,统计发现语言使用的规律及其可能性(概率)大小,以此为依据计算预测测试样本的可能结果。统计单元采用连续的实数空间表示(向量),充分利用和精细刻画大范围上下文信息,建立统一的模型框架。
问题求解思路:基于大规模真实数据 建立深度学习模型
- 收集标注数据:真实性、代表性、标注……
- 神经网络建模:模型的复杂性、有效性、参数训练……
大数据 + 大模型 + 大算力 → NLP 系统
以机器翻译为例
- 基于规则的方法


- 统计翻译方法


- 基于神经网络的翻译方法


课程内容


第 2 章 统计学习基础
概率论略览

随机过程(stochastic process)

随机过程的平稳性 (stationary)


例如今天的人民日报内容与昨天的人民日报内容从统计学的角度来说是一致的。
随机过程的遍历性 (ergodic)

遍历性的核心思想是:对于某些随机过程,从
我们可以通过一个经典的比喻来理解:
- 集合平均:想象一下,你想知道全国
30 岁男性的平均身高。 - 方法
A(集合平均):在某个特定时间点,你找来了 1 万名 30 岁的男性,测量他们的身高然后取平均。这相当于对随机过程(30 岁男性的身高)在所有可能的样本(所有 30 岁男性) 上求平均。 - 这个平均值是理论上的期望值。
- 方法
- 时间平均:现在,换一种方法。
- 方法
B(时间平均):你选定一个男孩,从他出生开始,每年在他生日那天测量他的身高,一直测到他 60 岁。然后,你从他 30 岁那年的测量值开始,取到 40 岁,这 10 个数据的平均值作为 “30 岁男性平均身高” 的估计。 - 这相当于对随机过程(这个男性的身高变化)在时间轴上求平均。
- 方法
那么问题来了:方法
如果答案是
齐夫定律
在自然语言的大规模文本数据上统计,一个单词出现的频率与它在频率表中的名次(序号)成反比 。
例如,在 100 万单词的 Brown 语料库中,the 出现的频率最高,出现了 69971 次,占比大约 7 %,名列第一。 单词 of 出现了 36411 次,占比约为 3.5%, 名列第二。 and 出现了 28852 次,约占 2.9%, 名列第三 。 粗略的规律是:按词频顺序,第 r (r
一般而言,假设词汇 w 出现的频率为

从统计结果看,少数高频词占了整个语料规模的大部分比例,而大部分词汇属于低频词 。 这种现象通常被称为长尾效应 (long tail effect), 相应的词汇称为长尾词
信息论基础
熵 (entropy)

熵表示随机变量 X 每个具体取值
联合熵 (joint entropy)

联合熵实际上就是描述一对随机变量平均所需要的信息量。
条件熵 (conditional entropy)

连锁规则:H(X, Y) = H(X) + H(Y|X)
相对熵 (relative entropy)
或称
Kullback-Leibler divergence, K-L 距离,或 K-L 散度

相对熵常被用以衡量两个随机分布的差距。当两个随机分布相同时, 其相对熵为
交叉熵 (cross entropy)

交叉熵衡量的也是两个模型分布之间的差异。


由此,我们可以根据模型 q 和一个含有大量数据的 L 的样本来计算交叉熵。在设计模型 q 时,我们的目的是使交叉熵最小,从而使模型最接近真实的概率分布
p(x)。
相对熵和交叉熵的对比分析
交叉熵
= 熵 + 相对熵 在机器学习中,经常用
p(x) 表示真实数据的概率分布,由于真实数据的概率分布往往无法获得,所以一般通过大量的训练数据来近似。 假设我们通过某个模型得到了训练数据的概率分布
q(x),由于真实数据的概率分布 p(x) 往往是不变的,因此最小化交叉熵 H(p, q) 等效于最小化相对熵 D(p||q)。 习惯上机器学习算法中通常采用交叉熵计算损失函数 。
困惑度 (perplexity)

语言模型设计的任务就是寻找困惑度最小的模型,使其最接近真实的语言分布。
互信息 (mutual information)


互信息

由于
理论上,互信息值越大,表示两个汉字之间的结合越紧密,越可能成词。反之,断开的可能性越大。当两个汉字
统计学习概念
统计学习方法
- 数据驱动
- 对数据进行预测与分析
- 以方法为中心构建模型
统计学习类型
- 监督学习 (supervised learning)
- 给定有限的、人工标注好的大量数据,假设这些数据是独立同分布产生的训练集, training data)
- 假设要学习的模型属于某个函数的集合,即假设空间 (hypothesis)
- 应用某(些)个评价准则 (evaluation criterion),从假设空间中选取最优的模型使其对已知的训练数据和未知的测试数据 (test data)
在给定的评价准则下有最优的预测
- 非监督学习 (unsupervised learning)
- 半监督学习 (semi supervised learning)
- 强化学习 (reinforcement learning)
监督学习
一般步骤: ①获得一个有限的训练数据集合 ②确定包含所有可能的模型的假设空间,即学习模型的集合 ③确定模型选择的准则,即学习的策略 ④通过学习方法选择最优模型 ⑤利用学习到的最优模型对新数据进行预测或分析
问题的形式化:

模型的类别
生成式方法 (generative model)

区分式 / 判别式方法 (Discriminative Model)

相关概念
- 语料 (corpus)/ 语料库 (corpus base):语言资源(数据集)
- 训练集 (training data):用于模型参数训练
- 开发集 (development data):用于模拟测试,优化参数
- 测试集 (test data):测试模型或模型实际处理的数据
- 过拟合 (overfitting):模型只在训练集上性能优良
- 欠拟合 (under-fitting) :模型在训练集上性能远未达到最优
- 鲁棒性 (robustness): 测试集的差异对模型性能影响不大
常用的统计模型

最大熵模型及应用
问题提出
任何一种语言中,一词多义(歧义)现象是普遍存在的。如何区分不同上下文中的词汇语义,就是词汇歧义消解问题,或称词义消歧 (word sense disambiguation, WSD) 。 词义消歧是自然语言处理中的基本问题之一。

解决思路
每个词表达不同的含意时其上下文(语境)往往不同,也就是说,不同的词义对应不同的上下文,因此,如果能够将多义词的上下文区别开,其词义自然就明确了。 词义消歧变成一个上下文分类任务。

基本的上下文信息:词、词性、位置。
最大熵分类器
基本原理
在只掌握关于未知分布的部分知识的情况下,符合已知知识的概率分布可能有多个,使熵值最大的概率分布能够最真实地反映事件的分布情况。由于熵定义了随机变量的不确定性,当熵最大时,随机变量最不确定 。 也就是说,在已知部分知识的前提下,关于未知分布最合理的推断应该是符合已知知识最不确定或最 大随机的推断 。
最大熵模型的核心思想非常直观且深刻:在满足已知事实(约束条件)的所有可能模型中,选择那个
我们可以通过一个简单的例子来理解:
问题: 预测一个骰子每个面朝上的概率。
- 没有任何信息时(零约束): 我们只知道这是个六面骰子。那么最公平、最不会引入任何主观偏见的假设就是:每个面朝上的概率都是 1/6。这个分布(均匀分布)就是熵最大的分布。任何其他的分配方式(比如认为
1 点概率更大)都是我们在没有证据的情况下强加的假设。 - 已知一个信息时(一个约束): 现在我们通过观察得知:“点数为
1 的概率是点数为 2 的概率的两倍”,即 P(1) = 2P(2)。 那么,在所有满足 P(1) = 2P(2) 的概率分布中,我们选择最均匀的那个。计算结果是: P(1) = 2/7, P(2) = 1/7, P(3) = 1/7, P(4) = 1/7, P(5) = 1/7, P(6) = 1/7。 这个分布就是满足该约束下的最大熵分布。我们没有对 3、4、5、6 点做任何额外的假设,所以让它们保持相等。 哲学解读: 最大熵原理承认我们所知道的(约束条件),但对未知部分不做任何主观假设,保持最大的不确定性。这是一种非常保守和稳健的建模原则。
让熵最大是对未知分布推断最合理的准则。换句话说,推断未知分布合理的做法是将已知的先验知识作为约束,让未知分布的熵最大。
模型定义




经推导,有:

确定特征函数



举例:

如果上下文条件由如下三类信息表示: ⑴特征的类型:词形、词性、词形+词性,3
特征选择一般有三种方法: ①从候选特征集中选择那些在训练数据中出现频次、超过一定阈值的特征 ②利用互信息作为评价尺度从候选特征集中选择满足一定互信息要求的特征 ③利用增量式特征选择方法 (Della Pietra et al )
获取λ参数
利用

GIS


整个过程

条件随机场及应用
模型提出
在
基本思想:给定观察序列 X ,输出标识序列 Y ,通过计算
模型定义





具体解释如下:
1. 核心思想:什么是 CRF?
简单来说,CRF
我们可以拆解这三个关键词来理解:
- 判别式模型:
- 与生成式模型(如朴素贝叶斯、隐马尔可夫模型)不同,判别式模型直接学习条件概率 P(Y|X),即给定输入序列 X,输出最可能的标签序列 Y。
- 打个比方:生成式模型是学习
“每个动物长什么样(P(特征|类别))”,然后根据样子来分类;判别式模型是直接学习 “如何区分猫和狗(P(类别|特征))”。CRF 关心的是给定一句话(观测序列 X),最可能的词性标注序列(标签序列 Y)是什么,而不去建模这句话本身产生的概率 P(X)。
- 概率图模型:
- CRF
使用一个无向图(通常是线性链)来表示变量之间的依赖关系。 - 图中的节点代表随机变量(标签 Y 和观测 X),边代表变量之间的依赖关系。
- CRF
- 条件随机场:
- “条件”
体现在模型是直接对 P(Y|X) 建模。 - “随机场”
可以理解为一组随机变量,它们在一个图结构中,其联合概率分布可以由图的势函数来定义。
- “条件”
CRF
2. 数学模型:CRF 如何工作?
我们以最常用的线性链条件随机场 为例,它非常适合序列问题。
2.1 图结构
线性链
1 | |
Y1, Y2, ..., Yn构成一个线性链,表示标签序列。Yi与Yi-1和Yi+1直接相连。X1, X2, ..., Xn是观测序列。- 每个标签
Yi都依赖于整个观测序列 X(理论上),但在实践中,通常只依赖于当前时刻的观测Xi或一个局部窗口。
这个结构意味着,标签序列 Y 的联合概率,在给定观测序列 X 的条件下,是由这个图结构所定义的。
2.2 特征函数和能量函数
CRF
CRF
- 状态特征函数:关联一个单个的标签节点
Yi和观测序列 X。- 形式:
s_l(Yi, X, i) - 含义:在位置 i,当标签为
Yi,并且观测序列是 X 时,这个特征有多强。 - 例子:在词性标注中,一个特征函数可能是:
如果单词 Xi 以,那么返回 1,否则返回 0。‘-ing’ 结尾,并且标签 Yi 是 ‘动词 (VBG)’
- 形式:
- 转移特征函数:关联一对相邻的标签节点
(Yi-1, Yi)和观测序列 X。- 形式:
t_k(Yi-1, Yi, X, i) - 含义:在位置 i,当从上一个标签
Yi-1转移到当前标签Yi,并且观测序列是 X 时,这个特征有多强。 - 例子:在词性标注中,一个特征函数可能是:
如果前一个标签 Yi-1 是,那么返回 1,否则返回 0。‘冠词 (DT)’,并且当前标签 Yi 是 ‘名词 (NN)’
- 形式:
每个特征函数 f_m(可以是状态特征 s_l 或转移特征 t_k)都有一个对应的权重 λ_m,这个权重在训练中学得。权重表明了该特征的重要性。正权重意味着我们鼓励这种情况出现,负权重意味着我们抑制这种情况。
2.3 条件概率公式
结合所有特征函数和它们的权重,线性链
- 指数内部:对序列中每一个位置 i,将所有状态特征和转移特征的加权和累加起来。这个和可以看作是整个标签序列 Y 和观测序列 X 的
“兼容度得分”。 - Z(X):归一化因子,也称为配分函数。它确保所有可能的标签序列 Y 的概率之和为 1。
Z(X) = Σ_{Y} exp( ... ),计算它需要枚举所有可能的 Y,在长序列上计算量很大。 - exp(.):将得分转化为正数,并通过归一化转化为概率。
模型实现
特征选取
与最大熵模型采用的方式相同
特征选择一般有三种方法: ①从候选特征集中选择那些在训练数据中出现频次、超过一定阈值的特征 ②利用互信息作为评价尺度从候选特征集中选择满足一定互信息要求的特征 ③利用增量式特征选择方法 (Della Pietra et al )
从候选特征集中选择特征。 (比较复杂) 选定特征之后确定特征函数 f,假设共有 k(k > 0) 个特征函数。
参数训练



算法描述:

解码




CRFs 应用举例
基于字标注的分词方法
基本思想:将分词过程看作是字的分类问题,每个字在构造一个特定的词语时都占据着一个确定的构词位置,即词位 。 一般而言,每个字只有 4 个词位 词首 (B) 、 词中 (M) 、词尾 (E) 和单独成词 (S) 。







第 3 章 N 元文法模型
模型定义
问题提出
如何计算一段文字(句子)的概率?
阳春三月春意盎然,少先队员脸上荡漾着喜悦的笑容,鲜艳的红领巾在他们的胸前迎风飘扬。

问题:随着历史基元数量的增加,不同的”
问题的解决方法


这种语句概率计算模型称为语言模型

参数估计
基本思路
- 收集、标注大规模样本,我们称其为训练数据
/ 语料 (training data/corpus) - 利用最大似然估计
(maximum likelihood evaluation,MLE) 方法计算概率
实现方法




数据平滑
基本思想
调整最大似然估计的概率值,使零概率增值,使非零概率下调,劫富济贫,消除零概率,改进模型的整体正确率。
- 目标:测试样本的语言模型困惑度越小越好。
- 约束:∑wip(wi|wi − n + 1j − 1) = 1
回顾—困惑度:

数据平滑方法
- 加
1 法 (additive) - 减值法
/ 折扣法 (discounting) - 删除插值法
(deleted interpolation)
加 1 平滑法




N 元文法模型应用
模型应用 1:计算语句的概率,以便于相关任务中筛选最有可能的语句
以汉语分词为例

方法描述

一种改进的实现方法






模型训练
- 在词表和派生词表的基础上,用一个基本的分词工具切分训练语料;专有名词通过一个专门模块标注,实体名词通过相应的规则和有限状态自动机标注,由此产生一个带词类别标记的初始语料;
- 用带词类别标记的初始语料,采用最大似然估计方法估计语言模型的概率参数公式
(7); - 用得到的模型对训练语料重新切分和标注,得到新的训练语料;
- 重复
2、3 步,直到系统的性能不再有明显的变化为止。



实验语料
- 词表词: 98,668 条、派生词: 59,285 条;
- 训练语料: 88MB 新闻文本;
- 测试集: 247,039 个词次,分别来自描写文、叙述文、说明文、口语等。
测试指标

模型应用 2:已知前面的词语,预测生成后面的语句(自动写作)


N-元文法模型的广泛应用

第 4 章 传统 NLP 技术简介
- 这里所说的
“传统 NLP 技术” 是指基于神经网络的深度学习方法出现之前的自然语言处理技术,包括理性主义方法和经验主义方法。 - 传统的 NLP 方法通常需要如下三个步骤:词语切分与命名实体识别;句法分析;语义分析。因此,本章简要介绍以下三方面关键技术。
词语切分与命名实体识别
分词要点
切分意义
- 词是语言中能够独立使用的最小的语言单位;
- 词语切分在传统的 NLP 方法中是句子结构分析、语义分析和篇章分析等后续任务完成的前提和基础;
- 到目前为止,所有的 NLP 方法,包括深度学习方法,都是以词或子词为统计基元建模实现的;
- 词语切分具有广泛的应用,如词频统计,词典编纂,文章风格研究,文献处理,文本校对,简繁体转换等 。
汉语自动分词中的主要问题





汉语自动分词的基本原则
- 语义上无法由组合成分直接相加而得到的字串应该合并为一个分词单位。
- 语类无法由组合成分直接得到的字串应该合并为一个分词单位。
汉语自动分词的辅助原则
操作性原则,富于弹性,不是绝对的。
- 切分原则
1:有明显分隔符标记的应该切分之。 - 分割标记指标点符号或一个词。如:上、下课->
上 / 下课 - 洗了个澡->
洗 / 了 / 个 / 澡
- 分割标记指标点符号或一个词。如:上、下课->
- 切分原则
2:结构复杂、合并起来过于冗长的词尽量切分。 - 合并原则
1:附着性语(词)素与前后词合并为一个单位。 - 合并原则
2:使用频率高或共现率高的字串尽量合并。 - 合并原则
3:双音节加单音节的偏正式名词合并成一个分词单位。 - 合并原则
4:双音节结构的偏正式动词应尽量合并。
评价指标



切分方法

最大匹配法(Maximum Matching, MM)
按照切分方向分为:
- 正向最大匹配算法 (Forward MM, FMM)
- 逆向最大匹配算法 (Backward MM,BMM)
- 双向最大匹配算法 (Bi-directional MM)
基本思路:


FMM

基于语言模型的分词方法
基本思路:

由字构词的分词方法 (character-based tagging)

生成式方法与区分式方法的结合

基于神经网络的分词方法


可用的分词工具:

命名实体识别





领域差异和生词识别是分词和 NER 面临的最大挑战
子词压缩

基本思路:
- 对于英语等屈折语文本,可直接用双字节编码算法
(Pair Encoding, BPE) 算法进行 字符压缩。 - 对于汉语文本,如果有很好的分词工具,先对文本进行词语切分,在切分结果的基础上利用
BPE 算法进行单字压缩,合并那些最大次数的相邻汉字或字符。
BPE
①对邻近的两个字符
②将α最大的两个邻近字符

词性标注
词性或称词类
如在汉语中,词类分为两大类:实词
词性标注的任务是让系统自动对词汇标注词性标记。
标注集的确定原则:不同语言中,词性划分基本上已经约定俗成。 自然语言处理中对词性标记要求相对细致。
一般原则:
- 标准性 : 普遍使用和认可的分类标准和符号集;
- 兼容性 : 与已有资源标记尽量一致,或可转换;
- 可扩展性 :扩充或修改。
标注方法:
- 基于规则
/ 有限状态机的词性标注方法 - 基于统计模型的词性标注方法
- HMM:分词与词性标注一体化方法
- CRFs:序列标注方法
- 规则和统计方法相结合的词性标注方法
性能评价指标:准确率
句法分析
短语结构分析
短语结构分析
例如,给定如下句子:他还提出一系列具体措施的政策要点。


有时候,并不需要分析整个句子的完整结构,而只需要分析句子中的某些短语,如

如果只分析句子中某种类型的短语结构,这种分析过程称为局部句法分析
设置句法分析器的目标:实现高准确率、高鲁棒性
基本方法:
- 基于
CFG 规则的分析方法 - 线图分析法(chart parsing)
- CYK
分析算法 - Earley(厄尔利)算法
- LR
算法 /Tomita 算法
- 基于
PCFG 的分析方法 - 基于神经网络的分析方法
Coke-Younger-Kasami (CYK) 分析算法

算法描述:


例子:


概率上下文无关文法 (PCFG/SCFG)


给定句子:Astronomers saw stars with ears.


基于
- 优点:
- 可利用概率进行子树剪枝,减少分析过程的搜索空间,加快分析效率
- 可以定量地比较两个句法分析器的性能
- 弱点:分析树的概率计算条件比较苛刻,甚至不够合理
短语结构分析结果评价:
精度(precision):句法分析结果中正确的短语个数所占的比例,即分析结果中与标准分析树(答案)中的短语相匹配的个数占分析结果中所有短语个数的比例, 即:
召回率 (recall):句法分析结果中正确的短语个数占标准分析树中全部短语个数的比例,即:
F-measure:

一般地,β = 1,称作
F1 测度 交叉括号数 (crossing brackets):一棵分析树中与其他分析树中边界相交叉的成分个 数的平均值。
分析树中除了词性标注符号以外的其他非终结符节点采用如下标记格式:XP (起始位置:终止位置)。其中,XP









