自然语言处理 (NLP) 基础:词向量、模型与应用
自然语言处理(Natural Language Processing, NLP)是人工智能的一个重要分支,致力于让计算机能够理解、解释、操作并生成人类的自然语言。从简单的文本分析到复杂的对话系统,NLP 的应用日益广泛。本文将为你介绍 NLP 的几个基础但至关重要的概念:词向量、基础模型以及主要应用场景。
一、 词向量 (Word Embeddings):让词语“有意义”
计算机无法直接理解人类语言中的词语。为了让计算机能够处理文本,我们需要将词语转换成一种数字表示,即向量。词向量的目标不仅是简单的数字编码,更重要的是能够捕捉词语之间的语义和语法关系。意思相近的词语,其词向量在多维空间中也应该相近。
1.1 One-Hot Encoding (独热编码)
最简单的词语表示方法是将每个词语表示为一个极长的稀疏向量,向量的维度等于词汇表的大小,所有元素为0,只有对应当前词语的维度为1。
优点: 简单直观。
缺点: 高维度: 词汇量越大,向量维度越高,计算量和内存开销巨大。
无法捕捉语义: 任意两个词语的向量都正交,无法体现它们之间的相似性(例如,“国王”和“女王”的向量与“猫”的向量距离相同)。
1.2 分布式词向量 (Distributed Word Embeddings)
分布式词向量将词语映射到低维、稠密的实值向量空间。这些向量通过从大规模文本语料库中学习得到,捕捉了词语的上下文信息,从而体现了词语的语义和语法特征。
1.2.1 Word2Vec
Word2Vec 是 Google 在 2013 年提出的用于学习分布式词向量的两大模型之一,非常经典且具有代表性。它有两种模型结构:
CBOW (Continuous Bag-of-Words) 模型: 目标: 根据一个词语的上下文(周围的词语)来预测这个词语本身。
原理: 输入上下文词语的词向量,通过加权求和和 Softmax 激活函数,预测中心词语的概率。
Skip-gram 模型: 目标: 根据中心词语来预测它的上下文词语。
原理: 输入中心词语的词向量,然后分别预测其周围的每个上下文词语的概率。
Word2Vec 的重要特性:
语义相似性: “国王” - “男人” + “女人” ≈ “女王”。词向量之间可以进行向量运算,体现其语义关系。
低维度: 通常维度在 50 到 300 之间,远小于 One-Hot 编码。
1.2.2 GloVe (Global Vectors for Word Representation)
GloVe 是斯坦福大学提出的另一种流行的词向量模型。它结合了全局和局部的词语统计信息,通过利用词共现矩阵来学习词向量。GloVe 试图学习到这样的向量,使得它们的点积与全局词共现的对数成比例。
优点: 在某些任务上表现优于 Word2Vec,特别是能更好地捕捉词语的全局统计信息。
1.2.3 预训练词向量
通常,我们不会从零开始训练词向量,而是使用在大规模语料库(如维基百科、Common Crawl)上预训练好的词向量模型,如 Google News Word2Vec、GloVe embeddings 等。这些预训练的词向量已经捕捉了丰富的语言知识,可以直接加载并用于下游任务,显著提升模型性能,尤其是在数据有限的情况下。
二、 NLP 基础模型
将词向量输入到下游任务时,我们需要模型来捕捉词语序列中的模式和关系。以下是一些基础但重要的 NLP 模型:
2.1 n-gram 模型
n-gram 模型是统计语言模型的一种,基于马尔可夫假设,即一个词语出现的概率只与其前面的 n-1 个词语相关。
Bigram (2-gram): 预测下一个词语的概率只取决于前一个词语:P(wt∣wt−1)P(w_t | w_{t-1})P(wt∣wt−1)。
Trigram (3-gram): P(wt∣wt−2,wt−1)P(w_t | w_{t-2}, w_{t-1})P(wt∣wt−2,wt−1)。
优点: 简单,计算量小。
缺点:
长距离依赖问题: 无法捕捉长距离的上下文信息。
数据稀疏性: 随着 n 的增大,很多 n-gram 组合在语料库中可能从未出现,导致概率为零。
2.2 循环神经网络 (Recurrent Neural Networks, RNNs)
RNN 是一种能够处理序列数据的神经网络,其核心思想是循环连接——当前时刻的输出不仅依赖于当前输入,还依赖于上一时刻的隐藏状态(hidden state),隐藏状态承载了之前时刻的信息。
基本结构:
ht=f(Whhht−1+Wxhxt+bh)h_t = f(W_{hh}h_{t-1} + W_{xh}x_t + b_h)ht=f(Whhht−1+Wxhxt+bh) (计算隐藏状态)
yt=f(Whyht+by)y_t = f(W_{hy}h_t + b_y)yt=f(Whyht+by) (计算输出) (其中 xtx_txt 是当前时刻输入,hth_tht 是当前时刻隐藏状态,yty_tyt 是当前时刻输出,WWW 是权重矩阵,bbb 是偏置,fff 是激活函数)
优点: 能够捕捉序列中的时序信息和长距离依赖。
缺点:
梯度消失/爆炸 (Vanishing/Exploding Gradients): 在处理长序列时,反向传播时梯度可能变得非常小(消失)或非常大(爆炸),导致学习困难。
2.2.1 LSTM (Long Short-Term Memory) 与 GRU (Gated Recurrent Unit)
LSTM 和 GRU 是 RNN 的改进版本,引入了门控机制 (Gating Mechanism),有效地解决了梯度消失/爆炸问题,能够更好地捕捉长距离依赖。
LSTM: 拥有三个门(遗忘门、输入门、输出门)和一个记忆细胞(cell state),对信息的流动有精细的控制。
GRU: 结构比 LSTM 稍简单,只有两个门(更新门、重置门),在保持高效的同时,计算量更小。
2.3 Transformer 模型
Transformer 模型在 2017 年被提出,并在 NLP 领域引起了革命性的变化。它完全摒弃了 RNN 的循环结构,而是基于自注意力机制 (Self-Attention Mechanism),能够并行处理序列中的所有元素,并有效地捕捉长距离依赖。
核心组件:
自注意力机制: 允许模型在处理序列中的某个词语时,能够对序列中的所有其他词语分配不同的“注意力”权重,从而理解词语之间的关系。
多头注意力 (Multi-Head Attention): 并行执行多个自注意力计算,捕捉不同维度的依赖关系。
位置编码 (Positional Encoding): 由于 Transformer 没有循环结构,为了让模型知道词语在序列中的位置信息,需要引入位置编码。
前馈神经网络: 在注意力层之后,每个位置的输出都会经过一个独立的前馈神经网络。
Encoder-Decoder 结构: 标准的 Transformer 用于机器翻译等序列到序列的任务,包含编码器(Encoder)和解码器(Decoder)。
优点:
并行计算能力强: 远超 RNNs,训练速度更快。
优异的长距离依赖捕捉能力: 自注意力机制可以灵活地关联任意距离的词语。
奠定了当今大型语言模型(LLMs)的基础。
三、 NLP 的主要应用
NLP 的应用范围极其广泛,以下是一些代表性的领域:
3.1 文本分类 (Text Classification)
任务: 将文本划分到预定义的类别中。
应用: 情感分析(判断评论是正面还是负面)、垃圾邮件检测、新闻主题分类、意图识别(如识别用户在聊天机器人中的请求类型)。
3.2 命名实体识别 (Named Entity Recognition, NER)
任务: 识别文本中具有特定意义的实体,如人名、地名、组织名、日期等。
应用: 信息抽取、问答系统(理解问题中的实体)、文本摘要。
3.3 机器翻译 (Machine Translation, MT)
任务: 将一种自然语言的文本自动翻译成另一种自然语言。
传统方法: 统计机器翻译(SMT)。
当前主流: 基于深度学习的神经机器翻译(NMT),常用 Encoder-Decoder 结构(如 Transformer)。
3.4 问答系统 (Question Answering, QA)
任务: 理解用户提出的问题,并从给定的文本源(如文档、数据库)中找到或生成答案。
类型: 抽取式问答(从文本中抽取答案片段)、生成式问答(生成新的答案)。
3.5 文本生成 (Text Generation)
任务: 生成新的、连贯的、有意义的文本。
应用: 聊天机器人(生成回复)、写故事、创作诗歌、代码生成。
代表技术: GPT 系列模型。
3.6 文本聚类与主题模型 (Text Clustering & Topic Modeling)
任务: 聚类: 将相似的文本集合分组。
主题模型: 从文本集合中发现隐藏的主题。
应用: 文档分组、内容推荐、舆情分析。
模型: LDA (Latent Dirichlet Allocation) 是经典的主题模型。
3.7 文本摘要 (Text Summarization)
任务: 将一篇长文本缩减为一篇简短的摘要,保留核心信息。
类型: 抽取式摘要、生成式摘要。
四、 总结
词向量(尤其是经过预训练的)是将文本转化为机器可理解的数字表示的基石,它捕捉了词语的语义。RNNs、LSTMs、GRUs 是处理序列数据的经典模型,能够捕捉时序信息。而 Transformer 模型则凭借其强大的自注意力机制,在并行计算和长距离依赖捕捉上 D 取得了突破,引领了当前大型语言模型的发展。理解好这些基础概念,是深入学习 NLP 领域,并掌握其丰富应用的关键。