In sequence-to-sequence, why is the output of the decoder used as its input?
In seq2seq they model the joint distribution of whatever char/word sequence by decomposing it into time-forward conditionals:
$\begin{align*}
p(w_1,w_2,...,w_n) =&amp; \ p(w_1)*p(w_2|w_1) * \ ... \ * p(w_n|w_1,...,w_{n-1}) \\
 =&amp; \ p(w_1)*\prod_{i=2}^{n}p(w_i|w_{&lt;i})
\end{align*}
$  

This can be sampled by samping each of the conditional is ascending order. So thats exactly what theyre trying to imitate. You want the second output dependant on the sampled first output, not its distribution.  

This is why the hidden state is NOT good for modeling this setup because it is a latent representation of the distribution, not a sample of the distribution.  

Note: In training they use ground truth as input by default because its working under the assumption the model shouldve predicted the correct word and if it didnt the gradient of the word/char level loss will reflect that (this is called teacher forcing and has a multitude of pitfalls)