УДК 004.89 Дата подачи статьи: 01.03.16
DOI: 10.15827/0236-235X. 115.010-014
ИСПОЛЬЗОВАНИЕ ВЕРОЯТНОСТНОГО ВЫВОДА В СЛАБОФОРМАЛИЗОВАННЫХ БАЗАХ ЗНАНИЙ
(Работа выполнена в рамках темы НИР № 615869 «Методы проектирования ключевых систем информационной инфраструктуры»)
Е.А. Полещук, аспирант, eapoleschuk@porp.ijmo.ru; А.В. Платонов, аспирант, avplatonov@porp.ijmo.ru (Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики (Университет ИТМО), Кронверкский просп., 49, г. Санкт-Петербург, 197101, Россия)
В статье рассматривается процесс вероятностного вывода в слабоформализованных базах знаний. В качестве такой базы выбрана графическая модель представления знаний - семантическая сеть. Выбор обусловлен удобством представления автоматически извлеченных данных в виде графа со связями, а также удобством дальнейшего использования (чтения, изменения и поиска ошибок) данного графа. Также проводится сравнение широко используемого на данный момент продукционного подхода с предложенным, указываются основные недостатки продукционного подхода, которые необходимо учитывать при разработке подобных систем извлечения знаний.
Целью исследования является извлечение новых знаний из автоматически полученных данных. Для достижения этой цели на графических моделях обычно производится логический вывод. Поскольку модель, а также способ получения данных (в данном случае автоматически или полуавтоматически) накладывают ограничения на механизм вывода, алгоритм вынужден работать в условиях неопределенности. Отсюда следует, что стандартные механизмы логического вывода, предусмотренные для данной модели, становятся неактуальными.
В статье предлагается использовать вероятностный вывод и, следовательно, вероятностный язык логического программирования для его реализации. Также делается сравнение нескольких существующих языков вероятностного логического программирования, таких как PRISM, ICL и ProbLog. По результатам сравнения производится выбор языка вероятностного программирования для осуществления вывода. В качестве такого языка выбран язык ProbLog (в частности система ProbLog2), являющийся вероятностным расширением языка Prolog.
Ключевые слова: вероятностный вывод, семантические сети, слабоформализованные базы знаний, ProbLog, вероятностное логическое программирование, неопределенность данных, неопределенность отношений.
Одним из популярных подходов к представлению знаний является продукционный подход. Продукционная модель - это модель, в которой знания представлены с помощью правил «ЕСЛИ - ТО» [1]. Эта модель довольно просто интерпретируется человеком, так как правила в ней схожи с предложениями на естественном языке. Положительными сторонами данной модели являются также простота создания и интерпретации отдельных правил (ЕСЛИ X - человек, ТО Х смертен), изменения правил и пополнение базы правилами, довольно простой и прозрачный механизм логического вывода.
Однако, помимо сильных сторон, у данной модели имеются и слабые:
- не ясно, каким образом правила соотносятся между собой;
- довольно сложно составить целостную картину знаний по отдельным правилам;
- продукционная модель отличается от структуры знаний человека;
- в логическом выводе отсутствует гибкость.
Таким образом, задачи, решаемые с помощью
продукционной модели, должны быть небольшими (оперировать небольшим объемом знаний) и не требующими гибкого вывода [2].
Ответ на интересующий вопрос можно получить в БЗ, основанных на продукционной модели, с помощью логического вывода (прямого или обрат-
ного). Обратный логический вывод осуществляет поиск от целей к данным. При прямом выводе происходит поиск от данных к целям [3]. Прямой вывод используется тогда, когда по исходным данным требуется вывести все следствия (задача интерпретации или прогнозирования), тогда как обратный вывод применяется в случае необходимости проверки определенной гипотезы на соответствие фактам (задача диагностики). Подробные примеры приведены в [3].
Так как продукционная БЗ, как и программа на языке Problog, состоит из правил, соответственно, можно создавать программы, написанные на этом языке и осуществляющие логический вывод в этой БЗ. Такое соответствие на примере задачи поиска всех братьев, если известны имена людей и родственные отношения между ними, проиллюстрировано в таблице 1.
Продукционную модель можно представить в виде графа (рис. 1 и 2).
Однако следует отметить, что логический вывод плохо работает с данными в условиях неопределенности. Далее речь пойдет о вариантах решения этой проблемы.
Построение более или менее больших БЗ требует очень больших затрат ресурсов, так как это в основном выпоняется вручную. Поэтому логичным кажется использование методов машинного обучения для построения таких БЗ [4]. Эти методы,
соответственно, обладают определенной точностью, то есть мы не совсем уверены в правильности данных, полученных автоматически. Отсюда следует вероятностная природа полученных данных, то есть явление неопределенности.
Таблица 1 Соответствие программы на Prolog продукционной БЗ
Table 1
Prolog program matching to a rule-oriented knowledge base
Продукционная БЗ Программа на Prolog
Факты: Джейк - отец Тома Джейк - отец Джима Том - отец Тима Петр является дядей Тома Факты: parent(jake, tom) parent(jake, jim) parent(tom, tim) uncle(peter, tom)
Правила: 1. Человек1 и Человек2 братья, если существует Чело-векРодитель, который является родителем для Человека1 и Человека2, и при этом Человек! - это не Человек2. 2. Человек1 и Человек2 братья, если у Человека! есть ребенок, и Человек2 дядя этого ребенка Правила: 1. brother(Man1, Man2) :- parent(Parent, Manl), parent(Parent, Man2), Man1<>Man2. 2. brother(Man1, Man2) :- parent(Man1, Child), uncle(Man2, Child)
Запрос: Кто из людей являются братьями? Запрос: askMainQuestion(): -brother(X, Y)
Ответ: Jake Peter, Tom Jim, Jim Tom
Джейк -отец Джима
И ( Джим \ и Том - 1 братья J
/ Джейк- \ ^^ отец Тома
И ( / Петр - \ ^^^ \ 1 дядя Тома Петр \ и Джейк 1 - братья
Рис. 1. Представление базы правил БЗ для поиска братьев в виде графа И/ИЛИ, где дуга обозначает отношение И
Fig. 1. Representation of the knowledge base's rules base to search for the brothers in the form of a graph "AND / OR " where the arc means "AND " relation
Tom
дядя
Петр
родитель
Тим
Рис. 2. Граф отношений БЗ Fig. 2. Knowledge base relationships graph
Графические модели представления знаний
Поскольку самым удобным способом представления автоматически извлеченных данных является граф, сформируем структуру из автоматически извлеченных данных. В данной работе в качестве графической модели БЗ примем семантическую сеть [5].
Семантические сети (рис. 3) представляют собой информационную модель предметной области, графическое представление БЗ (ориентированный граф) [6]. Они способны представлять объекты (находятся в вершинах графа), их категории и отношения (являются дугами графа).
Животное
7 \
Рыба
Птица
Лосось
Канарейка
V \ is-a
\ может
Страус
бегать
Рис. 3. Пример семантической сети Fig. 3. Semantic network example
Вывод в графических моделях
Учитывая вероятностную природу данных, получим слабоформализованную БЗ (здесь в существовании связей между элементами БЗ нет уверенности, поскольку данные получены автоматически). Представим полученную БЗ в виде взвешенного графа. Причем веса в графе обозначают степень уверенности алгоритма в правильности полученных данных. Однако так как данные оказываются неточными, вывод по ним стоит строить соответствующий. Задачу вывода в таких системах решает вероятностный вывод.
is-a
Вероятностный вывод - более общий по отношению к логическому выводу, он позволяет оценивать степень уверенности в том, что полученный результат с нечетко определенными данными имеет место быть.
Пусть дана графическая модель X. Хотим получить ответ на вероятностный запрос вида p(y\z), где
Y - целевая переменная, а Z - входная переменная.
Y и Z являются неперсекающимися подмножествами X. Эта задача известна как задача вероятностного вывода.
Для объяснения механизма вероятностного вывода приведем пример программы на языке вероятностного программирования. На сегодня существует множество языков вероятностного логического программирования, например PRISM, ICL и ProbLog. В данной работе используется язык ProbLog (Probablistic Prolog), синтаксис которого схож с наиболее распространенным на данный момент языком Prolog [7].
В программе на языке ProbLog каждому факту присваивается какая-либо вероятность. Далее, как и в Prolog, определяются правила, по которым можно производить вывод. Результатом исполнения программы является оценка вероятности запрошенного факта. Стандартным примером программы на ProbLog является программа Smokers, которая показывает, каким образом отношения между людьми влияют на их привычку курить (табл. 2).
Таблица 2
Соответствие программы на языке ProbLog и семантической сети
Table 2
ProbLog program matching to a semantic network
Входным множеством переменных в данном примере является множество фактов:
Z = {0.8::stress(ann), 0.6::influences(ann,bob), 0.2::influences(bob,carl)},
а целевой переменной Y является переменная в запросе: Y = {smokes(carl)}.
Символ :- в правилах обозначает импликацию, направленную влево, то есть выражение «smokes(X) :- stress(X).» следует читать так: если человек испытывает стресс, то он курит. Каждая строка заканчивается точкой (как в предложении на естественном языке), запятые обозначают совместное применение выражений, то есть «И».
На данный момент задача вероятностного вывода становится наиболее актуальной, так как растет количество неточных данных и методы логического вывода работают уже не так хорошо. На эту тему существует много работ, в частности, в [8, 9] рассматривается вывод на основе конвертации исходной программы во взвешенную булеву формулу (пропозицонную), а также во взвешенную коньюн-ктивную нормальную форму. В работе [10] рассматривается вывод в графических моделях и, в частности, в семантических сетях, что наиболее близко к данной работе.
Сравнение языков вероятностного логического программирования
Сравним ProbLog с другими языками вероятностного программирования, а также с его предшественником - языком Prolog. Ранее было отмечено, что на данный момент существует несколько языков вероятностного вывода: PRISM [11], ICL [12], ProbLog и другие.
ProbLog поддерживает ограниченный набор функций языка Prolog для выражения моделей в вероятностной логике. Главное различие между языком ProbLog and Prolog в том, что Prolog является полноценным языком вероятностного программирования, тогда как ProbLog - язык логического представления. Это означает, что не все функции языка Prolog, связанные с частью программирования (управляющие конструкции и ввод/вывод), не поддерживаются в языке ProbLog.
В таблице 3 представлены основные характеристики каждого языка и основная, соответствующая этому языку система.
По сравнению с другими языками вероятностного логического программирования ProbLog более выразителен по отношению к правилам, доступным в программе. Это, в частности, относится к PRISM и ICL. Эти языки выдвигают требования об ацикличности правил [13]. В языке ProbLog программа может быть зациклена, например: smo-kes(X) :- smokes(Y), influences(Y,X). Такие типы цикличных правил часто используются для задач классификации и анализа социальных сетей [14]. Также PRISM требует правила с унифицированной (все одинаковые) головой, которые должны иметь взаимоисключающие тела (все разные), то есть одновременно может быть истинно только одно такое тело. ProbLog [15, 16] не имеет такого ограничения, таким образом, правила с унифицированной головой могут иметь пересекающиеся тела (где голова
Семантическая сеть Программа на ProbLog
Испытывает стресс Имеет р=0.8 влияние (influences^ влияние 1 (influences) 1 р=0.2 1 ( Carl ) Факты: 0.8::stress(ann). 0.6::influences(ann,bob). 0.2::influences(bob,carl). Правила: smokes(X) :- stress(X). smokes(X) :-influences(Y,X), smokes(Y). Запрос: query(smokes(carl))
Ответ: probability(smokes(carl)) = 0,096
правила - это часть правила до символа «:-», а тело - после). Например, тела двух правил сигнализации пересекаются: и кража, и землетрясение могут заставить сигнализацию сработать, однако они также могут произойти одновременно: сигнализация
0.1::burglary. person(mary).
0.2::earthquake. person(john).
0.7::hears_alarm(X) : - person(X).
alarm :- burglary.
alarm :- earthquake.
calls(X) :- alarm, hears_alarm(X).
Таблица 3
Обзор основных характеристик некоторых языков вероятностной логики и соответствующих им систем (реализации)
Table 3
Review of key features of some probabilistic logic languages and corresponding implementation systems
Язык ProbLog PRISM ICL
Система ProbLogl ProbLog2 PRISM AILog2
Цикличные + + - -
правила
Правила пере- + + - +
крытия (дублирования)
Индуктивные + + + +
определения
Доказатель- - + - +
ства на произ-
вольных
атомах
Множествен- - + - -
ные запросы
В заключение отметим, что в работе рассмотрен процесс вероятностного вывода в слабоформализо-ванных БЗ. В качестве базы выбрана семантическая сеть, поскольку в графической модели удобно представлять автоматически извлеченные данные. Также проведено сравнение продукционного подхода с представлением БЗ в виде семантической сети.
В данной статье предложено использовать вероятностный вывод в графической модели и, следовательно, вероятностный язык логического программирования для его реализации. Также срав-
ниваются несколько существующих языков вероятностного логического программирования, в результате для реализации механизма вероятностного вывода выбран язык ProbLog.
Литература
1. Katerinenko R.S., Bessmertny I.A. A method for acceleration of logical inference in the production knowledge model. Programming and Computer Software, 2011, vol. 37, no. 4, pp. 197-199.
2. Уэно Х., Исидзука М. Представление и использование знаний. М.: Мир, 1989. 220 с.
3. Довбуш Г.Ф. Логическое программирование. ПГУПС, 2011. URL: http://ivc.clan.Su/_fr/1/FLP_l9.pdf (дата обращения: 28.02.2016).
4. Petasis G., Karkaletsis V., Paliouras G., Krithara A., Zavi-tsanos E. Ontology population and enrichment: state of the art. Proc. 14th Intern. Conf., Philadelphia, Pennsylvania, USA, 2011, vol. 6050, pp. 134-166.
5. Bessmertny I.A. Knowledge Visualization Based on Semantic Networks. Programming and Computer Software, 2010, vol. 36, no. 4, pp. 197-204.
6. Roussopoulos N.D. A semantic network model of data bases. TR no. 104, DCS, Univ. of Toronto Publ., 1976.
7. Бессмертный И.А. Искусственный интеллект. СПб: Изд-во ИТМО, 2010. 132 с.
8. Fierens D., Van den Broeck G., Renkens J., et. al. Inference and learning in probabilistic logic programs using weighted boolean formulas. DCS, TPLP, 2015, vol. 15, no. 3, pp. 358-401.
9. Fierens D., Van den Broeck G., Thon I., Gutmann B., De Raedt L. Inference in probabilistic logic programs using weighted CNF's. Proc Conf. AUAI, 2011, pp. 211-220.
10. Сукач Е.И., Ратобыльская Д.В., Мережа В.Л. Реализация вывода в семантической сети с использованием вероятностно-алгебраического моделирования // Открытые семантические технологии проектирования интеллектуальных систем. OSTIS- 2011: тр. Междунар. науч.-технич. конф. Минск: Изд-во БГУИР, 2011. C. 241-246.
11. Sato T., Kameya Y. PRISM: a language for symbolic-statistical modeling. Intern. Joint Conf. on Artificial Intelligence, 1997, vol. 15, pp. 1330-1339.
12. Poole D. The independent choice logic and beyond. In probabilistic inductive logic programming - theory and applications. LNCS, Springer, Berlin/Heidelberg, 2008, vol. 4911, pp. 222-243.
13. Sato T. and Kameya Y. Parameter learning of logic programs for symbolic-statistical modeling. JAIR, 2001, vol. 15, pp. 391-454.
14. Russell S.J., Norvig P. Artificial intelligence. A modern approach. 2nd ed. Upper Saddle River, NJ, Prentice Hall Publ., 2003, 1110 p.
15. De Raedt L., Kimmig A., and Toivonen H. ProbLog: A probabilistic Prolog and its application in link discovery. IJCAI, 2007, pp. 2462-2467.
16. Fierens D., Broeck G.V., Renkens J., et. al. Inference and learning in probabilistic logic programs using weighted Boolean formulas. Theory and Practice of Logic Programming, 2014, vol. 15, no. 3, pp. 358-401.
DOI: 10.15827/0236-235X.115.010-014 Received 01.03.16
PROBABILISTIC INFERENCE IN WEAKLY FORMALIZED KNOWLEDGE BASES
(Acknowledgements. The work has been done as a part of research topic no. 615869 "Designing methods of information infrastructure key systems ")
lPoleschukE.A., Posgraduate Student, eapoleschuk@corp.ifmo.ru lPlatonovA. V., Posgraduate Studen, avplatonov@corp.ifmo.rut
1 The National Research University of Information Technologies, Mechanics and Optics, Kronverksky Ave. 49, St. Petersburg, 197101, Russian Federation
Abstract. The article introduces the process of probabilistic inference in weakly formalized knowledge bases. Semantic network is chosen as a graphical model of knowledge representation due to a convenient representation of automatically ex-
tracted data as a graph with links. The paper also contains a comparison of widely used production model approach with the proposed one. The authors describe main disadvantages of a production model approach that should be considered for developing such knowledge extraction systems.
The aim of the work is new knowledge extraction from an automatically built knowledge base. Usually logical inference is used to achieve this aim in graphical models. In our case a domain model as well as a process of knowledge building (in particular by automatic or semi-automatic methods) restrict logical inference mechanism, so this algorithm is forced to work in conditions of uncertainty. Thus, standard logical inference algorithms provided for such model become irrelevant.
The article proposes using probabilistic inference for the task and consequently using probabilistic inference programming language. The paper contains a comparison of several modern probabilistic logic programming languages like PRISM, ICL and ProbLog. The authors select a probabilistic logic programming language based on the results of this comparison. To implement probabilistic inference in a weakly formalized knowledge base we have selected ProbLog language (ProbLog2 in particular) that is a probability extension of Prolog.
Keywords probabilistic inference, semantic networks, weakly formalized knowledge bases, ProbLog, probabilistic logic programming, data uncertainty, relationships uncertainty.
References
1. Katerinenko R.S., Bessmertny I.A. A method for acceleration of logical inference in the production knowledge model. Programming and Computer Software. 2011, vol. 37, no. 4, pp. 197-199.
2. Ueno Kh., Ishizuka M. Knowledge Representation and Usage. 1987 (Russ.ed.: Moscow, Mir Publ., 1989).
3. Dovbush G.F. Logicheskoe programmirovanie [Logical Programming]. PGUPS Publ., 2011. Available at: http://ivc.clan.su/_fr71/FLP_l9.pdf (accessed February 28, 2016).
4. Petasis G., Karkaletsis V.,Paliouras G., Krithara A., Zavitsanos E. Ontology Population and Enrichment: State of the Art. J.H. Moore, T. Soule (Eds.). Proc. 14th int. conf. Philadelphia, Pennsylvania, USA, 2011, vol. 6050, pp. 134-166.
5. Bessmertny I.A., Knowledge Visualization Based on Semantic Networks. Programming and Computer Software. 2010, vol. 36, no. 4, pp. 197-204.
6. Roussopoulos N.D. A semantic network model of data bases. TR no. 104. DCS, Univ. of Toronto, 1976.
7. Bessmertny I.A.. Iskusstvenny intellekt [Artificial Intelligence]. St. Petersburg, SPbGU ITMO Publ., 2010, 132 p.
8. Fierens D., Van den Broeck G., Renkens J. Inference and Learning in Probabilistic Logic Programs using Weighted Boolean Formulas. DCS, TPLP, 2015, vol. 15, no. 3, pp. 358-401.
9. Fierens D., Broeck G.D.V., Thon I. Inference in Probabilistic Logic Programs using Weighted CNF's. Proc Conf. AUAI. 2011, pp. 211-220.
10. Sukach E.I., Ratobylskaya D.V., Merezha V.L. Semantic network inference implementation using probabilistic algebraic modeling. Otkrytye semanticheskie tekhnologii proektirovaniya intellektualnykh system. OSTIS-2011: Mezhdunar. nauch.-tekhn. konf. [Proc. Int. Science and Technical Conf. on Open Semantic Technologies for Intelligent Systems (0STIS-2011)]. Minsk, 2011, BSUIR Publ., pp. 241-246 (in Russ.).
11. Sato T., Kameya Y. PRISM: a language for symbolic-statistical modeling. Intern. Joint Conf. on Artificial Intelligence, 1997, vol. 15, pp. 1330-1339.
12. Poole D. The independent choice logic and beyond. Probabilistic Inductive Logic Programming - Theory and Applications. De Raedt L., Frasconi P., Kersting K., Muggleton S. (Eds.). LNCS, Springer, Berlin/Heidelberg Publ., 2008, vol. 4911, 222-243.
13. Sato T., Kameya Y. Parameter learning of logic programs for symbolic-statistical modeling. JAIR. 2001, vol. 15, pp. 391-454.
14. Russell S.J., Norvig P. Artificial intelligence: a modern approach. 2nd ed., Upper Saddle River, NJ, Prentice Hall Publ., 2003.
15. De Raedt L., Kimmig A., Toivonen H. ProbLog: A probabilistic Prolog and its application in link discovery. IJCAI. 2007, pp. 2462-2467.
16. Fierens D., Broeck G.V., Renkens J. Inference and learning in probabilistic logic programs using weighted Boolean formulas. Theory and Practice of Logic Programming. 2014, vol. 15, no. 3, pp. 358-401.
Примеры библиографического описания статьи
1. Полещук Е.А., Платонов А.В. Использование вероятностного вывода в слабофор-мализованных базах знаний // Программные продукты и системы. 2016. Т. 29. № 3. С. 10-14.
2. Полещук Е.А., Платонов А.В. Использование вероятностного вывода в слабофор-мализованных базах знаний // Программные продукты и системы. 2016; DOI: 10.15827/0236-235X. 115.010-014.
3. Poleschuk E.A., Platonov A.V. Probabilistic inference in weakly formalized knowledge bases. Programmnye produkty i sistemy [Software & Systems]. 2016, vol. 29, no. 3, pp. 10-14 (in Russ.); DOI: 10.15827/0236-235X.115.010-014.