Системы рекомендаций с использованием Solr и Mahout
Я читал об использовании Solr и Mahout для разработки систем рекомендаций.
Как я понял, они справляются с двумя разными проблемами.
- Так как Solr является поисковой системой + системой классификации, она используется в основном для рекомендаций, таких как "больше нравится",
в Drupal - http://jamidwyer.com/d7/node/21.
(или "Связанная" функция в StackOverflow)
- В случае Mahout он реализует алгоритмы машинного обучения, такие как Collaborative Filtering. Его можно использовать для
реализовывать такие функции, как предложения в Amazon, основанные на предыдущих действиях пользователей. (нравится, покупается)
Мои вопросы,
Используются ли они для решения двух разных проблем?
Можно ли их интегрировать?
Я читаю, что Mahout работает в автономном режиме и масштабируется. Означает ли это, что Solr нельзя масштабировать?
Ответы
Ответ 1
Это разные инструменты для разных задач. Solr не дает рекомендаций, он предлагает похожие документы на основе содержимого. Это не персонализировано в том смысле, что оно не относится к пользователю. Это очень хорошо в этой конкретной проблеме.
Taste/Mahout предназначены для совместной фильтрации, которая не относится ни к документам, ни к каким-либо другим типам, и существенно отличается от "похожих элементов", а рекомендации основаны на взаимодействиях пользовательских элементов, а не на свойствах элементов.
Оба масштаба хорошо, в зависимости от того, что вам нужно и что значит. Нет оснований сомневаться в Solr.
Относительно Маута и рекомендателей, вкратце, у него две части. Одна часть (Вкус) - это в реальном времени, а не на основе Hadoop, и масштабирует до умеренных наборов данных (возможно, 10M точек данных) на одной машине. Затем Mahout добавляет Hatch-основанную, а не в реальном времени, пакетную реализацию, которая может масштабироваться больше. (Ad: Я являюсь основным автором вышеизложенного, и я работаю над системой следующего поколения, основанной на названии Myrrix. Он понравится, если вы интересуются как масштабируемыми, так и рекомендательными советниками в стиле Mahout в режиме реального времени.)
Если вас интересует компания, объединяющая платформу на основе вышеуказанного, включая Solr, вы должны посмотреть NGDATA.
Ответ 2
вы правы, они затрагивают две разные проблемы, и до сих пор я не видел/не обнаружил никакой существующей интеграции, которая бы работала из коробки.
Что вы можете сделать, так это использовать результаты классификации Mahout для добавления дополнительной информации в ваши индексированные документы, которые затем могут использоваться для повышения эффективности.
Что касается вашего последнего ответа - Solr может масштабироваться, а только что выпущенная версия 4.0 может даже лучше масштабироваться раньше. Но он решает другую цель и хорошо масштабируется для нее.
Вы сомневаетесь, что это немного неспецифично, поэтому я надеюсь, что это поможет в некотором роде.
Приветствия
Ответ 3
Если вы готовы загрязнить свои руки, вы можете использовать Solr + Collaborative Filtering для создания действительно слабой поисковой системы. То есть, при поиске S
и заданной истории покупок P_i
, и дайте всем остальным истории покупок P_j
где j≠i
. Затем вы можете возвращать результаты, которые удовлетворяют поиску S
, но которые усилены на основе элементов, которые, вероятно, будут искать поисковики, основанные на других подобных пользователях.
Здесь сообщение в блоге, которое я написал, может указать вам в правильном направлении: http://opensourceconnections.com/blog/2013/10/05/search-aware-product-recommendation-in-solr/