Помимо рекомендаций от пункта к пункту - PullRequest
4 голосов
/ 20 декабря 2010

Простые системы рекомендаций по пунктам хорошо известны и часто применяются. Примером является алгоритм Slope One . Это хорошо, если пользователь еще не оценил много элементов, но как только они будут оценены, я хочу предложить более детальные рекомендации. Давайте возьмем в качестве примера систему музыкальных рекомендаций, поскольку они довольно популярны. Если пользователь просматривает произведение Моцарта, может быть предложено другое произведение Моцарта или Бетховена. Но если пользователь сделал много оценок на классическую музыку, мы могли бы сделать корреляцию между элементами и увидеть, что пользователь не любит вокал или определенные инструменты. Я предполагаю, что это будет процесс, состоящий из двух частей, первая часть состоит в том, чтобы найти корреляции между оценками каждого пользователя, а вторая - построить матрицу рекомендаций из этих дополнительных данных. Таким образом, вопрос в том, являются ли они какими-либо реализациями или документами с открытым исходным кодом, которые можно использовать для каждого из этих шагов?

Ответы [ 3 ]

2 голосов
/ 20 декабря 2010

Вкус может иметь что-то полезное.Он перенесен в проект Mahout:

http://taste.sourceforge.net/

В общем, идея заключается в том, что, учитывая прошлые предпочтения пользователя, вы хотите предсказать, что он выберет следующим, и порекомендовать его.Вы строите модель машинного обучения, в которой входные данные - это то, что пользователь выбрал в прошлом, и атрибуты каждого выбора.Результатом является пункт (ы), которые они выберут.Вы создаете данные обучения, удерживая некоторые из их выборов и используя их историю, чтобы предсказать данные, которые вы удерживали.

Множество различных моделей машинного обучения, которые вы можете использовать.Деревья решений распространены.

1 голос
/ 24 декабря 2010

Один из ответов заключается в том, что любая рекомендующая система должна иметь некоторые свойства, которые вы описываете. Первоначально, рекомендации не так хороши и повсюду. По мере изучения вкусов рекомендации будут исходить из области, которая нравится пользователю.

Но описанный вами процесс совместной фильтрации принципиально не пытается решить проблему, которую вы пытаетесь решить. Он основан на пользовательских оценках, и две песни не имеют одинакового рейтинга, потому что они похожи - они имеют одинаковый рейтинг только потому, что похожие люди любят их.

Что вам действительно нужно, так это определить ваше представление о сходстве песен и песен. Это основано на том, как звучит песня? композитор? Потому что это звучит так, как будто понятие не основано на рейтингах. Это 80% проблемы, которую вы пытаетесь решить.

Я думаю, что вопрос, на который вы действительно отвечаете, состоит в том, какие предметы больше всего похожи на данный предмет? Учитывая сходство вашего предмета, это более простая проблема, чем рекомендация.

Mahout может помочь со всеми этими вещами, кроме сходства песни с песней, основанного на его аудио - или, по крайней мере, обеспечить начало и основу для вашего решения.

0 голосов
/ 20 декабря 2010

Есть две техники, о которых я могу подумать:

  • Обучите прямую искусственную нейронную сеть, используя Обратное распространение или одного из ее преемников (например, Resilient Propagation).
  • Используйте версия космического обучения . Это начинается с самых общих и самых конкретных гипотез о том, что нравится пользователю, и сужает их при интеграции новых примеров. Вы можете использовать иерархию терминов для описания понятий.

Общими характеристиками этих методов являются:

  1. Вам нужна другая функция для каждый пользователь. Это довольно много правил эффективные запросы к базе данных, когда поиск рекомендаций.
  2. Функция может быть обновлена ​​на лету когда пользователь голосует за товар.
  3. Размеры, по которым вы классифицируете входные данные (например, имеет вокал, удары в минуту, музыкальные весы, что угодно) очень важны для качество классификации.

Обратите внимание, что эти предложения приходят из университетских курсов по системам, основанным на знаниях и искусственных нейронных сетях, а не из практического опыта.

...