端到端(end-to-end)
端到端是:输入->模型->输出。其实就是从一端(输入,原始数据)到另一端(输出,结果)的意思。端到端意味着,模型的输入是原始的数据,模型的输出是我们想要的结果。端到端不太Care模型的具体处理过程,更在乎的是输入和输出结果。
序列到序列 (Sequence-to-Sequence,Seq2Seq)
序列到序列是:输入是序列->模型->输出是序列。典型的代表是机器翻译
序列到序列一种通用的端到端序列学习方法,它基于编码-解码(Encoder - Decoder)的架构。
Pipeline
pipeline是输入->模型A->输出A->模型B->输出B->...->输出。不同于端到端,pipeline可以看作是一个流水线工作,后一个模型的输入依赖于前一个模型的输出结果。
举例:
假如中文翻译成英文,需要这样的步骤:
1.分词(比如把今天天气真不错,分词成今天/天气/真/不错)
2.针对每个词翻译成英文。
那么,如果是先训练一个模型做分词,再利用这个模型去给测试集分词。然后再训练一个模型根据分词的结果做成翻译。这就是pipeline。
但是如果直接训练一个模型,输入中文、输出对应的英文,这就是端到端。(当然,机翻是典型的序列到序列)