SlideShare une entreprise Scribd logo
1  sur  37
Ноотропы RDF для BigData
Леонид Юрьев,
Петер-Сервис R&D,
Сколково
ТЕМАТИКА ДОКЛАДА ≈ RDF
40% = Базы данных и системы хранения
30% = Технологии будущего
20% = Серверное программирование
10% = про жизнь… )
≈ 30 слайдов
Леонид Юрьев
• 20-25 лет программирую
• системный архитектор в
матрице Петер-Сервис R&D
• TopGun DPI & 1Hippeus
leo@yuriev.ru
leonid.yuriev@billing.ru
• решения для крупных операторов связи:
BSS, Telco protocols, BigData, HA & HighLoad
• ≈20 лет полного цикла: разработка,
внедрение и сопровождение
• более 100 миллионов абонентов обслуживается
при участи наших систем
• 900 сотрудников из них 400 разработчиков,
250 во внедрении и поддержке
• R&D подразделение в Сколково
BigData
≈ на ближайшие 40 минут, это когда…
1. данных много
= тяжело унести физически
2. и они разные
= долго описывать структуру формально…
ПРИМЕРЫ =
Прикинем трудности при проектировании
структуры «БД» для трех проектов:
• Система оценки рисков по контрагенту
• Выявление предпочтений и персональное
предсказание покупок для рекламной платформы
• Хранилище «следов» для DLP / СОРМ-3 / PRISM
ОЦЕНКА РИСКОВ, слайд 1
По контрагенту, поставщику, выявление
«однодневок», аналитика:
• Источники = ИФНС, ГМЦ Росстата, ЕГРЮЛ,
Арбитраж, OpenData, LinkedData...
• Объекты = адреса, юрлица, учредители, судебные
решения, госконтракты, отчетность, упоминания в
прессе...
ОЦЕНКА РИСКОВ, слайд 2
Структура некоторых источников в цифрах:
• Юрлицо ≈50 полей, ≈5 таблиц
• Баланс субъекта в Роскомстате
≈ перечень полей на 7 страниц
• Реестр ЕМИСС ≈ 4500 результирующих таблиц
ОЦЕНКА РИСКОВ, слайд 3
• Автономность ≈ источники данных независимо
спроектированы и продолжают развиваться
• Разнородность ≈ данные гетерогенны, схемы
построены разными методиками
• Зоопарк ≈ разные технологии,
инструментальные средства, форматы и
синтаксисы
ПРЕДСКАЗАНИЕ ПОКУПОК
Таргетирование рекламы по предпочтениям
и персональному прогнозу покупки:
• Источники = Социальные сети, Ритейлеры,
Мобильные приложения, OpenData...
• Объекты = потребители, предпочтения, покупки,
лайки, открытые события...
DLP / СОРМ-3 / PRISM
Родственные технологии, главные различия в
масштабе и детализации:
• Записи = «Растущие» атрибутные деревья с
элементами наследования
• Индексы = Много FK и регулярно возникает
желание персонально индексировать каждый
«листик»...
ЭФФЕКТ ГОРИЗОНТА
• Источники данных = нефиксированный,
итеративно пополняемый список
• Структура данных = нефиксированная,
подвержена итеративному расширению и
постоянной эволюции
• Изменения естественны и постоянны,
планирование и оптимизация почти напрасны
• Интеграция становится адовой задачей
ПУТИ и ПРОБЛЕМЫ
• SQL = много таблиц и NULL-значений, всё плохо…
• Key-Value и SOA = лепим жупел из сервисов,
решается часть проблем с хранилищем…
• Doc-Oriented = schemaless, некая локальность,
нужны индексы, «ручной» привод для 1-2-3, можно
выжить…
• Graph-Oriented & RDF-storage = ага, чуть позже…
ПРИЧИНЫ, ПАФОСНО
Информация о действительности обладает структурой,
но неподъемной для формализации…
• Упрощаем и искажаем, отображая на возможности
инструментов, частично выносим в app и сервисы
• Создаем внутренние знания: типы в схеме, ID
записей, ID в справочниках и таксономиях
• Итог = Изменение схемы мега-дорого, итеративное
развитие невозможно, интеграция трудна…
ё, А ЧТО ДЕЛАТЬ?
1. не отказываться от схемы/модели данных
2. но и не фиксировать
3. позволить постоянно развиваться…
Но как итеративно уточнять формальную модель,
одновременно «не ломая» систему хранения и код
сервисов/приложений?
Объектно-ориентированные БД ≈ было,
нет удобных формальных моделей эффективных для
реализации, программисты увлекаются…
КУДА СТРЕМИТСЯ?
1. Упорядоченность усилий ≈ видение пути к целям
2. Agile ≈ лояльность к изменениям
3. Итеративность ≈ возможность выдавать value на
каждом шаге
ПРАВИЛЬНАЯ ПАФОСНАЯ КАРТИНКА
примитив
действительность
сложность
возможности
онтологии
байты
SQL
RDF
Ваш вариант :)
1+1 ИИ
RDF/OWL, WTF?
1.
2. маша является персоной
рама является предметом
маша мыла раму
3. Triplestore или RDF storage
≈ утрированно одна таблица, на деле сложнее…
субъект объект
предикат
Яндекс://RDF primer
RDF/OWL, №2
1. RDFS = схема, может храниться
вместе с данными
2. персона type class
предмет type class
мыть type property
мыть domain персона
мыть range предмет
3. OWL ≈ расширяет RDFS для описания онтологий
RDF/OWL, №3
1. SPARQL = язык запросов > SQL,
CRUD, графы, XPath, hash, …
2. PREFIX foaf: http://xmlns.com/foaf/0.1/
SELECT ?name (COUNT(?friend) AS ?count)
WHERE {
?person foaf:name ?name .
?person foaf:knows ?friend .
} GROUP BY ?person ?name
3. SPIN ≈ «хранимые процедуры» SPARQL внутри RDF,
включая constraints и rules
RDF ≈ СРАВНИВАЯ С…
• key-value = это RDF с переносом
предикатов в логику кода
• doc oriented = в RDF нет документов и
локальности, связи неотделимы от данных
• SQL = RDF похож на доменно-ключевую
нормальную форму (DKNF, 5+)
• graph database = очень близко, но в RDF у
связей-предикатов не бывает атрибутов
RDF ≈ ФИШКИ
1. Аскетизм в базисе, только триплеты
2. Онтология и схема вместе с данными
3. Интеграция через URI как схем, так и данных
4. Объектная модель классов с наследованием и
декларацией эквивалентности
5. Рефлексия, встроенный ИИ для оптимизации
6. Подходит для краудсорсинга онтологий
RDF ≈ ГДЕ ТУТ РЕШЕНИЕ ?
Препятствия сохраняются, но их легче
преодолевать:
1. Эволюция схемы без ALTER TABLE
2. Внутренние знания не нужны, либо
становятся открытыми
3. Интеграция легка и естественна
RDF ≈ КРИТИКА
1. мимо ≈ Онтология верхнего уровня
сомнительна – пусть делают философы ;)
2. мимо ≈ Семантическая паутина
нереализуема – нет необходимости
3. OWL ≈ Сложно, но есть теория
4. SPARQL ≈ Перестарались, но есть алгебра
5. Storage ≈ Нет образца, но есть стандарт
RDF ≈ WTF REASONING ?
• Если «Маша мыла раму»,
то следовательно «рама помыта Машей»
• Дескрипционная логика = компромисс между
выразительностью и вычислимостью
• Reasoner = механизм вывода:
- реализуется программно, очень важен алгоритм
- может быть независимым, а не частью хранилища
• Материализация = вывод с сохранением
МАТЕРИАЛИЗАЦИЯ ≈ ИНДЕКС ?!
• добавляем триплеты и этим помечаем
связанные элементы
• не обязательно REASONING/OWL,
можно «руками» или через SPARQL
• крутое хранилище может обеспечивать
отслеживание и авто-материализацию
RDF ≈ ГРАБЛИ №1
• Хранилище может быть в чем-то наивным:
- без упорядоченных величин (фильтры Блюма)
- что-то из SPARQL выполнять очень медленно
- нет гарантий base level of performance
• Онтологии сложно создавать:
- отдельная область знаний и навыков, методологии
- легко сделать неправильно и понять это в конце
• SPARQL и REASONING:
- слишком много возможностей
- малые изменения могут сильно влиять на скорость
RDF ≈ ГРАБЛИ №2
• Попробовали, не получилось:
- изучали сложное
- долго делали
- получилась хрень…
• Почему?
технология = маловероятно
компоненты = возможно
опыт и компетенции = скорее всего
• Причины: плохо с методологиями,
мало опыта, некого спросить, легко ошибиться…
RDF+BigData ≈ HR FAILURE
Страшилка о требуемых компетенциях специалиста:
1. не бояться непонятно-сложных задач и нового
2. уметь что-то программировать
3. понимать в устройстве баз данных
4. знать статистику
5. разбираться в машинном обучении
6. быть экспертом в предметной области
7. добавляется: навыки RDF, OWL, SPARQL и SPIN
– пора учиться…
RDF ≈ ГДЕ ПРЕДЕЛ ?
• Нечеткие знания:
- неполая информация, предположения
- неточная информация, ошибки изменения
- неоднозначная информация
- недетерминированность процессов и выводов
Птицы летают? А пингвины птицы? Сколько их?
• Модель закрытого мира ≈ плохо
- знания всегда не полные
- события вероятностны (квантовая механика)
- ложь/истина, либо выбрасываем…
ОЦЕНКА УПОМИНАНИЙ №1
• Требуется обработка естественного языка (NLP):
- морфология, ключевые слова и сочетания
- лексико-статический анализ (наивная семантика)
- синтаксический анализ, подлежащее/сказуемое
- ABBYY COMPRENO
• Хранение: RDF не обязательно, PostgreSQL + JSONb,
Mongo…
• Вывод: Много правил/условий, поэтому SPARQL и
REASONING по результатам NLP
ОЦЕНКА УПОМИНАНИЙ №2
• Начало проблем:
- модель языка упрощена, знания о нём не полны
- много неоднозначностей
- точный результат недостижим
• Вывод по дескрипционной логике:
- ложь/истина или выбрасываем
- ошибки накапливаются, результаты искажаются
- монотонность нарушается, обучение не работает
• Чем больше данных и правил, тем хуже ≈ жупел
ВРЕМЕННОЕ РЕШЕНИЕ
Дискретизация:
100% = истина/да
75% ≈ вполне возможно
50% ≈ может быть
25% ≈ маловероятно
0% = ложь/нет
− Тяжелеет описание схемы и правил
− 20% результатов стремится к «может быть»
+ Позволяет решить 80% задач
UNCERTAIN FUZZY  RDF
• Сомнительная пушистость :)
- коэффициенты уверенности
- интервальная арифметика
- вероятностный и модифицированный
байесовский подход
- нечеткая логика и множества (fuzzy logic)
- теория очевидностей (Демпстера — Шафера)
• Методики и инструменты
- Fuzzy OWL (онтология для нечеткой логики)
- PR-OWL (онтология с байесовским подходом)
- UMP-ST (моделирование нечетких процессов)
AI: WATSON 2.0 ?
• Как сделать домашний IBM Watson Jr.
http://www.olap.ru/home.asp?artId=2354
• Применение OWL/RDF рассматривалось только в
контексте четких знаний, остальное не было готово
• RDF = одна из форм записи графов
• Ореолы Triplestore и Graph Database почти
совпадают
• Apache Jena прекрасно работает поверх PostgreSQL
Леонид Юрьев
• 20 лет программирую
• системный архитектор в матрице
Петер-Сервис R&D
• TopGun DPI & 1Hippeus
leo@yuriev.ru
leonid.yuriev@billing.ru
Спасибо,
за внимание!
ССЫЛКИ
1. RDF Primer
http://yandex.ru/yandsearch?text=rdf+primer
2. Reasoning for Linked Data
http://renaud.delbru.fr/doc/pub/rw-2013.pdf
3. Fuzzy OWL
http://arxiv.org/pdf/1009.3391.pdf
4. Fuzzy logic reasoner
http://gaia.isti.cnr.it/straccia/download/papers/FUZZ08/FUZZ08.pdf
5. Dempster–Shafer OWL
http://arxiv.org/ftp/arxiv/papers/1106/1106.3876.pdf
6. Защита докторской по байесовской OWL
https://www.youtube.com/watch?v=Zl5rmag6BqY

