更改

添加1,268字节 、 2025年5月18日 (日) 11:44
无编辑摘要
第27行: 第27行:  
为了克服传统神经网络语言模型(NNLM)只能建模固定长度上下文的局限,递归神经网络语言模型(Recurrent Neural Network Language Model, RNNLM)被提出。RNNLM 由 Tomas Mikolov 等人在 2010 年提出,其核心思想是通过递归连接隐藏层,使得网络在处理当前输入词时,能够同时参考前一时刻的隐藏状态,从而理论上具备建模任意长度上下文依赖的能力。在 RNNLM 中,每个时间步输入当前词的嵌入表示,并结合前一时刻的隐藏层状态,通过共享的隐藏权重矩阵更新新的隐藏状态,进而预测下一个词的概率分布。与 NNLM 的静态上下文窗口不同,RNNLM 的隐藏层作为一种动态记忆,可以不断累积和更新序列信息,因此更加灵活,能够捕捉到语言中远距离的依赖关系。RNNLM 的出现显著提升了语言建模的表达能力,使得模型能够更自然地处理复杂的语言现象,例如主谓一致、跨句关系等。然而,RNNLM 也存在明显的效率问题。由于递归连接的特性,每一步的隐藏状态更新都依赖前一步的计算结果,导致训练过程必须严格顺序进行,难以并行加速。同时,RNNLM 在每一个时间步都需要进行大规模矩阵乘法运算,尤其在输出层面对大词表进行归一化时,计算量和存储需求依然非常巨大。此外,传统的基本 RNN 结构在实际应用中还容易遭遇梯度消失或梯度爆炸的问题,使得模型在处理很长序列时训练变得困难。
 
为了克服传统神经网络语言模型(NNLM)只能建模固定长度上下文的局限,递归神经网络语言模型(Recurrent Neural Network Language Model, RNNLM)被提出。RNNLM 由 Tomas Mikolov 等人在 2010 年提出,其核心思想是通过递归连接隐藏层,使得网络在处理当前输入词时,能够同时参考前一时刻的隐藏状态,从而理论上具备建模任意长度上下文依赖的能力。在 RNNLM 中,每个时间步输入当前词的嵌入表示,并结合前一时刻的隐藏层状态,通过共享的隐藏权重矩阵更新新的隐藏状态,进而预测下一个词的概率分布。与 NNLM 的静态上下文窗口不同,RNNLM 的隐藏层作为一种动态记忆,可以不断累积和更新序列信息,因此更加灵活,能够捕捉到语言中远距离的依赖关系。RNNLM 的出现显著提升了语言建模的表达能力,使得模型能够更自然地处理复杂的语言现象,例如主谓一致、跨句关系等。然而,RNNLM 也存在明显的效率问题。由于递归连接的特性,每一步的隐藏状态更新都依赖前一步的计算结果,导致训练过程必须严格顺序进行,难以并行加速。同时,RNNLM 在每一个时间步都需要进行大规模矩阵乘法运算,尤其在输出层面对大词表进行归一化时,计算量和存储需求依然非常巨大。此外,传统的基本 RNN 结构在实际应用中还容易遭遇梯度消失或梯度爆炸的问题,使得模型在处理很长序列时训练变得困难。
 
== '''技术原理''' ==
 
== '''技术原理''' ==
 +
Word2vec 的目的在于为每个词汇都分配一个稠密的向量,能够做到相比传统的稀疏向量(如 one-hot 编码),更具表达能力和计算效率。Word2vec使用两种模型架构中的任何一种来生成词汇的分布式表示:连续词袋模型(CBOW)或Skip-gram。在这两种架构中,word2vec 在遍历语料库时都会考虑单个词和滑动上下文窗口,这种设计来源于分布式假设,由语言学家 Zellig Harris 在1954年提出。它的核心思想是:“上下文相似的词具有相似的意义”(You shall know a word by the company it keeps)。即如果两个词在相似的上下文中出现,那么它们的意义可能也相似。
   −
