I want to design a recommendation system that goes like this:
I have many restaurants with different tags
I have users making searches using those tags
I want to make recommendations based on the tags the users have search most
I am not looking for a complicated algorithm.
For example:
I have a user who has searched:
tag1 - n1 times
tag2 - n2 times
tag3 - n3 times
tag4 - n4 times
tag5 - n5 times
And there are 3 restaurants with the corresponding tags:
restaurant1: tag1, tag2, tag4, other_tag
restaurant2: tag5, other_tag
restaurant3: tag1, tag4, other_tag, other_tag
I was thinking about the following logic:
Let n = n1 + n2 + n3 + n4 + n5
Let t_i = the number of tags for the i_th restaurant
Then I'll compute:
R1 = sum(is_tag_i_in_restaurant1 * ni) / t_1, where i goes from 1 to 5
R2 = sum(is_tag_i_in_restaurant2 * ni) / t_2, where i goes from 1 to 5
R3 = sum(is_tag_i_in_restaurant3 * ni) / t_3, where i goes from 1 to 5
T1 = n / t_1
T2 = n / t_2
T3 = n / t_3
And now for each restaurant I will compare Ri with Ti. Let say, if Ri >= Ti/2 I will consider it a recommendation.
Is this a good way of doing this? Can you recommend me something more efficient?