Представление знаний
Представление знаний (англ. knowledge representation) — направление в исследованиях искусственного интеллекта, посвящённое представлению информации о мире в форме, которую было бы возможно использовать в компьютерных системах для решения сложных прикладных задач. Таковыми являются, например, диагностирование заболеваний или ведение диалога на естественном языке. Представление знаний включает в себя психологические исследования по решению задач человеком для построения формализмов, которые упростили бы работу со сложными системами. Примерами формализмов представления знаний являются семантические сети, архитектуры систем, правила и онтологии.
Содержание
- 1 Графы знаний
- 2 Онтология
- 3 Построение при помощи методов машинного обучения
- 4 См. также
- 5 Примечания
- 6 Источники информации
Графы знаний
История
Семантические сети[1] были разработаны в 1960 году из-за растущей необходимости в инструменте для представления знаний, который мог бы охватить широкий спектр сущностей: объекты реального мира, события, ситуации и отвлечённые концепты и отношения, — в конце концов будучи применённым в задаче поддержания диалога на естественном языке. Основной целью разработки семантических сетей было решение множества задач, например, представление планов, действий, времени, верований и намерений. При этом способ решения этих задач должен был быть достаточно обобщённым.
В 1980-х гг. Гронингенский университет и университет Твенте начали работу над совместным проектом, названным "Графы знаний", базируясь на устройстве семантических сетей с рёбрами, ограниченными наперёд заданным количеством отношений — для упрощения алгебры на графах. В последовавшие десятилетия граница между понятиями "Графов знаний" и "Семантических сетей" размывалась всё больше.
В 2012 году Google представили свою версию графа знаний[2].
Определение
Не существует формального определения графа знаний. Однако есть ряд требований, которых следует придерживаться при его построении[3]:
- Граф знаний определяется своей структурой (сущностями и связями между ними).
- Утверждения внутри графа знаний являются однозначными.
- Граф знаний использует конечный набор типов отношений.
- Все указанные сущности внутри графа знаний, включая типы и отношения, должны быть определены с использованием глобальных идентификаторов с однозначными обозначениями.
- Утверждения в графе знаний должны иметь явно указанные (лучше всего, проверенные) источники.
- Граф знаний может иметь оценки неопределённостей (вероятности, с которыми истинны те или иные утверждения[4]).
Применение
Вопросно-ответные системы. Самым распространённым применением графов знаний являются вопросно-ответные системы. Графы знаний располагают огромным количеством информации, доступ к которой проще всего получать посредством схемы вопрос-ответ.
Хранение информации исследований. Многие компании используют графы знаний для хранения результатов, полученных на разных стадиях исследований, которые могут быть использованы для построения понятных моделей, просчёта рисков, слежения за различными процессами и подобных задач.
Рекомендательные системы. Некоторые компании используют графы знаний как фундамент для своих рекомендательных систем. Здесь графы знаний позволяют находить связи между фильмами, телепрограммами, персоналиями и другими объектами. По выявленным связям можно пытаться предсказать индивидуальные предпочтения пользователя.
Управление цепочками поставок. Компании могут эффективно следить за перечнями различных составляющих, задействованного персонала, времени и других характеристик, что позволяет им передавать вещи более выгодно.
Открытые проблемы
- Выявление лучших практик для построения графов знаний. Важной проблемой является создание единого набора эвристик и практик, которые можно было бы применить для построения графов знаний. Такой набор мог бы помочь разработчикам и исследователям в понимании и использовании графов знаний.
- Динамически изменяемые знания. Знания не статичны, они зависят от времени. Например, некоторое утверждение, которое было истинным в один момент времени, может перестать быть таковым в другой. Поэтому открытой проблемой является поддержка изменений в знаниях.
- Оценка корректности и полноты графа знаний. Не выработаны объективные критерии оценки графов знаний. Открытой проблемой является ответ на вопрос, какое качество более важно для графа знаний: корректность (непротиворечивость), полнота или другое.
Онтология
Понятие онтологии существует как в информатике, так и в философии, однако эти понятия похожи.
Определение: |
Онтология (в информатике) — формализация знаний, включающая в себя представление, формальное именование и определение категорий, свойств и отношений между понятиями, данными и сущностями некоторой области знаний. |
Формализация
Для формализации используется концептуальная схема.
Определение: |
Концептуа́льная схе́ма[5] — семантическая сеть из взаимосвязанных по определенным правилам понятий и концепций. Обычно такая схема состоит из структуры данных, содержащей все релевантные классы объектов, их связи и правила (теоремы, ограничения), принятые в этой области. |
Философия
Термин «онтология» в информатике является производным от соответствующего древнего философского понятия.
Общее с философским понятием:
- И то, и другое — попытка представить сущности, идеи и события со всеми их взаимозависимыми свойствами и отношениями в соответствии с системой категорий.
- В обеих областях существует значительная работа по проблемам онтологической инженерии[6].
Отличия от философского понятия:
- Онтология в информатике должна иметь формат, который компьютер сможет легко обработать.
- Информационные онтологии создаются всегда с конкретными целями — решения конструкторских задач; они оцениваются больше с точки зрения применимости, чем полноты.
В каждой научной дисциплине или области знаний создают онтологии для организации данных в виде информации и знаний. С новыми онтологиями упрощается решение задач в этих областях. Однако при решении задач возникают определённые сложности, например, языковой барьер между исследователями разных стран. Эта сложность может быть нивелирована поддержкой контролируемых словарей[7] жаргона.
Элементы
Общие компоненты онтологий включают в себя:
- Экземпляры (объекты) — базовые или "наземные" объекты.
- Классы (понятия) — наборы, коллекции, концепции, классы в программировании, типы объектов или виды вещей.
- Атрибуты — аспекты, свойства, признаки, характеристики или параметры, которые могут иметь объекты (и классы).
- Отношения — способы, которыми классы и индивиды могут быть связаны друг с другом.
- Термы функций — сложные структуры, образованные из определенных отношений, которые могут быть использованы вместо отдельного термина в высказывании.
- Ограничения — формально заявленные описания того, что должно быть истинным для того, чтобы какое-то утверждение было принято в качестве входных данных.
- Правила — высказывания в форме предложения if-then (антецедент-консеквент), описывающие логические выводы, которые могут быть сделаны из утверждения в определенной форме.
- Аксиомы — утверждения (включая правила) в логической форме, которые вместе составляют общую теорию, которую онтология описывает в своей области применения. Это определение отличается от определения "аксиом" в формальной логике. В этой дисциплине аксиомы включают только утверждения, утверждаемые как априорное знание. Здесь же "аксиомы" также включают в себя теорию, полученную из аксиоматических утверждений.
- События — изменение атрибутов или отношений.
Онтологии обычно кодируются с помощью языков онтологий — формальных языков программирования, основанных на исчислении предикатов (не путать с формальными грамматиками).
Примерами таковых являются OWL[8] , KIF[9] , Common Logic[10] , CycL[11] , DAML+OIL[12].
Построение при помощи методов машинного обучения
Векторные представления графов знаний
![](/wiki/images/thumb/a/a8/Knowledge-graph-tensor.jpg/200px-Knowledge-graph-tensor.jpg)
Векторные представления графов знаний (англ. Knowledge graph embeddings, KGE) являются малоразмерными представлениями объектов-узлов и связей между ними в графе знаний. Они обобщают информацию о семантике и локальной структуре вершин.
Существует множество различных моделей KGE, таких как TransE[13], TransR[14], RESCAL[15], DistMult[16], ComplEx[17], и RotatE[18].
Как пример для представления графовых данных может использоваться семантика Cреды описания ресурса (англ. Resource Description Framework, RDF)[19] где связи представляются триплетом "субъект — предикат — объект". Для моделирования бинарных отношений на графе удобно использовать трехсторонний тензор , в котором две размерности образованы на основе связываемых объектов-узлов, а третья размерность содержит отношения между ними (см. иллюстрацию). Элемент тензора , когда существует отношение (i-й объект, k-е отношение, j-й объект). В противном случае для несуществующих или неизвестных отношений .
Обучение онтологий
Процесс получения онтологий начинается с вынесения множества терминов из текста и получения их синонимов. Далее они преобразуются во множество концептов. После чего выявляются связи между концептами, и в итоге формируются схемы аксиом и извлекаются аксиомы. Данный процесс называют слоеным пирогом обучения онтологии.
Алгоритмы, используемые в разных слоях при построении онтологии разбивают на 3 основные группы:
- Лингвистические
- Статистические
- Логические
Лингвистические методы
Лингвистические методы основаны на различных особенностях языка и играют ключевую роль на начальных стадиях обучения. В основном их используют для предобработки текста, а также в извлечении термов, концептов и связей.
Предобработка текста
На первой стадии текст предобрабатывается для уменьшения размерности и повышения точности обучаемой модели. Обычно для этого используют такие методы, как:
- Частеречная разметка[на 09.01.21 не создан] (англ. Part-Of-Speech tagging POS tagging)[20]
- Лемматиза́ция (англ. Lemmatization)[21]
Извлечение термов и концептов
Лингвистические техники также часто используют на этапе извлечения термов и концептов. Чтобы извлечь термы и концепты при помощи синтаксических структур слова помечают как части речи. Эта информация используется для извлечения синтаксических структур из предложений, таких как словосочетания и глагольные группы. Данные структуры анализируются на наличие различных слов и морфем для нахождения термов. К примеру словосочетание ‘acute appendicitis’ может быть извлечено в качестве кандидата на терм, так как является гипонимом к терму ‘appendicitis’. На китайских текстах данный метод достиг точности в [22].
Распространёнными методами данного подхода являются:
- рамки валентностей[23] (англ. Subcategorization Frames);
- извлечение коренных слов (англ. Seed Words Extraction).
Нахождение связей
С помощью анализа зависимостей можно находить связи между термами используя информацию, предоставленную в деревьях разбора. Таким образом, с помощью кратчайшего пути между двумя концептами в дереве разбора можно выявить связи между ними.
Также можно использовать регулярные выражения. Например правило ‘NP, как например NP, NP, … , NP’ может выявить такие образцы как ‘сезоны года, как например лето, осень, весна и зима’. Данный подход полезен для выявления связей "является" к примеру (лето — сезон года).
Статистические методы
Статистические методы основаны на статистике и не полагаются на семантику языка. Большинство статистических методов преимущественно используют вероятностные техники и в основном применяются после предобработки текста лингвистическими методами на ранних этапах обучения (извлечение термов, концептов и связей).
Извлечение термов и концептов
На этом этапе используются следующие статистические методы:
- C/NC value[24]
- Сравнительный анализ (англ. Contrastive analysis)[25]
- Латентно-семантический анализ (англ. Latent Semantic Analysis)
- Кластеризация
Нахождение связей
Статистические методы также используют для выявления связей. Распространёнными техниками являются:
- Категоризация термов (англ. Term subsumption)
- Анализ формальных понятий (англ. Formal Concept Analysis, FCA)[26]
- Иерархическая кластеризация
- Добыча ассоциативных правил (англ. Association rule mining, ARM)
Индуктивное логическое программирование
Индуктивное логическое программирование (англ. Inductive Logic Programming, ILP)[27] — раздел машинного обучения, который использует логическое программирование как форму представления примеров, фоновых знаний и гипотез. В онтологии ILP используется на последней стадии для генерации аксиом по схемам аксиом (положительным и отрицательным примерам и фоновым знаниям).
Оценка онтологии
Оценка качества получения онтологии является важной частью процесса обучения. Благодаря ей можно уточнить или перестроить модели, не удовлетворяющие требованиям. Так как обучение состоит из различных этапов, процесс оценки онтологий является достаточно сложной задачей. По этой причине предлагались многочисленные техники оценки, однако их все можно разбить на следующие группы:
Золотой стандарт
Оценка с использованием золотого стандарта основана на наличии базовой онтологии. Золотой стандарт представляет собой пример идеальной онтологии в какой-то конкретной области. Сравнивая и оценивая обученную онтологию с золотым стандартом можно эффективно определить степень покрытия области знаний и консистентность. Золотым стандартом может быть как независимая онтология, так и статистическая модель, сформированная экспертами в данной области. Наличие золотого стандарта позволяет проводить регулярные и крупномасштабные оценки на различных этапах обучения. Однако получение золотого стандарта может оказаться проблемой, так как он должен быть смоделирован в условиях и с целью похожими на соответственно условия и цель обучаемой онтологии. Очень часто это приводит к выбору моделей, созданных человеком вручную.
Экспертная оценка
Экспертная оценка основана на определении различных критериев. По каждому критерию выставляется числовая оценка, после чего считается взвешенная сумма оценок. Основным недостатком данного способа являются огромные затраты времени и усилий на ручную работу, однако данный метод устарел и крайне редко применяется в оценке современных онтологий.
Оценка, основанная на конкретной задаче
Данная оценка применяется при построении онтологии для конкретных задач. Результаты, полученные в процессе решения задачи, определяют качество построенной онтологии, независимо от её структуры. Данная оценка позволяет выявить неустойчивые концепты и определить адаптивность конкретной онтологии, анализируя её эффективность в контексте различных задач.
К примеру, создаётся онтология для улучшения поиска документов. В таком случае можно проверить, получило ли приложение более релевантные документы после применения данной онтологии. Для этого можно применить традиционные методы оценки, такие как F мера.
Однако стоит отметить, что использование оценок, основанных на конкретных задачах, имеет несколько недостатков. К примеру:
- Онтология может являться лишь малой частью приложения, и её эффект на общий результат может быть незначительным.
- Онтология оценивается путём применения конкретным образом для конкретной задачи, а значит модель достаточно сложно обобщить.
Оценка с использованием конкретных источников знаний
Эта оценка использует источники знаний конкретной области, чтобы определить степень покрытия этой области обучаемой онтологией. Главным преимуществом данной оценки является возможность сравнивать одну или несколько целевых онтологий с конкретными данными. Однако возникает проблема нахождения подходящего источника знаний (как и в оценке золотым стандартом).
См. также
Примечания
- ↑ Wikipedia — Semantic Network
- ↑ Wikipedia — Google Knowledge Graph
- ↑ Wikipedia — Knowledge graph definition
- ↑ Wikipedia — Fuzzy logic
- ↑ Википедия — Концептуальная схема
- ↑ Wikipedia — Онтологическая инженерия
- ↑ Wikipedia — Контролируемый словарь
- ↑ Wikipedia — OWL
- ↑ Wikipedia — KIF
- ↑ Wikipedia — Common Logic
- ↑ Wikipedia — CycL
- ↑ Wikipedia — DAML+OIL
- ↑ Translating Embeddings for Modeling Multi-relational Data — Antoine Bordes, Nicolas Usunier, Alberto Garcia-Duran, Jason Weston, Oksana Yakhnenko (2013)
- ↑ Learning Entity and Relation Embeddings for Knowledge Graph Completion — Yankai Lin, Zhiyuan Liu, Maosong Sun, Yang Liu, Xuan Zhu (2015)
- ↑ A Three-Way Model for Collective Learning on Multi-Relational Data — Nickel Maximilian, Tresp Volker, Kriegel Hans-Peter (2011)
- ↑ Embedding Entities and Relations for Learning and Inference in Knowledge Bases — Bishan Yang, Wen-tau Yih, Xiaodong He, Jianfeng Gao, Li Deng (2015)
- ↑ Complex Embeddings for Simple Link Prediction — Théo Trouillon, Johannes Welbl, Sebastian Riedel, Éric Gaussier, Guillaume Bouchard (2016)
- ↑ RotatE: Knowledge Graph Embedding by Relational Rotation in Complex Space — Zhiqing Sun, Zhi-Hong Deng, Jian-Yun Nie, Jian Tang (2019)
- ↑ Wikipedia — Resource Description Framework
- ↑ Wikipedia — Part-of-speech tagging
- ↑ Wikipedia — Lemmatisation
- ↑ The head-modifier principle and multilingual term extraction — Hippisley A., Cheng D. и Ahmad K. (2005)
- ↑ 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
- Википедия — Онтология
- Training knowledge graph embeddings at scale with the Deep Graph Library — Phi Nguyen, Xiang Song (2020)
- A Three-Way Model for Collective Learning on Multi-Relational Data — Maximilian Nickel, Volker Tresp, Hans-Peter Kriegel (2011)
- A survey of ontology learning techniques and applications — Muhammad Nabeel Asim, Muhammad Wasim, Muhammad Usman Ghani Khan, Waqar Mahmood, Hafiza Mahnoor Abbasi (2018)