国科大《自然语言处理》核心脉络梳理:从统计基础到预训练模型
1. 自然语言处理的技术演进脉络第一次接触自然语言处理(NLP)时很多人都会被这个领域庞杂的技术体系弄得晕头转向。从最基础的统计学习方法到如今大火的预训练模型NLP技术的发展就像一棵不断生长的大树每个分支都在解决特定的语言理解问题。作为国科大的核心课程《自然语言处理》系统地梳理了这条技术演进路线帮助学习者建立起完整的知识框架。NLP技术的发展大致可以分为三个阶段早期的基于规则的方法、中期的统计学习方法以及当前主流的深度学习方法。有趣的是这些方法并不是简单的替代关系而是层层递进、相互补充。比如现在最先进的预训练模型其底层仍然依赖于统计学习中的语言模型概念。我在实际项目中发现理解这种技术演进关系特别重要。很多初学者会直接跳到最后学习BERT、GPT这些时髦模型结果遇到实际问题时却不知道如何选择合适的技术方案。就像盖房子需要先打地基一样掌握NLP的基础理论和方法才能在实际应用中游刃有余。2. 统计学习基础与语言模型2.1 统计语言学的核心概念统计方法是NLP的数学基础其中最核心的就是语言模型。简单来说语言模型就是计算一个句子出现概率的模型。比如今天天气真好这个句子在中文里出现的概率应该比好真天气今天高得多。熵(entropy)是理解语言模型的关键概念。它衡量的是一个随机变量的不确定性。在NLP中我们常用交叉熵来评估语言模型的好坏。记得刚开始学习时我对交叉熵的理解很模糊直到看到这个生活例子假设你朋友平时说话有特定的习惯用语如果他突然说出完全不符合习惯的话你就会觉得意外——这种意外感的程度就类似于交叉熵衡量的差异。另一个重要定律是Zipf定律它揭示了词频分布的规律一个词的频率与它在频率表中的排名成反比。这意味着在任何语言中都只有少量词被频繁使用而大多数词很少出现。这个发现对设计NLP系统有重要指导意义。2.2 N元文法与平滑技术N元文法(N-gram)是最基础的语言模型。它基于马尔可夫假设认为一个词的出现只与前面有限的几个词相关。比如二元文法(Bigram)就只考虑前一个词对当前词的影响。在实际应用中N-gram面临的主要问题是数据稀疏。比如在训练语料中没出现过的词序列模型会给出零概率这显然不合理。这时候就需要各种平滑技术来劫富济贫——把高频词的概率匀一些给低频词。常见的平滑方法包括加一平滑(Add-one)给所有可能的n-gram计数都加1减值折扣(Good-Turing)把部分高频事件的概率分配给零概率事件插值法混合不同阶数的n-gram模型我在实践中发现选择哪种平滑技术往往取决于具体任务和数据规模。对于小规模数据简单的加一平滑就能取得不错效果而大规模数据可能需要更精细的Kneser-Ney平滑。3. 经典序列建模方法3.1 隐马尔可夫模型(HMM)HMM是处理序列数据的经典模型在词性标注、命名实体识别等任务中表现优异。它假设系统是一个马尔可夫过程但状态不可见只能通过观测序列来推断。HMM有三个基本问题评估问题给定模型参数计算观测序列的概率解码问题找到最可能产生观测序列的状态序列学习问题从观测序列中估计模型参数以词性标注为例状态就是词性标签观测就是词语本身。通过维特比算法我们可以找到最可能的词性标注序列。记得第一次实现HMM词性标注器时准确率能达到90%以上这在当时已经是很不错的结果了。3.2 条件随机场(CRF)CRF是判别式模型相比生成式的HMM有诸多优势。它不需要独立性假设可以融入更多特征而且直接建模条件概率P(Y|X)而非联合概率P(X,Y)。CRF的核心思想是定义特征函数这些函数可以捕捉任意有用的特征。比如在命名实体识别中可以设计特征来捕捉当前词是否大写是否包含数字前后缀特征上下文词特征等实际应用中CRF通常比HMM表现更好特别是当训练数据充足时。不过CRF的训练复杂度较高需要更多计算资源。我在一个医疗实体识别项目中对比过两者CRF的F1值比HMM高出约5个百分点。4. 从词向量到预训练模型4.1 词嵌入的革命传统的one-hot表示法有两个致命缺陷维度灾难和无法表达语义关系。词嵌入(word embedding)技术的出现完美解决了这些问题。Word2Vec是其中最著名的算法它通过CBOW和Skip-gram两种架构学习词向量。这些向量有一个神奇的特性语义关系可以通过向量运算体现。比如国王-男女≈女王。GloVe是另一个重要方法它结合了全局统计信息和局部上下文窗口的优点。实验发现在某些任务上GloVe比Word2Vec表现更稳定。4.2 预训练语言模型的崛起预训练模型是NLP领域的重大突破。它们先在大量无标注数据上进行预训练学习通用的语言表示然后在下游任务上进行微调。ELMo首次证明了深度上下文词表示的有效性。它使用双向LSTM为每个词生成基于上下文的表示。比如苹果在吃苹果和苹果手机中会有不同的向量表示。但真正的革命来自Transformer架构和BERT模型。Transformer的自注意力机制可以捕捉长距离依赖而BERT通过掩码语言模型和下一句预测任务学习到了更深层次的语言理解能力。我在实际项目中使用BERT时最惊讶的是它的小样本学习能力。即使只有几百条标注数据通过微调BERT也能取得不错的效果。这大大降低了NLP应用的门槛。5. 关键技术应用解析5.1 机器翻译的演进机器翻译是NLP的圣杯任务其技术路线经历了多次变革基于规则的翻译依赖语言学专家手工编写的规则统计机器翻译(SMT)使用大规模平行语料学习翻译概率神经机器翻译(NMT)用神经网络端到端地学习翻译IBM的统计翻译模型是SMT的代表作。它引入对齐概念计算源语言和目标语言词语的对应关系。虽然现在看起来有些原始但其中的很多思想仍影响着现代方法。NMT采用编码器-解码器架构最初使用RNN后来转向Transformer。注意力机制的引入特别关键它让模型可以动态关注源句子的相关部分。我参与过一个翻译项目将RNN模型升级为Transformer后BLEU分数提升了近10个点。5.2 文本分类的深度方法文本分类是NLP的基础任务深度学习方法使其性能大幅提升卷积神经网络(CNN)可以捕捉局部n-gram特征循环神经网络(RNN)适合处理序列依赖关系预训练模型提供强大的语义表示能力一个实用的技巧是分层学习率设置在微调预训练模型时底层使用较小的学习率保持通用特征顶层使用较大的学习率快速适应新任务。这通常比统一学习率效果更好。在电商评论情感分析项目中我们先用BERT提取特征然后加上简单的线性分类器准确率就超过了之前精心设计的CNN模型。这让我深刻体会到预训练表示的力量。6. 前沿趋势与学习建议当前NLP领域有几个明显趋势模型规模越来越大、多模态学习日益重要、提示学习(prompt learning)成为新范式。比如GPT-3这样的巨型模型已经展现出惊人的few-shot学习能力。对于学习者我的建议是先扎实掌握统计基础和经典算法深入理解Transformer和注意力机制动手实践从简单的文本分类任务开始关注模型压缩和高效推理技术学习NLP最忌好高骛远。我曾见过一些同学直接跳过基础去研究最新论文结果连基本的评价指标都说不清楚。记住在这个快速发展的领域扎实的基础知识才是应对变化的最好保障。