【自然语言处理】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博客
相关推荐
摆烂仙君6 分钟前
南京邮电大学金工实习答案
人工智能·深度学习·aigc
视觉语言导航19 分钟前
中科院自动化研究所通用空中任务无人机!基于大模型的通用任务执行与自主飞行
人工智能·深度学习·无人机·具身智能
moonsims19 分钟前
道通龙鱼系列-混合翼无人机:垂直起降+长时续航
人工智能·无人机
视觉语言导航24 分钟前
南航无人机大规模户外环境视觉导航框架!SM-CERL:基于语义地图与认知逃逸强化学习的无人机户外视觉导航
人工智能·深度学习·无人机·具身智能
学算法的程霖27 分钟前
CVPR2025 | 首个多光谱无人机单目标跟踪大规模数据集与统一框架, 数据可直接下载
人工智能·深度学习·目标检测·机器学习·计算机视觉·目标跟踪·研究生
DisonTangor1 小时前
阿里巴巴开源移动端多模态LLM工具——MNN
人工智能·开源·aigc
界面开发小八哥1 小时前
「Java EE开发指南」如何使用MyEclipse的可视化JSF编辑器设计JSP?(二)
java·ide·人工智能·java-ee·myeclipse
Tiny番茄1 小时前
归一化函数 & 激活函数
人工智能·算法·机器学习
今天也想MK代码2 小时前
基于WebRTC的实时语音对话系统:从语音识别到AI回复
人工智能·webrtc·语音识别
Vizio<2 小时前
基于CNN的猫狗识别(自定义CNN模型)
人工智能·笔记·深度学习·神经网络·cnn