Русский
Русский
English
Статистика
Реклама

Graph database

Конференция GraphAI World 2020 графовые алгоритмы и машинное обучение

25.09.2020 22:13:02 | Автор: admin
Graph+AI World

28-30 сентября пройдёт конференция Graph+AI World 2020 для людей, не равнодушных к графовым технологиям и машинному обучению. Мероприятие будет проходить онлайн в течение трех дней, участие бесплатное.

Организатором выступила компания TigerGraph, создатель одноименной Графовой БД, а в программе будут доклады от спикеров из различных компаний: Intel, KPMG, AT&T, Forbes, Intuit, UnitedHealth Group, Jaguar Land Rover, Xilinx, Xandr, Futurist Academy и др.

Зачем участвовать Руководителю или Инженеру и присоединиться к одному из 3000 участников из 110 Fortune 500 компаний? Добро пожаловать под кат.

Для тех, кто сразу хочет принять участие, ссылка на регистрацию.


Конференция Graph +AI World направлена на повышение эффективности проектов AI и машинного обучения через использование Графовых алгоритмов.

Почему Графовые алгоритмы?


graph
Мы используем графовые базы данных каждый день и, вероятно, не догадываемся об этом. Facebook, Instagram и Twitter используют графовые базы данных и аналитику, чтобы понять, как пользователи связаны друг с другом, и связать их с нужным контентом. Каждый раз, когда вы выполняете поиск в Google, вы используете knowledge graph от Google. Рекомендации продуктов на Amazon люди, которые купили этот товар, также купили или эти товары часто покупают вместе? Всё это также связано с аналитическими запросами к графовым базам данных.

Если сравнивать различные типы баз данных, можно выделить основные тенденции:

RDB

NoSQL

графовые базы данных

Реляционные базы данных
Сложные, медленные, необходимо связывать таблицы
  • Жестко выстроенная схема;
  • Высокая производительность для транзакций;
  • Низкая производительность для глубокой аналитики.

Key-value базы данных
Требуется множественное сканирование массива таблиц
  • Отсутствует четкая схема;
  • Высокая производительность для простых транзакций;
  • Низкая производительность для глубокой аналитики.

Графовые базы данных
Предварительно соединенные бизнес-сущности отсутствует необходимость связывать объекты.
  • Гибкая схема;
  • Высокая производительность для сложных транзакций;
  • Высокая производительность для глубокой аналитики.



Таким образом, если Ваши данные имеют множество связей между собой, логично использовать Графовые базы данных вместо множественных Join запросов, которые на больших объемах будут не настолько эффективны. Кроме того, никто не отменял Теорию графов для Data Science ;)

Ключевые спикеры


Graph + AI World 2020 Key Speakers

  • UnitedHealth Group создали крупнейшую Графовую БД в индустрии здравоохранения для связи, анализа и предоставления рекомендаций в реальном времени о траектории лечения для 50 миллионов пациентов.
  • Jaguar Land Rover сократили время запросов по своей сложной модели цепочек поставок с 3-х недель до 45 минут, что позволило им точно планировать и быстро реагировать на неопределенность спроса и предложения в связи с пандемией Covid-19.
  • Intuit используют knowledge graph как фундаментальную технологию для экспертной платформы, управляемой AI.

Программа


У конференции звездная повестка дня, наполненная учебными и сертификационными сессиями 28 сентября (предварительный день) и бизнес-кейсами, вариантами использования и техническими сессиями 29 и 30 сентября. Некоторые сессии выделил ниже.

28 Сентября



Introduction to Graph Algorithms for Machine Learning Certification
Графовые алгоритмы являются важными строительными блоками для анализа связанных данных и машинного обучения, чтобы получить более глубокое понимание этих данных. Графовые алгоритмы могут использоваться непосредственно для обучение без учителя или для обогащения обучающих выборок для обучения с учителем. На этом занятии будет представлена новая программа обучения и сертификации TigerGraph для применения Графовых алгоритмов для машинного обучения: обзор контента, видео, демонстрация и процесс сертификации.


