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

Еще одна новая книга в экосистеме Neo4j! Выпущенная в конце августа 2020 года книга Практическая графическая аналитика с Neo4j - это почти 500-страничная книга о Neo4j, Cypher, графах знаний, графической аналитике, машинном обучении графов (все еще в контексте Neo4j) и их приложения. В этом посте я объясню, чем эта книга отличается от других, что привело к ее составлению и кому будет интересно ее прочитать.

Связанные книги

Вы можете найти множество книг о графовых базах данных и Neo4j. Вот неполный список таких книг с чем-то сопоставимым по содержанию:

  • Изучение Neo4j 3.x (Дж. Батон и Р. Ван Брюгген, Packt Publishing): эта книга научит вас концепциям графовых баз данных и Neo4j в частности. Он также познакомит вас с Cypher, языком запросов Neo4j. Это хорошая предпосылка для книги, о которой мы сейчас говорим.
  • Графические алгоритмы: практические примеры в Apache Spark и Neo4j (М. Нидхэм и А. Ходлер, O'Reilly): написано двумя людьми, работающими в Neo4j, особенно Марк является одним из авторов библиотеки графических алгоритмов, это хороший ресурс для изучения алгоритмов графов, охватываемых этой библиотекой, их вариантов использования и практических примеров.
  • Машинное обучение на основе графа (A. Negro, Manning Publication): даже если это не указано в заголовке, в большинстве примеров используется Cypher. Это всесторонний обзор приложений машинного обучения, в котором особое внимание уделяется механизмам рекомендаций и методам обнаружения мошенничества, основанным на графических технологиях (несколько глав посвящены каждой из этих тем).

Все они предлагают качественный контент и хорошие чтения! Итак, зачем еще одна книга на подобную тему?

Содержание книги

«Практическая графическая аналитика с Neo4j» предполагает, что читатель имеет некоторые предварительные знания о Neo4j (и Cypher) и машинном обучении, даже если по обеим темам даются некоторые краткие пояснения. Цель книги - дать вам оценить весь спектр приложений, которые предлагает Neo4j с точки зрения анализа данных, включая его большое количество подключаемых модулей и приложений от сообщества.

На самом деле это одна из причин, которая подтолкнула меня к написанию этой книги: мир Neo4j большой, с множеством плагинов / расширений, и иногда трудно найти свой собственный путь. Я рассматриваю эту книгу как руководство, которое поможет вам понять, как все устроено, и лучше понять другой контент, связанный с графами, если вы хотите глубже изучить тему (что я призываю вас сделать! ).

Раздел 1: Моделирование графов с помощью Neo4J

Первый раздел посвящен обзору принципов Neo4j и использования Cypher (импорт данных, сопоставление с образцом, планировщик запросов). Последняя глава в основном посвящена графам знаний. Он дает обширные примеры того, как создать и расширить граф знаний (KG) (используя NLP или внешние источники данных, такие как Викиданные). В этой главе также представлены идеи, лежащие в основе некоторых хороших приложений KG, таких как поисковые системы на основе графов или системы рекомендаций.

Раздел 2: Графические алгоритмы

Второй раздел полностью сосредоточен на алгоритмах графов с большим уклоном в сторону алгоритмов, реализованных в недавно выпущенной библиотеке Graph Data Science (GDS) (выпущенной в марте 2020 года). Насколько мне известно, это первая книга, использующая GDS. Этот раздел проведет вас от принципов построения GDS (введение и управление проектируемыми графиками, получение результатов алгоритма) к деталям основных алгоритмов (PageRank, распространение меток или алгоритмы Лувена).

Основные алгоритмы графа представлены с целью, чтобы читатель понял, что происходит под капотом, чтобы выбрать, когда их использовать: представлены примеры реализации (на Python) с примером числовые вычисления.

Глава также посвящена управлению и визуализации пространственных данных с использованием как встроенных пространственных типов Neo4j, так и подключаемого модуля neo4j-space. В сочетании с алгоритмами кратчайшего пути из GDS создается пример механизма маршрутизации.

В нескольких подразделах подробно описано, как создавать визуализации графиков с помощью JavaScript и JS-драйвера Neo4j.

Раздел 3. Машинное обучение на графах

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

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

Раздел 4: Neo4j для продакшена

Наконец, в этом последнем разделе рассказывается об инструментах использования Neo4j для создания качественного приложения. В главе 11 вы узнаете, как создать веб-приложение, используя либо фреймворк Python Flask, либо стек GRAND (React JS) для более удобного взаимодействия с пользователем.

Все еще хотите узнать о содержании? Вы можете проверить код, использованный в книге, на GitHub.

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

Чем НЕ является эта книга

В этой книге нет:

  • введение в графовые базы данных, а также основные концепции баз данных
  • введение в науку о данных или машинное обучение
  • опрос о рекомендациях / обнаружении мошенничества / методологиях других приложений, описаны только основные концепции
  • подробный курс по Graph Deep Learning. Несмотря на то, что концепция GNN кратко объясняется, книга почти не содержит уравнений, пропускает концепции функций потерь или активации. Если вы заинтересованы в графическом машинном обучении и особенно в GNN и глубоком обучении, я рекомендую, например: Deep Learning on Graphs.

Итак, все еще сомневаетесь, стоит ли вам читать эту книгу? Позвольте мне дать вам образ, которым я руководствовался в процессе написания.

Целевая аудитория

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

Специалисты по данным

Вы определенно основная целевая аудитория. Вы строите модели каждый день (или почти). У вас есть понимание машинного обучения и вам любопытны эти графики, о которых все (почти) говорят? Эта книга проведет вас через все шаги от создания модели данных графа (в базе данных) до интеллектуального анализа данных и прогнозов до производства! Все это с использованием Neo4j и современных технологий (Python, React JS при необходимости).

Аналитики данных

Вы привыкли писать SQL-запросы для извлечения информации из базы данных и использовать модели интеллектуального анализа данных для извлечения ценных идей из данных. Эта книга даст вам те же навыки в контексте графовых баз данных, и вы сможете писать Cypher-запросы, чтобы лучше понимать эти данные и использовать алгоритмы в GDS для описания графа.

Однако обратите внимание, что раздел 3 требует базового понимания конвейера Data Science (обучение модели, двоичная классификация, оценка производительности модели). Ноутбуки Jupyter предоставлены таким образом, что вы можете все воспроизвести, улучшить производительность и, почему бы и нет, попробовать свои собственные данные?

Разработчики и компьютерные ученые

Вы работаете в компании, использующей графические базы данных, и задаетесь вопросом, чего с их помощью можно достичь? Вы найдете ответы в этой книге. Если у вас есть некоторый опыт работы в области компьютерных наук, раздел 2, в котором показаны различные алгоритмы, не должен стать для вас проблемой.

Однако, как указывалось ранее, в разделе 3 книги предполагается, что у вас есть некоторые знания о Data Science. Не нужно быть экспертом, просто нужно понимать, что такое обучающий набор и что такое классификация.

Глава 11 должна быть для вас довольно простой, поскольку в ней подробно рассказывается, как создать веб-приложение с Neo4j с использованием Python или React и познакомить со спецификацией GraphQL API.

Итак, интересно?

Заинтересованы? Книга доступна на Амазоне!

Если вы прочитали книгу или хотя бы ее часть, я буду рад получить от вас известие. Есть ли у вас болевые точки? Есть ли у вас вопросы, на которые нет ответа в книге? Что вы планируете построить с помощью этих новых знаний? Напишите мне в Twitter или воспользуйтесь формой обратной связи на моем сайте!