1. A method for predicting an optimal machine translation system for a user comprising: for each of a set of users, providing a respective user profile which includes rankings for at least some machine translation systems from a set of machine translation systems, the set of users including a first user and a plurality of other users; updating the user profile of the first user based on the user profiles of at least a subset of the other users, the updating including generating at least one missing ranking; predicting an optimal translation system for the first user from the set of machine translation systems based on the updated user profile computed for the first user; and wherein at least one of the updating and the predicting of the optimal translation system is performed with a processor.