1. In a computer system having a processor and a memory, the memory connected to the processor and storing computer executable instructions, a method for recommending an item to one of a plurality of users, wherein the item is not yet rated by said one user, the method comprising the steps, implemented through said instructions, of: (a) storing a user profile, in the memory, for each of a plurality of users, wherein the user profile comprises a separate rating value, supplied by a particular one of the users, for each corresponding one of a plurality of items, said items including the item non-rated by the user; (b) storing an item profile, in the memory, for each of the rated items, wherein the item profile comprises a separate rating value, for a particular one of the items, provided by each one of the plurality of the users, wherein the user profile and the item profile are distinct from each other; (c) calculating, for each one of the plurality of users and in response to the user and item profiles, a plurality of similarity factors, between said each one user and at least one other one of the users, for each of said items including said non-rated item; (d) selecting, in response to the plurality of similarity factors and for each one of the plurality of users, a plurality of neighboring ones of the users, such that each of the neighboring ones of the users has an associated similarity factor which is greater than a first predefined threshold value or, if a confidence factor is associated with the associated similarity factor, both the associated similarity factor is less than the first predefined threshold and the confidence factor exceeds a second predefined threshold value (e) assigning a corresponding weight to each of the neighboring users so as to define a plurality of weights; and (f) recommending at least one of a plurality of the items to said one user in response to the plurality of weights and ratings given to the non-rated item by the neighboring ones of the users.