我需要问几个关于词嵌入的问题......可能是基本的。
[0 0 0 1 0]
嵌入向量 E = [0.2, 0.4, 0.2, 0.2]
....结果词向量中的每个索引是否有任何重要性?例如 E[1]
这是 0.2 .... 具体是什么 E[1]
定义(虽然我知道它基本上是到另一个空间的转换)...或词向量共同定义上下文但不是单独定义... 5- 是否有任何方法可以在隐藏层可视化嵌入向量(就像我们在基于图像的神经网络处理中所做的那样)?
提前致谢
最佳答案
1:嵌入向量中的每个元素(或一组元素)都有一定的意义,但大多数是人类不知道的。取决于您使用的算法,词嵌入向量可能具有不同的含义,但通常很有用。
例如,Glove , 类似的词“ Frog ”、“蟾蜍”在向量空间中彼此靠近。 King - man 结果与 Queen 相似。
[狗、猫、老鼠、喂、玩、用]
然后句子: 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]]
您可以在模型中训练词向量并在另一个模型中使用它。我们您可以在线下载预训练词向量。常见爬网示例(840B token ,2.2M 词汇,大小写,300d 向量,2.03 GB 下载):glove.840B.300d.zip on Glove
更新:
一热向量不包含任何信息。您可以认为 one-hot 向量是该向量在词汇表中的索引。
例如,狗 => [1, 0, 0, 0, 0, 0] 和猫 => [0, 1, 0, 0, 0, 0]。 one-hot 与 index 之间有一些不同:
"its mean that lookup table is just a matrix of embedded vectors (already been trained seperately via word2vec or...) for each word in the vocabulary. and while in the process of neural network either we can use an Embedding Layer or we can just refer to embedded vector in lookup table for that particular embedded vector against particular one-hot vector."
使用“INDEX”在查找表中查找。将 dog 变为 0,cat 变为 1。 one-hot 向量和索引包含相同的信息,但 one-hot 需要更多的内存来存储。此外,许多深度学习框架都接受索引作为嵌入层的输入(其中,输出是表示该索引中单词的向量。)
". How we get this embedding vector..."
=> 阅读论文。这是关于 Word2vec 的论文和 Glove .向您的讲师询问更多详细信息,他们愿意为您提供帮助。
关于deep-learning - Word Embedding、LookupTable、Word Embedding 可视化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44881999/