【问题标题】:What does the multiple outputs in skip-gram mean?skip-gram 中的多个输出是什么意思?
【发布时间】:2017-08-01 07:10:23
【问题描述】:

我一直在尝试理解 skip-gram 学习算法的过程。这个小细节让我很困惑。

在下图中(许多文章和博客中使用它来解释skip-gram),多个输出是什么意思?我的意思是,输入词是一样的,输出矩阵是一样的。那么当你计算输出向量时,我相信它是出现在输入词附近的所有词的概率集,它应该一直是相同的。

skipgram model

希望有人能帮帮我~

【问题讨论】:

  • 我还发现很多博客和在线资源对输出层的解释很糟糕。 “多个输出”只是不同的 softmax 单元。这里的复杂之处在于,我们想要预测给定单词在上下文位置的概率,因此更涉及到 softmax 的使用。

标签: machine-learning word2vec


【解决方案1】:

This article 似乎对此进行了充分的解释——输出的每个“块”都表示对上下文中某个位置的单词的预测(文本中输入单词之前和之后的单词窗口)。输出“实际上”是一个向量,但该图试图清楚地表明它对应于一个词向量的 C 个实例,其中 C 是上下文的大小。

【讨论】:

    【解决方案2】:

    这是一种容易被误解的图表。该图中的三个输出中的每一个都应被视为不同输入(上下文)单词的结果。

    输入单词1,然后通过隐藏层,到输出层,你会得到(词汇量的)V 个输出值(在每个节点,假设更容易-想想负采样模式)——图表中的顶部结果。喂它词2,你会得到中间的结果。喂它词3,你会得到最底部的结果。

    【讨论】:

    • 下面的答案似乎与你的不同。在实现 NN 时,我们有 1 个还是多个 softmax 层?我们有 1 个或多个权重矩阵吗?
    • 具体取决于您的训练模式——负采样或分层softmax。在常见的默认负采样模式中——我个人也觉得这更容易推理——没有真正的 softmax 层。有多个权重矩阵:输入词到隐藏层的“投影”权重和隐藏层到输出节点的输出权重(在原始 word2vec.cgensim 中命名为 syn1neg) .但实际上,要理解,没有任何散文解释可以匹配查看实现代码。所以去那里真正了解。
    猜你喜欢
    • 2021-08-07
    • 2014-01-05
    • 2021-10-17
    • 2020-11-09
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多