Hands-on Workshop: Accelerating Machine Learning with Graph Algorithms
На этом семинаре вы сможете применить несколько различных подходов к машинному обучению с данными на базе графов.

После настройки вашей графовой БД (в облаке и бесплатно) мы сделаем следующее:
  • Обучение без учителя с помощью графовых алгоритмов
  • Извлечение признаков и обогащение графов
  • Внешнее обучение и интеграция с notebooks
  • In-database ML техники для графов

У нас будет несколько наборов данных для разных случаев.

29 Сентября




Application of Graph Model in Fintech and Risk Management
FinTell построила граф с десятками миллиардов ребер и узлов на основе 1,5 миллиардов активных мобильных устройств в месяц. Графовая модель помогает FinTell предоставлять превосходное качество услуг по управлению рисками финансовых институтов.


Building a State of the Art Fraud Detection System with Graph + AI

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



Executive Roundtable Transforming Media & Entertainment With Graph + AI

Графовые базы данных используются для идентификации, связывания и объединения повторяющихся сущностей клиентов и для построения проницательный 360 взгляд на клиентов. Обычно это приводит к более высоким доходам в результате более точных и эффективных рекомендаций по продуктам и услугам. Присоединяйтесь к руководителям Ippen Digital и Xandr (входит в состав AT&T), чтобы узнать, как графы и машинное обучение меняют медиа и сферу развлечений.

30 Сентября




Supply Chain & Logistics Management with Graph DB & AI
Промышленное производство сталкивается с серьезными проблемами, связанными с огромным количеством деталей, компонентов и материалов, которые необходимо закупать у множества глобально распределенных поставщиков, а затем обрабатывать и собирать на множестве этапов, что значительно затрудняет отслеживание от поставщика до конечного продукта. Это также включает в себя логистику, то есть типы транспорта, местоположения, продолжительность, стоимость и т. д.
Используя Графовые БД для обеспечения прозрачности сложных и распределенных данных, в сочетании с прогнозной аналитикой, производители могут эффективно решать эти проблемы. Одновременно оптимизируя планирование производства: обеспечение доступности деталей, минимизация потери качества, улучшение сборки и доставки в целом.



Recommendation Engine with In-Database Machine Learning
Рекомендательные системы используются в различных сервисах, таких как потоковое видео, интернет-магазины и социальные сети. В промышленном применении база данных может содержать сотни миллионов пользователей и элементов. Обучение модели в базе данных также позволяет избежать экспорта данных графа из СУБД на другие платформы машинного обучения и, таким образом, лучше поддерживать непрерывное обновление модели рекомендаций по изменяющимся обучающим данным.

Также на конференции будут подведены итоги хакатона Graphathon 2020.

Регистрация


Для участия в бесплатной конференции необходимо зарегистрироваться на официальной странице мероприятия по ссылке.

Присоединяйтесь к Graph + AI World!

До встречи на конференции)
Подробнее..

Перевод Введение в графовые базы данных SQL Server 2017

10.09.2020 14:18:39 | Автор: admin
В преддверии старта курса MS SQL Server Developer подготовили для вас еще один полезный перевод.



Графовые базы данных это важная технология для специалистов по базам данных. Я стараюсь следить за инновациями и новыми технологиями в этой области и, после работы с реляционными и NoSQL базами данных, я вижу, что роль графовых баз данных становится все больше. В работе со сложными иерархическими данными малоэффективны не только традиционные базы данных, но и NoSQL. Часто, с увеличением количества уровней связей и размера базы, наблюдается снижение производительности. А с усложнением взаимосвязей увеличивается и количество JOIN.

Конечно, в реляционной модели есть решения для работы с иерархиями (например, с помощью рекурсивных CTE), но это все равно остается обходными путями. При этом, функционал графовых баз данных SQL Server позволяет с легкостью обрабатывать несколько уровней иерархии. Упрощаются как модель данных, так и запросы, а следовательно, увеличивается их эффективность. Значительно сокращается объем кода.

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

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

