I have a hierarchical feature matrix, By that I mean that each item may belongs to one or more category, so my data will look something like that|  User |  Categ  | Item  |
|  1 | 12  | 120  |
|  2 | 15  | 411  |
|  9 | 35  | 411  |
|  1 | 15  | 321  |
where the numbers represent ids for users, categories and items respectively.
As you can see there is a hierarchy here, a set of categories for each user and a set of items within that category, where one item can belong to more than one category.
My goal is to recommend new items to the new incoming users. I already have a user similarity algorithm in place and I can find the top n similar users. Now I need to use the above table to recommend one or more items to the new user.
- Easy way is to take the categories from the most similar user, pick some items from these categories and suggest them to the new user
But I am looking for a better approach that will consider the combination of categ-item simultaneously. This is a very large data set, so the algorithm should scale. Any suggestion?