【问题标题】:Why does word2vec vocabulary length is different from the word vector length为什么word2vec词汇长度与词向量长度不同
【发布时间】:2016-07-01 00:09:44
【问题描述】:

我从https://www.kaggle.com/c/word2vec-nlp-tutorial/details/part-3-more-fun-with-word-vectors 阅读了 Kaggle 的 word2vec 示例 而且我无法理解模型的词汇长度为什么与词向量长度不同。

词向量中的每个单元格不是都表示与词汇表中其他词的关系,所以每个词都与其他词有关系吗? 如果不是,那么词向量上的每个单元格代表什么?

非常感谢任何帮助。

【问题讨论】:

    标签: machine-learning text-classification gensim word2vec


    【解决方案1】:

    Word2Vec 捕获单词的分布式表示,这基本上意味着,多个神经元(细胞)捕获单个概念(概念可以是词义/情感/词性等),并且 >单个神经元(细胞)有助于多个概念

    这些概念是自动学习的,而不是预先定义的,因此您可以将它们视为潜在的/隐藏的。

    更多的是神经元(细胞)的数量,更多的是你的神经网络表示这些概念的能力,但需要更多的数据来训练这些向量(因为它们是随机初始化的)。

    size 的词向量明显小于词汇量(通常),因为我们想要词的压缩表示。两个词向量之间的余弦相似度表示两个词之间的相似度。

    编辑

    为了更清楚起见,认为每个单词之前都由词汇量大小为数千/百万的单热编码向量表示。同一个词现在被压缩成 200 或 300 维向量。为了找到两个词之间的关系,你需要计算这两个词的向量表示之间的余弦相似度。

    【讨论】:

      【解决方案2】:

      word2vec 将单词嵌入到用户定义的向量空间中。出于计算和性能的原因,这个维度通常相当小(介于 50-1000 之间)。

      事实上,Levy 和 Goldberg 的 excellent paper 表明 word2vec 可以有效地计算 PMI 矩阵的分解,这与您的想法相似。因此,词嵌入中的每个坐标都可以解释为量化与多个(如果不是全部)上下文词的未知线性关系,而不仅仅是一个。

      【讨论】:

      • 有没有关于嵌入式向量大小与模型性能/准确性的研究?
      • 是的。许多论文报告了将所有参数固定并更改嵌入维度大小(甚至是我引用的那个)的结果。通常,最佳维度取决于训练数据、任务、特定模型、涉及的其他功能等。如果您要复制其他人的工作,您可以(并且可能应该)从他们报告的配置开始。
      【解决方案3】:

      以前的答案提到性能和计算成本是向量大小小于词汇表大小的原因。如果向量 was 不是与词汇表中所有其他单词的关系,那么我想知道它到底是什么。

      一些早期的算法确实创建了完整大小的词向量,然后使用线性代数将它们缩小。然后将压缩后的特征向量输入到神经网络中。

      word2vec 将这一过程浓缩为一个步骤,并在其神经网络的隐藏层中构建词向量。词向量的大小对应于隐藏层的节点数。

      提供更长版本的源代码here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多