Системы рекомендаций с использованием Solr и Mahout

Я читал об использовании Solr и Mahout для разработки систем рекомендаций.

Как я понял, они справляются с двумя разными проблемами.

  • Так как Solr является поисковой системой + системой классификации, она используется в основном для рекомендаций, таких как "больше нравится", в Drupal - http://jamidwyer.com/d7/node/21.

(или "Связанная" функция в StackOverflow)

  1. В случае 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/