1. A method for obtaining user preferences, comprising: providing input search criteria; matching information about a user to information stored in a database, the database having a multi-level structure enabling grouping of the information for scalability, the information about the user modified by an event filter; selecting a target attribute and calculating a long-term memory value for the user, and setting a short-term memory value to 1 each time the target attribute is selected; ranking and displaying attributes according to a predicted relevance to the user based on the matched and selected calculations; and updating the information in the database to reflect the similarity between users in the group and to better predict an individual user's interest in one of the attributes.