语言模型,是NLP方向一直主力研究的,通过训练机器,来让机器学习人类语言的内在规律,理解自然语言,并将其转换为计算机语言。
目前的主流语言模型,如GPT、Deepseek等,并不是简单的搜索背诵。他们的机制更类似于一种猜词游戏,即通过当前的信息,推测下一个相关的信息是什么,通过这种方式进行资源整合。
NLP语言模型具体涉及解决的问题有:搜索、分类、聚类、总结、生成、重写、抽象
NLP模型效果依赖两个方面:一是模型结构,二是语料库的丰富程度。
发展阶段
-
统计语言模型
是一种基于概率统计的语言模型,旨在预测下一个单词或句子出现的概率。
将NLP任务视为一个统计问题,使用机器学习算法从大规模语料库中学习语言的统计规律。
严重依赖特征工程。模型的效果很大程度上取决于从业者如何设计和提取特征(如词形、词性、词干、上下文窗口等)。 -
神经网络语言模型:
基于神经网络学习特征,比传统模型效果更好。
使用深度学习模型(尤其是循环神经网络RNN、长短期记忆网络LSTM和卷积神经网络CNN)自动学习语言的底层特征表示,取代手工特征工程。 -
预训练语言模型
先在超大规模无标注文本数据上训练一个通用的基础模型(学习语言本身的语法、语义、知识等),再针对具体下游任务用少量标注数据进行微调。
Transformer架构推出后,并行计算能力强,极大地提升了训练效率和长程依赖建模能力。改变了语言模型的结构。
统计语言模型
统计语言模型是描述单词、句子或文档的概率分布的模型。主要有以下几种:
- n-gram模型
n-gram模型是将一段文本切分成n个连续的词组,然后根据前n-1个词组来预测第n个词组,从而达到预测的目的(3-gram通过前2个词,预测第3个词)。
-
平滑方法
n-gram需要对所有上文进行枚举的操作,加上要处理出现次数为0的问题,所以可能存在过拟合和数据稀疏的问题。因此,需要引入平滑方法:Laplace平滑、Good-Turing平滑、Katz平滑等。 -
隐马尔科夫模型(HMM)
HMM是一种将语言转化为概率状态序列的模型,可以学习文本中的隐含结构。一般用于识别词性、命名实体识别等任务。
命名实体识别:是从非结构化的文本中自动识别出专有名词或特定意义的实体,并将其分类到预定义的类别中。
可以把它理解为一种“信息高亮”,它能在密密麻麻的文字中,快速地把人名、地名、组织机构名等重要信息标记出来。 -
最大熵模型
最大熵模型是一种分类器,用来预测下一个词或字符的条件概率。以最大化信息熵为目标函数,通过最大熵原理确定模型参数。
神经网络语言模型
神经网络语言模型(NNLM),是基于神经网络实现的模型,相比于传统模型有更好的性能。
-
基于前馈神经网络的NNLM
2003年提出,通过前馈神经网络训练,用softmax分类。 -
循环神经网络模型(RNNLM)
是一种基于循环神经网络的语言模型,优点是对动态的序列进行建模,通过引入长短时记忆单元(LSTM),解决了神经网络在处理长序列的梯度消失问题,提升了性能。
如果序列过长,随着训练,前面的知识可能被遗忘。 -
TransformerLM
基于Transformer的语言模型,通过自注意力机制计算不同单词间的关系。
相比于RNNLM,Transformer具有更强的并行性,计算效率上有更大优势。
预训练模型
基于TransformerLM,后续发展了一批以此为基础的变体,目前各大厂商也都在进行模型的设计训练,推出了一系列预训练语言模型。
- Word2vec
是一种基于神经网络的词向量表示方法,于2013年提出,通过将单词转化为一个向量,从计算单词间的相似性,具体讲是通过计算向量间的余弦相似度。 - ELMo
是一种基于上下文的动态词向量,于2018年提出,它是通过双向LSTM模型来学习模型,从而获得上下文相关的单词嵌入。 - Transformer
是一种使用自注意力机制进行特征提取的预训练语言模型,于2017年提出,被广泛应用,如:机器翻译、文本摘要、问答系统等。 - BERT
由Google在2018年发布的一种预训练语言模型,在NLP领域取得了巨大成功。BERT使用双向Transformer编码器来训练上下文相关的单词嵌入。和其他的预训练模型相比,BERT最大的特点是可以同时捕获上下文中的前后文信息。这使得BERT成为当前效果最好的预训练语言模型之一,广泛应用于自然语言处理和文本挖掘任务中。 - GPT
是一系列基于Transformer架构的预训练语言模型,由OpenAI开发,是目前效果最好的模型之一。