Представление знаний
Представление знаний (англ. knowledge representation) — направление в исследованиях искусственного интеллекта, посвящённое представлению информации о мире в форме, которую было бы возможно использовать в компьютерных системах для решения сложных задач, таких как диагностирование заболеваний или ведение диалога на естественном языке. Представление знаний включает в себя психологические исследования по решению задач человеком для построения формализмов, которые упростили бы работу со сложными системами. Примерами формализмов представления знаний являются семантические сети, архитектуры систем, правила и онтологии.
Содержание
- 1 Графы знаний
- 2 Онтология
- 3 Построение при помощи методов машинного обучения
- 4 См. также
- 5 Примечания
- 6 Источники информации
Графы знаний
История
Семантические сети[1] были разработаны в 1960 году из-за растущей необходимости в инструменте для представления знаний, который мог бы охватить широкий спектр сущностей: объекты реального мира, события, ситуации и отвлечённые концепты и отношения, — в конце концов будучи применённым в задаче поддержания диалога на естественном языке. Основной целью разработки семантических сетей было решение множества задач, например, представление планов, действий, времени, верований и намерений. При этом способ решения этих задач должен был быть достаточно обобщённым.
В 1980-х гг. Гронингенский университет и университет Твенте начали работу над совместным проектом, названным "Графы знаний", базируясь на устройстве семантических сетей с рёбрами, ограниченными наперёд заданным количеством отношений — для упрощения алгебры на графах. В последовавшие десятилетия граница между понятиями "Графов знаний" и "Семантических сетей" размывалась всё больше.
В 2012 же году Google представили свою версию графа знаний.
Определение
Не существует формального определения графа знаний. Однако есть ряд аксиом, которым граф знаний должен удовлетворять [2].
- Граф знаний определяется своей структурой.
- Утверждения внутри графа знаний являются однозначными.
- Граф знаний использует конечный набор типов отношений.
- Все указанные сущности внутри графа знаний, включая типы и отношения, должны быть определены с использованием глобальных идентификаторов с однозначными обозначениями.
- Утверждения в графе знаний должны иметь явно указанные источники.
- Граф знаний может иметь оценки неопределённостей.
Применение
Вопросно-ответные системы. Самым распространённым применением графов знаний являются вопросно-ответные системы. Графы знаний располагают огромным количеством информации, доступ к которой проще всего получать посредством схемы вопрос-ответ.
Хранение информации исследований. Многие компании используют графы знаний для хранения результатов, полученных на разных стадиях исследований, которые могут быть использованы для построения понятных моделей, просчёта рисков, слежения за различными процессами и подобных задач.
Рекомендательные системы. Некоторые компании используют графы знаний как фундамент для своих рекомендательных систем. Здесь графы знаний позволяют находить связи между фильмами, телепрограммами, персоналиями и другими объектами. По выявленным связям можно пытаться предсказать индивидуальные предпочтения пользователя.
Управление цепочками поставок. Компании могут эффективно следить за перечнями различных составляющих, задействованного персонала, времени и других характеристик, что позволяет им передавать вещи более выгодно.
Открытые проблемы
- Выявление лучших практик для построения графов знаний.
- Динамически изменяемые знания.
- Оценка корректности и полноты графа знаний.
Онтология
Понятие онтологии существует как в информатике, так и в философии, однако эти понятия похожи.
Определение: |
Онтология (в информатике) — формализация знаний, включающая в себя представление, формальное именование и определение категорий, свойств и отношений между понятиями, данными и сущностями некоторой области знаний. |
Формализация
Для формализации используется концептуальная схема.
Определение: |
Концептуа́льная схе́ма[3] — семантическая сеть из взаимосвязанных по определенным правилам понятий и концепций. Обычно такая схема состоит из структуры данных, содержащей все релевантные классы объектов, их связи и правила (теоремы, ограничения), принятые в этой области. |
Философия
Термин «онтология» в информатике является производным от соответствующего древнего философского понятия.
Общее с философским понятием:
- И то, и другое — попытка представить сущности, идеи и события со всеми их взаимозависимыми свойствами и отношениями в соответствии с системой категорий.
- В обеих областях существует значительная работа по проблемам онтологической инженерии[4].
Отличия от философского понятия:
- Онтология в информатике должна иметь формат, который компьютер сможет легко обработать.
- Информационные онтологии создаются всегда с конкретными целями — решения конструкторских задач; они оцениваются больше с точки зрения применимости, чем полноты.
Каждая научная дисциплина или область знаний создает онтологии для ограничения сложности и организации данных в информацию и знания. Новые онтологии улучшают решение проблем в этой области. Перевод научных работ в каждой области — это проблема, облегченная, когда эксперты из разных стран поддерживают контролируемый словарь[5] жаргона между каждым из своих языков.
Элементы
Общие компоненты онтологий включают в себя:
- Экземпляры (объекты) — базовые или "наземные" объекты.
- Классы (понятия) — наборы, коллекции, концепции, классы в программировании, типы объектов или виды вещей.
- Атрибуты — аспекты, свойства, признаки, характеристики или параметры, которые могут иметь объекты (и классы).
- Отношения — способы, которыми классы и индивиды могут быть связаны друг с другом.
- Термы функций — сложные структуры, образованные из определенных отношений, которые могут быть использованы вместо отдельного термина в высказывании.
- Ограничения — формально заявленные описания того, что должно быть истинным для того, чтобы какое-то утверждение было принято в качестве входных данных.
- Правила — высказывания в форме предложения if-then (антецедент-консеквент), описывающие логические выводы, которые могут быть сделаны из утверждения в определенной форме.
- Аксиомы — утверждения (включая правила) в логической форме, которые вместе составляют общую теорию, которую онтология описывает в своей области применения. Это определение отличается от определения "аксиом" в порождающей грамматике и формальной логике. В этих дисциплинах аксиомы включают только утверждения, утверждаемые как априорное знание. Здесь же "аксиомы" также включают в себя теорию, полученную из аксиоматических утверждений.
- События — изменение атрибутов или отношений.
Онтологии обычно кодируются с помощью языков онтологий — формальных языков, используемых для этой цели.
Примерами таковых являются OWL[6] , KIF[7] , Common Logic[8] , CycL[9] , DAML+OIL[10].
Построение при помощи методов машинного обучения
Векторные представления графов знаний
![](/wiki/images/thumb/a/a8/Knowledge-graph-tensor.jpg/200px-Knowledge-graph-tensor.jpg)
Для представления графовых данных используются семантика Cреды описания ресурса (англ. Resource Description Framework, RDF)[11] где связи представляются триплетом "субъект — предикат — объект". Для моделирования бинарных отношений на графе удобно использовать трехсторонний тензор , в котором две размерности образованы на основе связываемых объектов-узлов, а третья размерность содержит отношения между ними (см. иллюстрацию). Элемент тензора , когда существует отношение (i-й объект, k-е отношение, j-й объект). В противном случае для несуществующих или неизвестных отношений .
Обучение онтологий
Процесс получения онтологий начинается с вынесения множества терминов из текста и получения их синонимов. Далее они преобразуются во множество концептов. После чего выявляются связи между концептами, и в итоге формируются схемы аксиом и извлекаются аксиомы. Данный процесс называют слоеным пирогом обучения онтологии.
Алгоритмы, используемые в разных слоях при построении онтологии разбивают на 3 основные группы:
- Лингвистические
- Статистические
- Логические
Лингвистические методы
Лингвистические методы основаны на различных особеностях языка и играют ключевую роль на начальных стадиях обучения. В основном их используют для предобработки текста, а также в извлечении термов, концептов и связей.
Предобработка текста
На первой стадии текст предобрабатывается для уменьшения размерности и повышения точности обучаемой модели. Обычно для этого используют такие методы, как:
- Частеречная разметка (англ. Part-Of-Speech tagging, POS tagging)[12]
- Лемматиза́ция (англ. Lemmatization)[13]
Извлечение термов и концептов
Лингвистические техники также часто используют на этапе извлечения термов и концептов. Чтобы извлечь термы и концепты при помощи синтаксических структур слова помечают как части речи. Эта информация используется для извлечения синтаксических структур из предложений, таких как словосочетания и глагольные группы. Данные структуры анализируются на наличие различных слов и морфем для нахождения термов. К примеру словосочетание ‘acute appendicitis’ может быть извлечено в качестве кандидата на терм, так как является гипонимом к терму ‘appendicitis’. На китайских текстах данный метод достиг точности в
.Распространёнными методами данного подхода являются:
- Рамки валентностей (англ. Subcategorization Frames)[14]
- Извлечение коренных слов (англ. Seed Words Extraction)
Статистические методы
Статистические методы основаны на статистике и не полагаются на семантику языка. Большинство статистических методов преимущественно используют вероятностные техники и в основном применяются после предобработки текса лингвистическими методами на ранних этапах обучения (извлечение термов, конептов и связей).
Извлечение термов и концептов
На этом этапе используются следующие статистические методы:
- C/NC value[15]
- Contrastive analysis[16]
- Латентно-семантический анализ (англ. Latent Semantic Analysis)
- Кластеризация
Нахождение связей
Статистические методы также используют для выявления связей. Распространнными техниками являются:
- Категоризация термов (англ. Term subsumption)
- Анализ формальных понятий (англ. Formal Concept Analysis, FCA)[17]
- Иерархическая кластеризация
- Добыча ассоциативных правил (англ. Association rule mining, ARM)
Индуктивное логическое программирование
Индуктивное логическое программирование (англ. Inductive Logic Programming, ILP)[18] — раздел машинного обучения, который использует логическое программирование как форму представления примеров, фоновых знаний и гипотез. В онтологии ILP используется на последней стадии для генерации аксиом по схемам аксиом (полжительным и отрицательным примерам и фоновым знаниям).
Оценка онтологии
Оценка качества получения онтологии является важной частью процесса обучения. Благодаря ей можно уточниь или перестроить модели, неудовлетворяющих требованиям. Т.к. обучение состоит из различных этапов, процесс оценки онтологий является достаточно сложной задачей. Учитывая всю сложность данной задачи, многочисленные техники предлагались для оценки, однако их все можно разбить на следующие группы:
- Золотой стандарт
- Экспертная оценка
- Основываясь на конкретной задаче
- С использование конкретных источников знаний
Золотой стандарт
Оценка с использованием золотого стандарта основана на наличии стандартной онтологии. Золотой стандарт представляет собой пример идеальной онтологии в какой-то конкретоной области. Сравнивая и оценивая обученную онтологию с золотым стндартом можно эффективно определить степень покрытия области знаний и консистентность. Золотым стандартом может быть как независимая онтология, так и статистическая модель, сформированная экспертами в данной области. Наличие золотого стандарта позволяет проводит регулярные и крупномасштабные оценки на различных этапах обучения. Однако получение золотого стандарта может оказаться проблемой, так как он должен быть смоделирован в похожих условиях и с похожей целью как и у обучаемой онтологии. Очень часто это приводит к выбору моделей, созданных человеком.
См. также
Примечания
- ↑ Wikipedia — Semantic Network
- ↑ Knowledge graph definition
- ↑ Википедия — Концептуальная схема
- ↑ Wikipedia — Онтологическая инженерия
- ↑ Wikipedia — Контролируемый словарь
- ↑ Wikipedia — OWL
- ↑ Wikipedia — KIF
- ↑ Wikipedia — Common Logic
- ↑ Wikipedia — CycL
- ↑ Wikipedia — DAML+OIL
- ↑ Wikipedia — Resource Description Framework
- ↑ Wikipedia — Part-of-speech tagging
- ↑ Wikipedia — Lemmatisation
- ↑ Wikipedia — Subcategorization Frames
- ↑ Automatic Recognition of Multi-Word Terms: the C-value/NC-value Method — Katerina Frantziy, Sophia Ananiadouy, Hideki Mimaz (2000)
- ↑ Wikipedia — Contrastive analysis
- ↑ Wikipedia — Formal concept analysis
- ↑ Wikipedia — Inductive Logic Programming
Источники информации
- Wikipedia — Semantic network
- Википедия — Семантическая сеть
- Wikipedia — Knowledge graph
- Towards Data Science — Knowledge graph
- Authorea — What is a Knowledge Graph
- Wikipedia — Ontology
- Википедия — Онтология
- A survey of ontology learning techniques and applications — Muhammad Nabeel Asim, Muhammad Wasim, Muhammad Usman Ghani Khan, Waqar Mahmood, Hafiza Mahnoor Abbasi (2018)
- A Three-Way Model for Collective Learning on Multi-Relational Data — Maximilian Nickel, Volker Tresp, Hans-Peter Kriegel (2011)