1. A method, implemented on at least one computing device each of which has at least one processor, storage, and a communication platform connected to a network for providing a user interface to a plurality of users, the method comprising: determining a plurality of candidate user interfaces each of which is associated with one or more parameters related to a user interface; providing each of the plurality of candidate user interfaces to a subset of users selected from the plurality of users; obtaining inputs from the plurality of users with respect to each of the plurality of candidate user interfaces; selecting one or more candidate user interfaces from the plurality of candidate user interfaces based on the inputs; generating a new candidate user interface based on the selected one or more candidate user interfaces; identifying a user interface based on the new candidate user interface and the selected one or more candidate user interfaces; and providing the identified user interface to the plurality of users.