1. A method for verifying user identity, the method comprising: generating a list which includes a plurality of items; formulating a substantially large set of security questions to ask a user regarding the user's experience and/or preference related to the plurality of items, wherein the number of security questions in the set is significantly larger than a subset of security questions presented to the user to reduce the likelihood of the same questions being asked repeatedly; during an account creation process, presenting to the user the subset of security questions and receiving and storing a response from the user to the subset of questions, wherein at least one question in the subset is selected based on user information that is automatically extracted from devices associated with the user without explicitly requiring the user to input user information manually; subsequently receiving a request to reset the user's password; presenting the subset of security questions to the requester; receiving a response from the requester to the subset of questions; and determining whether the requester is the user by comparing the requester's response with the stored user response.