word2vec中的negative sampling有什么用?是对谁进行sampling的?
1个回答
word2vec的输入变量和目标变量都是one-hot的,而且维度很大,这样就有了计算量的问题。
negative sampling是针对目标变量的,比如one-hot之后的目标变量是9999个0,1个1。这1万点对应的参数每次迭代时都会更新,假设隐藏层有100个点,那就有100万个参数,所以非常低效。对这9999个0随机取20个,这就是negative sampling。这样的话目标变量里是20个0,1个1,剩下的没有数值,没有数值所对应的那些参数也不会被更新,只更新21个数值对应的参数。这样计算量大大降低,而且实验显示,negative sampling之后模型也更好。
SofaSofa数据科学社区DS面试题库 DS面经