简介:本文系统梳理自然语言处理(NLP)领域的经典模型架构与核心任务类型,通过技术原理剖析、应用场景对比及实践建议,为开发者提供从理论到落地的全链路指导。
在深度学习普及前,NLP主要依赖统计学习方法。N-gram模型通过计算连续N个词的出现概率进行语言建模,例如在英文文本中,”I love”后接”NLP”的概率可通过语料库统计得出。其核心公式为:
P(w_n|w_{n-1},...,w_{n-N+1}) = Count(w_{n-N+1}^n) / Count(w_{n-N+1}^{n-1})
隐马尔可夫模型(HMM)则通过隐藏状态序列生成观测序列,在词性标注任务中,隐藏状态为词性标签,观测序列为单词。其缺陷在于无法处理长距离依赖,例如在”The cat that chased the mouse…”中,HMM难以关联首尾的”cat”与”mouse”。
循环神经网络(RNN)通过门控机制(LSTM/GRU)解决长序列依赖问题。以LSTM为例,其单元结构包含输入门、遗忘门和输出门:
# LSTM单元伪代码def lstm_unit(x_t, h_prev, c_prev):f_t = sigmoid(W_f * [h_prev, x_t] + b_f) # 遗忘门i_t = sigmoid(W_i * [h_prev, x_t] + b_i) # 输入门o_t = sigmoid(W_o * [h_prev, x_t] + b_o) # 输出门c_t = f_t * c_prev + i_t * tanh(W_c * [h_prev, x_t] + b_c) # 细胞状态更新h_t = o_t * tanh(c_t) # 隐藏状态输出return h_t, c_t
2017年Transformer架构的提出彻底改变了NLP范式。其自注意力机制通过Query-Key-Value计算实现并行化处理,在机器翻译任务中,编码器可同时捕捉源句所有位置的语义关联。例如”The bank is closed”中,”bank”既可指河岸也可指金融机构,自注意力机制能通过上下文动态确定词义。
BERT采用双向Transformer编码器,通过掩码语言模型(MLM)和下一句预测(NSP)任务进行预训练。其输入嵌入包含Token Embedding、Segment Embedding和Position Embedding三部分:
# BERT输入嵌入示例token_ids = [101, 2023, 2003, 1037, 102] # [CLS] + 句子A + [SEP]segment_ids = [0, 0, 0, 0, 0] # 标记句子归属position_ids = [0, 1, 2, 3, 4] # 位置编码
GPT系列则采用单向Transformer解码器,通过自回归生成文本。GPT-3的1750亿参数使其在零样本学习场景下表现突出,例如无需微调即可完成代码生成任务。
情感分析是典型应用,需处理数据不平衡问题。例如IMDB影评数据集中,积极评论占比63%,可通过加权损失函数优化:
# 加权交叉熵损失示例positive_weight = 0.63 / 0.37 # 负样本权重negative_weight = 1.0loss_fn = nn.CrossEntropyLoss(weight=torch.tensor([negative_weight, positive_weight]))
多标签分类需修改输出层激活函数,如使用Sigmoid而非Softmax,允许一个样本属于多个类别。
命名实体识别(NER)中,BiLSTM-CRF模型通过条件随机场(CRF)层约束标签转移。例如”New York”应被识别为单个LOCATION实体,而非两个独立单词。CRF层通过转移矩阵A学习标签间依赖关系:
# CRF转移矩阵示例A = [[0, 1, 0], # B-PER -> I-PER可行[0, 0, 1], # I-PER -> O不可行[0, 0, 0]] # O标签自转移
摘要生成需平衡信息保留与简洁性。Pointer-Generator网络通过复制机制处理OOV词,其生成概率由词汇表分布和源文本注意力分布加权得到:
# Pointer-Generator生成概率计算p_gen = sigmoid(w_h^T h_t + w_s^T s_t + w_x^T x_t + b_ptr)p_vocab = softmax(V^T h_t + b_vocab)p(w) = p_gen * p_vocab(w) + (1-p_gen) * sum(a_{t,i} * I(w==w_i))
问答系统需处理多跳推理,例如在HotpotQA数据集中,问题”Which university did the author of ‘The Catcher in the Rye’ attend?”需先识别作者为J.D. Salinger,再查找其教育背景。图神经网络(GNN)可通过实体关系图解决此类问题。
除准确率外,需关注任务特定指标:
从N-gram到Transformer,从文本分类到多模态理解,NLP技术正经历着架构创新与任务拓展的双重变革。开发者需根据具体场景选择模型:对于资源受限的嵌入式设备,可考虑量化后的MobileBERT;对于需要深度语义理解的任务,RoBERTa等更大规模模型仍是首选。未来,随着神经符号系统的融合,NLP模型有望实现更可靠的可解释性。