grahamjenson / ger

Good Enough Recommendation (GER) Engine
376 stars 47 forks source link

The similarity of items... #40

Closed akreienbring closed 8 years ago

akreienbring commented 9 years ago

Hi, this is a question of the kind: "Should I use GER form my purpose?"

My ultimate target is to map users that share the same interests. Every user therefore shares an URL that links to webpage that 'represents' the user.

I already set up a system that is able to scrape the main textual content from the HTML, extract the semantic entities and calculate the similarity (a value between 0 and 1) of the two texts.

Given that value I'm already able to 'recommend' a User to another, simply based on the similarity score of the profile texts.

Now I'm thinking about improving this recommendation with a system like GER. Interpreting a profile as an item and interpreting the view of a profile as event I could easily get recommendations from GER... BUT:

How to combine the recommendation based on user behavior and that one based on text similarity so that both together give a better result?

Also: Given two profiles of two users (U1 and U2). Could GER calculate a 'level of recommendation'... that would be an answer to the question of U1: "How recommended is U2 to me"?

I'm looking forward to this discussion....

grahamjenson commented 9 years ago

Hey,

GER is great for giving recommendations based on 'views' or 'likes' of a user to other things. This is based on a triple <person, action, thing> lets say that a person=user, action is either 'view' or 'like' and thing=users_profile_page

GER can calculate the similarity between two users by looking at their history, and it can recommend to a user other user_profiles that they might like to view. To combine with your algorithm you could have an action called 'semantic_similar', which you add to users that you calculate to be similar. This will mean GER can find profiles taking into account your weighting, and a users activity (weighted to your liking :)

One of the things that you should consider with your algorithm is that similar users might not want to look at each other. For example, say your users are like magnets and you have two types NORTH and SOUTH. All the NORTH users will have NORTH in their profile (and SOUTH users SOUTH), but NORTH users will look for SOUTH users (and vice versa). Using just text analysis your algorithm would recommend NORTH users to NORTH users, and SOUTH to SOUTH because these users are very similar. However, GER takes one more step and see NORTH users look at SOUTH profiles so would recommend NORTH to SOUTH.