Opracowanie - Instytut Łączności

Transkrypt

Opracowanie - Instytut Łączności
Zakład Zaawansowanych Technik Informacyjnych
(Z-6)
Data mining w wielkich złożonych systemach
Praca statutowa nr 06300018
Warszawa, grudzień 2008
Data mining w wielkich złożonych systemach
Praca statutowa nr 06300018
Słowa kluczowe: data-mining, system złożony
Kierownik pracy: dr inż. Szymon Jaroszewicz
Wykonawcy pracy:
dr inż. Szymon Jaroszewicz
dr inż. Janusz Granat
mgr. inż. Piotr Rzepakowski
Kierownik zakładu: dr inż. Janusz Granat
c Copyright by Instytut Łączności, Warszawa 2008
Spis treści
1 Publikacje powstałe w ramach pracy
4
2 Wstęp
4
3 Wprowadzenie
3.1 Graficzne Modele Probabilistyczne . . . . . . . . . . . . . . . . . . . . .
3.2 Logika pierwszego rzędu . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
6
8
4 Relacyjne modele graficzne
4.1 Logiczne sieci Markowa . . . . . . .
4.2 Przykładowa logiczna sieć Markowa
4.2.1 Problem implikacji . . . . .
4.3 Relacyjne sieci bayesowskie . . . . .
.
.
.
.
8
8
10
12
13
.
.
.
.
.
13
13
13
14
14
14
6 Zastosowania logicznych sieci Markowa do analizy sieci społecznych
6.1 Generowanie danych testowych . . . . . . . . . . . . . . . . . . . . . . .
6.2 Analiza sieci społecznych pod kątem marketingu wirusowego . . . . . . .
6.3 Generowanie zależności ‘wirusowych’ . . . . . . . . . . . . . . . . . . . .
6.4 Ocena jakości przewidywań . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.1 Analiza oparta wyłącznie o listę kontaktów . . . . . . . . . . . . .
6.4.2 Analiza uwzględniająca łączną długość rozmowy . . . . . . . . . .
6.4.3 Analiza na podstawie pełnej listy rozmów . . . . . . . . . . . . .
6.5 Wydajność . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
16
19
19
19
21
22
22
23
7 Znajdowanie interesujących zależności w danych relacyjnych
23
8 Analiza preferencji klientów oparta o Conjoint Analysis
26
9 Inne badania wykonane w ramach pracy
27
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5 Wnioskowanie i uczenie w logicznych sieciach Markowa
5.1 Wnioskowanie . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.1 Metody oparte o sumowanie i przesyłanie wiadomości
5.1.2 Próbkowanie Gibbsa . . . . . . . . . . . . . . . . . .
5.1.3 Lifted inference . . . . . . . . . . . . . . . . . . . . .
5.2 Uczenie wag . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
Publikacje powstałe w ramach pracy
1. S. Jaroszewicz, T. Scheffer, and D.A. Simovici. Scalable pattern mining with bayesian networks as background knowledge. Data Mining and Knowledge Discovery,
18(1), str. 56–100, 2009. 24 punkty MNiSW (opracowano ostateczną wersję
artykułu)
2. S. Jaroszewicz. Interactive HMM construction based on interesting sequences. In
Proc. of Local Patterns to Global Models (LeGo’08) Workshop at the 12th European Conference on Principles and Practice of Knowledge Discovery in Databases
(PKDD’08), pages 82–91, Antwerp, Belgium, 2008.
3. J. Granat and A. P. Wierzbicki. Objective classification of empirical probability
distributions and the issue of event detection. Journal of Telecommunications and
Information Technology (JTIT), (3):24–27, 2008. 6 punktów MNiSW
4. P. Rzepakowski. Supporting telecommunication product sales by conjoint analysis. Journal of Telecommunications and Information Technology (JTIT), (3):28–34,
2008. 6 punktów MNiSW
5. P. Rzepakowski. Incorporating customer preference information into the forecasting
of service sales. paraca przyjęta do Journal of Telecommunications and Information
Technology (JTIT), 2008. 6 punktów MNiSW
6. S. Jaroszewicz. Discovering interesting patterns in numerical data with background
knowledge. In Y.-S. Koh and N. Rountree, editors, Rare Association Rule Mining
and Knowledge Discovery: Technologies for Infrequent and Critical Event Detection.
IGI Global, 2009. praca w druku. 7 punktów MNiSW
7. M. Korzeń, P. Klęsk, S. Jaroszewicz, A. Ciechanowicz, M. Kaczmarczyk, and K. Widecka. Mining interesting rules and patterns for salt sensitivity of blood pressure.
In 15th International Multiconference on Advanced Computer Systems (ACS’08),
Międzyzdroje, October 2008. praca w druku.
2
Wstęp
W ostatnich latach daje się zauważyć ogromny wzrost powszechności i znaczenia wielkich,
bardzo złożonych sieci. Jako przykłady mogą tu posłużyć sieci telekomunikacyjne; sieci
społeczne takie jak komunikujący się ze sobą abonenci operatora telefonii komórkowej
czy serwisy takie jak Facebook; sieć powiązań między stronami WWW czy cytowania
między artykułami naukowymi.
Z uwagi na ogromną wielkość i złożoność takich sieci ich analiza jest zadaniem wysoce
nietrywialnym. Większość klasycznych metod analizy probabilistycznej nie jest stanie
poradzić sobie z taką ilością i złożonością danych. Szczególnym problemem jest złożona struktura powiązań między elementami systemu. Dodatkowym utrudnieniem jest
tzw. bezskalowa struktura sieci. W uproszczeniu oznacza to, że wiele związanych z systemem wielkości opisanych jest przez rozkłady prawdopodobieństwa o bardzo dużej, nawet
nieskończonej wariancji, co utrudnia stosowanie klasycznych metod statystycznych.
4
Z drugiej strony, z uwagi na coraz większą powszechność i znaczenie tego typu złożonych systemów ich analiza staje się coraz bardziej istotna dla funkcjonowania przedsiębiorstw działających w branży telekomunikacyjnej i informatycznej.
W niniejszej pracy podjęta została próba analizy i opracowania metod badania i
modelowania wielkich, złożonych systemów. Skoncentrowano się przede wszystkim na
niedawno opracowanych relacyjnych modelach graficznych [10, 25]. Metoda ta umożliwia
zadanie modelu probabilistycznego w formie zbioru formuł logiki pierwszego rzędu lub algebry relacyjnej, wraz z odpowiadającymi im prawdopodobieństwami. Na ich podstawie
tworzony jest model probabilistyczny dla konkretnego systemu. Występowanie zmiennych w formułach logicznych opisujących model umożliwia automatyczne uwzględnienie
wszystkich występujących w systemie obiektów. W pracy opisane zostały typy relacyjnych modeli graficznych, metody wnioskowania w nich, a także metody automatycznego
znajdowania wag.
Przeanalizowano aspekty teoretyczne logicznych sieci Markowa związane ze stosowaniem implikacji w formułach modelu. Stworzona została również własna implementacja
logicznych sieci Markowa pozwalającą na analizę ich właściwości. Implementacja ta umożliwia np. znajdowanie prawdopodobieństw dowolnych formuł logicznych (nie tylko predykatów), obliczanie dokładnych, a nie tylko przybliżonych wartości prawdopodobieństw, a
także stosowanie prawdopodobieństw o wartościach 0 i 1. Publicznie dostępne implementacje nie posiadają tych cech, co znacznie utrudnia zastosowanie ich analizy właściwości
logicznych sieci Markowa.
Przedstawiono zastosowanie logicznych sieci Markowa do analizy sieci społecznych
na przykładzie marketingu wirusowego w sieci telefonii komórkowej. Metoda okazała się
skuteczna w prognozowaniu, tego, którzy klienci skorzystają z danej usługi pod wpływem
klientów, z którymi się kontaktują.
Opracowana została metoda znajdowania interesujących zależności w logicznych sieciach Markowa. Metoda ta jest oprarta o znajdowanie interesujących formuł logicznych.
Formuła jest interesująca, jeżeli prawdopodobieństwo tego, że ta formuła jest prawdziwa,
obliczone na podstawie modelu, odbiega znacząco od analogicznego prawdopodobieństwa
znalezionego w danych opisujących rzeczywisty system. Na podstawie interesujących
formuł użytkownik uaktualnia model. W uaktualnionym modelu interesujące stają się
kolejne formuły i proces się powtarza.
Opracowany został również system wykrywania zdarzeń w wielkich, złożonych systemach, oparty o porównywanie histogramów mierzonych cech systemu. Porównywanie
odbywa się na podstawie częściowego porządku zdefiniowanego na histogramach. Testy
na danych pochodzących z urządzeń sieciowych potwierdziły skuteczność metody.
W pracy przedstawiono także zastosowania metody conjoint analysis do analiz marketingowych rynku telefonii komórkowej. Przedstawiona została metoda prognozowania
zakupów dokonywanych przez klientów na podstawie ich preferencji.
W ramach pracy powstał też szereg innych publikacji z dziedziny data mining.
3
Wprowadzenie
Aby umożliwić opis relacyjnych modeli graficznych konieczne jest krótkie wprowadzenie
na temat modeli graficznych, a także wprowadzenie podstawowych pojęć logiki pierwszego
5
rzędu, czemu służyć będą następujące dwa podrozdziały.
3.1
Graficzne Modele Probabilistyczne
Graficzne modele probabilistyczne umożliwiają opis łącznego rozkładu prawdopodobieństwa dużej liczby zmiennych losowych w oparciu o grafową reprezentację zależności statystycznych między nimi.
Graficzny model probabilistyczny ma dwa podstawowe składniki:
1. graf (ew. hipergraf), którego wierzchołkami są zmienne losowe, a krawędzie odpowiadają bezpośrednim zależnościom statystycznym między zmiennymi,
2. lokalne rozkłady prawdopodobieństwa związane z krawędziami i lub wierzchołkami
grafu. Na ich podstawie zdefiniowany jest łączny rozkład zmiennych losowych będących wierzchołkami grafu. Rozkład ten jest zazwyczaj iloczynem rozkładów lokalnych.
Wnioskowanie z modeli graficznych polega na wyznaczaniu rozkładów brzegowych i
warunkowych z rozkładu łącznego modelu. Problem ten jest w większości przypadków
NP-zupełny, istnieją jednak wydajne algorytmy dokładne i przybliżone działające nawet
dla bardzo dużych sieci.
Dwa najpowszechniej stosowane typy modeli graficznych to sieci bayesowskie oparte
o grafy skierowane, i sieci Markowa oprarte o grafy nieskierowane (lub hipergrafy).
Sieci bayesowskie są modelami graficznymi opartymi o skierowane grafy acykliczne.
Wierzchołki grafu odpowiadają modelowanym zmiennym losowym, a krawędzie grafu
bezpośrednim zależnościom przyczynowym między nimi [23, 18].
Dodatkowo każdy wierzchołek oznaczony jest rozkładem prawdopodobieństwa zmiennej losowej znajdującej się w wierzchołku warunkowanym na rodzicach tej zmiennej w
grafie. Łączny rozkład prawdopodobieństwa sieci bayesowskiej jest iloczynem rozkładów
warunkowych każdej zmiennej.
Przykładowa sieć bayesowska przedstawiona jest na rys 1. Łączny rozkład prawdopodobieństwa tej sieci wyraża się wzorem
P (W, T, A, S) = P (W )P (T )P (A|W, T )P (S|A).
Zaletą sieci bayesowskich jest możliwość reprezentowania zależności przyczynowych, a
także łatwość szacowania poszczególnych rozkładów warunkowych. Istotny jest również
brak konieczności obliczania wartości stałej normalizującej (patrz opis sieci Markowa
poniżej).
Wadą sieci bayesowskich jest trudność w modelowaniu zależności, których kierunek
przyczynowy nie jest znany lub jest trudny do określenia, jak np. gdy dwie zmienne losowe
wzajemnie na siebie wpływają.
Sieci Markowa. Modele te są oparte o grafy nieskierowane [23, 19]. Wierzchołki grafu
odpowiadają jak poprzednio zmiennym losowym, natomiast z klikami grafu związane są
tzw. potencjały, które określają siłę lokalnych zależności między należącymi do danej
6
Rysunek 1: Przykładowa sieć bayesowska
kliki zmiennymi. Nieco bardziej ogólna wersja opiera się na hipergrafach, a potencjały
przypisane są hiperkrawędziom.
Łączny rozkład sieci Markowa wyraża się wzorem
n
1Y
P (X = x) =
φi (x[Ki ]),
Z i=1
gdzie Ki oznacza i-tą klikę grafu, φi potencjał związany z i-tą kliką, a x[Ki ] oznacza
projekcję (w sensie bazodanowym) wektora x na zbiór Ki . Czynnik normalizujący Z
(ang. partition function) zapewnia sumowanie się prawdopodobieństw do jedności i wyraża się wzorem
n
XY
Z=
φi (x[Ki ]).
x
i=1
Rozkład łączny sieci Markowa reprezentuje się też często jako model logarytmicznoliniowy
!
n
X
1
P (X = x) = exp
wij 1[x[Ki ] = j] ,
(1)
Z
i=1
gdzie wij są wagami, a 1[x[Ki ] = j] przyjmuje wartość 1 jeżeli x[Ki ] = j i zero w przeciwnym wypadku.
Wadą sieci Markowa jest trudność w interpretacji potencjałów i wag, które nie odpowiadają już bezpośrednio prawdopodobieństwom brzegowym i warunkowym. Konieczne
jest również obliczenie stałej normalizującej Z, co jest trudne dla większych sieci. Nie
nadają się one też do reprezentacji zależności przyczynowych.
Zaletami sieci Markowa jest natomiast możliwość modelowania zależności bez uwzględniania ich kierunku. Przykładem mogą tu być np. ich zastosowania w analizie obrazu,
gdzie krawędzie grafu łączą sąsiadujące ze sobą piksele. Problem ten trudno byłoby
modelować siecią Bayesowską z uwagi na brak określonego kierunku zależności.
7
3.2
Logika pierwszego rzędu
W tym podrozdziale przedstawione zostaną podstawowe informacje na temat składni
logiki pierwszego rzędu w stopniu koniecznym do zrozumienia logicznych sieci Markowa.
Definicję formuł logicznych zaczniemy od definicji zmiennych i stałych. Zmienne oznaczane będą wielkimi literami X, Y, Z, . . ., a stałe ciągami małych liter, np. a, b, ala, kot
itp.
Term zdefiniowany jest jako zmienna lub stała. Zauważmy, że jest to uproszczenie
względem klasycznej logiki pierwszego rzędu, gdzie termy mogą również być funkcjami
innych termów. Tak uproszczona wersja logiki pierwszego rzędu jest wystarczająca dla
przedstawianych zastosowań, a jednocześnie pozwala na uproszczenie opisu. Logiczne
sieci Markowa można z powodzeniem zdefiniować również w przypadku użycia symboli
funkcyjnych.
Term nazywamy ustalonym, jeżeli nie występują w nim zmienne.
Predykaty oznaczamy słowami rozpoczynającymi się wielką literą np. Chory, Znajomy
itp.
Formuły logiki pierwszego rzędu są zdefiniowane rekurencyjnie:
• Jeżeli t1 , . . . , tn są termami, a P n-argumentowym predykatem, to P (t1 , . . . , tn ) jest
formułą. Jest to tzw. formuła atomowa
• Jeżeli F i G są formułami, to formułami są również ¬F , F ∧ G, F ∨ G, F → G,
F ↔G
• Jeżeli F jest formułą, to formułami są również ∀XF , ∃XF .
Jeżeli w formule nie występują zmienne nazywamy ją formułą ustaloną.
Niekiedy przydatne będzie też pojęcie literału, czyli zanegowanej lub niezanegowanej
formuły atomowej.
4
Relacyjne modele graficzne
W niniejszej części opisane zostaną relacyjne modele graficzne, które w kolejnych rozdziałach zostaną zastosowane do analizy systemów złożonych.
Mówiąc ogólnie, relacyjne modele graficzne są próbą uogólnienia modeli graficznych
tak, aby mogły w nich występować zmienne, za które można podstawić konkretne obiekty
opisywanego świata. Umożliwia to dynamiczne tworzenie modeli graficznych opisujących
dany system na podstawie występujących w tym systemie obiektów. Można je też uznać
za próbę uogólnienia logiki pierwszego rzędu na przypadek probabilistyczny.
W pracy skupimy się przede wszystkim na logicznych sieciach Markowa opracowanych
przez Pedro Domingosa i innych [25, 8, 7]. Krótko opisane zostaną również inne podejścia,
takie jak relacyjne sieci Bayesa.
4.1
Logiczne sieci Markowa
Logiczne sieci Markowa są próbą uogólnienia logiki pierwszego rzędu na przypadek probabilistyczny.
8
Definicja 1 Logiczną siecią markowa [25] nazywamy zbiór n par (Fi , wi ) gdzie Fi jest
formułą logiki pierwszego rzędu, a wi przypisaną jej wagą.
Wagi wi determinują prawdopodobieństwa, że odpowiadające im formuły są prawdziwe i odpowiadają wagom zwykłych sieci Markowa (patrz równanie 1). Ogólnie, zerowa waga odpowiada brakowi zależności, a np. waga dodatnia oznacza, że formuła jest
prawdziwa częściej niż w przypadku niezależności statystycznej. Konkretne wartości wag
nie mają niestety łatwej, intuicyjnej interpretacji.
Istnieje też analogiczne sformułowanie, gdzie formułom przypisane są nie wagi, lecz
prawdopodobieństwa tego, że dana formuła jest prawdziwa.
Definicja logicznych sieci Markowa jest więc dość prosta. Kluczowym zagadnieniem
jest oczywiście zdefiniowanie jej semantyki dla konkretnego przypadku, tzn. określenie
związanego z nią łącznego rozkładu prawdopodobieństwa.
Niech C = {c1 , c2 , . . . , cm } będzie zbiorem stałych w danej interpretacji logiki pierwszego rzędu. Łączny rozkład logicznej sieci Markowa M definiuje się przez stworzenie
klasycznej sieci Markowa MC na podstawie M i zdefiniowanie rozkładu łącznego sieci
logicznej M jako łącznego rozkładu sieci MC .
Wprowadźmy następujące oznaczenia: niech F będzie zbiorem formuł logicznych,
a C = {c1 , c2 , . . . , cm } zbiorem stałych. Przez FC oznaczmy rodzinę wszytkich zbiorów formuł ustalonych, które można otrzymać przez jednoczesne podstawienie stałych
c1 , c2 , . . . , cm za zmienne w formułachSF. Niech Pi oznacza zbiór wszystkich predykatów
występujących w formule Fi , a P = ni=1 Pi .
Definicja 2 Siecią Markowa indukowaną przez logiczną sieć markowa M i zbiór stałych
C = {c1 , c2 , . . . , cm } nazywamy sieć Markowa MC której:
1. Zbiorem wierzchołków jest zbiór {{P }C : P ∈ P}, to znaczy zbiór wszystkich możliwych ustaleń predykatów przy pomocy stałych z C.
S
2. Zbiorem hiperkrawędzi jest rodzina zbiorów ni=1 (Pi )C czyli wszystkie możliwe jednoczesne ustalenia predykatów występujących w formułach Fi
3. Hiperkrawędzi K powstałej z formuły Fi odpowiada potencjał φK taki, że φK (x[K]) =
ewi jeżeli Fi jest prawdziwa gdy wartości ustalonych predykatów odpowiadają x[K],
i 1 w przeciwnym wypadku.
Łączny rozkład prawdopodobieństwa logicznej sieci Markowa M dla zbioru stałych C jest
zdefiniowany jako łączny rozkład sieci MC .
Niech #i (x) oznacza liczbę ustaleń formuły Fi powstałych przez zastąpienie predykatów występujących w tej formule przez odpowiadające im wartości z wektora x, takich
że Fi jest prawdziwa. Łączny rozkład prawdopodobieństwa logicznej sieci Markowa M
można wyrazić jako
1
PM (x) = exp(wi #i (x)),
Z
gdzie Z jest stałą normalizującą.
9
Formuła
waga
Znajomy(X, Y )
-1
Chory(X)
-1
Znajomy(X, Y ) ↔ Znajomy(Y, X)
∞
Znajomy(X, Y ) ∧ Chory(X) → Chory(Y ) 0.5
Tablica 1: Przykładowa logiczna sieć Markowa
4.2
Przykładowa logiczna sieć Markowa
W celu lepszego zilustrowania przedstawionych pojęć w niniejszym podrozdziale przedstawiony zostanie bardzo prosty przykład logicznej sieci Markowa.
Sieć opisuje prosty model rozchodzenia się choroby zakaźnej. Istnieje pewien zbiór
osób, które przyjaźnią (spotykają) się ze sobą. Jeżeli któraś z nich jest chora, może
zakazić swoich przyjaciół.
Formuły i ich wagi są przedstawione w Tabeli 1. Przykład jest zabawny, ale relacyjne
modele graficzne były już stosowane do rzeczywistych problemów epidemiologicznych [10].
Formuły Znajomy i Chory umożliwiają określenie prawdopodobieństw tego, że dowolna para osób się przyjaźni i tego, że dowolnie wybrana osoba jest chora. Przypisane
im ujemne wagi oznaczają, że oba te zdarzenia dla losowo wybranych osób uznajemy za
mało prawdopodobne.
Formuła Znajomy(X, Y ) ↔ Znajomy(Y, X) określa symetryczność relacji Znajomy.
Formuła ta ma charakter logiczny, przypisana jej nieskończona waga powoduje, że jest
ona prawdziwa z prawdopodobieństwem 1. W praktyce realizuje się to przez zastąpnienie
nieskończonej wagi dużą wartością lub przez bezpośrednie określanie potencjałów φ, a nie
wag. To drugie podejście zostało użyte w implementacji autora, co pozwoliło na łatwe
operowanie prawdopodobieństwami o wartościach 0 i 1. Niestety wiele metod wnioskowania, np. próbkowanie Gibbsa, nie działa w obecności prawdopodobieństw równych zeru
lub jedności.
Ostatnia formuła Znajomy(X, Y ) ∧ Chory(X) → Chory(Y ) dotyczy faktu, że chora
osoba może zarazić swoich znajomych. Pewne uwagi dotyczące użycia implikacji logicznej
przedstawione zostaną w kolejnych podpunktach.
Załóżmy teraz, że zbiór stałych obejmuje dwie osoby a i b. Sieć Markowa indukowana
przez logiczną sieć Markowa jest przedstawiona na Rys. 2. Linia ciągła oznacza hiperkrawędź odpowiadającą formule Znajomy(X, Y ) ↔ Znajomy(Y, X), a przerywana hiperkrawędzie odpowiadające formule Znajomy(X, Y ) ∧ Chory(X) → Chory(Y ). Łatwo
zauważyć, że dla większej liczby osób sieć indukowana staje się bardzo złożona, podczas
gdy logiczna sieć Markowa pozostaje prosta i zrozumiała.
Przedstawione zostaną teraz przykłady wnioskowania z przedstawionej powyżej przykładowej logicznej sieci Markowa. Zastosowano w tym przypadku zbiór 10 stałych (osób).
Ponieważ sieć jest symetryczna względem permutacji stałych, w przykładach poniżej
prawdopodobieństwa będą zawierać zmienne, za które można podstawić dowolne stałe
(osoby), a prawdopodobieństwa nie zmienią się.
Prawdopodobieństwa najprostszych zdarzeń wynoszą:
P (Chory(X)) = 0.2556
P (Znajomy(X, Y )) = 0.1030.
10
Rysunek 2: Sieć Markowa indukowana przez przykładową logiczną sieć Markowa
Zauważmy, że pomimo iż odpowiadające im formuły mają jednakowe wagi, prawdopodobieństwa te różnią się. Jest tak dlatego, że predykat znajomy występuje w sieci znacznie
częściej: dwa razy dla każdej pary stałych. W praktyce wagi uczone są na podstawie
danych więc problem interpretacji nie występuje. Istnieje też możliwość określania nie
wag poszczególnych formuł, lecz ich prawdopodobieństw.
Przeanalizujmy teraz jak sieć modeluje związki między osobami. Prawdopodobieństwo tego, że dana osoba jest chora, pod warunkiem, że przyjaźni się z chorą osobą wynosi
P (Chory(Y )|Znajomy(X, Y ) ∧ Chory(X)) = 0.3674,
jest więc znacznie wyższe niż aprioryczne prawdopodobieństwo choroby. Taką samą wartość ma prawdopodobieństwo
P (Chory(Y )|Znajomy(Y, X) ∧ Chory(X)) = 0.3674.
Zauważmy, że dla obliczenia tego prawdopodobieństwa konieczne jest wzięcie pod uwagę
więcej niż jednej formuły, gdyż kolejność argumentów w predykacie Znajomy jest odwrócona i trzeba dodatkowo wziąć pod uwagę regułę definiującą jej symetrię. Fakt, że oba
prawdopodobieństwa są identyczne, świadczy o tym, że ścisły, logiczny charakter reguły
deklarującej symetrię został poprawnie uwzględniony.
Jeżeli natomiast dana osoba ma znajomego, który nie jest chory, prawdopodobieństwo
tego, że ta osoba jest chora spada:
P (Chory(Y )|Znajomy(X, Y ) ∧ ¬Chory(X)) = 0.1755.
Jest to logiczne, gdyż jeżeli Y byłby chory, mógł również zakazić X. Ponieważ jednak X
jest zdrowy, prawdopodobieństwo tego, że również Y jest zdrowy, rośnie.
Spójrzmy jeszcze na następujące prawdopodobieństwa obliczone z sieci
P (Chory(Z)|Znajomy(Z, X) ∧ Chory(X) ∧ Znajomy(Z, Y ) ∧ Chory(Y )) = 0.4600,
P (Chory(Z)|Znajomy(Z, X) ∧ Chory(X) ∧ Znajomy(Z, Y ) ∧ ¬Chory(Y )) = 0.2646,
P (Chory(Z)|Znajomy(Z, X) ∧ Chory(X) ∧ Znajomy(Z, Y )∧
∧¬Chory(Y ) ∧ Znajomy(Z, V ) ∧ ¬Chory(V )) = 0.1824.
11
Widać wyraźnie, iż prawdpodobieństwo tego, że dana osoba jest chora, zależy w intuicyjny
sposób od stanu zdrowia jej znajomych. Osoba mająca dwóch chorych przyjaciół jest
chora z prawdopodobieństwem prawie dwa razy wyższym niż w przypadku osoby losowo
wybranej i wyższym niż w przypadku osoby, której tylko jeden znajomy jest na pewno
chory.
Osoba mająca znajomego chorego i zdrowego jest chora praktycznie z takim samym
prawdopodobieństwem co osoba, o której znajomych nie ma żadnych dodatkowych informacji — wiedza o chorym i zdrowym znajomym znosi się. Podobnie prawdopodobieństwo
choroby w przypadku osoby mającej dwóch zdrowych i jednego chorego znajomego jest
niższe niż w poprzednim wypadku.
Prawidłowo zachowują się również prawdopodobieństwa łączne. Na przykład prawdopodobieństwo tego, że dwie losowo wybrane osoby są chore wynosi
P (Chory(X) ∧ Chory(Y )) = 0.0690,
Jeżeli jednak wiemy, że osoby te się przyjaźnią prawdopodobieństwo to staje się ponad
dwa razy wyższe:
P (Chory(X) ∧ Chory(Y )|Znajomy(X, Y )) = 0.1374.
Przedstawione powyżej przykłady pokazują, że logiczne sieci Markowa poprawnie modelują prawdopodobieństwa w systemach zawierających interakcje między elementami.
Zauważmy, że tradycyjne metody klasyfikacji wymagają stałej listy atrybutów wejściowych, nie można ich więc zastosować w powyższym wypadku.
4.2.1
Problem implikacji
W powyższym przykładzie jedna z formuł zawierała logiczną implikację. Niestety jej interpretacja w przypadku probabilistycznym jest często odmienna od oczekiwań użytkownika [1]. Mianowicie, oczekiwalibyśmy, że duża waga formuły A → B jest równoważna
wysokiemu prawdopodobieństwu warunkowemu P (B|A). Formuła A → B jest jednak
interpretowana tak samo jak formuła ¬A ∨ B, która może mieć wysokie prawdopodobieństwo niezależnie od P (B|A).
Aby się o tym przekonać, weźmy następujący rozkład łączny zdarzeń A i B:
zdarzenie
¬A ∧ ¬B
¬A ∧ B
A ∧ ¬B
A∧B
prawdop.
0.9
0
0.09
0.01
= 0.1.
Mamy P (¬A ∨ B) = 0.91, ale P (B|A) = 0.01
0.1
Z powyższego przykładu widać, że problem ten nie zawsze jest istotny, jednak aby
uniknąć go w praktycznych sytuacjach, w pracy niniejszej zastosowano odmienne podejście. Zamiast formuły A → B stosuje się dwie formuły A ∧ B i A. Ponieważ wagi
uczone są na podstawie danych, prawdopodobieństwa zdarzeń A ∧ B i A będą poprawne,
określając jednocześnie wartość prawdopodobieństwa warunkowego P (B|A).
Według wiedzy autora problem ten nie był do tej pory poruszany w literaturze dotyczącej relacyjnych modeli graficznych.
12
4.3
Relacyjne sieci bayesowskie
Relacyjne sieci Bayesowskie [10, 13] są skierowanym odpowiednikiem logicznych sieci Markowa. Zamiast formuł logicznych opierają się one o zapytania bazodanowe. Zadany jest
graf skierowany, którego wierzchołki oznaczone są zmiennymi, a krawędzie zapytaniami
bazodanowymi.
Na podstawie relacyjnej sieci bayesowskiej oraz bazy danych tworzona jest standardowa sieć bayesowska. Za każdą zmienną występującą w wierzchołku podstawiana jest
każda stała z bazy danych, tworząc zbiór wierzchołków sieci. Krawędzie są tworzone
dla wszystkich par wierzchołków spełniających zapytanie bazodanowe związane z daną
krawędzią. Łączny rozkład relacyjnej sieci bayesowskiej zdefiniowany jest jako łączny
rozkład tak zbudowanej sieci.
Sposób definiowania semantyki jest więc podobny jak w przypadku logicznych sieci
Markowa.
Można udowodnić [13], że jeżeli relacyjna sieć bayesowska nie ma cykli, to indukowana
przez nią i dowolną bazę danych sieć bayesowska również nie ma cykli, a więc rozkład
łączny jest zawsze dobrze zdefiniowany.
5
Wnioskowanie i uczenie w logicznych sieciach Markowa
Z uwagi na bardzo dużą liczbę obiektów sieci Markowa indukowane przez logiczne sieci
Markowa mogą mieć tysiące atrybutów. Stanowi to bardzo poważne wyzwanie, ponieważ
wnioskowanie w modelach graficznych jest problemem NP-zupełnym.
Poniżej opisane zostaną metody wnioskowania w logicznych sieciach Markowa, a także
metody uczenia wag sieci na postawie danych treningowych.
5.1
Wnioskowanie
Większość metod wnioskowania opiera się na konstrukcji indukowanej sieci Markowa i
dokonaniu wnioskowania w sieci indukowanej. Metody te są więc identyczne z metodami
wnioskowania dla zwykłych sieci Markowa. Typowe podejścia zostaną krótko scharakteryzowane poniżej.
5.1.1
Metody oparte o sumowanie i przesyłanie wiadomości
Ponieważ rozkład łączny sieci Markowa jest iloczynem potencjałów, wnioskowania można
dokonać przez sumowanie po wszystkich zmiennych, za wyjątkiem tych, których rozkład
chcemy uzyskać. Niestety, koszt obliczenia takiej sumy rośnie wykładniczo. W celu
przyspieszenia obliczeń stosuje się prawo rozdzielności mnożenia względem dodawania w
celu maksymalnego uproszczenia sumy [6].
Na podobnej zasadzie działają metody oparte o przesyłanie wiadomości. Każdy potencjał i każda zmienna w sieci przesyła do swoich sąsiadów wiadomość. Wiadomości
są następnie mnożone przez lokalne potencjały i przesyłane dalej. Można udowodnić,
że jeżeli sieć ma strukturę drzewa, to procedura ta prowadzi do obliczenia poprawnych
prawdopodobieństw brzegowych wszystkich zmiennych [23].
13
Jeżeli sieć nie ma struktury drzewa, metoda przysyłania wiadomości nie gwarantuje
osiągnięcia poprawnego wyniku, ani nawet zbieżności, jednak w praktyce zazwyczaj działa
skutecznie. W związku z tym jest często stosowana pomimo braku gwarancji teoretycznych.
5.1.2
Próbkowanie Gibbsa
Ważną klasą metod wnioskowania w sieciach Markowa są metody przybliżone, oparte o
próbkowanie. Niestety generowanie próbek z rozkładu określonego przez sieć Markowa
nie jest łatwe. Stosuje się zazwyczaj tzw. próbkowanie Gibbsa. W każdym kroku losuje
się nową wartość pojedynczej zmiennej przy założeniu, że wszystkie pozostałe mają stałą
wartość. Tak generowane próbki nie są oczywiście niezależne. W związku z tym bierze
się tylko np. co setną próbkę, a pozostałe odrzuca. Wadą próbkowania Gibbsa jest to, że
trudno jest ustalić, jak szybko próbki stają się niezależne. Metoda może też grzęznąć w
lokalnych obszarach poszukiwań, zwłaszcza jeżeli niektóre z prawdopodobieństw są równe
zeru. Więcej informacji można znaleźć np. w [5].
5.1.3
Lifted inference
Lifted inference [24, 28] różni się od poprzednich podejść tym, że wnioskowanie odbywa
się bezpośrednio w logicznej sieci Markowa, bez tworzenia sieci indukowanej. Dzięki temu
możliwe jest osiągnięcie znacznego przyspieszenia obliczeń.
Podejście to dotyczy metod opartych o sumowanie i przesyłanie wiadomości. Główna
idea polega tu na przesyłaniu wiadomości zawierających zmienne. W ten sposób pojedyncze wiadomości (lub odpowiednio składniki sumy) opisują całe zbiory identycznych
potencjałów. W najlepszym wypadku daje to redukcję rozmiaru sieci indukowanej do
rozmiaru oryginalnej logicznej sieci Markowa, w najgorszym — nie daje jednak korzyści.
W praktyce korzyści ze stosowania metody są znaczące.
5.2
Uczenie wag
W niniejszym podrozdziale zostanie omówione uczenie wag formuł w logicznej sieci Markowa na podstawie danych D. Uczenie to odbywa się na podstawie reguły maksymalnej
wiarygodności (ang. maximum likelihood); w uproszczeniu oznacza to dobór wag maksymalizujących prawdopodobieństwo usyzkania danych D na podstawie modelu, czyli
tzw. wiarygodność.
Przypomnijmy, że #i (x) oznacza liczbę ustaleń i-tej formuły w rekordzie x, dla których formuła ta jest prawdziwa. Prawdopodobieństwo danego wektora x ∈ D
!
n
X
1
P (x) = exp
wi #i (x) ,
Z
i=1
gdzie,
Z=
X
x′
exp
n
X
i=1
14
!
wi #i (x′ ) .
Niech dany będzie rekord x ∈ D. Logarytm wiarygodności dla rekordu x jest dany przez:
log(P (x)) =
n
X
wi #i (x) − log(Z).
i=1
Poniżej przedstawimy wyprowadzenia wzorów na gradient i hesjan logarytmu wiarygodności dla pojedynczego rekordu. Gradient i hesjan logarytmu wiarygodności dla całej
bazy danych D są po prostu sumą tych wartości dla pojedynczych rekordów.
Zanim przejdziemy do obliczenia gradientu, obliczmy następującą pochodną
!
!
n
n
X
X ∂
X
∂Z
∂ X
wk #k (x′ ) =
wk #k (x′ )
exp
=
exp
∂wi
∂wi x′
∂w
i
k=1
k=1
x′
!
n
n
X
X
X
∂
exp
wk #k (x′ )
=
wk #k (x′ )
∂w
i
k=1
k=1
x′
!
n
X
X
X
P (x′ )#i (x′ )
wk #k (x′ ) #i (x′ ) = Z
exp
=
x′
k=1
x′
Obliczmy teraz pochodną log(P ) względem wagi i-tej formuły wi :
n
∂
∂
∂ X
wk #k (x) −
log P (x) =
log(Z)
∂wi
∂wi k=1
∂wi
X
1 ∂Z
= #i (x) −
P (x′ )#i (x′ )
= #i (x) −
Z ∂wi
x′
= #i (x) − E(#i (x))
To znaczy, że pochodna po wadze wi jest prawdziwych ustaleń formuły Fi w x minus
wartość oczekiwana tej liczby.
Obliczmy teraz drugą pochodną:
∂
∂ X
∂ ∂
P (x′ )#i (x′ )
log(P (x)) =
#i (x) −
∂wj ∂wi
∂wj
∂wj x′
X
∂ X
∂
= −
#i (x′ )
P (x′ )#i (x′ ) = −
P (x′ ).
∂wj x′
∂w
j
x′
Występuje w niej wielkość
∂
P (x),
∂wj
którą obliczymy poniżej
!
X
∂
∂ log P (x)
∂
P (x′ )#j (x′ ) .
P (x) =
e
= elog P (x)
log P (x) = P (x) #j (x) −
∂wj
∂wj
∂wj
x′
A więc
X
∂ ∂
∂
#i (x′ )
log(P (x)) = −
P (x′ )
∂wj ∂wi
∂w
j
x′
15
= −
X
#i (x′ )P (x′ ) #j (x′ ) −
X
P (x )#i (x )#j (x ) +
X
P (x′ )#i (x′ )
′
′
′
x′
P (x′′ )#j (x′′ )
X
P (x′ )#i (x′ )
!
X
x′
X
P (x′′ )#j (x′′ )
x′′
x′
x′
=
!
x′′
x′
= −
X
!
P (x′ )#j (x′ )
−
X
P (x′ )#i (x′ )#j (x′ )
x′
= E(#i )E(#j ) − E(#i #j ) = −COV (#i , #j ),
gdzie COV (#i , #j ) jest macierzą kowariancji #i i #j . Interesujące jest, że wielkość ta
nie zależy od x. Ponieważ macierz korelacji jest dodatnio określona, więc maksimum
wiarygodności zawsze istnieje.
Ponieważ możliwe jest obliczenie gradientu i hesjanu, do znajdowania maksimum
można użyć dowolnego algorytmu optymalizacji. W praktyce jeżeli liczba wag jest mała,
można użyć metody Newtona, w przeciwnym wypadku korzysta się z podejść takich jak
metoda gradientów sprzężonych czy algorytm BFGS.
6
Zastosowania logicznych sieci Markowa do analizy
sieci społecznych
W niniejszej części przedstawione zostanie zastosowanie opisanych metod do analizy sieci
społecznych. Przykładem, który zostanie tu przedstawiony, jest sieć użytkowników telefonii komórkowej kontaktujących się ze sobą. Dodatkowo, użytkownicy korzystają z
określonych usług i mogą mieć wpływ na to, czy użytkownicy, z którymi się kontaktują,
też zakupią daną usługę. Jest to więc przykład tzw. marketingu wirusowego.
Możliwość modelowania tego typu sieci społecznych może mieć bardzo duże znaczenie
w kampaniach reklamowych operatorów telekomunikacyjnych.
Niestety, z uwagi na ochronę danych niemożliwe było wykonanie eksperymentów na
danych rzeczywistych. Opracowano więc realistyczny generator sieci społecznych umożliwiający generowanie sztucznych danych o zadanych parametrach. Generator danych
zostanie opisany poniżej, następnie przedstawione zostaną wyniki modelowania przy użyciu generowanych danych.
6.1
Generowanie danych testowych
W niniejszym podrozdziale opisany zostanie generator danych testowych. Użytkownik
zadaje liczbę klientów sieci, a program utworzy dla każdego klienta listę jego kontaktów,
a także rozmów wykonanych z każdym z kontaktów. Stosowane są przy tym rozkłady
prawdopodobieństwa występujące w rzeczywistych sieciach tego typu.
Ważnym aspektem rzeczywistych sieci społecznych jest tzw. bezskalowość [4, 3]. W
sieciach takich większość parametrów podlega rozkładom prawdopodobieństwa spełniającym tzw. prawo potęgowe, czyli na podwójnie logarytmicznej skali odpowiada im linia
prosta. Powoduje to możliwość występowania skrajnie dużych wartości ze znaczącym
prawdopodobieństwem. Zazwyczaj wszystkie momenty takich rozkładów, a więc także
wartość oczekiwana i wariancja są nieskończone.
16
W praktyce oznacza to na przykład, że podczas gdy większość klientów operatora komórkowego kontaktuje się regularnie tylko z kilkunastoma osobami, istnieje niewielka
liczba klientów, którzy kontaktują się regularnie z setkami, a nawet tysiącami osób.
Charakterystyką rozkładów bezskalowych jest to, że wpływu takich niewielkich grup nie
można pominąć w analizie. Podobnie zachowują się też inne parametry, takie jak czas i
ilość rozmów, czy liczba wysyłanych SMSów.
Opracowany generator działa następująco:
1. zadana jest liczba klientów sieci N ;
2. dla każdego klienta losowana jest liczba jego kontaktów z rozkładu bezskalowego
oraz same kontakty;
3. dla każdego klienta losowany jest całkowity czas rozmów;
4. całkowity czas rozmów danego klienta dzielony jest między jego kontakty;
5. dla każdego kontaktu generowana jest lista rozmów.
Szczegóły poszczególnych kroków opisane są poniżej.
Liczba kontaktów danego klienta losowana jest z rozkładu Zipfa z parametrem s = 2.5:
k −s
P (k) = PN
,
−s
i
i=0
gdzie k jest liczbą kontaktów. Same kontakty są generowane na podstawie rozkładu
równomiernego, tzn. każdy klient może zostać wybrany z takim samym prawdopodobieństwem.
Całkowity czas rozmów generowany jest na podstawie rozkładu Pareto z parametrami
tm = 10 i k = 1.5,
tkm
P (t) = k k+1 ,
t
który jest rozkładem bezskalowym zmiennej rzeczywistej o wartościach większych niż tm .
Odpowiada to sytuacji, gdy większość klientów rozmawia względnie krótko, jednak pewna
grupa osób prowadzi bardzo długie rozmowy.
Całkowity czas rozmów dzielony jest między kontakty wg. rozkładu Zipfa z parametrem skali losowanym dla każdego klienta z przedziału od 0 do 2.5. Odpowiada to sytuacji,
gdy z kilkoma osobami rozmawiamy znacznie dłużej niż z pozostałymi. Parametr dobierany jest losowo, aby oddać zmienność tych różnic u poszczególnych osób. W podobny
sposób generowany jest czas i liczba poszczególnych rozmów.
Przykład generowanej sieci bezskalowej dla 100 użytkowników jest przedstawiony na
rys. 3. Widać wyraźnie, że większość użytkowników kontaktuje się tylko z kilkoma innymi osobami, ale kilku użytkowników ma bardzo dużą liczbę kontaktów. Tych kilku
użytkowników może mieć bardzo duży wpływ na strukturę sieci.
17
Rysunek 3: Przykładowa bezskalowa sieć kontaktów między użytkownikami stworzona
przy pomocy opracowanego generatora.
18
6.2
Analiza sieci społecznych pod kątem marketingu wirusowego
W tej części przedstawione zostanie zastosowanie logicznych sieci Markowa do marketingu
wirusowego. Chcemy obliczyć prawdopodobieństwo, że dany klient kupi usługę dzięki
kontaktom z innymi klientami, bez konieczności jawnej akcji marketingowej.
Na początek omówiony zostanie sposób generowania danych o zakupach produktu, a
następnie przedstawiona analiza przy pomocy logicznych sieci Markowa.
6.3
Generowanie zależności ‘wirusowych’
Aby określić wagi sieci, konieczne są odpowiednie dane treningowe. W rozpatrywanym
przypadku są to przypisania produktów do konkretnych klientów na podstawie ich kontaktów z innymi klientami.
Na początek każdej osobie przypisywany jest współczynnik ‘podatności’ określający
prawdopodobieństwo skorzystania z produktu, o którym usłyszała od znajomego. Prawdopodobieństwo to jest losowane z przedziału [0, 0.4].
Każdej parze (uporządkowanej, kierunek może mieć znaczenie) kontaktujących się ze
sobą klientów przypisywane jest prawdopodobieństwo przekazania tą drogą informacji o
produkcie. Prawdopodobieństwo przekazania informacji od klienta k1 do klienta k2 jest
ustalane według wzoru
P (k1 , k2 ) =
1
P
,
1 + exp (−(10−3 ti 2 − 5))
1
gdzie ti oznacza czas trwania i-tej rozmowy między k1 i k2 . Funkcja sigmoidalna 1+exp(·)
zapewnia, że wartość prawdopodobieństwa mieści się w przedziale (0, 1). Czasy rozmów
podnoszone są do kwadratu, aby zapewnić większy wpływ dłuższych rozmów. Mnożenie
przez 10−3 i odjęcie 5 zapewnia, że wartości prawdopodobieństw nie są zbyt wysokie.
Po ustaleniu powyższych parametrów wykonywana jest symulacja rozprzestrzeniania
się produktów przez sieć:
1. Wybierana jest losowo mała grupa początkowa korzystającą z produktu.
2. Do osiągnięcia zbieżności:
• dla każdej pary klientów k1 , k2 , takich, że k1 korzysta z produktu a k2 nie,
k2 zaczyna korzystać z produktu z prawdopodobieństwem równym P (k1 , k2 )
pomnożonym przez prawdopodobieństwo akceptacji produktu przez k2 .
W ten sposób tworzony jest zbiór treningowy, na podstawie którego uczone są wagi
logicznej sieci Markowa.
6.4
Ocena jakości przewidywań
Do oceny jakości przewidywań konieczny jest także zbiór testowy. W związku z tym, dla
tej samej sieci powtarzano proces przydzielania produktów. Oczywiście, ponieważ proces
ten jest losowy, kolejny produkt był przydzielany w inny sposób.
Tworzone były dwa zbiory danych. Pierwszy zawiera tylko początkową grupę klientów
korzystających z usługi, przed fazą propagowania jej przez sieć. Na podstawie tego zbioru
19
logiczna sieć Markowa obliczy prawdopodobieństwo skorzystania z produktu w skutek
kontaktów z innymi klientami dla każdego klienta, który do tej pory z produktu nie
korzystał.
Następnie wykonana zostanie symulacja propagowania drugiego produktu przez sieć;
w ten sposób powstanie zbiór testowy (pełniący rolę prawdziwej sieci), którego zgodność
z przewidywaniami modelu będzie badana. Im lepsza zgodność, tym lepiej logiczna sieć
Markowa nauczyła się modelować zależności między użytkownikami.
Badania wykonano na wygenerowanej sieci składającej się z 1000 użytkowników.
Należy obecnie zdefiniować miary służące ocenie jakości przewidywań. Dla każdego
klienta dysponujemy informacją o tym, czy faktycznie zakupił on produkt, oraz prawdopodobieństwem zajścia tego zdarzenia obliczonym na podstawie logicznej sieci Markowa.
Niech pi oznacza prawdopodobieństwo, że i-ty klient zakupił produkt obliczone z
logicznej sieci Markowa, a ti ∈ {0, 1}, oznacza, czy klient faktycznie ten produkt nabył; n
jest liczbą klientów, dla których przewidujemy, czy skorzystają z usługi. Pomiar jakości
przewidywania może być dokonywany na kilka sposobów:
• Błąd średniokwadratowy. Brana jest pod uwagę różnica między prawdziwymi a
przewidywanymi wartościami prawdopodobieństw
n
1X
M SE =
(pi − ti )2 .
n i=1
• Pierwiastek błędu średniokwadratowego.
v
u n
u1 X
(pi − ti )2 .
RM SE = t
n i=1
• Średni błąd bezwzględny. Ma bardziej intuicyjną interpretację: jest to średni błąd
przewidywanych prawdopodobieństw.
n
1X
M AE =
|pi − ti |.
n i=1
• Błąd klasyfikacji. Jeżeli zaklasyfikujemy klientów, dla których prawdopodobieństwo
przewidywane przez model jest większe niż 0.5 jako tych, którzy skorzystają z usługi,
błąd klasyfikacji jest określony jakoliczba niepoprawnie zaklasyfikowanych klientów.
• Pole pod krzywą ROC [9]. Miara ta określa, czy klienci zostali poprawnie uporządkowani pod względem rosnących prawdopodobieństw
P
P
i:ti =0
j:tj =0 1[pi < pj ]
,
AU C =
n0 n1
gdzie n0 i n1 oznaczają odpowiednio liczbę klientów, którzy naprawdę nie korzystają
z usługi, i tych, którzy z niej korzystają.
Zdaniem autora, najlepszą z powyższych miar jest pole pod krzywą ROC. Umożliwia
ono poprawną ocenę jakości klasyfikacji, niezależnie od progu, powyżej którego uznajemy,
że klient skorzysta z usługi. Bierze też pod uwagę poprawne uporządkowanie klientów, a
nie tylko poprawny wynik klasyfikacji. Więcej szczegółów można znaleźć w [9].
Wyniki podane zostaną jednak dla wszystkich przedstawionych wyżej miar.
20
Formuła
U sluga(K1, U )
Kontakt(K1, K2)
Kontakt(K1, K2) ↔ Kontakt(K2, K1)
Kontakt(K1, K2) ∧ U sluga(K1, P ) ∧ U sluga(K2, P )
Kontakt(K1, K2) ∧ U sluga(K1, P )
waga
0.091593
-13.3978
32.2572
-0.936293
1.04887
Tablica 2: Sieć Markowa modelująca wzajemny wpływ klientów na podstawie tego, czy
kontaktowali się ze sobą.
Formuła
waga
U sluga(K1, U )
1.1363
Kontakt(K1, K2)
-12.8678
Kontakt(K1, K2) ↔ Kontakt(K2, K1) 25.9488
Tablica 3: Sieć Markowa nie uwzględniająca wpływu kontaktów między klientami na
usługi.
6.4.1
Analiza oparta wyłącznie o listę kontaktów
W pierwszym, najprostszym podejściu do problemu modelowania wzajemnego wpływu
klientów będzie brana pod uwagę jedynie sama obecność kontaktu między klientami.
Pomijane natomiast będą liczba i czas rozmów.
Logiczna sieć Markowa dla tego przypadku przedstawiona jest w tabeli 2. Dla ułatwienia oceny skuteczności modelowania wyniki porównane zostaną z siecią, która nie
uwzględnia zależności między kontaktami a produktami przedstawioną w tabeli 3. Wagi
sieci uczone są na podstawie danych (zbioru treningowego).
Wskaźniki jakości przewidywania dla sieci nieuwzględniającej wpływu kontaktów między użytkownikami na produkty są przedstawione w tabeli poniżej
błąd średniokwadratowy
pierwiastek błędu średniokwadratowego
średni błąd bezwzględny
błąd klasyfikacji
pole pod krzywą ROC
0.413
0.642
0.596
0.686
0.493
Można zauważyć, że pole pod krzywą ROC ma wartość bardzo bliską 0.5, co odpowiada całkowitemu brakowi zdolności przewidywania. Dla sieci uwzględniającej wpływ
kontaktów mamy
błąd średniokwadratowy
pierwiastek błędu średniokwadratowego
średni błąd bezwzględny
błąd klasyfikacji
pole pod krzywą ROC
21
0.378
0.615
0.522
0.574
0.555
Formuła
U sluga(K1, U )
Kontakt1(K1, K2)
Kontakt2(K1, K2)
Kontakt3(K1, K2)
Kontakt1(K1, K2, Czas) ∧ U sluga(K1, P ) ∧ U sluga(K2, P )
Kontakt1(K1, K2, Czas) ∧ U sluga(K1, P )
Kontakt2(K1, K2, Czas) ∧ U sluga(K1, P ) ∧ U sluga(K2, P )
Kontakt2(K1, K2, Czas) ∧ U sluga(K1, P )
Kontakt3(K1, K2, Czas) ∧ U sluga(K1, P ) ∧ U sluga(K2, P )
Kontakt3(K1, K2, Czas) ∧ U sluga(K1, P )
waga
-1.74743
-6.58332
-7.24343
-7.39389
-0.147941
0.53064
-0.136321
-0.293467
-1.0948
-0.14945
Tablica 4: Logiczna sieć markowa przewidująca wzajemny wpływ klientów na podstawie
łącznego czasu rozmów między nimi.
Można zauważyć, że wszystkie miary jakości uległy poprawie. W szczególności pole
pod krzywą ROC zwiększyło się o około 0.05. Model doprowadził więc do poprawy
przewidywań. Poprawa nie jest znaczna, jednak w praktyce uzyskanie takiej jakości
przewidywań byłoby bardzo istotne.
6.4.2
Analiza uwzględniająca łączną długość rozmowy
W celu ulepszenia poprzedniego podejścia łączny czas rozmów między kontaktami został
uwzględniony w przewidywaniach. Łączna długość rozmów została zdyskretyzowana na
trzy przedziały.
Odpowiadająca tej metodzie sieć Markowa pokazana jest w tabeli 4. Predykaty
Kontakt1, Kontakt2, Kontakt3 odpowiadają za różną łączną długość rozmów.
Wyniki zostały przedstawione w poniższej tabeli
błąd średniokwadratowy
pierwiastek błędu średniokwadratowego
średni błąd bezwzględny
błąd klasyfikacji
pole pod krzywą ROC
0.236
0.486
0.369
0.334
0.664
Można zauważyć, że wyniki są znacząco lepsze niż w poprzednim modelu.
6.4.3
Analiza na podstawie pełnej listy rozmów
W kolejnym podejściu zbudowany został klasyfikator korzystający po prostu z listy rozmów między każdą parą użytkowników. Lista formuł logicznej sieci Markowa przedstawiona jest poniżej.
Formuła
U sluga(K1, U )
Rozmowa(ID, K1, K2)
Rozmowa(ID, K1, K2) ∧ U sluga(K1, U ) ∧ U sluga(K2, U )
Rozmowa(ID, K1, K2) ∧ U sluga(K1, U )
22
Niestety, zadanie okazało się zbyt wymagające obliczeniowo — indukowana sieć Markowa była zbyt duża. Ograniczono się zatem do listy 5 najdłuższych rozmów między
danymi klientami i zmniejszono całkowitą liczbę klientów do 500. Ograniczenie na liczbę
rozmów jest bardzo restrykcyjne, mimo to wyniki okazały się dość dobre:
błąd średniokwadratowy
pierwiastek błędu średniokwadratowego
średni błąd bezwzględny
błąd klasyfikacji
pole pod krzywą ROC
6.5
0.314
0.561
0.505
0.534
0.603
Wydajność
Przeanalizujemy tutaj wydajność uczenia i wnioskowania w relacyjnych sieciach Markowa. Aby możliwa była analiza dużych sieci, zastosowano pakiet Alchemy [20], który
jest znacznie wydajniejszy niż implementacja autora.
Stosowano standardowe ustawienia pakietu Alchemy, tzn. uczenie metodą L-BFGS.
W przypadku wnioskowania zastosowano metodę opratą o lifted inference i przesyłanie
wiadomości. Czasy uczenia i wnioskowania podane są w tabeli poniżej:
liczba klientów
czas uczenia wag [s]
czas wnioskowania [s]
1000
40.53
0.56
2000
3m8s
1.08
3000
5m44
1.68
4000
10m15s
2.6
5000
—
2.83
10000
—
10.6
20000
—
24.53
50000
—
67.29
Wyniki pokazują, że czas uczenia sieci nie jest znaczny nawet dla dużych sieci. Niestety, uczenie wymaga bardzo dużej ilości pamięci, co stanowiło główną przeszkodę,
np. nie udało się dla 5000 i więcej klientów. Komputer, na którym wykonywano eksperymenty dysponuje 2GB pamięci.
Wnioskowanie w sieci okazało się nadspodziewanie szybkie, zwłaszcza jeśli weźmie się
pod uwagę bardzo dużą liczbę atrybutów w indukowanej sieci Markowa. Wpływa na
to zapewne fakt, że w rozpatrywanym zastosowaniu, struktura sieci jest zadana, więc
znaczna część formuł ma ustalone wartości logiczne. Eksperymenty z własną implementacją autora również wykazywały podobną prawidłowość.
Wykresy czasu uczenia wag i czasu wnioskowania w zależności od liczby klientów są
przedstawione na rys. 4. Czas wnioskowania rośnie praktycznie liniowo z wielkością sieci;
czas uczenia wag jest lekko nieliniowy.
Odpowiednim podejściem praktycznym wydaje się więc nauczenie sieci na małej próbce
i zastosowanie jej do pełnego systemu. Metody pobierania próbek z grafów opisane są
np. w [22].
7
Znajdowanie interesujących zależności w danych relacyjnych
W tej części przeanalizowany zostanie problem interaktywnej konstrukcji logicznych sieci
Markowa. Istnieją wprawdzie w pełni automatyczne sposoby konstrukcji, jednak w praktyce podejście interaktywne okazuje się zazwyczaj lepsze [16, 17]. Jest tak dlatego, że
człowiek jest w stanie lepiej wyjaśnić istniejące w danych zależności.
23
70
600
60
czas wnioskowania w sieci [s]
700
czas uczenia wag [s]
500
400
300
200
100
0
1000
50
40
30
20
10
1500
2000
2500
3000
3500
0
0
4000
liczba klient w
10000
20000
30000
40000
50000
liczba klient w
Rysunek 4: Czasy uczenia wag i wnioskowania w logicznych sieciach Markowa
Proponowana metoda opiera się na podejściu opisanym w pracach [16, 17]. Znajdowane są formuły logiczne, których prawdopodobieństwo w danych różni się znacznie
od tego, które przewiduje model. Na podstawie tych interesujących formuł użytkownik
uaktualnia model tak, aby poprawnie wyjaśniał on prawdopodobieństwa tych formuł. W
kolejnej iteracji nowe formuły staną się interesujące.
Niech będzie dana baza danych D i logiczna sieć Markowa M . Baza danych zawiera
predykaty ustalone lub ich negacje. Formalnie stopień, w jakim formuła logiczna F jest
interesująca, zdefiniowany jest wzorem
I(F ) = P M (F ) − P D (F ) ,
gdzie P M (F ) oznacza prawdopodobieństwo formuły F obliczone na podstawie modelu
M . W rozpatrywanym przypadku modelem jest logiczna sieć Markowa. Analogicznie,
P D (F ) oznacza prawdopodobieństwo formuły F w bazie danych D.
Formuła F może być dowolną formułą pierwszego rzędu, może więc także zawierać
zmienne. Prawdopodobieństwo takich formuł zarówno w modelu, jak i w danych, wymaga
zdefiniowania.
Definicja 3 Prawdopodobieństwo formuły F w danych jest zdefiniowane jako prawdopodobieństwo, że wybrana losowo z rokładu jednostajnego formuła ustalona uzyskana z F
jest prawdziwa w bazie D. Prawdopodobieństwo formuły F w logicznej sieci Markowa
M jest zdefiniowane jako średnie prawdopodobieństwo w M wszystkich formuł ustalonych
uzyskanych z F .
W praktyce prawdopodobieństwo formuły F w bazie danych oblicza się przez policzenie liczby jej wersji ustalonych, które są w bazie prawdziwe. Obliczenie prawdopodobieństwa formuły F w modelu można wykonać przez obliczenie prawdopodobieństw
wszystkich formuł ustalonych, które można z niej uzyskać, jeżeli ilość ta jest mała. W
przeciwnym wypadku możliwe jest przybliżenie tego prawdopodobieństwa na podstawie
próbki losowej formuł ustalonych uzyskanych z F . W niektórych wypadkach można też
korzystać z lifted inference.
24
Wejście: Baza predykatów D, logiczna sieć Markowa M , próg ε
Wyjście: Zbiór formuł F takich, że I(F ) ≥ ε
1. Znajdź zbiór formuł FM = {F : P M (F ) ≥ ε}
2. Znajdź zbiór formuł FD = {F : P D (F ) ≥ ε}
3. Znajdź P M (F ) dla wszystkich formuł w FD \ FM
4. Znajdź P D (F ) dla wszystkich formuł w FM \ FD
5. Oblicz I(F ) dla wszystkich formuł F ∈ FM ∪ FD i zwróć te dla których I(≥)ε.
Rysunek 5: Algorytm znajdowania interesujących zależności w danych względem
logicznej sieci Markowa
Kolejnym problemem jest sama metoda znajdowania interesujących formuł.
uważmy najpierw, że
jeżeli I(F ) ≥ ε to P M (F ) ≥ ε lub P D (F ) ≥ ε ,
Za-
dla dowolnej formuły F i stałej ε. Oznacza to, że interesująca formuła musi mieć wysokie
prawdopodobieństwo albo w danych albo w modelu. Do znajdowania interesujących
formuł można więc stosować ogólny algorytm przestawiony na rys. 5. Podobne podejście
zastosowano w przypadku zwykłych modeli graficznych w pracach [17, 16], a w przypadku
ukrytych modeli Markowa, w pracy [14].
Znajdowanie wszystkich formuł o zadanym minimalnym prawdopodobieństwie jest
zadaniem trudnym. Jeżeli jednak ograniczymy się do formuł będących koniunkcjami
predykatów, problem znajdowania wszystkich formuł o zadanym minimalnym prawdopodobieństwie jest analogiczny do problemu znajdowania tzw. reguł asocjacyjnych. Zaproponowany w pracy [2] algorytm Apriori daje się łatwo uogólnić na przypadek koniunkcji
w logice pierwszego rzędu. Opis szczegółów implementacyjnych znaleźć można np. w
pracy [11].
Poniżej przedstawimy przykładową aplikację algorytmu do niewielkiego problemu.
Stosowany wyżej pakiet Alchemy umożliwia wnioskowanie jedynie o pojedynczych predykatach, a nie o dowolnych formułach. Konieczne stało się więc zastosowanie mniej
wydajnej implementacji autora.
Sieć przedstawioną w tabeli 1 wykorzystano jako rzeczywisty system, który należy
modelować. Z sieci tej wygenerowano 1000 próbek przy pomocy próbkowania Gibbsa.
Próbki te stanowiły odpowiednik bazy danych D (predykatów) opisujących modelowany
system.
Modelowanie rozpoczęto od sieci nieuwzględniającej żadnych interakcji przedstawionej
w tabeli poniżej:
Formuła
Znajomy(X, Y )
Chory(X)
25
Wagi sieci zostały nauczone na danych D. Następnie uruchomiony został algorytm
znajdowania interesujących formuł logicznych.
Najbardziej interesują formułą okazała się
Formuła
Znajomy(X, Y ) ∧ Znajomy(Y, X)
P D (F ) P M (F ) I(F )
0.525
0.346 0.178
Jak widać, najbardziej interesująca formuła dotyczy faktu, że relacja znajomości jest
symetryczna. Istotnie, występuje ona w danych znacznie częściej niż w sieci nieuwzględniającej tego faktu.
Nowy, uaktualniony model pokazany jest w tabeli poniżej
Formuła
Znajomy(X, Y )
Chory(X)
Znajomy(X, Y ) ↔ Znajomy(Y, X)
Poprzednio najbardziej interesująca formuła Znajomy(X, Y ) ∧ Znajomy(Y, X) ma
w nim wartość I() równą 0.006, a więc została poprawnie wyjaśniona przez model. Najbardziej interesującymi formułami okazały się
Formuła
Chory(X) ∧ Chory(Y )
Znajomy(Y, X) ∧ Chory(X) ∧ Chory(Y )
Znajomy(X, Y ) ∧ Chory(X) ∧ Chory(Y )
P D (F ) P M (F ) I(F )
0.436
0.313 0.123
0.244
0.172 0.072
0.244
0.172 0.072
Najbardziej interesująca formuła dotyczy wzajemnego wpływu osób na siebie, a dwie
kolejne wyjaśniają ten wpływ.
Po dodaniu zależności opisujących wpływ znajomości między osobami na ich zdrowie
sieć poprawnie opisywała wszystkie zależności. Konstrukcja sieci zakończyła się więc
sukcesem.
8
Analiza preferencji klientów oparta o Conjoint Analysis
W ramach pracy przeanalizowano tzw. conjoint analysis pod kątem przydatności do sprzedaży usług telekomunikacyjnych. W ramach tej tematyki powstały dwa artykuły.
Pierwszy artykuł [27] dotyczy możliwości zastosowania metody conjoint analysis do
konstrukcji oferty przez operatorów telekomunikacyjnych.
Metoda conjoint analysis jest szeroko stosowaną metodą badań marketingowych przeznaczoną do badania preferencji konsumentów oraz symulacji ich wyborów produktowych.
Jest używana w projektowaniu produktów, zmianie oraz pozycjonowaniu istniejących produktów, weryfikacji efektu wpływu ceny na skłonność do zakupów oraz symulacji udziału
w rynku. Niniejsza praca jest wynikiem analiz zastosowania metody conjoint analysis w
obszarze telekomunikacyjnym, do znalezienia optymalnych produktów telekomunikacyjnych, które mogłyby zostać zaproponowane klientom.
26
W pierwszej kolejności został zdefiniowany problem w sposób formalny, następnie
przedstawiona została metoda conjoint analysis oraz omówione zostały związki tej metody
z innymi metodami: ANOVA i techniki regresyjne. Ponadto zostały sformułowane i
porównane różne modele preferencji dotyczących usług: voice, SMS, MMS.
Parametry zaproponowanej miary conjoint zostały dobrane stosując metodę regresji
na sztucznie wygenerowanych danych użycia usług.
Wykorzystując preferencje konsumentów, wydzielone zostały homogeniczne grupy użytkowników. W podgrupach przeprowadzone zostały analizy statystyczne w celu dobrania
najlepszych produktów dla danej grupy. Wyniki pokazały, że metod conjoint analysis
może być z powodzenie stosowana w firmach telekomunikacyjnych do badaniach preferencji klientów. Nie mniej jednak, dalsze analizy powinny zostać przeprowadzone na danych
rzeczywistych oraz powinna zostać zbadana możliwość użycia innych źródeł danych do
badania preferencji konsumentów, dających ich pełniejszy obraz.
Drugi artykuł [26] dotyczy poprawy prognozowania użycia usług telekomunikacyjnych przez modyfikację algorytmu. Modyfikacja ta polega na uwzględnieniu informacji o
preferencjach konsumentów. Jest to kontynuacja poprzedniego artykuły, dotyczącego zastosowania metody CA do konstrukcji ofert telekomunikacyjnych. Przesłanki za przeprowadzeniem pracy są następujące. Klienci zmieniają swoje preferencji odnośnie produktów
w trakcie jak lepiej poznają usługi lub są motywowani innymi czynnikami wpływającymi
na ich przyzwyczajenia zakupowe. Różne źródła motywacji wpływają na konsumentów i
zmieniają ich zachowanie: reklama, lider w grupie, poziom satysfakcji z użycia usług oraz
inne doświadczenia, które zazwyczaj nie są znane. Ponadto ludzie różnią się skłonnością
do przyjmowania sugestii i innowacji oraz w szybkości zmian swoich preferencji. Informacja historyczna na temat struktury preferencji konsumenta daje dodatkową wiedzę
umożliwiającą zmniejszenie niepewności prognoz.
W omawianym artykule metoda conjoint analysis został użyta, do identyfikacji preferencji konsumentów, które zostały użyte do poprawy predykcji użycia usług telekomunikacyjnych.
Wyniki pokazały, że dokładność prognozowania wzrasta około 1 punku procentowego,
co prowadzi do 20% wzrostu dokładności prognozowania po zastosowaniu proponowanej
modyfikacji. Wyniki porównane zostały do podstawowych, ale jednocześnie najczęściej
stosowanych modeli prognostycznych zwanych exponential smoothing.
9
Inne badania wykonane w ramach pracy
W pracy [12] przedstawiono system wykrywania zdarzeń w wielkich, złożonych systemach,
oparty o porównywanie histogramów mierzonych cech systemu. Porównywanie odbywa
się na podstawie częściowego porządku zdefiniowanego na histogramach. Przeprowadzono
testy proponowanego podejścia na danych dotyczących ruchu na poszczególnych elementach sieci teleinformatycznej. Proponowana metoda wykrywała poprawnie zachodzące w
sieci zdarzenia.
Opracowana została ostateczna wersja artykułu [16]. Wstępna wersja była włączona
do proprzedniej pracy statutowej jednak opracowanie wersji ostatecznej, uwzględniającej uwagi recenzentów, wymagało znacznego nakładu pracy. Konieczne było przepisanie dowodów wielu twierdzeń w bardziej zrozumiałej postaci. Wykonano szereg nowych
27
eksperymentów porównujących proponowane podejście z automatycznymi algorytmami
konstrukcji sieci bayesowskich.
Praca została ostatecznie przyjęta do czasopisma Data Mining and Knowledge Discovery i przyniosła 24 punkty Ministerstwa Nauki i Szkolnictwa Wyższego.
W pracy [14] przedstawiono metodę znajdowania interesujących sekwencji czasowych
wstępnie opracowaną w ramach poprzedniej pracy statutowej. Przedstawiono zastosowanie tej metody do analizy loga serwera WWW Instytutu Łączności. Obecnie trwają
prace na rozszerzoną wersją artykułu przeznaczoną do druku w czasopiśmie.
Opracowano też metodę znajdowania interesujących zależności w danych numerycznych nie wymagającą ich dyskretyzacji [15]. Metoda umożliwia uwzględnienie wiedzy z
dziedziny w procesie analizy danych. Praca została przyjęta jako rozdział w książce na
temat analizy rzadkich zdarzeń.
Zakończono również prace, które dr Szymon Jaroszewicz prowadził z kolegami z Politechniki Szczecińskiej i lekarzami z Pomorskiej Akademii Medycznej na temat sodowrażliwości ciśnienia tętniczego. Prace miały na celu znalezienie podłoża genetycznego faktu,
że u niektórych osób spożycie sodu powoduje wzrost ciśnienia tętniczego, a u innych nie
wywołuje takich skutków. Wyniki zostały przedstawione w pracy [21].
Literatura
[1] E.W. Adams. A Primer of Probability Logic. Center for the Study of Language and
Information, 1996.
[2] R. Agrawal, T. Imielinski, and A. Swami. Mining association rules between sets of
items in large databases. In Proc. ACM SIGMOD Conference on Management of
Data, pages 207–216, Washington, D.C., 1993.
[3] A.L. Barabasi. Scale-free networks. Scientific American, (288):60–69, May 2003.
[4] A.L. Barabasi and R. Albert. Emergence of scaling in random networks. Science,
(286):509–512, October 1999.
[5] G. Casella and E.I. George. Explaining the gibbs sampler. The American Statistician,
(46):167–174, 1992.
[6] R. Dechter. Bucket elimination: A unifying framework for reasoning. Artificial
Intelligence, 113(1-2):41–85, 1999.
[7] P. Domingos, S. Kok, D. Lowd, H. Poon, M. Richardson, and P. Singla. Markov logic.
In L. De Raedt, P. Frasconi, K. Kersting, and S. Muggleton, editors, Probabilistic
Inductive Logic Programming. Springer, New York, 2007.
[8] P. Domingos, S. Kok, H. Poon, M. Richardson, and P. Singla. Unifying logical and
statistical ai. In Proceedings of the Twenty-First National Conference on Artificial
Intelligence, pages 2–7, Boston, MA, 2006.
[9] T. Fawcett. Roc analysis in pattern recognition.
27(8):861–874, June 2006.
28
Pattern Recognition Letters,
[10] L. Getoor and B. Taskar, editors. Introduction to Statistical Relational Learning.
MIT Press, 2007.
[11] B. Goethals and J. Van den Bussche. Relational association rules: Getting warmer.
In Pattern Detection and Discovery, ESF Exploratory Workshop, pages 125–139,
2002.
[12] J. Granat and A. P. Wierzbicki. Objective classification of empirical probability
distributions and the issue of event detection. Journal of Telecommunications and
Information Technology (JTIT), (3):24–27, 2008.
[13] D. Heckerman, C. Meek, and D. Koller. Probabilistic models for relational data.
Technical Report MSR-TR-2004-30, Microsoft Research, 2004.
[14] S. Jaroszewicz. Interactive HMM construction based on interesting sequences. In
Proc. of Local Patterns to Global Models (LeGo’08) Workshop at the 12th European Conference on Principles and Practice of Knowledge Discovery in Databases
(PKDD’08), pages 82–91, Antwerp, Belgium, 2008.
[15] S. Jaroszewicz. Discovering interesting patterns in numerical data with background
knowledge. In Y.-S. Koh and N. Rountree, editors, Rare Association Rule Mining
and Knowledge Discovery: Technologies for Infrequent and Critical Event Detection.
IGI Global, 2009. praca w druku.
[16] S. Jaroszewicz, T. Scheffer, and D.A. Simovici. Scalable pattern mining with bayesian networks as background knowledge. Data Mining and Knowledge Discovery,
18(1):56–100, 2009.
[17] Szymon Jaroszewicz and Dan Simovici. Interestingness of frequent itemsets using
bayesian networks as background knowledge. In 10th ACM SIGKDD International
Conference on Knowledge Discovery and Data Mining (KDD 2004), pages 178–186,
Seattle, WA, August 2004.
[18] F.V. Jensen. Bayesian Networks and Decision Graphs. Springer Verlag, New York,
2001.
[19] R. Kindermann and J. Laurie Snell. Markov Random Fields and Their Applications.
American Mathematical Society, 1980.
[20] S. Kok, M. Sumner, M. Richardson, P. Singla, H. Poon, D. Lowd, and P. Domingos.
The alchemy system for statistical relational ai. Technical report, Department of
Computer Science and Engineering, University of Washington, Seattle, WA, 2007.
http://alchemy.cs.washington.edu.
[21] M. Korzeń, P. Klęsk, S. Jaroszewicz, A. Ciechanowicz, M. Kaczmarczyk, and K. Widecka. Mining interesting rules and patterns for salt sensitivity of blood pressure.
In 15th International Multiconference on Advanced Computer Systems (ACS’08),
Międzyzdroje, October 2008. praca w druku.
29
[22] J. Leskovec and C. Faloutsos. Sampling from large graphs. In KDD ’06: Proceedings
of the 12th ACM SIGKDD international conference on Knowledge discovery and
data mining, pages 631–636, 2006.
[23] J. Pearl. Probabilistic Reasoning in Intelligent Systems. Morgan Kaufmann, Los
Altos, CA, 1998.
[24] D. Poole. First-order probabilistic inference. In Proceedings of the International
Joint Conference on Artificial Intelligence (IJCAI’03), pages 985–991, 2003.
[25] M. Richardson and P. Domingos. Markov logic networks. Machine Learning, 62:107–
136, 2006.
[26] P. Rzepakowski. Incorporating customer preference information into the forecasting
of service sales. paraca przyjęta do Journal of Telecommunications and Information
Technology (JTIT), 2008.
[27] P. Rzepakowski. Supporting telecommunication product sales by conjoint analysis.
Journal of Telecommunications and Information Technology (JTIT), (3):28–34, 2008.
[28] P. Singla and P. Domingos. Lifted First-Order Belief Propagation. In Proceedings
of the Twenty-Third AAAI Conference on Artificial Intelligence, pages 1094–1099,
Chicago, IL, 2008.
30

Podobne dokumenty