背景:许多带有神经网络的语言句子翻译系统(例如法语到英语)使用以下seq2seq结构:
“猫坐在垫子上” -> [Seq2Seq 模型] -> “le chat etait assis sur le tapis”
示例:十分钟介绍 Keras 中的序列到序列学习,Python for NLP:使用 Keras 中的 Seq2Seq 进行神经机器翻译
我注意到,在所有这些示例中,神经网络的结构不是通过使用具有连续层的Sequential结构来完成的,而是通过像这样的更复杂的结构来完成的:
问:有没有成功尝试用经典Sequential层做句子语言翻译?
IE:
输入层:单词标记的英文句子,零填充:“the cat sat on the mat”
=>x = [2, 112, 198, 22, 2, 302, 0, 0, 0, 0, 0, 0, 0, 0, ...]输出层:法语单词标记句子,零填充:“le chat etait assis sur le tapis” =>
y = [2, 182, 17, 166, 21, 2, 302, 0, 0, 0, 0, 0, 0, 0, 0, ...]
你会用什么作为图层?我想我们可以从:
model = Sequential() # in shape: (None, 200)
model.add(Embedding(max_words, 32, input_length=200)) # out shape: (None, 200, 32)
model.add(LSTM(100)) # out shape: (None, 100)
.... what here? ...
但是如何Embedding为输出语言提供第二个并反转它呢?从 200x32 嵌入(浮点数)到这样的整数列表[2, 182, 17, 166, 21, 2, 302, 0, 0, 0, 0, 0, 0, 0, 0, ...]?
另外,如何衡量这种情况下的损失,mean squared error?
更一般地说,你能想到的最简单的结构是什么(即使它没有给出最好的结果),用于语言翻译?(即使不是顺序也可以)
