在随后的Word2Vec Skip-gram设置中,输出层的数据设置是什么?它是一个零到处都是零的矩阵,但只有一个" 1"在每个C行中 - 表示C上下文中的单词?
添加以描述数据设置问题:
意味着数据集会呈现给NN的样子?让我们考虑一下#34;单个训练示例是什么样的"?我假设总输入是一个矩阵,其中每一行都是词汇表中的一个单词(每个单词也有一列,每个单元格为零,除了特定单词的位置 - 一个热编码)?因此,单个训练示例为1xV,如下所示(除了特定单词之外全部为零,其值为1)。这符合上图,输入为V-dim。我预计总输入矩阵会有重复的行 - 但是每次在语料库中找到相同的单热编码向量时(因为输出或目标变量会不同)。
输出(目标)让我更加困惑。我预计它会完全反映输入 - 单个训练示例有一个"多" -hot编码向量,除了是" 1"在单元格的C中,表示特定单词在输入单词的上下文中(如果我们正在查看,则C = 5,例如,在给定输入单词实例之前的2个单词和3个单词之前)。但这张照片似乎并不同意这一点。我不明白看起来像C不同的输出层共享相同的W'重量矩阵?
答案 0 :(得分:1)
skip-gram架构将字嵌入作为其输出(及其输入)。根据其精确实现,网络因此可以为每个字产生两个嵌入(一个嵌入用于该字作为输入字,并且一个嵌入用于该字作为输出字;这是基本的skip-gram架构中的情况。传统的softmax函数),或每个字的一个嵌入(例如,在具有分层softmax作为完整softmax的近似的设置中的情况)。
您可以在原始的word2vec论文中找到有关这些架构的更多信息,例如Mikolov等人的Distributed Representations of Words and Phrases and their Compositionality。