Социальные рекомендации с Neo4j - PullRequest
0 голосов
/ 31 мая 2018

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

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

Так что я должен иметь на своем графике 4 типа узлов:

  1. user
  2. news
  3. object
  4. travel

Каждый раз, когда пользователь дает положительный отзыв для элемента (новости, путешествия, объект), это событие должно создавать два отношения в графе: HAS_VOTED (user to item), HAS_BEEN_VOTED (элемент для пользователя).Эти отношения имеют свойство: голос, которое увеличивается каждый раз, когда пользователь дает положительный отзыв.

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

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

Эта проблема может привести к проблеме производительности в neo4j при расчете путей?

Это правильный дизайн схемы, чтобы решить моюпроблема?

Приветствуется хороший совет.

Заранее спасибо.

1 Ответ

0 голосов
/ 31 мая 2018

Хотя Neo4j требует, чтобы отношение было направленным, оно может легко пересечь отношение в обоих направлениях.Следовательно, нет необходимости (и неэффективно и громоздко) использовать 2 отношения для представления двунаправленных отношений.

Таким образом, вы можете избавиться от HAS_BEEN_VOTED и просто использовать тип отношения HAS_VOTED.

В Интернете много статей о том, как давать рекомендации с помощью neo4j.Вы должны выполнить поиск и найти те, которые полезны для вас.

Кроме того, для начала вы можете ввести эту команду в браузере Neo4j, чтобы запустить учебник по персональным рекомендациям (он может отвечать большинству вашихквестипоны):

:play http://guides.neo4j.com/sandbox/recommendations
...