Skip-Gram

Word2Vec模型中,主要有Skip-Gram和CBOW两种模型,从直观上理解,Skip-Gram是给定input word来预测上下文。而CBOW是给定上下文,来预测input word。
在这里插入图片描述

skip-gram的核心

通过查看所有语料的词作为中心词时,其(中心词)与上下文的2m个词语的所有共现情况,这样就得到我们要逼近的中心词与上下文对应关系的条件概率分布(这个概率分布是忽视掉了上下文词语间的顺序的),我们通过模型去训练出词典中心词向量矩阵和词典上下文词向量矩阵(这两个矩阵就是存储了语料中中心词与其上下文的对应关系信息)。

模型

Word2Vec模型实际上分为了两个部分,第一部分为建立模型,第二部分是通过模型获取嵌入词向量

输入向量:代表某个单词的one-hot编码
输出:Softmax归一化后输出的概率向量。就是词典中每个词成为当前指定中心词的上下文的概率。我们要让这个概率向量,逼近真实语料中基于指定中心词基础上这些上下文词语出现的条件概率分布。

Skip-gram每一轮指定一个中心词的2m个上下文词语来训练该中心词词向量和词典上下文词向量,下一轮则指定语料中下一个中心词
在这里插入图片描述

### Skip-gram模型原理 Skip-gram 模型是一种基于神经网络的词嵌入技术,旨在将文本中的词汇映射到一个连续的向量空间中。该模型的核心思想是通过预测给定中心词的上下文词来学习词向量表示[^2]。在训练过程中,Skip-gram 模型会遍历大量文本数据,利用滑动窗口选择中心词和其周围的上下文词,并尝试最大化中心词与其上下文词之间的共现概率。 具体来说,假设有一个句子“the cat is sitting on the mat”,如果选择“cat”作为中心词,那么它的上下文词可能包括“the”、“is”、“sitting”、“on”、“the”、“mat”。Skip-gram 模型的目标是通过这个中心词来预测这些上下文词。为了实现这一点,模型通常使用一个简单的三层架构:输入层、投影层和输出层。输入层接收中心词的独热编码(one-hot encoding),投影层负责将独热编码转换为低维稠密向量,而输出层则用于预测上下文词的概率分布。 ### 应用场景 Skip-gram 模型因其能够捕捉词汇间的语义和句法关系,在自然语言处理领域有着广泛的应用。以下是一些典型的应用场景: 1. **语义相似度计算**:由于 Skip-gram 模型生成的词向量能够在向量空间中反映词汇间的语义相似性,因此可以用来计算两个词之间的相似度。例如,可以通过余弦相似度(cosine similarity)来衡量两个词向量之间的相似程度。 2. **同义词替换**:在某些情况下,如文本摘要或机器翻译任务中,需要找到与原词意思相近的替代词。Skip-gram 模型提供的词向量可以帮助快速找到这样的同义词。 3. **情感分析**:词向量可以作为特征输入到分类器中,帮助识别文本的情感倾向。因为具有相似情感色彩的词汇往往在向量空间中距离较近。 4. **命名实体识别**:在进行命名实体识别时,词向量可以提供额外的语言学信息,有助于提高识别准确率。 5. **推荐系统**:除了传统的 NLP 任务外,Skip-gram 模型还可以应用于推荐系统的设计中,通过学习用户行为序列中的物品表示,从而预测用户的兴趣偏好。 6. **问答系统**:在构建问答系统时,词向量可用于理解问题和答案之间的语义匹配,进而提升系统的响应质量。 7. **机器翻译**:词向量能够帮助建立不同语言之间词汇的对应关系,这对于跨语言的信息检索和翻译任务非常有用。 8. **文本分类**:词向量可以作为文本的紧凑表示,用于文档分类任务,如新闻分类或垃圾邮件检测等。 以上只是 Skip-gram 模型应用的一部分例子,实际上它的潜力远不止于此。随着深度学习技术的发展,越来越多的研究者开始探索如何结合其他模型和技术来进一步增强 Skip-gram 模型的能力,以应对更加复杂的自然语言处理挑战。 ```python # 示例代码 - 使用gensim库加载预训练的skip-gram模型 from gensim.models import KeyedVectors # 加载预先训练好的Word2Vec模型 model = KeyedVectors.load_word2vec_format('path/to/GoogleNews-vectors-negative300.bin', binary=True) # 获取特定单词的词向量 vector = model['computer'] # 计算两个词之间的余弦相似度 similarity = model.similarity('computer', 'laptop') # 找出与给定词最接近的前n个词 most_similar_words = model.most_similar(positive=['computer'], topn=5) ``` 请注意,上述代码示例中的路径 `'path/to/GoogleNews-vectors-negative300.bin'` 需要替换为您本地存储的实际文件路径。此外,确保已经安装了 `gensim` 库,可以通过运行 `pip install gensim` 来完成安装。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI强仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值