首页 > 其他分享 >Word2Vec

Word2Vec

时间:2024-11-24 09:50:14浏览次数:7  
标签:中心词 词汇表 Word2Vec 样本 计算 上下文

Word2Vec

Word2Vec有两种形式,一种是Skip-gram,另一种是CBOW。

  • Skip-gram:已知中心词 \(w_c\),预测上下文词 \(w_o\)
  • CBOW:已知上下文词 \(C=\{w_{c−m},…,w_{c−1},w_{c+1},…,w_{c+m}\}\),预测中心词 \(w_c\)

1. Softmax 损失函数

公式:

\[L_{word2vec} = -\frac{1}{|B|} \sum_{(w_i, C_i) \in B} \log \frac{\exp(w_i \cdot C_i)}{\sum_{j \in V} \exp(w_i \cdot C_j)} \]

含义

  • 目标:最大化中心词 \(w_i\) 和上下文词 \(C_i\) 的相似性,同时最小化中心词 \(w_i\) 与其他非上下文词的相似性。
  • 问题:每次计算梯度时,都需要遍历整个词汇表 \(V\),计算所有词的概率。这在大规模语料中计算量非常大,效率较低。

2. 负采样(Negative Sampling,NEG)

为了解决 Softmax 的计算问题,Word2Vec 引入了负采样(NEG)方法,通过对部分负样本进行优化,避免计算整个词汇表 \(V\)。

公式:

\[L_{word2vec} = \frac{1}{|B|} \sum_{(w_i, C_i) \in B} \left[ \log(1 + \exp(-w_i \cdot C_i)) + \sum_{j \in S_i} \log(1 + \exp(w_i \cdot C_j)) \right] \]

含义

  • 正样本:使用 \(w_i\) 和 \(C_i\)(即真实的上下文词)。
  • 负样本:从词汇表中随机采样一部分非上下文词(集合 \(S_i\))作为负样本。
  • 目的:让中心词 \(w_i\) 和真实上下文 \(C_i\) 的相似性最大化,同时最小化 \(w_i\) 与负样本的相似性。
  • 效率提升:负采样只需要计算一小部分负样本,大幅减少了计算复杂度。
  • \(B\):代表一个Batch,其中一条样本(\(w_i\), \(c_i\))由一个中心词 \(w_i\) 和其上下文 \(C_i\) 组成

优点

  • 显著降低了计算复杂度,特别是当词汇表很大时。
  • 性能通常足够好,尤其是在实际应用中。

条件概率计算

item2vec

标签:中心词,词汇表,Word2Vec,样本,计算,上下文
From: https://www.cnblogs.com/forhheart/p/18565428

相关文章

  • Word2vec的应用
    目录1.分词2.模型训练 3.可视化 4.知识点个人理解pipinstallgensim-ihttps://pypi.tuna.tsinghua.edu.cn/simple#若在jupyternotebook中安装:!pipinstallgensim-ihttps://pypi.tuna.tsinghua.edu.cn/simple#导包importjiebaimportreimportnumpya......
  • 如何用 word2vec 计算两个句子之间的相似度
    源代码示例可供参考https://pan.quark.cn/s/aeb85eaf95e2用Word2Vec计算两个句子之间的相似度主要涉及以下几个步骤:将句子分词、获取词向量、计算句子向量、计算句子向量之间的相似度。其中,获取词向量是基础也是关键,它直接影响后续句子向量的计算准确性和相似度计算的效果。......
  • Word2Vec模型介绍
    Word2Vec是一种用于生成词向量的模型,由TomasMikolov等人在2013年提出。它通过从大量语料库中学习,捕捉词汇之间的语义关系。Word2Vec主要包括两种模型架构:1.CBOW(ContinuousBagofWords)模型CBOW模型通过上下文词来预测中心词。它的工作原理如下:输入:上下文词(例如,选取......
  • Word2Vec模型之CBOW
    CBOW(ContinuousBagofWords)是一种常用于自然语言处理的词嵌入模型,属于Word2Vec的一部分。CBOW模型的目标是通过上下文词来预测中心词。它通过在大规模语料库中学习词汇之间的共现关系,生成词向量表示。CBOW模型的工作原理上下文窗口:CBOW模型的核心思想是利用上下文窗口中的词......
  • 预训练的 Word2Vec 向量来初始化词嵌入矩阵
    使用预训练的Word2Vec向量来初始化词嵌入矩阵的过程涉及以下几个步骤:1.下载预训练的Word2Vec向量获取模型:预训练的Word2Vec向量通常可以从模型发布者的官方网站或开源平台下载。例如,Google提供了大规模的预训练Word2Vec向量。文件格式:预训练的Word2Vec向量一......
  • 深度学习每周学习总结N6:使用Word2vec实现文本分类
    ......
  • 深度学习(中文word2vec)
    这里用了gensim和jiba分词库,jensim原生是支持英文的,如果想使用中文word2vec,还需要自己训练一下。中文语料库可以在这里下载:https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2 stopwords.txt这里下载:https://files.cnblogs.com/files/tiandsp/st......
  • NLP - word2vec详解
    Word2Vec是一种用于将词汇映射到高维向量空间的自然语言处理技术。由Google在2013年提出,它利用浅层神经网络模型来学习词汇的分布式表示。Word2Vec有两种主要模型:CBOW(ContinuousBagofWords)和Skip-gram。1.模型介绍ContinuousBagofWords(CBOW)CBOW模型的目标是通......
  • 手写Word2vec算法实现
    1.语料下载:https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2【中文维基百科语料】2.语料处理(1)提取数据集的文本下载的数据集无法直接使用,需要提取出文本信息。安装python库:pipinstallnumpypipinstallscipypipinstallgensimp......
  • 自然语言处理基础知识入门(二) Word2vec模型,层次softmax,负采样算法详解
    文章目录前言一、Word2vec模型1.1什么是Word2vec模型?1.2Word2vec模型是如何训练?1.3Word2vec最简单版本整体过程1.4Word2vec详细过程1.5CBOW整体过程1.6Skip-gram整体过程二、优化算法2.1层次softmax2.1.1哈夫曼树2.1.2算法详细逻辑2.2负采样策略总结......