Contenu connexe

Similaire à РИТ-2014: Ноотропы RDF для BigData

разработка бизнес приложений (7)
разработка бизнес приложений (7)разработка бизнес приложений (7)
разработка бизнес приложений (7)Alexander Gornik
 
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo). С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo). Badoo Development
 
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)Ontico
 
разработка бизнес приложений (6)
разработка бизнес приложений (6)разработка бизнес приложений (6)
разработка бизнес приложений (6)Alexander Gornik
 
Oracle NoSQL Database
Oracle NoSQL DatabaseOracle NoSQL Database
Oracle NoSQL DatabaseAndrey Akulov
 
Про качественный поиск (Андрей Аксенов)
Про качественный поиск (Андрей Аксенов)Про качественный поиск (Андрей Аксенов)
Про качественный поиск (Андрей Аксенов)Ontico
 
Object-Relational Mapping for Dummies
Object-Relational Mapping for DummiesObject-Relational Mapping for Dummies
Object-Relational Mapping for DummiesGlobalLogic Ukraine
 
Про качественный поиск
Про качественный поискПро качественный поиск
Про качественный поискAndrew Aksyonoff
 
Леонид Юрьев, "Петер-Сервис"
Леонид Юрьев, "Петер-Сервис"Леонид Юрьев, "Петер-Сервис"
Леонид Юрьев, "Петер-Сервис"Ontico
 