Графовая модель данных


Граф это множество вершин (узлов, node) и ребер (взаимосвязей, edge). Вершины представляют сущности, а ребра связи, в атрибутах которых может содержаться информация.

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

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

В современном мире моделирование взаимосвязей требует все более сложных методик. Для моделирования связей SQL Server 2017 предлагает возможности графовых баз данных. Вершины и ребра графа представляются в виде новых типов таблиц: NODE и EDGE. Для запросов к графу используется новая функция T-SQL под названием MATCH(). Так как этот функционал встроен в SQL Server 2017, то его можно использовать в ваших существующих базах данных без необходимости какой-либо их конвертации.

Польза графовой модели


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

Судя по всему, в будущем многие приложения смогут выиграть от использования графовых баз данных.

Моделирование данных: от реляционной модели к графовой




Пример

Давайте рассмотрим пример организационной структуры с иерархией сотрудников: сотрудник подчиняется менеджеру, менеджер старшему менеджеру и так далее. В зависимости от конкретной компании в этой иерархии может быть любое количество уровней. Но с увеличением количества уровней вычисление связей в реляционной базе данных становится все сложнее и сложнее. В ней довольно сложно представить иерархию сотрудников, иерархию в маркетинге или связи в социальных сетях. Давайте посмотрим, как с помощью SQL Graph можно решить проблему с обработкой различных уровней иерархии.

Для этого примера сделаем простую модель данных. Создадим таблицу сотрудников EMP с идентификатором EMPNO и колонкой MGR, указывающей на идентификатор руководителя (менеджера) сотрудника. Вся информация об иерархии хранится в этой таблице и может быть запрошена с помощью колонок EMPNO и MGR.



На следующей диаграмме изображена так же самая модель оргструктуры с четырьмя уровнями вложенности в более привычном виде. Сотрудники это вершины графа из таблицы EMP. Сущность сотрудник связана сама с собою связью подчиняется (ReportsTo). В терминах графа, связь это ребро (EDGE), которое связывает узлы (NODE) сотрудников.



Давайте создадим обычную таблицу EMP и добавим туда значения в соответствии с вышеприведенной диаграммой.

CREATE TABLE EMP(EMPNO INT NOT NULL,ENAME VARCHAR(20),JOB VARCHAR(10),MGR INT,JOINDATE DATETIME,SALARY DECIMAL(7, 2),COMMISIION DECIMAL(7, 2),DNO INT) INSERT INTO EMP VALUES(7369, 'SMITH', 'CLERK', 7902, '02-MAR-1970', 8000, NULL, 2),(7499, 'ALLEN', 'SALESMAN', 7698, '20-MAR-1971', 1600, 3000, 3),(7521, 'WARD', 'SALESMAN', 7698, '07-FEB-1983', 1250, 5000, 3),(7566, 'JONES', 'MANAGER', 7839, '02-JUN-1961', 2975, 50000, 2),(7654, 'MARTIN', 'SALESMAN', 7698, '28-FEB-1971', 1250, 14000, 3),(7698, 'BLAKE', 'MANAGER', 7839, '01-JAN-1988', 2850, 12000, 3),(7782, 'CLARK', 'MANAGER', 7839, '09-APR-1971', 2450, 13000, 1),(7788, 'SCOTT', 'ANALYST', 7566, '09-DEC-1982', 3000, 1200, 2),(7839, 'KING', 'PRESIDENT', NULL, '17-JUL-1971', 5000, 1456, 1),(7844, 'TURNER', 'SALESMAN', 7698, '08-AUG-1971', 1500, 0, 3),(7876, 'ADAMS', 'CLERK', 7788, '12-MAR-1973', 1100, 0, 2),(7900, 'JAMES', 'CLERK', 7698, '03-NOV-1971', 950, 0, 3),(7902, 'FORD', 'ANALYST', 7566, '04-MAR-1961', 3000, 0, 2),(7934, 'MILLER', 'CLERK', 7782, '21-JAN-1972', 1300, 0, 1)