=== '''基本概念''' ===
+
CBOW 可被视为一项 "填空 "任务,其中词汇嵌入代表了词汇影响上下文窗口中其他词汇相对概率的方式。语义相似的词应该以相似的方式影响这些概率,因为语义相似的词应该在相似的语境中使用。上下文词语的顺序不会影响预测(词袋假设)。
   −
* 词嵌入(Word Embedding)的定义
+
Skip-gram与CBOW相反,模型使用当前词来预测周围的语境词窗口。与较远的上下文词相比,Skip-gram更重视附近的上下文词。
−
* 分布式假设(Distributional Hypothesis)
  −
* 向量空间模型
     −
=== '''模型架构''' ===
+
模型训练完成后,学习到的词嵌入会被放置在向量空间中,这样,在语料库中具有共同语境的词(即语义和句法上相似的词)就会在空间中彼此靠近。[1]相异程度较高的词在空间中的位置则相距较远。
   −
# '''连续词袋模型(CBOW, Continuous Bag of Words)'''
+
==='''模型架构'''===
−
#* 原理:通过上下文预测目标词
  −
#* 结构:输入层、隐藏层、输出层
  −
# '''Skip-gram 模型'''
  −
#* 原理:通过目标词预测上下文
  −
#* 与 CBOW 的对比
     −
=== '''训练方法''' ===
     −
* 负采样(Negative Sampling)
+
'''连续词袋模型(CBOW, Continuous Bag of Words)'''
−
* 层次 Softmax(Hierarchical Softmax)
  −
* 优化算法(如随机梯度下降)
     −
== '''应用领域''' ==
+
原理:通过上下文预测目标词
   −
* 自然语言处理(语义分析、机器翻译、文本分类)
+
结构:输入层、隐藏层、输出层
−
* 推荐系统
  −
* 信息检索
  −
* 其他领域(如生物信息学、社会科学)
     −
== '''优缺点''' ==
+
'''Skip-gram 模型'''
   −
=== '''优点''' ===
+
原理:通过目标词预测上下文
   −
* 计算高效
+
与 CBOW 的对比
−
* 能捕捉语义和语法关系
  −
* 适用于大规模语料库
     −
=== '''局限性''' ===
+
==='''训练方法'''===
 +
负采样(Negative Sampling)
   −
* 无法处理多义词(Polysemy)
+
层次 Softmax(Hierarchical Softmax)
−
* 依赖局部上下文,忽略全局信息
  −
* 需要大量训练数据
     −
== '''相关技术与扩展''' ==
+
优化算法(如随机梯度下降)
   −
* GloVe(Global Vectors for Word Representation)
+
=='''应用领域'''==
−
* FastText
  −
* BERT 和 Transformer 模型
  −
* 动态词嵌入(如 ELMo)
     −
== '''开源实现与工具''' ==
+
*自然语言处理(语义分析、机器翻译、文本分类)
 +
*推荐系统
 +
*信息检索
 +
*其他领域(如生物信息学、社会科学)
   −
* Gensim 库
+
=='''优缺点'''==
−
* TensorFlow / PyTorch 实现
  −
* 原始 C 语言实现(Google Code)
     −
== '''参考文献''' ==
+
==='''优点'''===
 +
 
 +
*计算高效
 +
*能捕捉语义和语法关系
 +
*适用于大规模语料库
 +
 
 +
==='''局限性'''===
 +
 
 +
*无法处理多义词(Polysemy)
 +
*依赖局部上下文,忽略全局信息
 +
*需要大量训练数据
 +
 
 +
=='''相关技术与扩展'''==
 +
 
 +
*GloVe(Global Vectors for Word Representation)
 +
*FastText
 +
*BERT 和 Transformer 模型
 +
*动态词嵌入(如 ELMo)
 +
 
 +
=='''开源实现与工具'''==
 +
 
 +
*Gensim 库
 +
*TensorFlow / PyTorch 实现
 +
*原始 C 语言实现(Google Code)
 +
 
 +
=='''参考文献'''==
130

个编辑