Open source субд глазами обычного программиста
Open source субд глазами обычного программистаOpen source субд глазами обычного программиста
Open source субд глазами обычного программистаSlach
 
Redis: возможности, выгоды, примеры использования
Redis: возможности, выгоды, примеры использованияRedis: возможности, выгоды, примеры использования
Redis: возможности, выгоды, примеры использованияAlexey Kachayev
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HRKonstantin Osipov
 
Semantic web и schema.org для интернет магазинов (Cергей Cиница)
Semantic web и schema.org для интернет магазинов (Cергей Cиница)Semantic web и schema.org для интернет магазинов (Cергей Cиница)
Semantic web и schema.org для интернет магазинов (Cергей Cиница)DrupalYug
 
Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...
Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...
Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...Ontico
 
Технологии и продукты Oracle для обработки и анализа Больших Данных
Технологии и продукты Oracle для обработки и анализа Больших ДанныхТехнологии и продукты Oracle для обработки и анализа Больших Данных
Технологии и продукты Oracle для обработки и анализа Больших ДанныхAndrey Akulov
 
разработка бизнес приложений (9)
разработка бизнес приложений (9)разработка бизнес приложений (9)
разработка бизнес приложений (9)Alexander Gornik
 
Все самые важные команды SQL за 60 минут
Все самые важные команды SQL за 60 минутВсе самые важные команды SQL за 60 минут
Все самые важные команды SQL за 60 минутSkillFactory
 
SQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management PlatformsSQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management PlatformsAndrei Nikolaenko
 

Similaire à РИТ-2014: Ноотропы RDF для BigData (20)

разработка бизнес приложений (7)
разработка бизнес приложений (7)разработка бизнес приложений (7)
разработка бизнес приложений (7)
 
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo). С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
С чего начать внедрение Hadoop в компании. Доклад Алексея Еремихина (Badoo).
 
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
 
разработка бизнес приложений (6)
разработка бизнес приложений (6)разработка бизнес приложений (6)
разработка бизнес приложений (6)
 
Slick demo
Slick demoSlick demo
Slick demo
 
Oracle NoSQL Database
Oracle NoSQL DatabaseOracle NoSQL Database
Oracle NoSQL Database
 
Про качественный поиск (Андрей Аксенов)
Про качественный поиск (Андрей Аксенов)Про качественный поиск (Андрей Аксенов)
Про качественный поиск (Андрей Аксенов)
 
Object-Relational Mapping for Dummies
Object-Relational Mapping for DummiesObject-Relational Mapping for Dummies
Object-Relational Mapping for Dummies
 
Про качественный поиск
Про качественный поискПро качественный поиск
Про качественный поиск
 
Леонид Юрьев, "Петер-Сервис"
Леонид Юрьев, "Петер-Сервис"Леонид Юрьев, "Петер-Сервис"
Леонид Юрьев, "Петер-Сервис"
 
