numpy.dot works on two vectors and it is their inner product, and when it works on a matrix, it is a matrix product.
RMSE solves the problem of dimensions, i.e. units
RMSE will amplify the value of the larger difference, so it is better to use MSE.