Zah*_*bar 6 text-mining word2vec deep-learning word-embedding
我需要问几个关于词嵌入的问题......可能是基本的。
[0 0 0 1 0]转换为嵌入向量时E = [0.2, 0.4, 0.2, 0.2]......结果词向量中的每个索引是否有任何重要性?例如E[1],哪个是 0.2....具体E[1]定义了什么(尽管我知道它基本上是到另一个空间的转换)...或词向量共同定义上下文但不是单独定义...提前致谢
1:嵌入向量中的每个元素(或一组元素)都有一定的意义,但大多数是人类不知道的。取决于您使用的算法,词嵌入向量可能具有不同的含义,但通常很有用。例如,Glove,类似的词“青蛙”、“蟾蜍”在向量空间中彼此靠近。King - man 结果与 Queen 相似。
把词汇变成索引。例如,你有一个词汇表:[dog, cat, mouse, feed, play, with] 那么句子: Dog play with cat => 0, 4, 5, 1 而你的嵌入矩阵如下
[0.1, 0.1, 0] # 注释:这是狗
[0.2, 0.5, 0.1] # 这是猫
[...]
[...]
[...]
[...]
其中第一行是狗的嵌入向量,第二行是猫,然后依此类推然后,查找后使用索引 (0, 4, 5, 1) 将成为矩阵 [[0.1, 0.1, 0][... ][...][0.2, 0.5, 0.1]]
更新: One-hot 向量不包含任何信息。您可以认为 one-hot 向量是该向量在词汇表中的索引。例如,狗 => [1, 0, 0, 0, 0, 0] 和猫 => [0, 1, 0, 0, 0, 0]。one-hot 与 index 之间有一些不同:
如果你输入一个索引列表:[0, 4, 5, 1] 到你的多层感知器,它不能学习任何东西(我试过......)。但是如果你输入一个单热向量 [[. ..1][1...][...][...]],它学到了一些东西。但它在 RAM 和 CPU 方面成本很高。
One-hot 花费大量内存来存储零。因此,如果您没有嵌入矩阵,我建议随机初始化嵌入矩阵。将数据集存储为索引,并使用索引查找嵌入向量
“这意味着查找表只是词汇表中每个单词的嵌入向量矩阵(已经通过 word2vec 或...单独训练)。在神经网络的过程中,我们可以使用嵌入层,也可以只需参考查找表中的嵌入向量,即可针对特定的单热向量获得该特定嵌入向量。”
使用“INDEX”在查找表中查找。将 dog 变为 0,cat 变为 1。 one-hot 向量和索引包含相同的信息,但是 one-hot 需要更多的内存来存储。此外,许多深度学习框架都接受索引作为嵌入层的输入(其中,输出是表示该索引中单词的向量。)
“。我们如何得到这个嵌入向量……”
=> 阅读论文。这是关于Word2vec和Glove 的论文。向您的讲师询问更多详细信息,他们愿意为您提供帮助。
| 归档时间: |
|
| 查看次数: |
5184 次 |
| 最近记录: |