Seq2Seq模型

Seq2seq（）模型，是将序列（）映射到序列的神經網絡機器學習模型。這個模型最初設計用於改進機器翻譯技術，可容許機器通過此模型發現及學習將一種語言的語句（詞語序列）映射到另一種語言的對應語句上。除此之外，Seq2Seq也能廣泛地應用到各種不同的技術上，如聊天機器人、Inbox by Gmail等，但需要有配對好的文本集才能訓練出對應的模型。

Seq2seq是用于自然语言处理的一系列机器学习方法。应用领域包括机器翻译，图像描述，对话模型和文本摘要。

历史 
此算法最初由Google开发，并用于机器翻译.

在2019年， Facebook宣布其用于求解微分方程。 相比 Mathematica，MATLAB 和 Maple等商业解决方案，该算法能够更快更精准的解决复杂方程。首先，方程被解析为树形结构来避免书写方式带来的偏差。 之后应用一个LSTM神经网络，基于标准模式识别来处理方程树。

在2020年，谷歌发布了Meena，一个在341GB数据集上训练的26亿参数的seq2seq聊天机器人。谷歌称，该聊天机器人的模型容量比OpenAI的GPT-2多出1.7倍.

技术 
Seq2seq将输入序列转换为输出序列。它通过利用循环神经网络（递归神经网络）或更常用的LSTM 网络来避免梯度消失问题。当前项的内容总来源于前一步的输出。Seq2seq主要由一个编码器和一个解码器组成。 编码器将输入转换为一个隐藏状态向量，其中包含输入项的内容。 解码器进行相反的过程，将向量转换成输出序列，并使用前一步的输出作为下一步的输入。

优化包括：

 注意力机制：解码器的输入只有一个单独的向量，这个向量包含输入序列的全部信息。注意力机制允许解码器有选择的分块地使用输入序列的信息。
 束搜索，而不是选择单一的输出(文字)作为输出、多极有可能选择是保留，结构化作为一个树（使用 Softmax 上设置的注意力的分数）。 平均编码器国家加权关注的分布。
 存入桶:变序列长度是可能的，因为填补0，这可以做到的输入和输出。 然而，如果的序列长度为100和输入只有3项长、昂贵的空间被浪费。 桶可以不同规模和指定的输入和输出的长度。

训练通常使用通常使用交叉熵损失函数。

相关的软件 
采用类似的算法的软件包括OpenNMT（），Neural Monkey（TensorFlow）和NEMATUS（Theano）。

参考 

 人工神经网络

参考文献

外部链接 

 
 
 
 Adiwardana, Daniel; Luong, Minh-Thang; So, David R.; Hall, Jamie; Fiedel, Noah; Thoppilan, Romal; Yang, Zi; Kulshreshtha, Apoorv; Nemade, Gaurav; Lu, Yifeng; Le, Quoc V. (2020-01-31). "Towards a Human-like Open-Domain Chatbot". arXiv:2001.09977 [cs.CL].

Google軟體
人工神经网络
機器學習演算法
人工智能