【问题标题】:Sequence-to-sequence learning with real numbers实数的序列到序列学习
【发布时间】:2017-02-17 20:24:38
【问题描述】:

TensorFlow 在sequence to sequence models 上有一个教程,展示了如何将英语翻译成法语。

在这些模型中是否可以使用实数而不是单词?

【问题讨论】:

  • 是的,它们实际上是设计来处理数字的,单词很难使其工作,因此最后我们只是将它们嵌入为向量。只需按照教程并跳过嵌入部分,因为您不再需要这样做。
  • 您好,菱形十二面体,在使用实数进行 seq-to-seq 学习方面运气好吗?
  • 嗨 Lejlot,我有类似的问题。对于输入和输出序列,项目组件都是数值。例如,输入序列可以是 [0.0001, -0.9995, 21.002, 0, -1000] 等。您认为序列到序列可以处理这种用例吗?非常感谢任何建议和相关研究论文。
  • tensorflow seq2seq 模型需要一个范围(-1 到 1)中的数字向量作为词汇表中每个项目的嵌入。通常,您的语料库会转换为数字数组,即使用您从语料库中获得的词汇表进行索引。这个索引语料库与嵌入矩阵一起作为嵌入查找传递。
  • @shyampadia 如果您将此作为答案提交给一个最小的工作示例,那么我很乐意接受它

标签: machine-learning neural-network sequence deep-learning recurrent-neural-network


【解决方案1】:

假设词汇表包含以下单词

[hello:0, a:1, the:2, what:3, is:4, question:5, there:6, it:7, this:8, listen:9]

因为一个词在词汇表中只出现一次,我们可以使用它各自的索引作为参考。 所以像

这样的句子

听有问题

将被转换成一个索引数组,如

[9, 6, 4, 1, 5]

这就是使用这种嵌入来表示单个输入句子的方式。这种带有相应索引的词汇嵌入与这些索引句子的列表(即索引语料库)一起被馈送到网络中。

但这不会削减它,因为您的网络还需要学习单词之间的共同关系,它需要更多的语义信息。这可以使用 word2vec 来实现。您可以使用经过训练的 word2vec 并获取词汇表中所有单词的向量,并将它们与这些索引相关联,并将其用作嵌入查找而不是 word2index 字典。

现在,您可以将所有词索引映射到使用 word2vec 生成的相应词向量,并将其存储在嵌入矩阵中,其中行索引是词索引,每一行是与该词对应的固定长度词向量。然后以 feed dict 的形式将此信息提供给您的网络。

或者,您也可以考虑词义或特征(词、pos 标签和 ner 标签的组合)并创建一个词汇表,然后创建一个类似的 word2index 和嵌入矩阵

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多