Представление знаний — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Обучение онтологий)
(Обучение онтологий)
Строка 127: Строка 127:
 
Помимо нахождения самих концептов необходимо найти связи между ними. Обычно для этого используют смесь [[:Обработка_естественного_языка|обработки текстов на естественном языке]] и статистические подходы такие как:
 
Помимо нахождения самих концептов необходимо найти связи между ними. Обычно для этого используют смесь [[:Обработка_естественного_языка|обработки текстов на естественном языке]] и статистические подходы такие как:
  
* dependency analysis
+
* Term subsumption
* lexico-syntactic analysis
+
* [[:Анализ_формальных_понятий|Анализ формальных понятий]]<sup>[на 03.01.21 не создан]</sup> (англ. ''formal concept analysis (FCA)'')<ref>[https://wikipedia.org/wiki/Formal_concept_analysis#:~:text=Formal%20concept%20analysis%20(FCA)%20is,of%20objects%20and%20their%20properties. Wikipedia {{---}} Formal concept analysis]</ref>
* term subsumption, formal concept analysis (FCA)
 
 
* [[:Иерархическая_кластеризация|Иерархическая кластеризация]]
 
* [[:Иерархическая_кластеризация|Иерархическая кластеризация]]
* association rule mining (ARM)
+
* Association rule mining (ARM)
  
 
На следующем шаге формируются аксиомы при помощи Индуктивного Логического Программирования (англ. Inductive Logic Programming, ILP).
 
На следующем шаге формируются аксиомы при помощи Индуктивного Логического Программирования (англ. Inductive Logic Programming, ILP).

Версия 03:47, 3 января 2021

Представление знаний (англ. knowledge representation) — направление в исследованиях искусственного интеллекта, посвящённое представлению информации о мире в форме, которую было бы возможно использовать в компьютерных системах для решения сложных задач, таких как диагностирование заболеваний или ведение диалога на естественном языке. Представление знаний включает в себя психологические исследования по решению задач человеком для построения формализмов, которые упростили бы работу со сложными системами. Примерами формализмов представления знаний являются семантические сети, архитектуры систем, правила и онтологии.

Графы знаний

История

Определение:
Семанти́ческая сеть [1] (англ. semantic network) — информационная модель предметной области, представленная в виде ориентированного графа. Вершины при этом соответствуют объектам предметной области, а рёбра представляют отношения между ними. Семантическая сеть — это один из способов представления знаний.

Семантические сети были разработаны в 1960 году из-за растущей необходимости в инструменте для представления знаний, который мог бы охватить широкий спектр сущностей: объекты реального мира, события, ситуации и отвлечённые концепты и отношения, — в конце концов будучи применённым в задаче поддержания диалога на естественном языке. Основной целью разработки семантических сетей было решение множества задач, например, представление планов, действий, времени, верований и намерений. При этом способ решения этих задач должен был быть достаточно обобщённым.

В 1980-х гг. Гронингенский университет и университет Твенте начали работу над совместным проектом, названным "Графы знаний", базируясь на устройстве семантических сетей с рёбрами, ограниченными наперёд заданным количеством отношений — для упрощения алгебры на графах. В последовавшие десятилетия граница между понятиями "Графов знаний" и "Семантических сетей" размывалась всё больше.

В 2012 же году Google представили свою версию графа знаний.

Определение

Не существует формального определения графа знаний. Однако есть ряд аксиом, которым граф знаний должен удовлетворять [2].

  1. Значение графа знаний выражается в его структуре.
  2. Утверждения внутри графа знаний являются однозначными.
  3. Граф знаний использует конечный набор типов отношений.
  4. Все указанные сущности внутри графа знаний, включая типы и отношения, должны быть определены с использованием глобальных идентификаторов с однозначными обозначениями.
  5. Утверждения в графе знаний должны иметь явно указанные источники.
  6. Граф знаний может иметь оценки неопределённостей.

Применение

Вопросно-ответные системы. Самым распространённым применением графов знаний являются вопросно-ответные системы. Графы знаний располагают огромным количеством информации, доступ к которой проще всего получать посредством схемы вопрос-ответ.

Хранение информации исследований. Многие компании используют графы знаний для хранения результатов, полученных на разных стадиях исследований, которые могут быть использованы для построения понятных моделей, просчёта рисков, слежения за различными процессами и т. д.

Рекомендательные системы. Некоторые компании используют графы знаний как фундамент для своих рекомендательных систем. Здесь графы знаний позволяют находить связи между фильмами, телепрограммами, персоналиями и т. д. По выявленным связям можно пытаться предсказать индивидуальные предпочтения пользователя.

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

Открытые проблемы

  1. Выявление лучших практик для построения графов знаний.
  2. Динамически изменяемые знания.
  3. Оценка корректности и полноты графа знаний.

Онтология

Понятие онтологии существует как в информатике, так и в философии, однако эти понятия похожи.

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

Для формализации используется концептуальная схема.

Определение:
Концептуа́льная схе́ма[3] — семантическая сеть из взаимосвязанных по определенным правилам понятий и концепций. Обычно такая схема состоит из структуры данных, содержащей все релевантные классы объектов, их связи и правила (теоремы, ограничения), принятые в этой области.

Термин «онтология» в информатике является производным от соответствующего древнего философского понятия.

Общее с философским понятием:

  • И то, и другое — попытка представить сущности, идеи и события со всеми их взаимозависимыми свойствами и отношениями в соответствии с системой категорий.
  • В обеих областях существует значительная работа по проблемам онтологической инженерии[4].

Отличия от философского понятия:

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

Каждая научная дисциплина или область знаний создает онтологии для ограничения сложности и организации данных в информацию и знания. Новые онтологии улучшают решение проблем в этой области. Перевод научных работ в каждой области — это проблема, облегченная, когда эксперты из разных стран поддерживают контролируемый словарь[5] жаргона между каждым из своих языков.

Элементы

Общие компоненты онтологий включают в себя:

  • Экземпляры (объекты) — базовые или "наземные" объекты.
  • Классы (понятия) — наборы, коллекции, концепции, классы в программировании, типы объектов или виды вещей.
  • Атрибуты — аспекты, свойства, признаки, характеристики или параметры, которые могут иметь объекты (и классы).
  • Отношения — способы, которыми классы и индивиды могут быть связаны друг с другом.
  • Термы функций — сложные структуры, образованные из определенных отношений, которые могут быть использованы вместо отдельного термина в высказывании.
  • Ограничения — формально заявленные описания того, что должно быть истинным для того, чтобы какое-то утверждение было принято в качестве входных данных.
  • Правила — высказывания в форме предложения if-then (антецедент-консеквент), описывающие логические выводы, которые могут быть сделаны из утверждения в определенной форме.
  • Аксиомы — утверждения (включая правила) в логической форме, которые вместе составляют общую теорию, которую онтология описывает в своей области применения. Это определение отличается от определения "аксиом" в порождающей грамматике и формальной логике. В этих дисциплинах аксиомы включают только утверждения, утверждаемые как априорное знание. Здесь же "аксиомы" также включают в себя теорию, полученную из аксиоматических утверждений.
  • События — изменение атрибутов или отношений.

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

Примерами таковых являются OWL, KIF, Common Logic, CycL, DAML+OIL.

Построение при помощи методов машинного обучения

Векторные представления графов знаний

Для представления графовых данных используются семантика RDF (Resource Description Framework)[6] где связи представляются триплетом "субъект — предикат — объект". Для моделирования бинарных отношений на графе удобно использовать трехсторонний тензор [math]X[/math], в котором две моды образованы идентично на основе связываемых объектов-узлов, а третья мода содержит отношения между ними (см. иллюстрацию). Элемент тензора [math]x_{ijk} = 1[/math], когда существует отношение (i-й объект, k-е отношение, j-й объект). В противном случае для несуществующих или неизвестных отношений [math]x_{ijk} = 0[/math].


Обучение онтологий

Слоеный пирог обучения онтологий

Процесс получения онтологий начинается с вынесения множества терминов из текста и получения их синонимов. Далее они преобразуются во множество концептов. После чего выявляются связи между концептами, и в итоге формируются схемы аксиом и извлекаются аксиомы. Данный процесс называют слоеным пирогом обучения онтологии.

Алгоритмы, используемые в разных слоях при построении онтологии разбивают на 3 основные группы:

  • Лингвистические
  • Статистические
  • Логические

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

После этого извлекаются необходимые термы и концепты. На этом этапе используются следующие техники:

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

На следующем шаге формируются аксиомы при помощи Индуктивного Логического Программирования (англ. Inductive Logic Programming, ILP).

Для формировния целостной онтологии инпользуются различные методы, например:

  • gold standard-based
  • application-based
  • data-driven
  • human-based

См. также

Примечания

Источники информации