Обзор онтологий

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

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

Онтологии являются неким мостом между человеком во всем разнообразии его речи и мысли и компьютером, который способен «понимать» только четкие команды. В то же время человек способен изложить часть системы своего мира в рамки онтологии.

В настоящее время существует множество онтологий : DBpedia, Freebase, Wikidata, WordNet, Cyc и множество других. Из них можно извлечь большое количество фактов, связей между понятиями, принадлежность классам и многое другое.

Проблема одних онтологий заключается в неполной достоверности данных, их запутанности и даже некоторой противоречивости (обычно для онтологий, созданных автоматически). Созданные же вручную онтологии имеют меньших размер, но большую степень надежности и, зачастую, иерархию понятий. Но и они не лишены проблем: некоторые области имеют излишнее количество связей между понятиями, некоторые практически не освещены. Неудивительно, ведь практически невозможно предусмотреть все.

Онтологии используются повсеместно, когда речь заходит об интеллектуальной обработке информации, чтобы обеспечить «понимание» текстов естественного языка машинами. Чем лучше построена онтология, тем более глубоко машина сможет понять человека. Но ни полного понимания, ни понимания на хорошем уровне за счет только онтологий добиться не удалось.

Однако, онтологии обладают очень важным свойством: они позволяют повторно использовать данные. Они основываются не на статистике, а на реальных знаниях, которыми владеет человек.

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

Например Google использует онтологию Freebase для ответов на пользовательские запросы. Она помогает найти краткую и полезную информацию об объекте, который ищет пользователь. Но в таком варианте онтологии теряют свое начальное предназначение, не учитываются многие связи. Они становятся просто удобным инструментом для хранения данных.

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

Представим в таблице плюсы и минусы существующих онтологий на примере четырех больших онтологий Dbpedia, Freebase, OpenCyc, Wikidata и сравним с построенной нами онтологией Mind Simulation.

Let us present the pros and cons of existing ontologies in the table using the four large ontologies Dbpedia, Freebase, OpenCyc, Wikidata as an example and compare them with the Mind Simulation ontology.

Перечислим и дадим краткое описание критериям, по которым будем сравнивать онтологии:

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

  • Ранги отношений между сущностями: насколько сильна связь между сущностями, насколько употребима.

  • Ранги или порядок сущностей: насколько часто сущность употребляется (в корпусах текстов).

  • Наличие описания сущностей: описание сущности на естественном языке.

  • Время появления факта: хранение времени появления факта для каждой сущности (помогает следить за релевантностью фактов).

  • Обновляется ли онтология: появляются ли в онтологии новые знания (важный аспект для современного, быстро изменяющегося мира).

  • Наличие фактов: хранение фактов в онтологии (например, Пушкин родился в 1799 году).

  • Хранение истинности знаний. Возможность хранения знаний с отрицанием: хранение коэффициента истинности знания, за счет него можно хранить отрицательные знания (например, пингвин не летает).

  • Наследование и полиморфизм знаний: знание с верхних уровней онтологии распространяются и на нижние уровни (например, у животного есть действие «дышать», тогда оно распространяется на всех представителей этого класса в онтологии).

  • Ранжирование знаний по частоте употребления: насколько часто люди употребляют то или иное знание при общении, переписке, в интернете.

DBpedia Freebase OpenCYC Wikidata MSL
Поддержка языков кроме английского + + - + +
Ранги отношений между сущностями - - - + +
Ранги или порядок сущностей - + - - +
Наличие описания сущностей + + + + +
Время появления факта - - - + +
Обновляется ли онтология - - - + +
Наличие фактов - - + - +
Хранение истинности знаний.
Возможность хранения знаний с отрицанием
- - - - +
Наследование и полиморфизм знаний - - - - +
Ранжирование знаний по частоте употребления - - - - +

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

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

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

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