【问题标题】:Can home-made embeddings work for RNNs, or do they HAVE to be trained?自制嵌入可以用于 RNN,还是必须经过训练?
【发布时间】:2018-07-16 19:13:36
【问题描述】:

假设我正在训练一个 RNN 进行分类,使用 100 个单词的词汇表。我可以跳过嵌入并将句子作为 one-hot 向量传递,但是对于 100 个特征的空间使用 one-hot 向量在内存方面似乎非常浪费。随着词汇量的增长,情况会变得更糟。为什么我不能创建自己的嵌入,将 0-100 的每个值转换为二进制并存储为长度为 7 的数组,即0=[0,0,0,0,0,0,0]1=[1,0,0,0,0,0,0]、...、100=[1,1,0,0,1,0,0]?我意识到维数很低,但除此之外,我不确定这种随机嵌入是否是一个坏主意,因为词向量之间没有像 GLoVe 那样的关系。顺便说一句,我不能在这里使用预制嵌入,而且我的样本量并不大,这就是我探索自己制作的原因。

【问题讨论】:

    标签: tensorflow keras rnn word-embedding


    【解决方案1】:

    很好的逻辑,但它缺少嵌入的两个重要特性。

    1)我们使用词嵌入来获得相似词的几乎相似的向量表示。 例如,Apple 和 Mango 的表现几乎相同。板球和足球的表现几乎相同。你可能会问为什么这是有益的。答案是,想象一下,我们主要只在苹果上训练我们的模型。如果我们的测试与 Mangos 有关,即使我们没有明确地对 Mangoes 进行过培训,我们也会得到适当的答案。

    ex: Training: I like Apples, I drink apple juice every day.
    
        Testing: I like Mangoes, I drink _____ juice every day.
    

    即使我们没有明确地在 Mangoes 上进行训练,空白也会被“Mango”填充。 这是通过对芒果和苹果使用相似的向量表示来实现的。这是你的方法无法实现的。

    2)您不认为即使按照您的逻辑,向量也会稀疏吗?我同意它与 One hot encoding 相比更好,但与 Word Embeddings 相比却没有。 90% 的词嵌入向量不是零。但在你的情况下,它只会是 50 %。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-27
      • 2017-10-22
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2018-07-07
      • 2013-03-28
      • 1970-01-01
      相关资源
      最近更新 更多