使用Python进行序列到序列建模

我正在尝试制作一个使用序列到序列模型来回应用户输入的聊天机器人。问题在于输入给模型的序列几乎永远不会相同。输入序列是一个单词列表。我已经创建了一个词汇表,将这个序列中的每个单词映射到其独特的ID上,然而,输入仍然是可变的,不是固定的,所以我不能简单地使用序列到序列模型。我了解到可以使用编码器将单词序列映射到一个固定的向量表示,然后使用解码器将该向量映射回一个序列。

我的问题是如何将单词序列编码为一个固定的向量?有没有什么技术可以用于这个目的?


回答:

将单词序列映射到向量表示可以通过循环神经网络(RNN)来实现。你可以看看这个介绍:http://colah.github.io/posts/2015-08-Understanding-LSTMs/

TensorFlow工具包中有一个教程,介绍了这种序列到序列映射架构,并提供了示例代码:https://www.tensorflow.org/versions/r0.11/tutorials/index.html

然而,在开始使用RNN之前,我建议先学习神经网络的基础知识:http://deeplearning.net/software/theano/tutorial/#basics

Bengio的深度学习书籍:http://www.deeplearningbook.org/涵盖了很多关于RNN的材料,不过其中涉及了相当多的数学内容。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注