【问题标题】:implementing word2vec with negative sampling使用负采样实现 word2vec
【发布时间】:2016-09-02 20:24:22
【问题描述】:

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

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

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

所以现在我的问题是:

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

  2. 损失应该如何计算?

谢谢。

【问题讨论】:

    标签: machine-learning nlp neural-network word2vec word-embedding


    【解决方案1】:

    我不知道它是否是您问题的答案,但它是为了完成您的问题(我确定!)。我不认为在第二步中我们使用 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

    【讨论】:

      猜你喜欢
      • 2020-03-05
      • 2023-03-18
      • 1970-01-01
      • 2020-03-19
      • 2020-07-11
      • 1970-01-01
      • 1970-01-01
      • 2018-03-17
      • 1970-01-01
      相关资源
      最近更新 更多