Динамическая онтология. Как инженеры Palantir объясняют это ЦРУ, АНБ и военным

Компания Palantir является четвертой по крутости частной компанией Кремниевой долины (после Uber, Xiaomi и Airbnb). Пока Palantir собирает информацию про все на свете, мы собираем информацию про него. Вместе с компанией Edison продолжаем расследование возможностей платформы Palantir.

48da3046e88c40c691f587d3ae1ed7c2.jpg

ИТишники додумались как эффективно «монетизировать математику и алгоритмы» (Сегалович, Бакунов), PayPal Mafia додумалась как монетизировать гаджеты Феанора философию (капитализация Palantir — 20 миллиардов долларов).

В десятиминутной лекции сотрудник компании Palantir расскажет про центральную концепцию их системы — динамическую онтологию.

f2d4a2523da445a2a74b6bb4bd284d94.jpg
0:00 Привет, я Ашер Синенски, инженер по развертыванию технологий Palantir. Я поговорю о динамической онтологии.
0:08 Очевидно, сейчас, эти два слова выглядят для вас довольно туманно, надеюсь, что к концу разговора вы поймете, какой смысл мы в них вкладываем.
0:17 Перед тем как переходить к делу, поясню: у многих людей проблемы со словом онтология. Что мы подразумеваем под этим словом?
0:24 Если вы посмотрите на корни этого слова, то оно образовано от греческих «онтос» (бытие) и «логия» (изучение чего-либо). По сути, онтология — это категоризация мира.
0:34 Есть много терминов, которые люди используют для описания этого: таксономия, схематизатор модели данных. Но мы используем это, в более широком смысле, как идею, что мы действительно категоризируем мир каким-то образом.
0:43 Идея о построении онтологии для изучения мира не нова. Первым, кто утвердил эту идею, был мужик по имени Платон. Идея Платоновского реализма, в основном, о том, что есть реальные вещи, а есть наше представление о вещах.

1:02 В его модели, вещи реального мира — это проявление неких образцов из мира идеального.
1:07 Он рассуждал о всеобщем и частном; об онтологии и самом бытии; о форме и копии (возможно, идея и воплощение?). У компьютерщиков же, есть класс и объект.
1:15 В общем-то, это идея о том, что есть концепция чего-то и само это нечто. И то, что делает это яблоком, приближает нас, к тому, что представляет собой концепция яблока (поправьте меня, люди, близко знакомые с философией Платона).
1:29 Ну, это классная философия, но вопрос сейчас в том, как это можно использовать, как это поможет нам в создании инструмента, могущего быть полезным в информационном сообществе.

621990d4e08f498b81665df1c1091c67.jpg

1:36 Отличный пример удобной онтологической структуры — это периодическая таблица Менделеева. У нас здесь число десять (показывает на мышьяк, на атомную массу), оно что-то говорит о весе, о массе, но, то, что мы видим здесь, это же не само «десять», в нашем реальном мире, — это концептуализация того, что «десять» должно значить.
1:56 Еще один известный пример онтологии, а точнее таксономии: это линейная таксономия, с латинскими наименованиями животных, и это хороший пример иерархической онтологии.

757631f6a5654d17b7830351a140ea30.jpg

2:06 Здесь вы можете двигаться вниз, к роду panthera (лат. пантеры), и вы можете использовать разделение на виды с латинскими названиями: leo, tigris, pardus. Вы можете создать объекты «лев» «тигр» «леопард».

b41b94bcb4214f3595424d168ba47313.jpg

2:20 Очевидно, что panthera pardus — это не сам леопард, это концепция того, что есть леопард.
2:25 Ну, и вы понимаете, есть живой леопард в реальном мире и panthera pardus в онтологии.
2:29 Эти же концепции можно применить к сферам, более значимым, если мы говорим о человеке. Например, здесь модель онтологии человека (person): мы начали с объектов, перешли к сущностям, дальше к живым сущностям, затем к людям.

ee8574ddd42b48aba543eff55c3b1955.jpg

2:43 Если мы хотим охарактеризовать человека дальше, то мы можем добавить такие понятия как: пилот, юрист и доктор, — эти понятия объединяет общая идея о выделении подвидов. Позже мы поговорим об этом еще.

3797b946a7ae4babb80e59a97eaf62da.jpg

2:53 Итак, как вы на практике можете моделировать в онтологии? Как бы вы структурировали свою онтологию?

9fb4e747d0b34c3db9692c2609f3ca92.jpg

2:58 Люди перепробовали несколько способов. Я перечислю четыре наиболее выраженных подхода.

cde57ce214974e49842636ac7ac6ce82.jpg

