Expansion of dimensions is mostly done to enhance the parameters (read weights and Biases) of a model. This might lead to better capture of the data distribution, but might also lead to over-fitting.


They set num_layers=2 to use two LSTM layer stacked one on top of the other. This way, they use recurrence of two layers. This is indeed an expensive operation, but using stacked LSTM helps in better recurrence capture of the sequence.


I would want you to take a look at an article that I had written on LSTM to have a good understanding about it.
The Article can be found here 5