Open source субд глазами обычного программиста
Open source субд глазами обычного программистаOpen source субд глазами обычного программиста
Open source субд глазами обычного программиста
 
Redis: возможности, выгоды, примеры использования
Redis: возможности, выгоды, примеры использованияRedis: возможности, выгоды, примеры использования
Redis: возможности, выгоды, примеры использования
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HR
 
Semantic web и schema.org для интернет магазинов (Cергей Cиница)
Semantic web и schema.org для интернет магазинов (Cергей Cиница)Semantic web и schema.org для интернет магазинов (Cергей Cиница)
Semantic web и schema.org для интернет магазинов (Cергей Cиница)
 
Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...
Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...
Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...
 
Технологии и продукты Oracle для обработки и анализа Больших Данных
Технологии и продукты Oracle для обработки и анализа Больших ДанныхТехнологии и продукты Oracle для обработки и анализа Больших Данных
Технологии и продукты Oracle для обработки и анализа Больших Данных
 
разработка бизнес приложений (9)
разработка бизнес приложений (9)разработка бизнес приложений (9)
разработка бизнес приложений (9)
 
Pgconfru 2015 kosmodemiansky
Pgconfru 2015 kosmodemianskyPgconfru 2015 kosmodemiansky
Pgconfru 2015 kosmodemiansky
 
Все самые важные команды SQL за 60 минут
Все самые важные команды SQL за 60 минутВсе самые важные команды SQL за 60 минут
Все самые важные команды SQL за 60 минут
 
SQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management PlatformsSQL+NoSQL: On the Way to Converged Data Management Platforms
SQL+NoSQL: On the Way to Converged Data Management Platforms
 

Plus de Leonid Yuriev

libfpta: в памяти, с персистентностью, быстрее хайпа
libfpta: в памяти, с персистентностью, быстрее хайпаlibfpta: в памяти, с персистентностью, быстрее хайпа
libfpta: в памяти, с персистентностью, быстрее хайпаLeonid Yuriev
 
Сегментация и поиск совпадений в бинарном потоке
Сегментация и поиск совпадений в бинарном потокеСегментация и поиск совпадений в бинарном потоке
Сегментация и поиск совпадений в бинарном потокеLeonid Yuriev
 
Движок LMDB - особенный чемпион
Движок LMDB - особенный чемпионДвижок LMDB - особенный чемпион
Движок LMDB - особенный чемпионLeonid Yuriev
 
OSSDEV-2015: ReOpenLDAP
OSSDEV-2015: ReOpenLDAPOSSDEV-2015: ReOpenLDAP
OSSDEV-2015: ReOpenLDAPLeonid Yuriev
 
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen ITDevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen ITLeonid Yuriev
 
Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!
Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!
Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!Leonid Yuriev
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPILeonid Yuriev
 

Plus de Leonid Yuriev (7)

libfpta: в памяти, с персистентностью, быстрее хайпа
libfpta: в памяти, с персистентностью, быстрее хайпаlibfpta: в памяти, с персистентностью, быстрее хайпа
libfpta: в памяти, с персистентностью, быстрее хайпа
 
Сегментация и поиск совпадений в бинарном потоке
Сегментация и поиск совпадений в бинарном потокеСегментация и поиск совпадений в бинарном потоке
Сегментация и поиск совпадений в бинарном потоке
 
Движок LMDB - особенный чемпион
Движок LMDB - особенный чемпионДвижок LMDB - особенный чемпион
Движок LMDB - особенный чемпион
 
OSSDEV-2015: ReOpenLDAP
OSSDEV-2015: ReOpenLDAPOSSDEV-2015: ReOpenLDAP
OSSDEV-2015: ReOpenLDAP
 
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen ITDevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
 
Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!
Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!
Highload++2014: 1Hippeus - zerocopy messaging in the spirit of Sparta!
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPI
 

