Совместная фильтрация в MySQL?

япытаясь разработать сайт, который рекомендует предметы (например, книги) пользователям на основе их предпочтений. До сих пор я читал «Коллективный разум» О'Рейли и множество других онлайн-статей. Однако все они, похоже, имеют дело с единичными случаями рекомендации, например, если вам нравится книга А, то вам может понравиться книга Б.

Я пытаюсь создать набор «узлов-предпочтений» для каждого пользователя на моем сайте. Допустим, пользователю нравятся книги 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), даже если пользователь с подобным «узлом предпочтения», User2, будет более квалифицированным, чтобы рекомендовать книгу D, потому что у него более похожий образец интереса.

Так есть ли у кого-нибудь из вас опыт такого рода вещей? Есть ли какие-то вещи, которые я должен попытаться прочитать, или существуют ли системы с открытым исходным кодом для этого?

Спасибо за ваше время!

Небольшое редактирование: Я думаю, что алгоритм last.fm делает именно то, что и моя система. Использование деревьев предпочтений людей, чтобы рекомендовать музыку более лично людям. Вместо того, чтобы просто сказать «тебе может понравиться Б, потому что тебе нравится А»

Ответы на вопрос(1)

Ваш ответ на вопрос