compleated  class "ItemBasedNearestNeighbor"