我正在尝试使用 skip-gram 实现 word2vec 的前向和反向传播。我是神经网络的新手,但据我了解,事情是这样的:
- 取输入向量和随机初始化权重矩阵的点积
- 激活(sigmoid 还是 softmax?)
- 取激活的隐藏层和另一个随机初始化权重矩阵的点积
- 激活(sigmoid 还是 softmax?)
- 我们以某种方式比较第 4 步之后得到的输出,并计算误差(目标输出)相对于矩阵中每个权重的导数。我们从当前权重中减去导数。我们对输出隐藏层和隐藏输入层都这样做。我们这样做了很多次,直到我们足够好。
如果上面有任何问题,请纠正我。
所以现在我的问题是:
正确的skip-gram和负样本的目标应该是什么?它们分别是 1 和 0 吗?还是应该是skip-gram的上下文?我真的不确定。
损失应该如何计算?
谢谢你。