Я работаю над проектом (социальной сетью), который использует Neo4j (v1.9) в качестве базового хранилища данных и данных Spring Neo4j. Я пытаюсь добавить систему тегов в проект, и я ищу способы эффективного применения рекомендации тегов с использованием стратегий совместной фильтрации. После многих исследований я пришел с такими опциями:Что я должен использовать для реализации совместной фильтрации поверх Neo4j?
- Cypher. Это язык встроенных запросов, используемый Neo4j. Никакой другой структуры не требуется, возможно, вычислительные времена лучше других. Возможно, я могу легко реализовать запросы, используя Spring Data Neo4j.
- Apache Mahout. Он предлагает алгоритмы машинного обучения, ориентированные в первую очередь в области совместной фильтрации, кластеризации и классификации. Однако он не предназначен для баз данных графов и может быть потенциально медленным.
- Apache Giraph. Открыть исходный код Google Pregel.
- Apache Spark. Это быстрый и общий механизм для крупномасштабной обработки данных.
- reco4j. Это лучшее подходящее решение до сих пор, но проект кажется мертвым.
- Apache Spark GraphX + Mazerunner. Предлагается по the answer @johnymontana. Я документирую это. Основная проблема заключается в том, что я не знаю, поддерживает ли она совместную фильтрацию.
- Graphareare Reco. Предложенная @ChristopheWillemsen в комментарии. С официального сайта
представляет собой расширяемую высокопроизводительный двигатель рекомендации каркас для Neo4j, что позволяет вычислять и выступающей в режиме реального времени, а также предварительно вычисленные рекомендации.
Тем не менее, я еще не понял, если он работает со старой версией Neo4j (я не могу обновить версию Neo4j на данный момент).
Итак, что вы предлагаете и почему? Не стесняйтесь предлагать другие интересные рамки, не перечисленные выше.
Вы можете добавить в свой список EngineAware Engine. Github: https://github.com/graphaware/neo4j-reco и видео: https://vimeo.com/118837191 –
@ ChristopheWillemsen Я смотрю видео прямо сейчас. Вы предлагаете это? Если да, то почему? – tigerjack89
Я не могу рекомендовать вам «одну» вещь с таким меньшим количеством информации о том, какую проблему вы хотите точно решить и как, но для стиля k-соседей, плагин может немного облегчить вам жизнь с нео. Mazerunner, как указано ниже, является действительно хорошим проектом. –