Word嵌入,LookupTable,Word嵌入可视化

问题描述 投票:1回答:1

我需要问几个关于单词嵌入的问题.....可能是基本的。

  1. 当我们将一个单词的单热矢量(例如,王[0 0 0 1 0])转换为嵌入向量E = [0.2, 0.4, 0.2, 0.2] ....对于结果单词向量中的每个索引是否有任何重要性?例如E[1]是0.2 ....特别是E[1]定义的(虽然我知道它基本上是转换到另一个空间)....或者单词矢量共同定义上下文但不单独...
  2. 与原始的单热矢量相比,单词矢量的维数(减少或增加)如何重要?
  3. 我们如何根据嵌入层定义查找表?
  4. 查找表是一种随机生成的表,还是已经针对数据中的数据实例单独进行了训练,我们稍后会在神经网络操作中使用它? 5-是否有任何方法可以在隐藏层中显示嵌入的矢量(正如我们在基于图像的神经网络处理中所做的那样)?

提前致谢

deep-learning text-mining word2vec word-embedding
1个回答
2
投票

1:嵌入向量中的每个元素(或一组元素)都有一些含义,但对于人类来说大多是未知的。根据您使用的算法,单词嵌入向量可能具有不同的含义,但通常很有用。例如,Glove,类似的单词'frog','toad'在向量空间中彼此靠近。 King - man导致矢量类似于Queen。

  1. 将词汇转换为索引。例如,你有一个词汇表:[狗,猫,老鼠,饲料,玩,用]然后句子:狗玩猫=> 0,4,5,1然而,你有嵌入矩阵如下 [0.1,0.1,0] #comment:这是狗 [0.2,0.5,0.1]#这是猫 [...] [...] [...] [...]

其中第一行是嵌入狗的矢量,第二行是cat,然后是等等然后,你使用索引(0,4,5,1)查找后会变成一个矩阵[[0.1,0.1,0] [... ] [...] [0.2,0.5,0.1]]

  1. 其中一个或两个 您可以随机初始化嵌入向量并使用渐变下降训练它 你可以采用预训练的单词向量并保持固定(即:只读,无变化)。您可以在模型中训练您的单词向量,并在另一个模型中使用它。我们可以在线下载预训练的单词向量。示例常见爬网(840B令牌,2.2M词汇,套管,300d向量,2.03 GB下载):在Qazxswpoi上的gloves.840B.300d.zip 您可以使用预训练的单词向量初始化,并通过梯度下降训练您的模型

更新:单热矢量不包含任何信息。您可以认为单热矢量是词汇表中该矢量的索引。例如,Dog => [1,0,0,0,0,0]和cat => [0,1,0,0,0,0]。 one-hot vs index之间有一些不同:

  • 如果你输入一个索引列表:[0,4,5,1]到你的多层感知器,它就无法学习任何东西(我试过......)。但是如果输入一个热矢量矩阵[[。 ..1] [1 ...] [...] [...]],它学到了一些东西。但它在RAM和CPU方面代价高昂。
  • One-hot会花费大量内存来存储零。因此,如果您没有嵌入矩阵,我建议随机初始化嵌入矩阵。将数据集存储为索引,并使用索引查找嵌入向量

“它的意思是查找表只是嵌入向量的矩阵(已经通过word2vec或......单独训练)对于词汇表中的每个单词。而在神经网络的过程中,我们可以使用嵌入层,或者我们可以只是在查找表中引用针对特定单热矢量的特定嵌入向量的嵌入向量。“

使用“INDEX”在查找表中查找。将狗变为0,将cat变为1.单热矢量和索引包含相同的信息,但是一次性热量需要更多存储空间。此外,许多deeplearning框架接受索引作为嵌入层的输入(其中,输出是该索引中的单词的向量表示。)

“。我们如何得到这个嵌入向量...”

=>读纸。这是关于GloveWord2vec的论文。向您的讲师询问更多细节,他们愿意帮助您。

© www.soinside.com 2019 - 2024. All rights reserved.