Егор Антонов - Онтологии
TRANSCRIPT
Онтологии
Егор Антонов elderos@yandex-‐team.ru
Яндекс МШАД
08.11.2014
Проектирование
Предметная область
Выделяем свойства
• Большой • Тяжелый • Рыжий • Ржет
• Маленькая • Легкая • Коричневая • Крякает
Абстракция • Тяжелый • Большой • Рыжий • Ржет
• Легкая • Маленькая • Коричневая • Крякает
Вес Рост Цвет Звук
Класс
Животные
Тип Вес Рост Цвет Звук
Утка 2кг 50см. Коричневый Кря
Лошадь 350кг 2м. Черный Игого
Комар 1гр. 5мм. Серый Бззззз
Слон 2т. 3м. Серый Туду
• Летающие • Катающие
• Хвостатые • Хоботные
Плохой путь -‐ наследование
Нужно 2N классов, чтобы покрыть предметную область
Хороший путь -‐ композиция
ID Тип
1 Утка
2 Лошадь
3 Комар
4 Слон
ID Вес Рост Цвет Звук
1 2кг 50см. Коричневый Кря
2 350кг 2м. Черный Игого
3 1гр. 5мм. Серый Бззззз
4 2т. 3м. Серый Туду
ID Длина хобота Гибкость хобота
3 3мм. Нет
4 1,5м. Да
Что почитать
• Head First Design Pauerns • GoF Pauerns
Структура онтологии
Структура онтологии
• Классы (типы) • Атрибуты (свойства) • Объекты (сущности) • Атрибуты (свойства)
• Classes (types) • Auributes (proper~es) • Objects (en~~es) • Auributes (proper~es)
Структура онтологии
• Классы содержат атрибуты • Объекты бывают каких-‐то классов • Атрибут – связь между объектом и значением атрибута
• Если связь слишком сложная, то она становится объектом-‐медиатором
Структура онтологии
• Каждый класс содержит только те атрибуты, которые ему нужны.
• Каждый атрибут содержит только объекты определенного класса.
• Каждый объект может иметь сколько угодно классов.
Как это выглядит
Resource Descrip~on Framework RDF – это концепция хранения данных. Все данные должны храниться в триплетах. ID – идентификатор сущности Property – атрибут Value – значение атрибута
ID Property Value
Преимущества RDF
• Простота • Данные хранятся единообразно – Легко составлять запросы – Легко использовать в коде
• Вся онтология – один файл – Легко администрировать
Недостатки RDF
• Неудобно хранить простые частотные структуры
• Трудно верифицировать корректность данных
• Неоптимальная структура
Реализации RDF
RDF – это только концепция. Данные можно хранить как угодно. Если вы храните данные кошерно, они всегда легко сводимы к RDF. Как можно реализовать: • CSV-‐файлы • XML, JSON • Turtle, RDFS, OWL, RDFa, microdata, … hup://w3.org
Онтология как граф
RDF-‐хранилища
• Работают in-‐memory или медленно • Запрос – это хождение по графу • Основной стандарт языка запросов SPARQL Virtuoso (hup://virtuoso.openlinksw.com/) 4store (hup://4store.org/) Stardog (hup://stardog.com/)
Freebase
Структура: hup://freebase.com QueryEditor: hup://www.freebase.com/query
Запрос к Freebase
[{ "type":"/people/person" "name":"Barack Obama" "*":[{}] }] MQL CheatSheet: hup://wiki.freebase.com/images/e/e0/MQLcheatsheet-‐081208.pdf
Интересные онтологии
• hup://freebase.com • hup://dbpedia.org • hup://www.geonames.org/ • hup://musicbrainz.org/ • hup://wordnet.princeton.edu/ • hup://www.mpi-‐inf.mpg.de/yago-‐naga/yago/ • hup://webdatacommons.org/
Онтологические проблемы
Сбор онтологии
• Берем несколько источников • Приводим к общей структуре (mapping) • Сливаем, чтобы устранить дубликаты (merge)
Источники данных
• Wikipedia • Другие онтологии (Linked Open Data, LOD) • Crowdsourcing • Микроразметка • Майнинг из веба
Linked Open Data
Mapping
• (Не)изоморфность графа – Enumera~on vs class – Терминальные и нетерминальные атрибуты – Разная структура классов
• Разный формат значений атрибутов – Даты – Числа с точкой
Merge
• Фрагментарное заполнение • Ошибки в значениях атрибутов • Разные типы данных в атрибутах • Разная важность атрибутов • Merge/split-‐проблема с объектами
Простой алгоритм слияния
1. Приводим 2 онтологии к общей структуре 2. Формируем гипотезы пар объектов 3. Сравниваем значения атрибутов
1. Если разница мала – сливаем 2. Иначе – не сливаем
4. Делаем итеративно, пока количество объектов не перестанет меняться
Гипотезы пар
• Баланс между полнотой склейки и количеством пар
• Общий ключ • Общий источник • Общее значение атрибута • Общий класс
Функция расстояния
• Для каждого терминального типа своя функция расстояния – Разница чисел/дат – Расстояние Левенштейна для строк – Евклидово расстояние для координат
• Для нетерминальных типов всё сложно – Объекты могут ссылаться на еще не склеенные объекты
– Нужно сравнивать атрибуты объектов, на которые стоит ссылка
Trivial
Взято из
Simple
Sponge Bob Square Sponge Bob Square
Hard
Sponge Bob Square Sponge Robert Rectangle
Impossible
Sponge Bob Square Robert 4 угла 90о
Применение
Ontology reasoning
• Порождение фактов, которые не записаны в онтологию
• Сводится к запросу к базе объектов
Вася живет в Москве Москва находится в России Вася живет в России
Выделение объектов в тексте
• Снятие языковой, онтологической и структурной неоднозначности
• Присваивание объекту «важности» для текста (и наоборот)
Персонализация
• Люди интересуются объектами • Объекты сильно коррелируют с тематиками и событиями
• Можно автоматически расширять множество интересов за счет похожих объектов
Вовлеченность пользователя
• Объекты на серпе – Разукрашивание выдачи – Рекомендации похожих объектов – Провязка с медиасервисами
• Конвертация текста в гипертекст
«Понимание» текста
• Нахождение текстов, похожих по смыслу – Сюжеты в новостях – Смысловые дубликаты
• Категоризация текстов
Онтологии в бою
• Поисковые системы (Yandex, Google, Bing) • IBM Watson • Wolfram alpha • news360.com
Yanswer
• Можно отвечать на странные вопросы:
Вопросы?