На приведенном ниже рисунке показаны сотрудники:
  • сотрудник с EMPNO 7369 подчиняется 7902;
  • сотрудник с EMPNO 7902 подчиняется 7566
  • сотрудник с EMPNO 7566 подчиняется 7839




Теперь давайте посмотрим на представление тех же данных в виде графа. Вершина EMPLOYEE имеет несколько атрибутов и связана сама с собой связью подчиняется (EmplReportsTo). EmplReportsTo это название связи.

В таблице ребер (EDGE) также могут присутствовать атрибуты.



Создадим таблицу узлов EmpNode

Синтаксис создания узла довольно прост: к выражению CREATE TABLE в конец добавляется AS NODE.

CREATE TABLE dbo.EmpNode(ID Int Identity(1,1),EMPNO NUMERIC(4) NOT NULL,ENAME VARCHAR(10),MGR NUMERIC(4),DNO INT) AS NODE;


Теперь преобразуем данные из обычной таблицы в графовую. Следующий INSERT вставляет данные из реляционной таблицы EMP.

INSERT INTO EmpNode(EMPNO,ENAME,MGR,DNO) select empno,ename,MGR,dno from emp




В таблице узлов в специальной колонке $node_id_* хранится идентификатор узла в виде JSON. В остальных столбцах этой таблицы находятся атрибуты узла.

Создаем ребра (EDGE)

Создание таблицы ребер очень похоже на создание таблицы узлов, за исключением того, что используется ключевое слово AS EDGE.

CREATE TABLE empReportsTo(Deptno int) AS EDGE




Теперь определим связи между сотрудниками, используя столбцы EMPNO и MGR. По диаграмме оргструктуры хорошо видно как написать INSERT.

INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 1),   (SELECT $node_id FROM EmpNode WHERE id = 13),20);INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 2),   (SELECT $node_id FROM EmpNode WHERE id = 6),10);INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 3),   (SELECT $node_id FROM EmpNode WHERE id = 6),10)INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 4),   (SELECT $node_id FROM EmpNode WHERE id = 9),30);INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 5),   (SELECT $node_id FROM EmpNode WHERE id = 6),30);INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 6),   (SELECT $node_id FROM EmpNode WHERE id = 9),30);INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 7),   (SELECT $node_id FROM EmpNode WHERE id = 9),30);INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 8),   (SELECT $node_id FROM EmpNode WHERE id = 4),30);INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 9),   (SELECT $node_id FROM EmpNode WHERE id = 9),30);INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 10),   (SELECT $node_id FROM EmpNode WHERE id = 6),30);INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 11),   (SELECT $node_id FROM EmpNode WHERE id = 8),30);INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 12),   (SELECT $node_id FROM EmpNode WHERE id = 6),30);INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 13),   (SELECT $node_id FROM EmpNode WHERE id = 4),30);INSERT INTO empReportsTo  VALUES ((SELECT $node_id FROM EmpNode WHERE ID = 14),   (SELECT $node_id FROM EmpNode WHERE id = 7),30);


Таблица ребер по умолчанию состоит из трех столбцов. Первый, $edge_id идентификатор ребра в виде JSON. Два других ($from_id и $to_id) представляют связь между узлами. Кроме того, ребра могут иметь дополнительные свойства. В нашем случае это Deptno.

Системные представления


В системном представлении sys.tables появилось две новые колонки:
  1. is_edge
  2. is_node


SELECT t.is_edge,t.is_node,*FROM sys.tables tWHERE name like 'emp%'




SSMS


Объекты, связанные с графами, располагаются в папке Graph Tables. Иконка таблицы узлов помечена точкой, а таблицы ребер двумя связанными кругами (что немного похоже на очки).



