我正在尝试理解用于word2vec模型的丢失函数,但在29:30的时候,我并没有真正遵循这个视频https://www.youtube.com/watch?v=ERibwqs9p38&t=5s背后的论证。
目前尚不清楚的公式如下:
乍一看,这一切看起来都很清楚:我们在遍历整个词汇表,对于每个(固定的单词),我们将另一个单词出现在这个固定单词的窗口内的所有概率加起来。
然而,当我认为一个单词发生在语料库中的许多位置上,并且可能用一个不同的词发生多次时,它对我来说是失败的。例如,“深度学习”这个词经常发生在一起,这表明它们之间存在着一种语境关系。为什么我们只数两次?上面的公式似乎是每对只计算两次(例如,一次用于,一次用于)。我们应该需要一个校正项来调整丢失的“频率”。
在的情况下,我们得到了上面的公式,但我们也可以自由地选择一个函数来增加频繁发生(成对)。上面的公式可以被看作是一个特例,当你不关心更频繁地出现在一起的单词会得到提升的时候。
另一方面,当上面的公式已经说明了多次发生时,那么这个公式在哪里是可见的?然后,作者继续将定义为。在这个特殊的例子中,我看不出我们计算点积的次数和单词在单词附近的次数一样多。也许的选择非常简单,它代表了一个模型,其中两个单词就在附近(就在语料库的某个地方)就足够了(一袋单词模型??)。然而,很难看出这样的模型在NLP中提供了良好的性能。
发布于 2018-09-21 13:51:07
不知道视频说了什么,但不应该是词汇量大小,而是训练语料库的大小(所有单词的数量)。
例如,如果您的培训语料库是
deep learning is popular . i love deep learning . i want to learn more about it.
然后,当你在上,你会总结所有的词对在语料库中,包括重复。单词对(deep learning)
确实计算了两次。
有关详细信息,请参阅原始的跳克文件,并注意第2页中的“定义”(1)。
https://datascience.stackexchange.com/questions/38619
复制