单个单词具有多个类别特征的单词嵌入

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

[我正在寻找一种在Pytorch中使用LSTM层实现单词嵌入网络的方法,以使nn.Embedding层的输入具有与单词ID向量不同的形式。

在我的情况下,每个单词都有一个对应的向量,因此,我的语料库中的句子是一个向量的向量。因此,例如,我可能拥有带有矢量[500、3、18]的单词“ King”,其中500是单词ID,3是单词颜色,18是字体大小,等等。这里的嵌入层作用是进行一些自动特征缩减/提取。

我如何向嵌入层提供此类表单数据?还是您有更好的建议?

python python-3.x pytorch word-embedding
1个回答
0
投票

我不确定使用LSTM的word2vec算法是什么意思,因为原始的word2vec算法不使用LSTM,而是直接使用嵌入来预测周围的单词。

无论如何,您似乎要嵌入多个类别变量。在示例中,它是单词ID,颜色ID和字体大小(如果将其舍入为整数值)。您有两种选择:

  1. 您可以为所有可能的功能组合创建新的ID,并为它们使用nn.Embedding。但是,存在大多数ID在数据中显得稀疏而无法学习可靠嵌入的风险。

  2. 对每个特征分别进行嵌入。然后,您需要将功能的嵌入组合在一起。您基本上有三种选择方法:

    • 只需将嵌入连接起来,然后让网络的以下层来解析组合。
    • 为所有要素选择相同的嵌入尺寸并将其平均。 (我可能会从这个开始。)
    • 添加nn.Dense层(或两个,第一个具有ReLU激活的层,第二个不具有激活的层),将显式地结合要素的嵌入。

如果需要包含不能离散化的连续要素,则可以始终采用连续要素,在其上应用一两层,然后将其与离散要素的嵌入结合起来。

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