Выражение MATCH


Выражение MATCH взято из CQL (Cypher Query Language). Это эффективный способ запроса к свойствам графа. CQL начинается с выражения MATCH.

Синтаксис

MATCH (<graph_search_pattern>) <graph_search_pattern>::=    {<node_alias> {                 { <-( <edge_alias> )- }               | { -( <edge_alias> )-> }             <node_alias>             } } [ { AND } { ( <graph_search_pattern> ) } ] [ ,...n ] <node_alias> ::=    node_table_name | node_alias <edge_alias> ::=    edge_table_name | edge_alias


Примеры

Давайте посмотрим на несколько примеров.

Приведенный ниже запрос отображает сотрудников, которым подчиняется Smith и его менеджер.

SELECTE.EMPNO,E.ENAME,E.MGR,E1.EMPNO,E1.ENAME,E1.MGRFROM    empnode e, empnode e1, empReportsTo mWHERE    MATCH(e-(m)->e1)and e.ENAME='SMITH'




Следующий запрос предназначен для поиска сотрудников и менеджеров второго уровня для Smith. Если убрать предложение WHERE, то в результате будут отображаться все сотрудники.

SELECTE.EMPNO,E.ENAME,E.MGR,E1.EMPNO,E1.ENAME,E1.MGR,E2.EMPNO,e2.ENAME,E2.MGRFROM    empnode e, empnode e1, empReportsTo m ,empReportsTo m1, empnode e2WHERE    MATCH(e-(m)->e1-(m1)->e2)and e.ENAME='SMITH'




И, наконец, запрос для сотрудников и менеджеров третьего уровня.

SELECTE.EMPNO,E.ENAME,E.MGR,E1.EMPNO,E1.ENAME,E1.MGR,E2.EMPNO,e2.ENAME,E2.MGR,E3.EMPNO,e3.ENAME,E3.MGRFROM    empnode e, empnode e1, empReportsTo m ,empReportsTo m1, empnode e2, empReportsTo M2, empnode e3WHERE    MATCH(e-(m)->e1-(m1)->e2-(m2)->e3)and e.ENAME='SMITH'




Теперь давайте изменим направление, чтобы получить начальников Smith'а.

SELECTE.EMPNO,E.ENAME,E.MGR,E1.EMPNO,E1.ENAME,E1.MGR,E2.EMPNO,e2.ENAME,E2.MGR,E3.EMPNO,e3.ENAME,E3.MGRFROM    empnode e, empnode e1, empReportsTo m ,empReportsTo m1, empnode e2, empReportsTo M2, empnode e3WHERE    MATCH(e<-(m)-e1<-(m1)-e2<-(m2)-e3)




Заключение


SQL Server 2017 зарекомендовал себя как полноценное корпоративное решение для различных ИТ-задач бизнеса. Первая версия SQL Graph очень многообещающая. Даже несмотря на некоторые ограничения, уже сейчас есть достаточно функционала для изучения возможностей графов.

Функционал SQL Graph полностью интегрирован в SQL Engine. Однако, как уже было сказано, в SQL Server 2017 есть следующие ограничения:

Нет поддержки полиморфизма.
  • Поддерживаются только однонаправленные связи.
  • У ребер нельзя обновлять столбцы $from_id и $to_id через UPDATE.
  • Не поддерживаются транзитивные замыкания (transitive closure), но их можно получить с помощью CTE.
  • Ограничена поддержка объектов In-Memory OLTP.
  • Не поддерживаются темпоральные таблицы (System-Versioned Temporal Table), временные локальные и глобальные таблицы.
  • Табличные типы и табличные переменные не могут быть объявлены как NODE или EDGE.
  • Не поддерживаются запросы между базами данных (cross-database queries).
  • Нет прямого способа или какого-то мастера (wizard) для преобразования обычных таблиц в графовые.
  • Для отображения графов нет GUI, но можно использовать Power BI.




Читать ещё:




Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru