  When humans solve complex problems, they typically create a sequence of ideas
(involving an intuitive decision, reflection, error correction, etc.) in order
to reach a conclusive decision. Contrary to this, today's models are mostly
trained to map an input to one single and fixed output. In this paper, we
investigate how we can give models the opportunity of a second, third and
$k$-th thought. Taking inspiration from Hegel's dialectics, we propose the
concept of a thought flow which creates a sequence of predictions. We present a
self-correction mechanism that is trained to estimate the model's correctness
and performs iterative prediction updates based on the correctness prediction's
gradient. We introduce our method at the example of question answering and
conduct extensive experiments that demonstrate (i) our method's ability to
correct its own predictions and (ii) its potential to notably improve model
performances. In addition, we conduct a qualitative analysis of thought flow
correction patterns and explore how thought flow predictions affect human users
within a crowdsourcing study. We find that (iii) thought flows enable improved
user performance and are perceived as more natural, correct, and intelligent as
single and/or top-3 predictions.
