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

Материал из Викиконспекты
Перейти к: навигация, поиск
(Извлечение термов и концептов)
(Индуктивное логическое программирование)
Строка 201: Строка 201:
 
===Индуктивное логическое программирование===
 
===Индуктивное логическое программирование===
  
На последней стадии построения онтологии используется индуктивное логическое программирование (англ. ''Inductive Logic Programming, ILP'')<ref>[https://wikipedia.org/wiki/Inductive_logic_programming Wikipedia {{---}} Inductive Logic Programming]</ref> {{---}} раздел машинного обучения, который использует логическое программирование как форму представления примеров, фоновых знаний и гипотез. ILP необходимо для генерации аксиом по схемам аксиом (полжительным и отрицательным примерам и фоновым знаниям).
+
На последней стадии построения онтологии используется индуктивное логическое программирование (англ. ''Inductive Logic Programming, ILP'')<ref>[https://wikipedia.org/wiki/Inductive_logic_programming Wikipedia {{---}} Inductive Logic Programming]</ref> {{---}} раздел машинного обучения, который использует логическое программирование как форму представления примеров, фоновых знаний и гипотез. ILP необходимо для генерации аксиом по схемам аксиом (положительным и отрицательным примерам и фоновым знаниям).
  
 
===Оценка онтологии===
 
===Оценка онтологии===

Версия 22:33, 9 января 2021

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

Графы знаний

История

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

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

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

Определение

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

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

Применение

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

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

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

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

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

  1. Выявление лучших практик для построения графов знаний. Важной проблемой является создание единого набора эвристик и практик, которые можно было бы применить для построения графов знаний. Такой набор мог бы помочь разработчикам и исследователям в понимании и использовании графов знаний.
  2. Динамически изменяемые знания. Знания не статичны, они зависят от времени. Например, некоторое утверждение, которое было истинным в один момент времени, может перестать быть таковым в другой. Поэтому открытой проблемой является поддержка изменений в знаниях.
  3. Оценка корректности и полноты графа знаний. Не выработаны объективные критерии оценки графов знаний. Открытой проблемой является ответ на вопрос, какое качество более важно для графа знаний: корректность (непротиворечивость), полнота или другое.

Онтология

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

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

Формализация

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

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

Философия

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

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

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

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

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

В каждой научной дисциплине или области знаний создают онтологии для организации данных в виде информации и знаний. С новыми онтологиями упрощается решение задач в этих областях. Однако при решении задач возникают определённые сложности, например, языковой барьер между исследователями разных стран. Эта сложность может быть нивелирована поддержкой контролируемых словарей[7] жаргона.

Элементы

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

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

Примерами таковых являются OWL[8] , KIF[9] , Common Logic[10] , CycL[11] , DAML+OIL[12].

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

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

Векторные представления графов знаний (англ. Knowledge graph embeddings, KGE) являются малоразмерными представлениями объектов-узлов и связей между ними в графе знаний. Они обобщают информацию о семантике и локальной структуре вершин.

Существует множество различных моделей KGE, таких как TransE[13], TransR[14], RESCAL[15], DistMult[16], ComplEx[17], и RotatE[18].

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

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

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

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

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

  • лингвистические;
  • статистические;
  • логические.

Лингвистические методы

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

Предобработка текста

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

Извлечение термов и концептов

Лингвистические техники также часто используют на этапе извлечения термов и концептов. Чтобы извлечь термы и концепты при помощи синтаксических структур слова помечают как части речи. Эта информация используется для извлечения синтаксических структур из предложений, таких как словосочетания и глагольные группы. Данные структуры анализируются на наличие различных слов и морфем для нахождения термов. К примеру словосочетание ‘acute appendicitis’ может быть извлечено в качестве кандидата на терм, так как является гипонимом к терму ‘appendicitis’. На китайских текстах данный метод достиг точности в [math]83.3\%[/math][22].

Распространёнными методами данного подхода являются:

  • рамки валентностей (англ. Subcategorization Frames)[23];
  • извлечение коренных слов (англ. Seed Words Extraction).

Нахождение связей

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

Также можно использовать регулярные выражения. Например, правило "[math]N[/math], как например [math]N[/math], [math]N[/math], … , [math]N[/math]" (где [math]N[/math] — именная группа[24]) может выявить такие образцы как "сезоны года, как например лето, осень, весна и зима". Данный подход полезен для выявления связей "является" к примеру (лето — сезон года).

Статистические методы

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

Извлечение термов и концептов

На этом этапе используются следующие статистические методы:

  • C/NC value[25] используют для извлечения многословных терминологий — групп термов, образующих концепты. Алгоритму на вход подаётся несколько многословных термов, для каждого из которых вычисляется оценка в форме C value и NC value. C value использует частоту встречаемости терма для его извлечения, что делает его эффективным для нахождения вложенных термов, а NC value по сути является модификацией C value, которая учитывает контекст.
  • В процессе извлечения термов могут быть получены термы, не относящиеся к целевой области. Для фильтрации таких термов применяется метод сравнительного анализа (англ. Contrastive analysis)[26]. Он присуждает оценку для каждого терма, в зависимости от того, насколько он релевантен для целевой области, и насколько он нерелевантен в других областях.
  • Латентно-семантический анализ (англ. Latent Semantic Analysis, LSA) используют для извлечения концептов. Этот метод основан на том, что термы, встречающиеся вместе, будут схожи по значению. LSA уменьшает размерность данных, сохраняя структуру подобия, после чего к оставшимся термам применяется мера сходства (например косинусное сходство[27]) для поиска похожих слов.
  • Кластеризация группирует множества объектов на подмножества (кластеры) таким образом, чтобы объекты из одного кластера были более похожи друг на друга, чем на объекты из других кластеров.

Нахождение связей

Статистические методы также используют для выявления связей. Распространёнными техниками являются:

  • Категоризация термов (англ. Term subsumption) находит связи между термами при помощи условной вероятности. Этот алгоритм ищет термы, являющиеся наиболее общими. Терм [math]t[/math] считается более общим, чем терм [math]x[/math] если [math]P(t|x) \gt P(x|t)[/math], где [math]P(t|x)[/math] обозначает вероятность встречи терма [math]t[/math] при наличии терма [math]x[/math].
  • Анализ формальных понятий (англ. Formal Concept Analysis, FCA)[28] основан на том, что объекты могут иметь схожие атрибуты. Алгоритм на вход принимает матрицу связей объектов и атрибутов и находит в ней все естественные кластеры, что позволяет построить иерархию концептов и атрибутов.
  • Иерархическая кластеризация группирует термы в кластеры для нахождения концептов и построения иерархий.
  • Добыча ассоциативных правил (англ. Association rule mining, ARM) находит правила, предугадывающие совпадение элементов в различных базах данных, для чего обычно применяют алгоритмы Apriori[29] и FPG[30]. Тут правило подразумевает импликацию [math]X \to Y[/math], где [math]X[/math] и [math]Y[/math] — непустые подмножества множества всех элементов, такие, что [math]X \cap Y = \varnothing[/math].

Индуктивное логическое программирование

На последней стадии построения онтологии используется индуктивное логическое программирование (англ. Inductive Logic Programming, ILP)[31] — раздел машинного обучения, который использует логическое программирование как форму представления примеров, фоновых знаний и гипотез. ILP необходимо для генерации аксиом по схемам аксиом (положительным и отрицательным примерам и фоновым знаниям).

Оценка онтологии

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

Золотой стандарт

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

Экспертная оценка

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

Оценка, основанная на конкретной задаче

Данная оценка применяется при построении онтологии для конкретных задач. Результаты, полученные в процессе решения задачи, определяют качество построенной онтологии, независимо от её структуры. Данная оценка позволяет выявить неустойчивые концепты и определить адаптивность конкретной онтологии, анализируя её эффективность в контексте различных задач.

К примеру, создаётся онтология для улучшения поиска документов. В таком случае можно проверить, получило ли приложение более релевантные документы после применения данной онтологии. Для этого можно применить традиционные методы оценки, такие как F мера.

Однако стоит отметить, что использование оценок, основанных на конкретных задачах, имеет несколько недостатков. К примеру:

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

Оценка с использованием конкретных источников знаний

Эта оценка использует источники знаний конкретной области, чтобы определить степень покрытия этой области обучаемой онтологией. Главным преимуществом данной оценки является возможность сравнивать одну или несколько целевых онтологий с конкретными данными. Однако возникает проблема нахождения подходящего источника знаний (как и в оценке золотым стандартом).

См. также

Примечания

  1. Wikipedia — Semantic Network
  2. Wikipedia — Google Knowledge Graph
  3. Wikipedia — Knowledge graph definition
  4. Wikipedia — Fuzzy logic
  5. Википедия — Концептуальная схема
  6. Wikipedia — Онтологическая инженерия
  7. Wikipedia — Контролируемый словарь
  8. Wikipedia — OWL
  9. Wikipedia — KIF
  10. Wikipedia — Common Logic
  11. Wikipedia — CycL
  12. Wikipedia — DAML+OIL
  13. Translating Embeddings for Modeling Multi-relational Data — Antoine Bordes, Nicolas Usunier, Alberto Garcia-Duran, Jason Weston, Oksana Yakhnenko (2013)
  14. Learning Entity and Relation Embeddings for Knowledge Graph Completion — Yankai Lin, Zhiyuan Liu, Maosong Sun, Yang Liu, Xuan Zhu (2015)
  15. A Three-Way Model for Collective Learning on Multi-Relational Data — Nickel Maximilian, Tresp Volker, Kriegel Hans-Peter (2011)
  16. Embedding Entities and Relations for Learning and Inference in Knowledge Bases — Bishan Yang, Wen-tau Yih, Xiaodong He, Jianfeng Gao, Li Deng (2015)
  17. Complex Embeddings for Simple Link Prediction — Théo Trouillon, Johannes Welbl, Sebastian Riedel, Éric Gaussier, Guillaume Bouchard (2016)
  18. RotatE: Knowledge Graph Embedding by Relational Rotation in Complex Space — Zhiqing Sun, Zhi-Hong Deng, Jian-Yun Nie, Jian Tang (2019)
  19. Wikipedia — Resource Description Framework
  20. Wikipedia — Part-of-speech tagging
  21. Wikipedia — Lemmatisation
  22. The head-modifier principle and multilingual term extraction — Hippisley A., Cheng D. и Ahmad K. (2005)
  23. Wikipedia — Subcategorization Frames
  24. Википедия — Именная группа
  25. Automatic Recognition of Multi-Word Terms: the C-value/NC-value Method — Katerina Frantziy, Sophia Ananiadouy, Hideki Mimaz (2000)
  26. Wikipedia — Contrastive analysis
  27. Wikipedia — Cosine Simularity
  28. Wikipedia — Formal concept analysis
  29. Wikipedia — Apriori algorithm
  30. Wikibooks — FP-Growth Algorithm
  31. Wikipedia — Inductive Logic Programming

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