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