[D] DL Disambiguation Help: Distinction between Many-to-Many, Sequence-to-Sequence, End-to-End, and Encoder-Decoder Architectures/Frameworks/Models
I’m working on a school project where I am attempting to recreate a research paper. Most of the terms mentioned in the title of this post seem to be tightly coupled in other papers I’ve read and I have seldom run across instances where distinctions between any of them have been made. Most of the instances where I have found anyone attempting to make a distinction are in blog posts, which I regard with skepticism.
Sometimes I read something and think “oh, a sequence-to-sequence model is a many-to-many RNN architecture,” or “an encoder-decoder architecture is a sequence-to-sequence model”. Other times I wonder if there’s more nuance to these terms than what I have gleaned. Though it’s difficult to know since the papers that I’m reading are typically confined in scope and assume prior knowledge/familiarity (which I lack), so clarifiers like “model”, “architecture”, and “framework” seem to be used nearly interchangeably.
I have also reverted to several introductory texts but nowhere have I seen any clear boundaries between x is a type of y, or y is synonymous with z. I realize that some of this ambiguity seems to stem from nomenclature that originates in different areas or that morphs over time as it becomes utilized and “integrated” by practitioners. But as a novice, I don’t know what I “don’t know.” So, what’s the diff?
“Many-to-many” comes (to me) from Andrew Ng (in the context of NMT, where input and output sequences vary in length). Sequence-to-Sequence seems to originate from Sustkevar et al (2014) though sounds exactly like Ng’s “many-to-many” description. “Encoder-Decoder framework” also seems to originate from Sustkevar though it’s difficult to tell if there are earlier, more generalized instances of this concept. Sequence-to-sequence models seem like they are identical to encoder-decoder architectures/frameworks. Sequence-to-sequence models seem like a type of “End-to-End” model. I understand End-to-End models to be distinct from ML pipelines (is this truly the case?) in that they operate within a single instance/training context.
It could simply be the case that I’m just not clear what anyone means by framework vs model vs architecture since no clear distinctions appear anywhere and these terms seem to be used nearly interchangeably.