选自Google
机器之心编译
参与:吴攀
谷歌又开源了!tf-seq2seq 是一个用于 TensorFlow 的通用编码器-解码器框架(encoder-decoder framework),其可用于机器翻译、文本摘要、会话建模、图像描述等任务。
设计目标
谷歌介绍说,设计该框架的目标是希望其能满足以下目标:
编码器
编码器用于读取源数据(source data),比如一个词序列或一张图像,然后产出一个在连续空间中的特征表示。比如,一个循环神经网络编码器可能会以一个词序列为输入,然后产生一个大致对应了该文本的含义的一个固定长度的向量。而一个基于卷积神经网络的编码器则可以以一张图像为输入,并生成包含了该图像的更高级特征的新内容。其中的思想是:由编码器所产生的表征可被解码器用来生成新数据,比如另一种语言的句子和图像的描述。可用编码器列表请参考:https://google.github.io/seq2seq/encoders/
解码器
解码器是基于编码器所产生的表征的生成模型。比如,一个循环神经网络解码器可以学习生成一个编码句子的另一种语言的表示。可用解码器列表请参考:https://google.github.io/seq2seq/decoders/
模型
模型定义了结合编码器和解码器的方式,以及计算和最小化损失函数的方式。模型也需要对从输入流程读取到的数据进行必要的预处理。这里实现的每个模型都是可被传递给 tf.contrib.learn Estimator 的 model_fn。可用模型列表请参考:https://google.github.io/seq2seq/models/
答疑
问:此框架和谷歌神经翻译(GNMT)相比如何?这里开源的是官方的实现吗?
答:不是,这并不是 GNMT 系统的官方开源实现。这个框架是自底向上构建的,可用于多种任务,神经机器翻译只是其中一种。我们尚未在该框架中复制 GNMT 架构,但我们欢迎这个方向的贡献:https://google.github.io/seq2seq/contributing/
相关框架
以下框架在功能上与 tf-seq2seq 类似:
©本文为机器之心编译,转载请联系本公众号获得授权。
✄------------------------------------------------