我一直在阅读有关 Skipgram 模型的内容,并且发现了我将其解释为多个定义的内容。
1 - 看了这篇博文和Andrew Ng 的 Deep Learning Specialization,我了解到,对于每个单词,我们会为每个上下文单词生成一个训练样本。
因此,如果我们有句子“猫坐在垫子上”,我们将有样本:
(cat, sat)
(sat, cat)
(sat, on)
等等。
然后你训练你的网络,它将具有维度。
- 输入:
- 权重1:
- 隐藏层:
- 权重 2:
- 输出层:
好的,所以这些尺寸匹配,我们很好。对于一个给定的输入,假设权重相同,我们在输出层总是有相同的估计。
在这个定义中,我们有对称样本(例如(cat, sat)
和(sat, cat)
),并且说我们使用中心词作为输入,使用上下文词作为输出是没有意义的,因为它们是可以互换的?
2 -用深度学习课程观看斯坦福的 NLP (38:54),似乎对于同一个中心词,我们可以获得不同的输出:
我画的红圈里的数字应该和我理解的一样。我真的不明白如果隐藏层的多个权重 2 是如何获得不同的输出的。
3-我在其他地方(现在找不到参考)看到了另一种表述:对于每个输入单词,我们将上下文表示为一个向量,其中上下文单词为 1,其他地方为 0。因此,在这种情况下,不是每个上下文词都有一个训练样例,而是每个中心词都有一个训练样例。