Я пытаюсь создать сайт, который рекомендует пользователям (fx. books) пользователям на основе их предпочтений. До сих пор я читал O'Reilly "Коллективный разум" и множество других онлайн-статей. Тем не менее, все они имеют дело с единичными примерами рекомендаций, например, если вам нравится книга A, тогда вам может понравиться книга B.
То, что я пытаюсь сделать, - создать набор "предпочтительных узлов" для каждого пользователя на моем сайте. Скажем, пользователю нравится книга A, B и C. Затем, когда они добавляют книгу D, я не хочу, чтобы система рекомендовала другие книги, основанные исключительно на других пользователях, с книгой D. Я не хочу, чтобы система искала аналогичные "предпочтения-узлы" и рекомендуют книги на основе этого.
Здесь приведен пример из 4 узлов:
User1: 'book A'->'book B'->'book C'
User2: 'book A'->'book B'->'book C'->'book D'
user3: 'book X'->'book Y'->'book C'->'book Z'
user4: 'book W'->'book Q'->'book C'->'book Z'
Итак, система рекомендаций, описанная в материале, который я прочитал, порекомендует книгу Z для пользователя 1, потому что есть два человека, которые рекомендуют Z в сочетании с симпатией C (т.е. Z весит больше D), даже хотя пользователь с аналогичным "предпочтением - node", User2, был бы более квалифицирован, чтобы рекомендовать книгу D, потому что у него более похожий шаблон интереса.
У кого-нибудь из вас есть какой-то опыт? Есть ли какие-то вещи, которые я должен попробовать прочитать, или существуют ли какие-либо системы с открытым исходным кодом для этого?
Спасибо за ваше время!
Небольшое редактирование: я думаю, что алгоритм last.fm делает именно то, что я должен делать. Использование предпочтений деревьев людей, чтобы рекомендовать музыку более лично для людей. Вместо того, чтобы просто сказать "вам может понравиться B, потому что вам понравился A"