3:03 Верхний завязан на объектах. В объектных моделях, например таксономии животных по латинскому наименованию, мы имеем некие объекты, которые являются концепциями, которые должны соответствовать объектам реального мира. Вы можете добавить немного глубины, насыщенности, добавив признаки, и таким образом получите объекты с признаками.
3:21 Для примера мы можем взять таблицу Менделеева, где у объектов есть, вес и количество протонов.
3:28 Чего в этой таблице не хватает, так это указания на отношения. Некоторые отношения, можно понять, проанализировав структуру таблицы, но вы не можете знать, например, образуют ли эти два вещества сплав.
3:40 Еще один способ, которым вы можете моделировать мир — это объекты и отношения, то есть у вас есть объекты и то, как они соотносятся друг с другом.
3:47 И здесь упущены признаки, которые были в таблице Менделеева. Вы можете, получить представление о признаках, если опираетесь на связи между двумя объектами, например, один из объектов объектом данных (data object), и, если вы хотите сказать, что у Майка Фикри (вымышленный злодей из одного из первых роликов про Palantir) голубые глаза, вы создаете связь между объектами «Майк Фикри» и «голубые глаза».
4:08 Это будет немного странно, но вы сможете составить довольно полное представление об объекте.
4:13 Наконец, наиболее показательный способ, использующий и объекты, и связи, и признаки. Как вы можете догадаться, именно этот способ мы используем в Palantir.
4:22 Давайте посмотрим немного глубже на онтологию в Palantir, как она применяется.

e3dc2265093f4cf4b7683e23a253ee95.jpg

472b7e539596469abc4d5fc41c560cde.jpg

3caedc1ba0fb418bb0f06dca5630a831.jpg

18c486bf7b904585ae96d9f4c920b273.jpg

9674c31add994c5ab90f518e2e6d02a5.jpg

85bb8b2a74584580b5efe53714c5bced.jpg

f7e9946ea101474f9333653df69e7fd8.jpg

6a878268ef7746e4822251b436c10afc.jpg

e92b2341f10b4f03b7ccfdf458d0cf11.jpg
5:08 (Онтология пронизывает практически каждую функцию в рабочем пространстве Palantir. Следовательно, наличие должным образом оформленной онтологии критично для эффективного анализа.)

c545c622f1c34f5e956984508b4dcafe.jpg

5:15 Я сказал, что Palantir — это динамическая онтология, давайте поговорим о том, что я имею в виду под динамикой.
5:21 Первое что имеем в виду, говоря о динамике, — это то, что онтология в Palantir не жестко закодированная. Например, так исполнен осевой слой, слой интерпретаций, надстройка над базами данных, слой анализа и взаимодействия с пользователем.
5:33 Есть некоторые понятия, которые жестко закодены: объект, признак, взаимоотношение. Объекты так же жестко подразделяются на документы, сущности и события. И это всё, — вся онтология, заданная заранее. В действительности, это больше, чем онтологическая структура, к которой вы привязаны и которую вы привыкли использовать.
5:50 Почему мягкое кодирование? Почему бы не закодировать онтологию жестко? Я расскажу о паре недостатков такого подхода.

8c490ed791794ec9bba3ebc84537b036.jpg

6:00 Проблема в том, что используя жестко закодированную онтологию, вы неизбежно попадаете в один из двух лагерей.
6:06 Вы имеете либо очень обобщенную онтологию, либо очень специальную, и вам придется выбирать, где вы хотите быть.
6:12 В обобщенной онтологии вы, в действительности, ничего не моделируете. Вы имеете объекты, признаки и отношения, и можете поместить что угодно внутрь такой онтологии, но, в общем-то, и все, моделировать там нечего.
6:21 Некоторые пытаются создать очень специализированные онтологии, где вы можете смоделировать все что захотите. Проблема здесь в том, что семантика становится сверхпрописанной/сверхопределенной (over-defined).
6:30 Что мы понимаем под сверхопределенной семантикой? Это ситуация, когда становится чрезмерно сложно понимать, как что-то должно быть смоделировано.
6:35 Вы можете ввести понятие «уведомление» (citation — выписка, повестка в суд, упоминание), и тогда один скажет: «О, уведомление, это когда я парковочный талон получаю», —, а другой, что уведомление приходит, когда человек получает премию.
6:48 Если нужно моделировать похожие вещи в сверхопределенной онтологии, используя «уведомление», становится сложно разделять их.
6:54 Если вы пользуетесь мягким кодированием, между нашими лагерями возникает спектр, и, начав с общей модели, вы дойдете до некой точки, отвечающей вашим задачам (sweet spot — сладкая точка).

db0def4e1a9d44b6b4c7655662ea599c.jpg

7:11 Еще одно существенное преимущество динамической онтологии в том, что это гибкая система: вы можете моделировать множество разных концепций, или одну концепцию множеством разных способов.

