3

我正在尝试使用 skip-gram 实现 word2vec 的前向和反向传播。我是神经网络的新手,但据我了解,事情是这样的:

  1. 取输入向量和随机初始化权重矩阵的点积
  2. 激活(sigmoid 还是 softmax?)
  3. 取激活的隐藏层和另一个随机初始化权重矩阵的点积
  4. 激活(sigmoid 还是 softmax?)
  5. 我们以某种方式比较第 4 步之后得到的输出,并计算误差(目标输出)相对于矩阵中每个权重的导数。我们从当前权重中减去导数。我们对输出隐藏层和隐藏输入层都这样做。我们这样做了很多次,直到我们足够好。

如果上面有任何问题,请纠正我。

所以现在我的问题是:

  1. 正确的skip-gram和负样本的目标应该是什么?它们分别是 1 和 0 吗?还是应该是skip-gram的上下文?我真的不确定。

  2. 损失应该如何计算?

谢谢你。

4

1 回答 1

0

我不知道它是否是您问题的答案,但它是为了完成您的问题(我敢肯定!)。我不认为在第二步中我们使用 sigmoid 或 softmax 函数,因为第一个点项目仅用于从矩阵 W(第一个矩阵)中提取目标词的向量。请看这些:

http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/

本书这一章的第 16.2 节,它对我非常有帮助 https://web.stanford.edu/~jurafsky/slp3/16.pdf

于 2016-07-14T02:10:56.170 回答