РИТ-2014: Ноотропы RDF для BigData

  • 1. Ноотропы RDF для BigData Леонид Юрьев, Петер-Сервис R&D, Сколково
  • 2. ТЕМАТИКА ДОКЛАДА ≈ RDF 40% = Базы данных и системы хранения 30% = Технологии будущего 20% = Серверное программирование 10% = про жизнь… ) ≈ 30 слайдов
  • 3. Леонид Юрьев • 20-25 лет программирую • системный архитектор в матрице Петер-Сервис R&D • TopGun DPI & 1Hippeus leo@yuriev.ru leonid.yuriev@billing.ru
  • 4. • решения для крупных операторов связи: BSS, Telco protocols, BigData, HA & HighLoad • ≈20 лет полного цикла: разработка, внедрение и сопровождение • более 100 миллионов абонентов обслуживается при участи наших систем • 900 сотрудников из них 400 разработчиков, 250 во внедрении и поддержке • R&D подразделение в Сколково
  • 5. BigData ≈ на ближайшие 40 минут, это когда… 1. данных много = тяжело унести физически 2. и они разные = долго описывать структуру формально…
  • 6. ПРИМЕРЫ = Прикинем трудности при проектировании структуры «БД» для трех проектов: • Система оценки рисков по контрагенту • Выявление предпочтений и персональное предсказание покупок для рекламной платформы • Хранилище «следов» для DLP / СОРМ-3 / PRISM
  • 7. ОЦЕНКА РИСКОВ, слайд 1 По контрагенту, поставщику, выявление «однодневок», аналитика: • Источники = ИФНС, ГМЦ Росстата, ЕГРЮЛ, Арбитраж, OpenData, LinkedData... • Объекты = адреса, юрлица, учредители, судебные решения, госконтракты, отчетность, упоминания в прессе...
  • 8. ОЦЕНКА РИСКОВ, слайд 2 Структура некоторых источников в цифрах: • Юрлицо ≈50 полей, ≈5 таблиц • Баланс субъекта в Роскомстате ≈ перечень полей на 7 страниц • Реестр ЕМИСС ≈ 4500 результирующих таблиц
  • 9. ОЦЕНКА РИСКОВ, слайд 3 • Автономность ≈ источники данных независимо спроектированы и продолжают развиваться • Разнородность ≈ данные гетерогенны, схемы построены разными методиками • Зоопарк ≈ разные технологии, инструментальные средства, форматы и синтаксисы
  • 10. ПРЕДСКАЗАНИЕ ПОКУПОК Таргетирование рекламы по предпочтениям и персональному прогнозу покупки: • Источники = Социальные сети, Ритейлеры, Мобильные приложения, OpenData... • Объекты = потребители, предпочтения, покупки, лайки, открытые события...
  • 11. DLP / СОРМ-3 / PRISM Родственные технологии, главные различия в масштабе и детализации: • Записи = «Растущие» атрибутные деревья с элементами наследования • Индексы = Много FK и регулярно возникает желание персонально индексировать каждый «листик»...
  • 12. ЭФФЕКТ ГОРИЗОНТА • Источники данных = нефиксированный, итеративно пополняемый список • Структура данных = нефиксированная, подвержена итеративному расширению и постоянной эволюции • Изменения естественны и постоянны, планирование и оптимизация почти напрасны • Интеграция становится адовой задачей
  • 13. ПУТИ и ПРОБЛЕМЫ • SQL = много таблиц и NULL-значений, всё плохо… • Key-Value и SOA = лепим жупел из сервисов, решается часть проблем с хранилищем… • Doc-Oriented = schemaless, некая локальность, нужны индексы, «ручной» привод для 1-2-3, можно выжить… • Graph-Oriented & RDF-storage = ага, чуть позже…
  • 14. ПРИЧИНЫ, ПАФОСНО Информация о действительности обладает структурой, но неподъемной для формализации… • Упрощаем и искажаем, отображая на возможности инструментов, частично выносим в app и сервисы • Создаем внутренние знания: типы в схеме, ID записей, ID в справочниках и таксономиях • Итог = Изменение схемы мега-дорого, итеративное развитие невозможно, интеграция трудна…
  • 15. ё, А ЧТО ДЕЛАТЬ? 1. не отказываться от схемы/модели данных 2. но и не фиксировать 3. позволить постоянно развиваться… Но как итеративно уточнять формальную модель, одновременно «не ломая» систему хранения и код сервисов/приложений? Объектно-ориентированные БД ≈ было, нет удобных формальных моделей эффективных для реализации, программисты увлекаются…
  • 16. КУДА СТРЕМИТСЯ? 1. Упорядоченность усилий ≈ видение пути к целям 2. Agile ≈ лояльность к изменениям 3. Итеративность ≈ возможность выдавать value на каждом шаге
  • 18. RDF/OWL, WTF? 1. 2. маша является персоной рама является предметом маша мыла раму 3. Triplestore или RDF storage ≈ утрированно одна таблица, на деле сложнее… субъект объект предикат Яндекс://RDF primer
  • 19. RDF/OWL, №2 1. RDFS = схема, может храниться вместе с данными 2. персона type class предмет type class мыть type property мыть domain персона мыть range предмет 3. OWL ≈ расширяет RDFS для описания онтологий
  • 20. RDF/OWL, №3 1. SPARQL = язык запросов > SQL, CRUD, графы, XPath, hash, … 2. PREFIX foaf: http://xmlns.com/foaf/0.1/ SELECT ?name (COUNT(?friend) AS ?count) WHERE { ?person foaf:name ?name . ?person foaf:knows ?friend . } GROUP BY ?person ?name 3. SPIN ≈ «хранимые процедуры» SPARQL внутри RDF, включая constraints и rules
  • 21. RDF ≈ СРАВНИВАЯ С… • key-value = это RDF с переносом предикатов в логику кода • doc oriented = в RDF нет документов и локальности, связи неотделимы от данных • SQL = RDF похож на доменно-ключевую нормальную форму (DKNF, 5+) • graph database = очень близко, но в RDF у связей-предикатов не бывает атрибутов
  • 22. RDF ≈ ФИШКИ 1. Аскетизм в базисе, только триплеты 2. Онтология и схема вместе с данными 3. Интеграция через URI как схем, так и данных 4. Объектная модель классов с наследованием и декларацией эквивалентности 5. Рефлексия, встроенный ИИ для оптимизации 6. Подходит для краудсорсинга онтологий
  • 23. RDF ≈ ГДЕ ТУТ РЕШЕНИЕ ? Препятствия сохраняются, но их легче преодолевать: 1. Эволюция схемы без ALTER TABLE 2. Внутренние знания не нужны, либо становятся открытыми 3. Интеграция легка и естественна
  • 24. RDF ≈ КРИТИКА 1. мимо ≈ Онтология верхнего уровня сомнительна – пусть делают философы ;) 2. мимо ≈ Семантическая паутина нереализуема – нет необходимости 3. OWL ≈ Сложно, но есть теория 4. SPARQL ≈ Перестарались, но есть алгебра 5. Storage ≈ Нет образца, но есть стандарт
  • 25. RDF ≈ WTF REASONING ? • Если «Маша мыла раму», то следовательно «рама помыта Машей» • Дескрипционная логика = компромисс между выразительностью и вычислимостью • Reasoner = механизм вывода: - реализуется программно, очень важен алгоритм - может быть независимым, а не частью хранилища • Материализация = вывод с сохранением
  • 26. МАТЕРИАЛИЗАЦИЯ ≈ ИНДЕКС ?! • добавляем триплеты и этим помечаем связанные элементы • не обязательно REASONING/OWL, можно «руками» или через SPARQL • крутое хранилище может обеспечивать отслеживание и авто-материализацию
  • 27. RDF ≈ ГРАБЛИ №1 • Хранилище может быть в чем-то наивным: - без упорядоченных величин (фильтры Блюма) - что-то из SPARQL выполнять очень медленно - нет гарантий base level of performance • Онтологии сложно создавать: - отдельная область знаний и навыков, методологии - легко сделать неправильно и понять это в конце • SPARQL и REASONING: - слишком много возможностей - малые изменения могут сильно влиять на скорость
  • 28. RDF ≈ ГРАБЛИ №2 • Попробовали, не получилось: - изучали сложное - долго делали - получилась хрень… • Почему? технология = маловероятно компоненты = возможно опыт и компетенции = скорее всего • Причины: плохо с методологиями, мало опыта, некого спросить, легко ошибиться…
  • 29. RDF+BigData ≈ HR FAILURE Страшилка о требуемых компетенциях специалиста: 1. не бояться непонятно-сложных задач и нового 2. уметь что-то программировать 3. понимать в устройстве баз данных 4. знать статистику 5. разбираться в машинном обучении 6. быть экспертом в предметной области 7. добавляется: навыки RDF, OWL, SPARQL и SPIN – пора учиться…
  • 30. RDF ≈ ГДЕ ПРЕДЕЛ ? • Нечеткие знания: - неполая информация, предположения - неточная информация, ошибки изменения - неоднозначная информация - недетерминированность процессов и выводов Птицы летают? А пингвины птицы? Сколько их? • Модель закрытого мира ≈ плохо - знания всегда не полные - события вероятностны (квантовая механика) - ложь/истина, либо выбрасываем…
  • 31. ОЦЕНКА УПОМИНАНИЙ №1 • Требуется обработка естественного языка (NLP): - морфология, ключевые слова и сочетания - лексико-статический анализ (наивная семантика) - синтаксический анализ, подлежащее/сказуемое - ABBYY COMPRENO • Хранение: RDF не обязательно, PostgreSQL + JSONb, Mongo… • Вывод: Много правил/условий, поэтому SPARQL и REASONING по результатам NLP
  • 32. ОЦЕНКА УПОМИНАНИЙ №2 • Начало проблем: - модель языка упрощена, знания о нём не полны - много неоднозначностей - точный результат недостижим • Вывод по дескрипционной логике: - ложь/истина или выбрасываем - ошибки накапливаются, результаты искажаются - монотонность нарушается, обучение не работает • Чем больше данных и правил, тем хуже ≈ жупел
  • 33. ВРЕМЕННОЕ РЕШЕНИЕ Дискретизация: 100% = истина/да 75% ≈ вполне возможно 50% ≈ может быть 25% ≈ маловероятно 0% = ложь/нет − Тяжелеет описание схемы и правил − 20% результатов стремится к «может быть» + Позволяет решить 80% задач
  • 34. UNCERTAIN FUZZY  RDF • Сомнительная пушистость :) - коэффициенты уверенности - интервальная арифметика - вероятностный и модифицированный байесовский подход - нечеткая логика и множества (fuzzy logic) - теория очевидностей (Демпстера — Шафера) • Методики и инструменты - Fuzzy OWL (онтология для нечеткой логики) - PR-OWL (онтология с байесовским подходом) - UMP-ST (моделирование нечетких процессов)
  • 35. AI: WATSON 2.0 ? • Как сделать домашний IBM Watson Jr. http://www.olap.ru/home.asp?artId=2354 • Применение OWL/RDF рассматривалось только в контексте четких знаний, остальное не было готово • RDF = одна из форм записи графов • Ореолы Triplestore и Graph Database почти совпадают • Apache Jena прекрасно работает поверх PostgreSQL
  • 36. Леонид Юрьев • 20 лет программирую • системный архитектор в матрице Петер-Сервис R&D • TopGun DPI & 1Hippeus leo@yuriev.ru leonid.yuriev@billing.ru Спасибо, за внимание!
  • 37. ССЫЛКИ 1. RDF Primer http://yandex.ru/yandsearch?text=rdf+primer 2. Reasoning for Linked Data http://renaud.delbru.fr/doc/pub/rw-2013.pdf 3. Fuzzy OWL http://arxiv.org/pdf/1009.3391.pdf 4. Fuzzy logic reasoner http://gaia.isti.cnr.it/straccia/download/papers/FUZZ08/FUZZ08.pdf 5. Dempster–Shafer OWL http://arxiv.org/ftp/arxiv/papers/1106/1106.3876.pdf 6. Защита докторской по байесовской OWL https://www.youtube.com/watch?v=Zl5rmag6BqY