4e3f379689684ed79833b0f463b6c02c.jpg

7:19 Гибкость — давайте увидим, как это работает. Ответим на вопрос: «Как смоделировать род занятий человека?»

9d9cc7e6cdb4469bbaa477c4c70b53b6.jpg

64368296ed794ff39fa9ad7cb46abbdf.jpg
7:28 На слайде написано: «Рабочая функция человека может быть классифицирована через определение объектов».
Во первых, взглянем на объектную модель занятости человека. Мы классифицировали рабочие функции как объекты, и вы этот слайд уже видели.
7:40 У нас есть человек наверху и пилот, юрист, доктор внизу, так что это похоже на модель животных с родами и видами.

b9b1675d770a45c9867cd62e6d74364d.jpg

7:47 Каковы преимущества и недостатки этого способа? Недостатком будет то, что вы не сможете сделать человека юристом и врачом одновременно (как львом и тигром), вам придется выбирать.
7:56 Преимущество в том, что у вас есть много признаков, специфичных для врача или для юриста, и вы можете использовать эти признаки.
8:04 Медицинская специализация, очевидно, отличается от юридической, и вы легко можете использовать эту разницу, работая с объектами.
8:12 На слайде написано: «Рабочие функции человека могут быть классифицированы определением признаков его занятости»
Вы можете использовать признаки, для того чтобы получить представление о занятости человека.
8:17 Мы можем сказать, что человек может обладать признаком «занятость» и разными значениями этого признака.

512f27d495fa41a8a2af2cd5089795a3.jpg

8:24 Можно быть доктором, пилотом, юристом, и, если у вас есть идея о множественности признака, вы можете выбрать несколько значений. В Palantir это возможно: доктор и пилот, пилот и юрист, юрист и повар.

f88cd9fa378346fa8875fc338e50e87e.jpg

8:35 Недостаток здесь в том, что придется постараться, чтобы добавить юристу информацию о том, что он из такого-то вуза, не привязывая насовсем эту информацию этому признаку.
8:45 Наконец, вы можете получить представление о карьере человека, используя отношения. Причина, по которой кто-то называется доктором, не в том, что он окончил медвуз, причина в том, что этот человек лечит пациентов.

64abcf3cbcfa4a00b3c3a1c8951d5e3a.jpg

8:58 Таким образом, вы можете сказать что, человек 1 является доктором по отношению к человеку 2, человек 1 пилот, потому что управляет самолетом, человек 1 — юрист, потому что оказывает юридические услуги человеку 3. Так, на самом деле, определяется карьера.

7bc858ff426a4002a0ad4a684107baa3.jpg

9:08 Так что мы видим, здесь три концепции моделирования карьеры. Вы не сможете сделать так, если используете жестко закодированную онтологию, например нормы общества.

f244ae93c67e4521b439916eee362f55.jpg

9:21 Я поговорил о гибкости, о мягком кодировании, но не все эти вещи подразумевают под собой динамику. Так в чем действительно динамичность онтологии Palantir?
9:31 Дело в том, что в Palantir онтология может быть изменена и после того как была развернута. Таким образом, онтология может развиваться вместе с тем, как развивается видение мира вашей организацией.

f3a87ba2f1b844c8afe2b9fbb61959f7.jpg

9:41 Несколько примеров изменений, которые вы можете совершить:
— любой объект, признак или отношение можно удалить или добавить;
— функциональность объектов, признаков и отношений можно изменять, — и это, наверное, самое важное.
9:54 Важное потому, что способ, которым большинство людей взаимодействует с онтологией — пытаться понять, за что здесь отвечают разные признаки и прочее.

1422e98a575e4087a2d68cb72a3c3acc.jpg

10:05 Вот на слайде, для примера, список некоторых из вещей, которые вы можете изменить:

  • добавить/изменить генераторы ярлыков;
  • добавить/изменить псевдонимы;
  • добавить/изменить синтаксические анализаторы;
  • добавить/изменить контрольные параметры;
  • добавить/изменить иконки;
  • добавить/изменить приблизительные значения;
  • добавить/изменить ограничения признаков;
  • добавить/изменить ограничения связей.

10:08 Эти изменения оказывают существенное влияние на то, как люди будут взаимодействовать с онтологией и на то, как будет проходить анализ.
10:15 Теперь быстренько подведем итоги. С помощью динамической онтологии вы можете смоделировать все, что нужно вашей организации, в вашей сфере интересов. Эта онтология не хардкода, а софткода.

(За помощь в подготовке статьи отдельное спасибо Алексею Ворсину, российскому эксперту по системе Palantir)

Еще про Palantir:

© Habrahabr.ru