Gui*_*ier 32 nlp word2vec deep-learning tensorflow word-embedding
在这个页面中,据说:
[...] skip-gram反转上下文和目标,并尝试从其目标词中预测每个上下文单词[...]
然而,看看它产生的训练数据集,X和Y对的内容似乎是可互换的,因为那两对(X,Y):
(quick, brown), (brown, quick)
那么,为什么在上下文和目标之间区分那么多,如果最终是同一个东西呢?
另外,在word2vec上进行Udacity的深度学习课程练习,我想知道为什么他们似乎在这个问题上做了很多差异:
skip-gram的另一种选择是另一种名为CBOW(连续词袋)的Word2Vec模型.在CBOW模型中,您不是从单词向量预测上下文单词,而是从其上下文中所有单词向量的总和预测单词.实施和评估在text8数据集上训练的CBOW模型.
这会产生相同的结果吗?
Ser*_*hiy 61
以下是我对这种差异的过分简化和相当天真的理解:
我们知道,CBOW正在学习如何根据上下文来预测这个词.或者通过查看上下文来最大化目标词的概率.这恰好是罕见词语的问题.例如,给定上下文yesterday was a really [...] dayCBOW模型将告诉您最可能的单词是beautiful或nice.类似的词delightful会减少对模型的关注,因为它旨在预测最可能的单词.这个词将在很多例子中用更频繁的词来平滑.
另一方面,skip-gram模型旨在预测上下文.鉴于delightful它必须理解它,并告诉我们上下文的概率很大yesterday was really [...] day,或者其他一些相关的背景.使用skip-gram时,单词delightful不会尝试与单词竞争,beautiful而是delightful+context将对作为新观察对象.
UPDATE
感谢@ 0xF分享这篇文章
根据米科洛夫的说法
Skip-gram:适用于少量训练数据,甚至代表罕见的单词或短语.
CBOW:训练比跳过快几倍,频繁单词的准确性略高
在这里可以找到另一个主题:
在"CBOW"替代"skip-gram"模式中,不是对上下文单词求平均,而是将每个单词用作成对训练示例.也就是说,代替一个CBOW示例,例如[预测'ate'来自平均值('The','cat','the','mouse')],网络会显示四个跳过的例子[预测'吃'''',[从'猫'预测'吃'',[从'''预测'吃'',[从'鼠标'预测'吃'').(同样的随机窗口减少发生,因此只有两个例子的一半时间,最近的单词.)
| 归档时间: |
|
| 查看次数: |
25631 次 |
| 最近记录: |