Pep Guardiola believes Man City's Bernardo Silva has been the best player in the Premier League this season.