目录
2)TF-IDF(Term Frequency-Inverse Document Frequency)
2)GloVe(Global Vectors for Word Representation)
1)上下文无关词向量(Context-Independent Word Embeddings)
2)上下文敏感词向量(Contextual Word Embeddings)
2、神经语言模型 (Neural Language Models)
1)GPT(Generative Pre-trained Transformer)
2)BERT(Bidirectional Encoder Representations from Transformers)
PCFG(Probabilistic Context-Free Grammar)模型
一、词表示(Word Representations)
词表示是将单词转换成计算机能够理解和处理的向量或数值形式的过程。在NLP中,一种常见的方法是将单词映射到向量空间中的点,使得语义上相似的单词在向量空间中的距离较近。这些向量化的表示可以是稠密的,即每个单词都映射为一个固定维度的实数向量,也可以是稀疏的,其中大多数维度都为零。词表示的目标是捕捉单词之间的语义和语法信息,以便计算机可以更好地理解和处理自然语言。
无论是哪种方法,输出的向量都是一种数值化的表示形式,使得计算机可以处理和分析自然语言文本。这些向量在各种自然语言处理任务中起着至关重要的作用。
1、基于计数的方法:(稀疏向量)
1)词袋模型(Bag of Words,BoW)
将文本 表示为 词汇表中单词的出现频次或存在与否。忽略了单词之间的顺序和语义关系。每个单词被映射为一个稀疏向量,其中向量的维度是词汇表的大小,向量的每个维度表示对应单词在文本中的出现频次。
2)TF-IDF(Term Frequency-Inverse Document Frequency)
在词袋的基础上,考虑了词在文档集合中的重要性。计算每个词的TF(词频)和IDF(逆文档频率)得分。
-
每个单词被映射为一个稀疏向量,其中向量的维度是词汇表的大小,向量的每个维度表示对应单词在文本中的出现频次。
-
TF-IDF 的特点是,当一个词语在某个文档中的词频较高(即该词在文档中出现多次),且在整个文档集合中的逆文档频率较低(即该词在许多文档中都出现),其 TF-IDF 值会相对较高,表明该词在这个文档中具有重要性。相反,当一个词语在某个文档中的词频较低,或者在整个文档集合中的逆文档频率较高,其 TF-IDF 值会相对较低,表明该词在这个文档中不太重要。
2、基于预训练词向量的方法:(稠密向量)
每个单词被映射为一个稠密向量,向量的维度是预先定义的,通常是50到300维。向量中的每个维度对应了单词的不同语义或语法属性。
1)Word2Vec
通过训练神经网络预测上下文单词来学习词向量。产生的向量捕捉了语义和语法信息。Skip-gram和CBOW(连续词袋)模型是词向量学习方法,通过预测一个单词的上下文或预测上下文中的单词来生成词向量。它们是根据大量的语料库统计信息来生成的,仅考虑了单词在整个语料库中的分布模式,而没有考虑特定上下文中的语义关系。
2)GloVe(Global Vectors for Word Representation)
基于全局统计信息,通过矩阵分解将单词嵌入到一个向量空间中。
3)FastText
扩展了Word2Vec,将单词视为字符的n-gram组合,从而能够处理未登录词和形态变化。
3、基于上下文的词表示方法:
1)上下文无关词向量(Context-Independent Word Embeddings)
如Word2Vec和GloVe,单词的表示不考虑上下文,适用于一些简单的任务。生成的向量(稠密向量)与单词本身有关,但不考虑上下文信息,可以看作是该单词的全局表示。这样的模型将单词视为独立的,没有明确地捕捉单词的上下文语义。这些上下文无关的词向量在某些任务中很有用,例如一些简单的分类任务或检索任务。然而,对于许多需要考虑语义和上下文关系的任务,如语义相似性计算、情感分析等,上下文敏感的词向量(如基于上下文的预训练模型)通常会表现更好,因为它们能够捕捉更丰富的语义信息。
2)上下文敏感词向量(Contextual Word Embeddings)
如ELMo、GPT、BERT等,将上下文信息编码到词向量(包括隐藏状态向量、池化或合并表示)中,更能捕捉词义的多样性和上下文关系。生成的向量包含了单词在给定上下文中的语义信息。每个单词在不同上下文中可能有不同的表示。
4、基于深度学习的方法:(预训练模型方法)
当我们使用一个预训练的语言模型(如GPT系列)时,模型内部的表示可以被用作词表示。这被称为「上下文嵌入(Contextual Embeddings)」。与传统的词向量不同,上下文嵌入在表示一个特定单词时会考虑其周围的上下文单词,从而产生更富有语义信息的表示。
1)卷积神经网络(CNN)
在文本上使用多尺度的卷积核来捕捉不同层次的特征。卷积层输出的特征图可以被视为文本的向量表示。
2)循环神经网络(RNN)
通过在序列上传递状态来捕捉上下文信息。长短时记忆网络(LSTM)和门控循环单元(GRU)是常见的RNN变体。RNN的最后一个时间步输出可以被看作整个序列的向量表示。
3)转换器(Transformer)
GPT和BERT等模型基于Transformer结构,能够并行地处理序列数据,广泛用于上下文敏感的词表示。Transformer中的自注意力机制产生了单词在上下文中的丰富表示,这些表示可以在不同任务中使用。
二、语言模型(Language Model)
语言模型是一种统计模型,用于预测给定上下文中下一个词或一组词的概率分布。它基于一些历史文本数据,通过学习单词之间的关系,可以用来生成新的文本、评估句子的合理性等。语言模型的任务是理解语言的结构和规律,以便能够预测下一个词的可能性。
1、统计语言模型
1)N-gram
预测 事先统计所有gram的出现频率,形成gram列表,也即文本向量特征空间 ,每个gram 就是一个特征向量维度。前面 N-1 个词的出现+后一个当前词出现 的概率 (n一般 2-3),但是相似度计算很局限,会收到约束。常见的 n 值为1(unigram)、2(bigram)、3(trigram)等。
2)最大熵模型
2、神经语言模型 (Neural Language Models)
1)循环神经网络语言模型(RNNLM)
使用循环神经网络来捕捉文本序列中的上下文信息,以便预测下一个词语的概率。
2)基于LSTM的语言模型
使用长短时记忆网络(LSTM)来处理长距离依赖关系,提高语言建模能力。
3)基于GRU的语言模型
使用门控循环单元(GRU)作为循环单元来学习序列信息。
3、转换器模型(Transformer Models)
1)GPT(Generative Pre-trained Transformer)
使用单向的自注意力机制,以生成文本为主要任务。
2)BERT(Bidirectional Encoder Representations from Transformers)
使用双向的自注意力机制,用于生成上下文敏感的词向量,适用于多种任务。
3)XLNet
扩展了BERT,引入了更复杂的训练机制以更好地建模上下文。
4、生成式对抗网络(GANs)
SeqGAN
使用生成式对抗网络框架来进行序列生成,特别用于文本生成任务。
5、结构化语言模型
PCFG(Probabilistic Context-Free Grammar)模型
将语言建模为上下文无关文法,用于语法分析和生成。
6、注意力模型
Transformer之前的注意力模型
在Transformer之前的模型中引入了注意力机制,如HAN(Hierarchical Attention Network)等。