word2vec 中优化的功能是什么?

机器算法验证 word2vec
2022-03-06 23:20:48

以下问题是关于 Skipgram 的,但回答 CBOW 模型的问题也是一个优点(尽管不是必需的)。

Word2Vec 使用神经网络,神经网络通过对某些目标函数进行梯度下降来学习。所以我的问题是:

  • 单词是如何输入到 Word2Vec 模型中的?换句话说,神经网络的哪一部分用于导出单词的向量表示?
  • 上下文向量是从神经网络的哪个部分提取的?
  • 最小化的目标函数是什么?
2个回答

单词是如何输入到 Word2Vec 模型中的?换句话说,神经网络的哪一部分用于导出单词的向量表示?

请参阅 word2vec 中的输入向量表示与输出向量表示

最小化的目标函数是什么?

众所周知,最初的 word2vec 论文在与神经网络训练有关的某些方面不清楚(为什么这么多的出版场所会限制论文提交的长度?)。我建议你看看 {1-4},它回答了这个问题。


参考:

在此处输入图像描述

单词是如何输入到 Word2Vec 模型中的?换句话说,神经网络的哪一部分用于导出单词的向量表示?

从上图中我们可以看到,“Hope”和“Set”这两个词在向量中被索引为 1,然后W35矩阵用于导出单词的向量表示。

上下文向量是从神经网络的哪个部分提取的?

词嵌入向量从W35矩阵和上下文向量从W53矩阵。

最小化的目标函数是什么?

目标函数是用于比较预测概率和实际目标的交叉熵。

Word2Vec 中有两个功能可以加快速度:

  1. Skip-gram Negative Sampling (SGNS) 它将整个词汇表上的 Softmax 更改为对一个正确目标和一些负样本随机采样的多分类(多个二元 softmax 函数)函数,然后只更新一小部分权重而不是更新所有权重应该在每个反向传播过程中更新。

  2. Hierarchical Softmax 仅考虑 Huffman 树中从根到单词的路径上的节点[ 2 ]。