Seq2Seq模型

將序列映射到序列的機器學習模型

Seq2seqSequence to sequence模型,是将序列Sequence)映射到序列的神经网络机器学习模型。这个模型最初设计用于改进机器翻译技术,可容许机器通过此模型发现及学习将一种语言的语句(词语序列)映射到另一种语言的对应语句上。[1]除此之外,Seq2Seq也能广泛地应用到各种不同的技术上,如聊天机器人Inbox by Gmail等,但需要有配对好的文本集才能训练出对应的模型。[2]

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

历史

编辑

此算法最初由Google开发,并用于机器翻译.[4]

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

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

技术

编辑

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

优化包括:[4]

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

训练通常使用通常使用交叉熵损失函数[7]

相关的软件

编辑

采用类似的算法的软件包括OpenNMT(Torch英语Torch (machine learning)),Neural Monkey(TensorFlow)和NEMATUS(Theano)。[2]

参考

编辑

参考文献

编辑
  1. ^ Li, Zuchao and Cai, Jiaxun and He, Shexia and Zhao, Hai, Seq2seq dependency parsing, Proceedings of the 27th International Conference on Computational Linguistics, 2018: 3203––3214 
  2. ^ 2.0 2.1 Overview - seq2seq. google.github.io. [2019-12-17]. (原始内容存档于2019-09-25). 
  3. ^ Sutskever, Ilya; Vinyals, Oriol; Le, Quoc Viet. Sequence to sequence learning with neural networks. 2014. arXiv:1409.3215  [cs.CL]. 
  4. ^ 4.0 4.1 4.2 4.3 Wadhwa, Mani. seq2seq model in Machine Learning. GeeksforGeeks. 2018-12-05 [2019-12-17]. (原始内容存档于2019-12-17) (美国英语). 
  5. ^ Facebook has a neural network that can do advanced math. MIT Technology Review. December 17, 2019 [2019-12-17]. (原始内容存档于2019-12-27) (美国英语). 
  6. ^ Mehta, Ivan. Google claims its new chatbot Meena is the best in the world. The Next Web. 2020-01-29 [2020-02-03]. (原始内容存档于2020-01-30) (美国英语). 
  7. ^ 7.0 7.1 Hewitt, John. Sequence 2 sequence Models (PDF). Stanford University. 2018. (原始内容存档 (PDF)于2019-12-17). 

外部链接

编辑