Question: why rnn is used for machine translation?
Answer: They are good at learning contextual dependencies over time, improving the natural language understanding which results in a good translation. Since RNNs use the same weights across all timestamps, the weight is able to look at each word/timestep and learn from them, so the information is shared between all timesteps.