Теория СУБД
- Теория СУБД
- ЗА ТАБЛИЦАМИ — НАШЕ БУДУЩЕЕ!
- СВЯЗЫВАЕМ ДАННЫЕ
- ОБЪЕКТНЫЙ РАЙ
- ЛОКАЛЬНАЯ БАЗА
- СЕТЕВАЯ БАЗА ДАННЫХ
- КЛИЕНТ-СЕРВЕР
- ТРЕТИЙ УРОВЕНЬ
- ЛОГИКА
- ВИДЫ СТРУКТУР БАЗ
- ОБЗОР РЫНКА
- РАЗВИТИЕ ТЕХНОЛОГИЙ БД
- БАЗЫ ЗНАНИЙ И ЭКСПЕРТНЫЕ СИСТЕМЫ
- АНАЛИЗ ДАННЫХ И OLAP-ТЕХНОЛОГИИ
- ХРАНИЛИЩА ДАННЫХ И КОРПОРАТИВНАЯ ПАМЯТЬ
- ИСТОРИЯ РАЗВИТИЯ ИНТЕРФЕЙСОВ ДОСТУПА К БАЗАМ ДАННЫХ
- ЧТО ДАЛЬШЕ?
Знания имеют существенно более сложную природу, чем данные. Поэтому для хранения и обработки знаний служат специальные компьютерные системы — базы знаний. Например, база знаний может использоваться при разработке web-интерфейса интернет-магазина, рекомендаций покупателям о приобретении тех или иных товаров (история покупок и правила наподобие приведенного выше — основа для этого). Другой пример — база знаний в составе ERP-системы предприятия, которая на основе опыта, полученного несколькими специалистами в результате подбора поставщиков, предоставляет сведения о целесообразности закупки тех или иных товаров.
Вопросы эффективного представления знаний в машинном виде являются весьма нетривиальными и во многом зависят от поставленных задач. Весьма широко распространено представление знаний в виде правил "если — то" (продукционное представление), в виде сети связанных определенными отношениями объектов (семантические сети), в виде иерархического множества объектов с определенными свойствами (фреймовое представление) и на языке логики предикатов (логическое представление).
Благодаря множеству представлений существует множество различных программных средств для создания баз знаний, называемых также оболочками экспертных систем. Среди них можно отметить CLIPS и JESS, а также более профессиональную среду моделирования G2. Во многих случаях бывает удобнее реализовывать базу знаний на языках программирования искусственного интеллекта (ЛИСПе, Прологе) или на традиционных языках программирования.
Чаще всего базы знаний используются при создании экспертных систем -программ, способных играть роль человека-эксперта в некоторой предмет ной области, то есть, как правило, предоставлять консультации по некоторым проблемам в режиме "вопрос -ответ". Например, экспертная система в книжном интернет-магазине может рекомендовать приобрести конкретные книги или книги конкретных жанров с учетом потребностей, предпочтений и даже настроения пользователей. Простой пример диалога пользователя с экспертной системой может выглядеть так:
ЭС: Какой жанр книг вы предпочитаете? П: Техническую литературу. ЭС: В какой области? П: Microsoft Office.
ЭС: Вы программист или продвинутый пользователь? П: Программист.
ЭС: Вас интересует программирование для платформы Microsoft .NET? П: Да.
ЭС: Вас интересует какой-нибудь конкретный продукт? П: Visio.
ЭС: Могу порекомендовать "Microsoft Office Visio 2003 не для дилетантов", Леонтьев Б.К., ЗАО "Новый издательский дом", 2005 год.
Примером "советующих" экспертных систем в области торговли может стать небезызвестный проект Yandex GURU (http://guru.yandex.ru), дающий советы при выборе товаров.
Структура типовой экспертной системы показана на рис. 1. Основным модулем системы является база знаний, содержащая множество знаний эксперта о предметной области. Базы знаний реальных экспертных систем содержат тысячи и десятки тысяч (иногда сотни тысяч) правил. Данные о конкретной решаемой задаче содержатся в рабочей памяти — туда заносятся начальные данные, ответы пользователя, а также полученные системой в ходе рассуждений выводы. Собственно, за проведение рас-
суждений отвечает процессор логического вывода, который пытается применить правила базы знаний к решению конкретной задачи.
Основная проблема создания экспертных систем — получение знаний от человека-эксперта. Поскольку эксперт, как правило, не обладает навыками программирования, а программист не способен адекватно общаться с экспертом на его языке, обычно в роли посредника выступает отдельный специалист — инженер по знаниям (рис. 2). Задача инженера по знаниям — уметь "разговаривать на одном языке" с экспертом (специалистом в своей области знаний) и с программистом, который при всем желании не смог бы вникнуть в тонкости предметной области. Для извлечения знаний существует множество методов, но эта задача остается чрезвычайно трудоемкой, препятствуя широкому распространению баз знаний.
МАШИННОЕ ОБУЧЕНИЕ
Иногда требуется решить задачу, обратную построению баз данных. Имеются массивы разрозненных данных, и требуется обнаружить в них скрытые закономерности. Типичный пример — уже упомянутая статистика покупок в интернет-магазине. Кто бы мог подумать, что покупатели клюшек для гольфа также часто интересуют ся дорогими игровыми приставками? Оказывается, многие состоятельные бизнесмены любят делать своим внукам хорошие подарки...
В таких случаях на помощь приходят методы, известные как машинное обучение или извлечение знаний из баз данных. Эти методы способны обнаружить в данных глубинные зависимости и представить их в форме знаний: правил, сетей, групп объектов и т.д. Далее эти знания могут быть использованы в составе базы знаний или интерпретироваться людьми для получения более подробной информации.
Рассмотрим основные методы, используемые в машинном обучении совместно с базами данных. К сожалению, многие интересные современные методы нам не удастся даже упомянуть (к примеру, извлечение структуры web-сайтов и web-сооб-ществ, эволюционное обучение, применение методов машинного обучения к анализу текстов, фильтрации спама и др.).