本书第一章旨在通过介绍自然语言处理(NLP)的关键概念、机器处理语言的早期策略,以及它与机器学习(ML)之间的协同关系,帮助专业人士建立自然语言处理的基础。我们还会强调数学基础的重要性,例如线性代数、统计学、概率论和优化理论;这些基础对于理解 NLP 中所使用的算法是必不可少的。
我们将讨论 NLP 在早期面临的一些初始挑战,例如如何理解词语的上下文与含义、词语之间的关系,以及传统方法在理解这些特征时为何需要标注数据。随后,我们还会简要介绍一些较新的进展,包括 BERT 和 GPT 这类预训练语言模型,以及大规模文本数据的可获得性如何推动 NLP 任务性能的提升。正如我们将在本书后文中展示的,这些模型所依赖的方法,对标注数据的需求要少得多。
本章导论将通过展示 NLP 与 ML 如何结合起来构建更准确、更高效的系统来吸引你,并为本书后续更高级主题的展开奠定基础。
本章将涵盖以下主题:
- 什么是自然语言处理?
- 自然语言处理的基础策略
- NLP 与 ML 的协同关系
- NLP 中的数学与统计导论
NLP 的演进
NLP 是人工智能(AI)的一个领域,专注于计算机与人类语言之间的交互。NLP 通过使用计算技术来理解、解释和生成自然语言,使计算机能够以自然且有意义的方式理解并回应人类输入。NLP 的历史是一段跨越时间的迷人旅程,可追溯至 20 世纪 50 年代,其中包括艾伦·图灵(Alan Turing)等先驱者所作出的重要贡献。
图灵的论文《Computing Machinery and Intelligence》远不止提出“机器能思考吗?”这一简单问题;它将这个问题重新表述为“模仿游戏”(Imitation Game),后来这便成为著名的“图灵测试”(Turing Test)。这种从模糊的哲学探问转向可操作性测试的转变具有开创性意义,因为它为通过语言来评估机器智能提供了一个实用标准。图灵还指出,数字计算机作为通用机器,在原则上能够模拟任何推理过程,这一观点预示了现代 AI 的诸多方向。他预见到了从神学到数学等多方面的反对意见,并主张,只要拥有足够的编程和存储能力,机器最终能够与人类思维相媲美。更重要的是,他强调了“会学习的机器”这一思想,认为与其直接构建成人水平的智能,不如设计能够像儿童一样学习和发展的机器。这些洞见使得他的文章不仅成为哲学上的里程碑,也成为直接影响 NLP 与 AI 发展轨迹的技术路线图。
这一时期标志着符号主义 NLP 的开端,其特点是使用基于规则的系统,例如 1954 年著名的 Georgetown 实验。该实验雄心勃勃地试图通过将俄文内容翻译成英文来解决机器翻译问题(见 en.wikipedia.org/wiki/George… )。尽管早期充满乐观情绪,但进展缓慢,这也暴露出语言理解与生成的复杂性。
20 世纪 60 年代和 70 年代见证了早期 NLP 系统的发展,这些系统展示了机器在受限词汇和知识库条件下进行类人交互的潜力。这个时期还出现了概念本体(conceptual ontologies)的构建,这对于以计算机可理解的形式组织现实世界信息至关重要。
这一时期较为知名的本体风格系统之一是 Roger Schank 于 1969 年提出的“概念依赖理论”(Conceptual Dependency Theory)。它通过将动作、行为者、时间和地点映射到一组结构化的原始动作与状态转移中,从而提供了一种独立于具体用词、用来表示句子意义的方法。另一个系统是大约于 1974 年提出的 KL-ONE,它引入了一种基于框架的分类体系(即带有角色的概念层级),用于组织领域知识并支持关于类别归属的推理。这些系统展示了早期对知识表示形式化的尝试,这些表示方法本可作为机器理解语言的基础。它们在揭示人工构建知识结构的力量与局限性方面都发挥了奠基性作用。
然而,基于规则的方法存在明显局限,这在 20 世纪 80 年代末推动了 NLP 向统计方法的范式转移;这一转变得益于机器学习的发展以及计算能力的提升。新的范式使系统能够更有效地从大型语料库中学习,从而显著推进了机器翻译及其他 NLP 任务的发展。这一范式转移不仅代表着技术和方法论上的进步,也体现了 NLP 在语言学处理方式上的概念演进。随着研究从预定义语法规则的僵化框架中走出,这一转变拥抱了语料库语言学(corpus linguistics)——一种让机器通过大量文本的持续接触来“感知”并理解语言的方法。这种方法体现了一种更具经验主义和数据驱动色彩的语言观:语言中的模式和意义不再主要依赖理论构造,而是从真实的语言使用中归纳而来,从而赋予语言处理更细腻、更灵活的能力。
进入 21 世纪后,互联网的兴起提供了海量数据,推动了无监督与半监督学习算法的研究。真正的突破发生在 2010 年代神经 NLP 的兴起之时,深度学习(DL)技术开始占据主导地位,在语言建模和句法解析等方面带来了前所未有的准确性。这个时期以 Word2Vec 等复杂模型的发展以及深度神经网络的广泛应用为标志,推动 NLP 朝着更自然、更有效的人机交互方向迈进。随着这些进展不断累积,NLP 已站在 AI 研究的前沿,其发展历史体现的是一种对理解并复现人类语言细微差别的不懈追求。
近年来,NLP 还被应用于医疗、金融和社交媒体等广泛行业,用于自动化决策以及增强人机沟通。例如,NLP 已被用于从医疗文档中提取信息、分析客户反馈、进行跨语言文档翻译,以及在海量帖子中执行检索。
处理自然语言的基础策略
NLP 中的传统方法由文本预处理构成,文本预处理本质上等同于文本准备。预处理文本是 NLP 和 ML 应用中的关键步骤。它包括对原始文本数据进行清洗和转换,使其成为机器学习算法能够轻松理解和分析的形式。预处理的目标是去除噪声和不一致性,并对数据进行标准化,使其更适合后续更高级的 NLP 和 ML 方法,例如线性模型、决策树、树集成,以及其他各种需要训练的模型。
预处理的一个关键收益在于,它能够显著提升机器学习算法的性能。例如,移除停用词(stop words)——即那些非常常见但不承载太多实际意义的词,如 “the” 和 “is”——可以帮助降低数据维度,从而使算法更容易识别相关模式,也更不容易错误地识别出由这些无关停用词形成的无关模式。
以下面的句子为例:
I am going to the store to buy some milk and bread.
在移除停用词之后,我们得到如下结果:
going store buy milk bread.
在这个例句中,停用词 “I”、“am”、“to”、“the”、“some” 和 “and” 并没有为句子增加额外含义,因此在不改变句子整体意义的前提下可以被移除。但需要强调的是,停用词的去除必须针对具体目标进行定制,因为某个词在一种语境下的省略可能无关紧要,而在另一种语境下却可能带来负面影响。
例如,考虑下列句子中的停用词 “some”:
The movie had some good moments.
如果将 “some” 去掉,句子就变成:
The movie had good moments.
这样一来,句子的语气就会偏向明显正面的分类结果。在这种情况下,“some” 的存在对于保留原本想表达的语义细微差别至关重要;如果将其删除,就会误导分类器。
此外,词干提取(stemming)和词形还原(lemmatization)这两种方法会将词汇归约为其基本形式,这有助于减少数据中唯一词项的数量,使机器学习算法更容易识别它们之间的关系;本书后文将对此作更完整的解释。
词干提取会将文本简化为其基础形式。以下面的句子为例:
The boys ran, jumped, and swam quickly.
应用词干提取后,也就是将每个词还原为其词根或词干形式,而不考虑时态或派生词缀,我们可能会得到:
The boy ran, jump, and swam quick.
在这个例子中,“ran”、“jumped” 和 “swam” 分别被还原为 “ran”、“jump” 和 “swam”。请注意,“ran” 和 “swam” 并未发生变化,因为词干提取的结果往往只是接近词根形式,而不一定是词典中的标准原形。这个过程有助于降低文本数据的复杂度,使机器学习算法在匹配和分析模式时,不会被同一词语的不同变体所干扰。
尽管词干提取能够将文本简化为其基础形式,但这一过程有时也会带来语义扭曲。例如,考虑如下句子:
The city introduced a new policy, and the police enforced it strictly.
在词干提取之后,“policy” 和 “police” 都可能被缩减为同一个词根 “polic”,从而得到类似如下的结果:
The citi introduc a new polic, and the polic enforc it strict.
这种区分的丢失表明,词干提取可能会把本不相关的词压缩成同一种形式,从而误导下游算法。相比之下,词形还原则会正确地区分 “policy” 和 “police”,从而保留原本 intended meaning(本意)。
以词形还原为例,再看下面这句话:
The boys ran, jumped, and swam quickly.
应用词形还原后,也就是在考虑词语形态分析的基础上,将其转化为词的基本形式或词典形式(称为 lemma),我们得到:
The boy run, jump, and swim quickly.
词形还原会准确地将 “ran”、“jumped” 和 “swam” 分别转化为 “run”、“jump” 和 “swim”。这一过程会考虑每个词的词性,从而确保还原为基本形式时在语法和语境上都是恰当的。与词干提取不同,词形还原对基本形式的归约更精确,能够确保处理后的文本仍然保持语义完整与上下文准确。这有助于 NLP 模型更有效地理解和处理语言,在降低数据集复杂度的同时,保持原始文本的语义完整性。
预处理的另外两个重要方面是数据规范化(data normalization)和数据清洗(data cleaning)。
数据规范化包括将所有文本转换为小写、删除标点符号,以及统一数据格式。这有助于确保算法不会把同一个词的不同变体当作彼此独立的实体,否则就可能导致结果不准确。数据清洗则包括去除重复或无关的数据,并纠正数据中的错误或不一致之处。这一点在大型数据集中尤为重要,因为人工清洗既耗时又容易出错。自动化预处理工具能够帮助快速识别并移除错误,从而使数据更适合分析、更具可靠性。
图 1.1 展示了一个完整的预处理流水线。我们将在第 4 章通过代码示例讲解这一流水线:
图 1.1 —— 完整的预处理流水线
总之,文本预处理是 NLP 和 ML 应用中的关键步骤;它通过去除噪声与不一致性并对数据进行标准化,从而提升机器学习算法的性能。此外,它在 NLP 任务的数据准备和数据清洗中也发挥着至关重要的作用。通过在预处理上投入时间和资源,我们能够确保数据具备高质量,并为后续更高级的 NLP 与 ML 方法做好准备,从而获得更准确、更可靠的结果。
当文本数据为进一步处理准备就绪后,下一步通常就是将其输入一个 ML 模型进行拟合。
NLP 与 ML 的协同关系
机器学习(ML)是人工智能(AI)的一个子领域,其核心是训练算法从数据中学习,从而使其能够在没有显式编程的情况下进行预测或决策。ML 正在推动众多领域的发展,例如计算机视觉、语音识别,当然也包括 NLP。
进一步深入到 ML 的具体技术,在 NLP 中使用的一项特定技术是统计语言建模(statistical language modeling),它通过在大型文本语料上训练算法来预测给定词序列出现的可能性。这项技术被广泛应用于语音识别、机器翻译和文本生成等任务。
另一项至关重要的技术是深度学习(DL)。DL 是 ML 的一个子领域,其核心是利用大量数据训练人工神经网络。卷积神经网络(CNN)和循环神经网络(RNN)等 DL 模型,已被证明能够有效胜任语言理解、文本摘要和情感分析等 NLP 任务。
图 1.2 展示了 AI、ML、DL 与 NLP 之间的关系:
图 1.2 —— 不同学科之间的关系
若要查看上述彩色图,请访问本书的免费 PDF 版本及相关附加福利。具体说明见前言中的 “Free benefits with your book” 部分。
NLP 中的数学与统计导论
NLP 和 ML 的坚实根基来自其背后的数学基础。尤其关键的是线性代数、统计与概率,以及优化理论。第 2 章将概览理解这些内容所需掌握的核心主题。在全书中,我们还将为各种方法和假设给出证明与论证。
NLP 的一个挑战在于处理人类语言所产生的大量数据。这包括理解上下文,以及理解词语本身的意义和它们之间的关系。为了解决这一挑战,研究者开发了多种技术,例如嵌入(embeddings)和注意力机制(attention mechanisms)。前者以数值形式表示词语的意义,后者则帮助识别文本中最关键的部分。我们将在第 6 章和第 7 章进一步展开这些内容。
NLP 的另一个挑战是对标注数据的需求,因为对大型文本语料进行人工标注既昂贵又耗时。为了解决这个问题,研究者开发出能够从未标注数据中学习的方法:
聚类(Clustering) :根据词语使用情况将相似文档归为一组。例如,在没有标签的情况下,聚类算法可能会自然地将一个混合语料分成关于体育、政治和金融的新闻文章。
主题建模(Topic modeling) :识别大型文本集合中反复出现的主题或潜在主题。例如,将潜在狄利克雷分配(LDA)应用于一组科学论文时,可能会揭示出诸如神经网络、基因组学或气候变化等隐藏主题。
自监督学习(Self-supervised learning) :从原始文本中构造代理任务,以生成监督信号。经典例子是掩码语言建模(masked language modeling),即让模型学习填补缺失词语(如 “The cat sat on the ___”),而这种能力随后又可迁移到情感分析或问答等下游任务中。
这些方法减少了对人工标注数据集的依赖,同时仍能支持有效的模型训练,并为现代大语言模型奠定了基础;后者在很大程度上依赖自监督学习。我们也将在第 6 章和第 7 章对这些内容进行介绍。
总体而言,NLP 是一个快速发展的领域,有潜力改变我们与计算机和信息交互的方式。它被广泛应用于聊天机器人、机器翻译、文本摘要和情感分析等多种场景。统计语言建模和深度学习等 ML 技术,对于这些系统的发展至关重要。与此同时,研究人员仍在持续攻克一些尚未完全解决的挑战,例如上下文理解,以及标注数据不足的问题。
NLP 最重要的进展之一,是预训练语言模型的发展,例如双向编码器表示模型 BERT(bidirectional encoder representations from transformers)和生成式预训练变换器 GPT(generative pre-trained transformers)。这些模型在海量文本数据上进行训练,并可以针对具体任务进行微调,例如情感分析或机器翻译。
作为 BERT 和 GPT 背后核心技术的 Transformer,通过使机器更有效地理解句子中词语的上下文,彻底改变了 NLP。与此前按线性顺序处理文本的方法不同,Transformer 可以并行处理词语,并通过注意力机制捕捉语言中的细微差别。这使它能够识别每个词相对于其他词的重要性,从而大幅增强模型对复杂语言模式和细微语义差异的把握能力,并为 NLP 应用的准确性和流畅性树立了新的标准。这也极大促进了 NLP 应用的构建,并提升了广泛 NLP 任务上的性能。
图 1.3 展示了 BERT 和 GPT 的架构:
图 1.3 —— BERT(上)与 GPT(下)的架构,摘自原始论文
NLP 的另一项重要进展,是大量已标注文本数据的可获得性不断提高,这使得训练更准确的模型成为可能。此外,无监督与半监督学习技术的发展,也使得模型能够利用更少量的标注数据进行训练,从而让 NLP 得以应用于更广泛的场景。
语言模型已经对 NLP 领域产生了深远影响。语言模型改变这一领域的一个关键方式,是提升了自然语言处理任务的准确性和有效性。例如,许多语言模型都是在大规模文本数据上训练的,因此能够更好地理解人类语言中的细微之处和复杂性。这带来了语言翻译、文本摘要和情感分析等任务性能的显著提升。
语言模型改变 NLP 领域的另一种方式,是推动了更高级、更复杂的 NLP 系统的开发。例如,一些语言模型,如 GPT,能够生成人类风格的文本,这为自然语言生成和对话系统打开了新的可能性。另一些语言模型,如 BERT,则提升了问答、情感分析和命名实体识别等任务的性能。
语言模型还通过提升可及性而改变了这一领域,使更广泛的人群都能够使用 NLP。随着预训练语言模型的出现,开发者现在可以轻松地将这些模型微调到具体任务上,而无需拥有海量标注数据,也无需具备从零训练模型的专业能力。所谓微调,是指以一个大型预训练模型为基础,再在较小的、特定任务数据集上继续训练,使其在保留原有通用语言知识的同时,适应新的任务。这使开发者更容易构建 NLP 应用,并促成了大量新型 NLP 产品和服务的爆发式增长。
总体来看,语言模型通过提升现有 NLP 任务的性能、推动更先进 NLP 系统的开发,以及让 NLP 更易被广泛使用,在推动 NLP 领域前进方面发挥了关键作用。
理解语言模型——从 BERT 到 GPT-5.X 及更远的未来
语言模型(LM)是现代 NLP 的基石。早期方法如 n-gram 模型,经过 RNN 和 Transformer 的兴起,最终发展到今天的大语言模型(LLM)。OpenAI 的 GPT 系列,包括 GPT-3.X、GPT-4.X、GPT-5.X,正是这一演进过程的代表。这些最先进的模型利用海量数据集和数十亿参数,展现出卓越的上下文理解、文本生成、多语言任务处理以及复杂推理能力。近期的进展还带来了更多创新,例如 Anthropic 的 Claude、Google 的 Gemini,以及 Meta 的 LLaMA 模型,展示出性能与效率上的持续提升。
推动 LLM 实现生成与推理能力的一项关键算法进展,是“基于人类反馈的强化学习”(Reinforcement Learning from Human Feedback, RLHF)。RLHF 将人类判断直接整合进训练闭环之中。它通过让模型输出更贴近人类期望、伦理准则和安全标准,极大改善了模型表现。这项技术显著增强了模型在实际应用中的可信度和用户接受度。
图 1.4 展示了 RLHF 机制的功能设计。
图 1.4 —— RLHF 机制
在这里,有必要强调若干标志着当前领域发展状态的重要创新。以下主题概括了本书第二版中一些最具影响力的进展与更新,反映出语言模型和 NLP 系统正在如何快速演化:
最先进的 LLM:本书第二版大幅扩展了对前沿大语言模型的介绍。例如,OpenAI 最新的 GPT 模型具备更高效的处理能力、优化后的模型参数,以及更强的多模态能力,从而实现更自然、上下文更准确的交互。Anthropic 的 Claude 强调伦理对齐与负责任 AI,聚焦可解释性与安全性。Google 的 Gemini 带来了多模态整合方面的新方法,而 Meta 的 LLaMA 模型则强调开源可及性与资源效率。
LLM 的评测基准:HELM(crfm.stanford.edu/helm/)和 MT-Bench 等新兴基准,是第二版特别强调的重要新增内容。MT-Bench 是更广泛的 Open LLM Leaderboard(huggingface.co/collections…)的一部分,它提供了严格的多任务评测,以确保模型能够在多样化的 NLP 任务中保持稳健表现。HELM 则提供了一套整体性基准测试体系,用于对语言模型进行全面评估,重点关注公平性、准确性与鲁棒性。Open LLM Leaderboard 让性能评估更加民主化,能够透明比较各种前沿模型的表现,从而促进社区协作与快速创新。
高级微调技术:本版引入了如 LoRA(Low-Rank Adaptation)和 QLoRA(Quantized LoRA)等微调策略,展示这些方法如何显著降低将大模型适配到特定任务所需的计算成本与资源消耗。另一种高级方法 DPO(Direct Preference Optimization)也被纳入介绍。它是一种基于偏好数据直接优化模型的对齐方法,不需要单独的奖励模型或强化学习,因此是 RLHF 更简单、更高效的替代方案。
模型推理能力:本版还探讨了模型推理能力方面的最新进展,尤其是思维链提示(Chain-of-Thought prompting)和自一致性检查(self-consistency checks)等方法。这些能力使 LLM 能够更好地处理逻辑推理、问题求解和决策任务,从而扩大其在复杂现实场景中的适用范围。
多智能体 NLP 系统:第二版将继续扩展对多智能体 NLP 系统的讨论,强调其在自动化复杂工作流、促进协作任务以及管理多个 LLM 智能体之间动态交互方面的能力。AutoGen 和 LangGraph 等框架被重点介绍为支持复杂多智能体交互和编排的关键工具。图 1.5 展示了一个多智能体系统的概念设计。
图 1.5 —— 基于 Langchain Multi-Agents systems 页面构建的多智能体系统概念图
伦理与负责任的 NLP 实施:考虑到 AI 安全和负责任 AI 日益重要,本版也将扩展这一部分内容。我们将进一步讨论关键的伦理考量、透明性措施,以及如何应对大规模 NLP 实施中固有的偏见与公平性问题。这样的基础知识将帮助你以符合社会价值和规范的方式,负责任地开发和部署 NLP 系统。
这些创新标志着 NLP 的一个转折点:模型已不再只是生成文本的工具,而正逐渐演化为用于推理、协作以及与人类价值对齐的平台。最初那些体现在架构上的渐进式改进,如今已经发展成一个更广泛的生态系统,其中包含评测基准、微调策略、多智能体编排和伦理防护机制。理解这一全景至关重要,因为这不仅有助于把握当今系统如何获得其能力,也有助于预判下一波 AI 发展将遵循的基本原则。
总结
本章介绍了 NLP 这一 AI 的子领域。章节强调了数学基础的重要性,例如线性代数、统计与概率,以及优化理论;这些都是理解 NLP 所用算法所必需的。章节还讨论了 NLP 所面临的挑战,例如理解上下文与词义、词与词之间的关系、对标注数据的需求,以及在缺乏标注数据时仍然能够发挥作用的创新技术。我们还讨论了 NLP 的最新进展,包括 BERT 和各类 GPT 等预训练语言模型,以及大规模文本数据的可获得性如何带来 NLP 任务性能的提升。我们简要介绍了文本预处理的重要性,强调了数据清洗、规范化、词干提取和词形还原等关键技术;这些技术对于为 NLP 模型准备高质量输入至关重要。随后,我们讨论了 NLP 与 ML 的融合如何推动整个领域持续进步,并使其成为自动化任务和改善人机交互日益重要的工具。
完成第 1 章之后,你现在应当已经对 NLP、ML 和 DL 技术的重要性有了扎实理解。你已经了解了 NLP 的最新进展,包括预训练语言模型的作用,也认识到文本预处理在为 NLP 任务准备数据和确保数据质量方面的重要性。在下一章中,我们将学习 ML 的数学基础。这些基础知识将在整本书中持续发挥作用。
问题
- 什么定义了人工智能领域中的 NLP?
- 为什么预处理在 NLP 中如此重要?
- 机器学习是如何推动 NLP 进步的?
- 为什么数学基础在 NLP 中很重要?
- BERT 和 GPT 等预训练模型如何影响了 NLP?
- 为什么 Transformer 被认为是 NLP 中的一项突破?
- 什么是基于人类反馈的强化学习(RLHF),它为什么在 NLP 中很重要?
- 多智能体 NLP 系统与传统单模型方法有何不同?
- 为什么 MT-Bench、HELM 和 Open LLM Leaderboard 这样的新基准对于 NLP 具有重要意义?
参考文献
- Turing, Alan Mathison. “Computing Machinery and Intelligence.” Mind, vol. 59, no. 236, 1950, pp. 433–60
- Conceptual dependency theory, en.wikipedia.org/wiki/Concep…
- KL-ONE, en.wikipedia.org/wiki/KL-ONE
- Devlin, Jacob, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.” arXiv preprint arXiv:1810.04805, 2018.
- Radford, Alec, Karthik Narasimhan, Tim Salimans, and Ilya Sutskever. “Improving Language Understanding by Generative Pre-Training.” OpenAI preprint, 2018.