【自然语言处理】word2vec

目录

[1 什么是word2vec?](#1 什么是word2vec?)

[2 模型结构](#2 模型结构)

[2.1 CBOW(连续的词袋模型)](#2.1 CBOW(连续的词袋模型))

[2.1.1 网络结构](#2.1.1 网络结构)

[2.1.2 代码](#2.1.2 代码)

[2.1.3 运行结果](#2.1.3 运行结果)

[2.2 Skip-gram(跳字模型)](#2.2 Skip-gram(跳字模型))

[2.2.1 网络结构](#2.2.1 网络结构)

[2.2.2 代码](#2.2.2 代码)

[2.2.3 运行结果](#2.2.3 运行结果)

参考资料


本人为小白,欢迎补充!

1 什么是word2vec?

Word2Vec 是一个用于将单词表示为向量的算法,是由 Google 的研究人员在 2013 年开发的。它基于神经网络模型,通过训练大量的语料库数据来学习单词之间的语义和语法关系。它通过学习大量文本语料库中的单词上下文信息,将每个单词映射到一个连续的向量空间中。Word2Vec 可以生成高维空间中的向量表示,使得具有相似含义的单词在向量空间中距离较近,从而可以实现对单词的语义相似性分析和文本挖掘任务。它被广泛应用于自然语言处理和机器学习领域,包括词义相似度计算、文本分类、情感分析等任务。这样的向量表示具有许多有用的性质,例如可以计算单词之间的相似度、执行词语的聚类等。

2 模型结构

Word2Vec 有两种主要的结构:CBOW(Continuous Bag-of-Words)和 Skip-gram。无论是 CBOW 还是 Skip-gram,Word2Vec 使用神经网络进行训练。训练过程中,模型通过最大化目标函数(例如,使用负对数似然函数)来调整单词的向量表示,以便在语义上相似的单词在向量空间中更加靠近。最终,Word2Vec 生成了一个具有语义信息的单词向量空间,可以用于各种自然语言处理任务。

2.1 CBOW(连续的词袋模型)

CBOW(Continuous Bag-of-Words)模型的目标是根据上下文单词来预测当前单词。

在CBOW模型中,首先将上下文单词的向量表示作为输入,通过一个隐藏层进行线性组合,然后通过一个输出层进行softmax操作,以预测当前单词的概率分布。

具体来说,CBOW模型将上下文单词的向量表示进行求和或平均,得到一个综合的表示,然后将该表示传递给隐藏层。隐藏层的神经元通过线性组合和非线性激活函数(通常是sigmoid或ReLU)将该综合表示转换为一个新的向量表示。最后,输出层使用softmax函数将隐藏层的输出转换为当前单词的概率分布。

CBOW模型适用于小型语料库和频繁出现的单词,因为它能够较好地捕捉常见单词的上下文信息,并生成相应的单词向量表示。

2.1.1 网络结构

CBOW网络结构由输入层、隐藏层和输出层组成。

  • 输入层:输入层接收上下文单词的独热编码作为输入。每个单词都被编码为一个长度为词汇量大小的向量,其中只有一个元素为1,其余元素都为0。
  • 隐藏层:隐藏层的节点数是根据设计的网络规模确定的。每个隐藏层节点都与输入层的所有节点连接,并且使用全连接的权重矩阵进行加权求和。隐藏层可以将输入的上下文单词的向量表示组合成一个更高维度的向量表示。
  • 输出层:输出层是一个softmax分类器,它根据隐藏层的向量表示预测中心单词的概率。输出层的节点数等于词汇量大小,每个节点表示一个单词。通过softmax函数将隐藏层的向量表示映射为一个概率分布。

CBOW网络的训练目标是最大化预测中心单词的概率。通过反向传播算法,根据预测概率和实际标签之间的误差,可以更新权重矩阵和隐藏层的向量表示,以使得预测结果更接近实际标签。整个训练过程可以使用随机梯度下降等优化算法进行迭代更新。

2.1.2 代码

(待更新)

2.1.3 运行结果

(待更新)

2.2 Skip-gram(跳字模型)

Skip-gram(跳字模型)的目标与CBOW模型不同,它是根据当前单词预测上下文单词。

在Skip-gram模型中,对于给定的一个单词,它的上下文单词作为输入,而当前单词则是要预测的目标。具体来说,Skip-gram模型通过将当前单词的向量表示传递给隐藏层,然后通过输出层生成与目标单词相对应的上下文单词的概率分布。

Skip-gram模型使用了层级softmax或负采样的方法来处理大型词汇表,因为计算一个单词的概率分布需要对所有的词汇表进行遍历,这在大型词汇表中是非常耗时的。

Skip-gram模型适用于大型语料库和罕见单词,因为它能够更好地捕捉罕见单词的上下文信息,并生成相应的单词向量表示。

2.2.1 网络结构

Skip-gram网络结构也由输入层、隐藏层和输出层组成。

  • 输入层:输入层接收中心单词的独热编码作为输入。每个单词都被编码为一个长度为词汇量大小的向量,其中只有一个元素为1,其余元素都为0。
  • 隐藏层:隐藏层的节点数是根据设计的网络规模确定的。每个隐藏层节点都与输入层的所有节点连接,并且使用全连接的权重矩阵进行加权求和。隐藏层可以将输入的中心单词的向量表示映射为一个更低维度的向量表示。
  • 输出层:输出层是一个softmax分类器,它根据隐藏层的向量表示预测上下文单词的概率。输出层的节点数等于词汇量大小,每个节点表示一个单词。同样,通过softmax函数将隐藏层的向量表示映射为一个概率分布。

Skip-gram网络的训练目标是最大化预测上下文单词的概率。与CBOW不同,Skip-gram算法通过中心单词来预测上下文单词,因此训练样本是中心单词与其周围的上下文单词对。通过反向传播算法,根据预测概率和实际标签之间的误差,可以更新权重矩阵和隐藏层的向量表示,以使得预测结果更接近实际标签。整个训练过程可以使用随机梯度下降等优化算法进行迭代更新。

2.2.2 代码

(待更新)

2.2.3 运行结果

(待更新)

参考资料

  1. NLP必学:Word2Vec、Glove和ELMO_word2vec glove-CSDN博客
  2. Word2Vec-CSDN博客
  3. Skip-Gram神经网络体系结构_skip-gram网络结构-CSDN博客
  4. 论文|万物皆可Vector之Word2vec:2个模型、2个优化及实战使用_w2vti模型架构-CSDN博客
相关推荐
开MINI的工科男1 小时前
【笔记】自动驾驶预测与决策规划_Part7_数据驱动的预测方法
人工智能·自动驾驶·端到端·预测与决策·多模态预测
蒋会全1 小时前
第2.3 AI文本—prompt入门
人工智能·prompt·aigc
Evaporator Core2 小时前
门控循环单元(GRU)与时间序列预测应用
人工智能·深度学习·gru
是Yu欸2 小时前
【Github】如何使用Git将本地项目上传到Github
人工智能·git·深度学习·github·论文笔记·cvpr
Ciderw2 小时前
AI 在软件开发流程中的优势、挑战及应对策略
人工智能·ai
Struart_R3 小时前
Edify 3D: Scalable High-Quality 3D Asset Generation 论文解读
人工智能·深度学习·3d·扩散模型·三维生成·三维资产
声网3 小时前
Runway 新增视频扩展画面功能;Anthropic 再获亚马逊投资 40 亿美元,聚焦 AI 芯片研发丨 RTE 开发者日报
人工智能
量子位3 小时前
将活体神经元植入大脑,他和马斯克闹掰后开辟脑机接口新路线
人工智能
forestsea3 小时前
【Java 解释器模式】实现高扩展性的医学专家诊断规则引擎
java·人工智能·设计模式·解释器模式
机器之心3 小时前
小学二年级数学水平,跟着这篇博客也能理解LLM运行原理
人工智能·后端