词嵌入( Word Embedding)——2

上次写到word2Vec中一次训练过程。
训练一次需要更新的向量有Vcat 以及所有的Uw。这样一次训练成本似乎过于大,如何解决这个问题呢?

快速的训练:负采样

为什么我们必须在每个步骤中考虑词汇表中的所有上下文向量? 假设在当前步骤中,我们不考虑所有单词的上下文向量,而只考虑当前目标和几个随机选择的单词。 下图显示了差别。
图片来源于:https://lena-voita.github.io/resources/lectures/word_emb/w2v/negative_sampling-min.png
和以前一样,我们增加Vcat和Ucute之间的相似性。 所不同的是,现在我们不减少所有单词之间的上下文向量之间的相似性,而仅使用K个“负”示例的子集来减小它们之间的相似性。

由于我们的语料库很大,因此平均而言,在所有更新中,我们将对每个向量进行足够多次的更新,所以向量仍将能够很好地学习单词之间的关系。

新的损失函数变为了:
图片来源于:https://lena-voita.github.io/nlp_course/word_embeddings.html

因为:图片来源于:https://lena-voita.github.io/nlp_course/word_embeddings.html
所以:
图片来源于:https://lena-voita.github.io/nlp_course/word_embeddings.html

负样例的选择

每个单词只有几个“真实”上下文。 因此,随机选择的单词很可能是“否定的”,即不是真实的上下文。 这个简单的想法不仅用于有效地训练Word2Vec,而且还用于许多其他应用程序。

Word2Vec根据单词的经验分布对否定样本进行随机抽样。

Word2Vec变种:Skip-Gram and CBOW

Skip-Gram:是我们之前一直研究的。给定中心词,预测上下文。带有负采样的Skip-Gram是最常用的方法。

CBOW(Continuous Bag-of-Words):连续词袋,根据上下文向量的总和预测中心词。 单词向量的总和称为“单词袋”,它也是模型的名称由来。
图片来源于:https://lena-voita.github.io/resources/lectures/word_emb/w2v/cbow_skip-min.png

注意:
1.

Word2Vec的起源论文:
Efficient Estimation of Word Representations in Vector Space
网址:https://arxiv.org/pdf/1301.3781.pdf
Distributed Representations of Words and Phrases and their Compositionality
网址:https://papers.nips.cc/paper/2013/file/9aa42b31882ec039965f3c4923ce901b-Paper.pdf

2.

为什么有两个向量:

Word2Vec中训练了两个向量,一个是中心词向量,一个是上下文向量。上下文词向量会在训练完成后被丢弃。

那么,为什么要训练两个向量呢?
图片来源于:https://lena-voita.github.io/nlp_course/word_embeddings.html
观察损失函数可以得到,所以损失函数的第一部分和第二部分求和中的内容对于参数而言都是线性的,对于求导很方便。这也是Word2Vec训练速度很快的秘诀之一。

再次声名,本篇文章是学习记录,原文地址为:

https://lena-voita.github.io/nlp_course/word_embeddings.html

如有翻译不正确地方还请不吝批评指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值