Nowy generator grafów dwudzielnych w analizie systemów rekomendujących Szymon Chojnacki Instytut Podstaw Informatyki Polskiej Akademii Nauk 08 marca 2011 roku
Plan prezentacji 1 Wprowadzenie 2 Dane rzeczywiste 3 Generator grafów dwudzielnych 4 Własności generatora 5 Podsumowanie
Plan prezentacji 1 Wprowadzenie Systemy rekomendujące Własności techniczne Asymptotyczna analiza złożoności 2 Dane rzeczywiste 3 Generator grafów dwudzielnych 4 Własności generatora 5 Podsumowanie
Systemy rekomendujące Systemy rekomendujące operują na danych o strukturze grafu dwudzielnego. Wierzchołkami obu modalności są użytkownicy i przedmioty, a krawędzie reprezentują historyczne preferencje użytkowników względem przedmiotów.
Własności techniczne W środowisku produkcyjnym duże znaczenie ma możliwość szybkiej budowy modelu oraz krótki czas tworzenia rekomendacji w ramach dostępnej pamięci operacyjnej. czas budowy modelu zapotrzebowanie na pamięć czas tworzenia rekomendacji czas odświeżenia Powyższy mail został wysłany na listę dyskusyjną użytkowników systemu Mahout i obrazuje problemy techniczne typowe dla takich systemów.
Asymptotyczna analiza złożoności Analiza asymptotyczna oparta jest na zbyt silnych założeniach: wektory reprezentowane są jako struktury gęste środowisko jest statyczne i można większość obliczeń wykonać z wyprzedzeniem graf jest lokalnie drzewem Konstrukcja Newmana u - the first moment of the user degree distribution u 2 - the second moment of the user degree distribution u v2 1 v an average number of the second neighbors of a random user Users Items v - the first moment of the item degree distribution v 2 - the second moment of the item degree distribution u v2 1 u 2 1 v u an average number of the third neighbors of a random user u an average number of the first neighbors of a random user Istnieje potrzeba generowania danych sztucznych o własnościach zbliżonych do danych spotykanych w rzeczywistości.
Plan prezentacji 1 Wprowadzenie 2 Dane rzeczywiste Rozkład stopni wierzchołków Tranzytywność Wielkość sąsiedztwa 3 Generator grafów dwudzielnych 4 Własności generatora 5 Podsumowanie
FREQUENCY Fraction of nodes Rozkład stopni wierzchołków W danych rzeczywistych obserwowane są rozkłady skośne z różnym nasileniem własności szerokiego ogona. Charakterystyczną cechą rozkładu potęgowego jest układanie się punktów w linię prostą na wykresie (log-log). TAG - RESOURCE graph (BibSonomy) 100 000 10 000 1 000 tag resource Poisson Power-law Exponential 100 10 1 1 10 100 1 000 10 000 100 000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 DEGREE Node degree Grafy losowe są w stanie generować szerokie spektrum rozkładów.
Klasyczny wskaźnik gronowania Natężenie tranzytywności może być mierzone przy pomocy lokalnego wskaźnika gronowania LCC. LCC(i) = (a, b) E : (a, i) E (b, i) E, k i (k i 1)/2 gdzie k i jest stopniem wierzchołka i. i WG i = 2 6 = 0.33 Wartość LCC dla grafów dwudzielnych jest zawsze równa 0.
Dwudzielny wskaźnik gronowania Wskaźnik gronowania dla grafów dwudzielnych BLCC: N 2 (u) BLCC(u) = 1 P w N 1 (u)(kw 1) gdzie N s (u) jest zbiorem sąsiadów oddalonych od u o s. number of linked neighbors = c mean number of the 1 st neighbors = k mean number of the 2 nd neighbors k = k 2 1 k mean degree of a neighboring node = k2 k Można pokazać że występuje zależność między LCC i BLCC.
Wielkość sąsiedztwa W danych rzeczywistych sąsiedztwo jest mniejsze niż wynika z formuły Newmana. Zrzutowane grafy Graf dwudzielny Wartość rzeczywista Wartość teoretyczna Losowa projekcja CiteULike 7 196 74 190 124 773 88 567 (6%) BibSonomy 253 366 1 810 132 23 797 094 2 682 723 (6%) Movie - IMDB 1 470 404 30 076 166 81 125 160 30 836 072 (1%) Tabela: Ilość krawędzi.
Plan prezentacji 1 Wprowadzenie 2 Dane rzeczywiste 3 Generator grafów dwudzielnych Porównanie z dotychczasowymi modelami Model podstawowy Model pełny 4 Własności generatora 5 Podsumowanie
Porównanie z dotychczasowymi modelami Obecnie istniejące generatory grafów dwudzielnych potrafią wygenerować grafy o ograniczonym zakresie pożądanych cech. Wynika to z faktu, że modelują one sieci afiliacyjne, w których nie występują koszty nawiązania nowego połączenia. Również przyjmuje się, że jedyny interesujący rozkład to rozkład potęgowy. Przykładowe modele: Jean-Loup Guillaume and Matthieu Latapy. Bipartite structure of all complex networks. Inf. Process. Lett., 90(5):215 221, 2004. Silvio Lattanzi and D. Sivakumar. Affiliation networks. In STOC 09: Proceedings of the 41st annual ACM symposium on Theory of computing, pages 427 434. ACM, 2009. Elena Zheleva, Hossam Sharara, and Lise Getoor. Co-evolution of social and affiliation networks. In KDD, pages 1007 1016. ACM, 2009. Etienne Birmele. A scale-free graph model based on bipartite graphs. Discrete Applied Mathematics, 157(10):2267 2284, 2009.
Parametry m liczba początkowych luźnych krawędzi T liczba iteracji δ prawdopodobieństwo, że nowy wierzchołek to użytkownik 1 δ prawdopodobieństwo, że nowy wierzchołek to przedmiot d u ilość krawędzi tworzonych przez nowego użytkownika d v ilość krawędzi tworzonych przez nowy przedmiot prawdopodobieństwo, że przedmiot jest wybierany α jako zakończenie krawędzi zgodnie z mechanizmem preferencyjnym prawdopodobieństwo, że przedmiot jest wybierany 1 α jako zakończenie krawędzi zgodnie z mechanizmem jednostajnym prawdopodobieństwo, że użytkownik jest wybierany α jako zakończenie krawędzi zgodnie z mechanizmem preferencyjnym prawdopodobieństwo, że użytkownik jest wybierany 1 α jako zakończenie krawędzi zgodnie z mechanizmem jednostajnym część krawędzi dołączanych w sposób preferencyjny b które zostały utworzone przy pomocy mechanizmu odbijania Tabela: Parametry wykorzystane w generatorze.
Procedura Initialize (m=2) Draw modality Choose each edge s attachment type Add a user Random attachment Users Items Add an item Preferential attachment Rysunek: Kolejne kroki generatora grafów dwudzielnych.
Applet java http://www.ipipan.eu/~sch/
Model pełny 1) A new user is created 2) An attachment type is drawn for each edge 3) Number of bounced nodes is set 4) Bouncing is performed Users Items u (1-p) b u (1-p) u u p Rysunek: Schemat działania mechanizmu odbijania.
Plan prezentacji 1 Wprowadzenie 2 Dane rzeczywiste 3 Generator grafów dwudzielnych 4 Własności generatora Rozkład stopni wierzchołków Wskaźnik BLCC Wielkość sąsiedztwa Analiza formalna 5 Podsumowanie
FREQUENCY FREQUENCY Rozkład stopni wierzchołków 1000 ITEM node degree distributions 1000 ITEM node degree distributions alpha = 0.5 alpha = 1 100 alpha = 0 100 alpha = 0 10 10 1 1 10 DEGREE 100 1000 1 1 10 DEGREE 100 1000 Rysunek: Rozkłady stopni wierzchołków w grafach syntetycznych.
BLCC BLCC Wskaźnik BLCC BLCC for USER nodes BLCC for ITEM nodes 0,16 alpha, beta = 1.00 0,16 alpha, beta = 1.00 0,14 alpha, beta = 0.75 0,14 alpha, beta = 0.75 0,12 alpha, beta = 0.50 0,12 alpha, beta = 0.50 0,1 alpha, beta = 0.25 alpha, beta = 0.00 0,1 alpha, beta = 0.25 alpha, beta = 0.00 0,08 0,08 0,06 0,06 0,04 0,04 0,02 0,02 0 0 0.0 0.2 0.4 0.6 0.8 1.0 0,0 0,2 0,4 0,6 0,8 1,0 bouncing bouncing Rysunek: Wpływ parametru odbijania b an tranzytywność grafów.
Wielkość sąsiedztwa Rysunek: Wpływ parametrów α i β na wielkość sąsiedztwa.
Krok 1/6 W dalszej części wyprowadzony zostanie rozkład stopni wierzchołków typu użytkownik. Rozumowanie może naturalnie zostać zaadaptowane dla wierzchołków typu przedmiot. Zauważmy, że jeżeli w danej iteracji do grafu jest dodawany użytkownik, to nie ulegają zmianie stopnie już istniejących użytkowników. Mogą one ulec zmianie tylko, gdy do grafu dodawany jest nowy przedmiot. Dzieje się to z prawdopodobieństwem 1 δ. Jeżeli sąsiedzi nowego przedmiotu byliby wybierani zgodnie z mechanizmem jednostajnym, wówczas prawdopodobieństwo, że użytkownik o stopniu k u zostanie wylosowany jako zakończenie jednej krawędzi nowego przedmiotu wynosi Π UNI (k u) = 1 U(t) = 1 δt. Jeżeli zastosowany by był mechanizm preferencyjny, wówczas odpowiednie prawdopodobieństwo zadane jest formułą Możemy łatwo sprawdzić że X Π PREF (k u) = u U Π UNI (k u) = X u U ku E(t) = ku ηt. Π PREF (k u) = 1.
Krok 2/6 W naszym modelu decyzja o tym czy łączenie nowego przedmiotu z użytkownikami będzie zgodna z mechanizmem preferencyjnym bądź jednostajnym zależy od parametru β. A zatem prawdopodobieństwo, że użytkownik zostanie wybrany przez jedną z krawędzi nowego przedmiotu wynosi Π(k u) = β 1 δt + (1 β) ku ηt. (1) Każdy nowy przedmiot tworzy v krawędzi. A zatem przyjmując że tempo zmian stopni użytkowników o k u krawędziach zadane jest następujące równanie różniczkowe k u t = (1 δ)dvπ(ku). (2)
Krok 3/6 a zatem Z k u t = (1 δ)dvπ(ku) = (1 δ)d v β δt + (1 β)ku ηt Z 1 δη 1 dk u = dt. (3) (1 δ)d v βη + δ(1 β)k u t Warunek początkowy dany jest przez k u(t u) = d u, gdzie t u jest iteracją w której powstał użytkownik u. Korzystamy z faktu, że R c ax+b dx = c ln ax + b + C: a δη ([ln (βη + δ(1 β)ku)] [ln (βη + δ(1 β)u)]) = [ln t] [ln tu]. (1 δ)d vδ(1 β) (4) Po uporządkowaniu dostajemy 0 1 t k u(t) = δ(1 β) @(βη + δ(1 β)d u) t u ««(1 δ)(1 β)dv η 1 βηa. (5)
Krok 4/6 Teraz możemy przygotować się do drugiego ważnego kroku. W tym celu zapisujemy prawdopodobieństwo, że stopień wierzchołka u jest mniejszy niż wartość progowa k. 8 9 (1 δ)(1 β)dv >< (βη + δ(1 β)d t η u) βη >= t u Φ {k u(t) < k} = Φ < k, (6) δ(1 β) >: >; co można przedstawić w następujący sposób 8 < βη + δ(1 β)k Φ {k u(t) < k} = Φ : tu > t βη + δ(1 β)d u «η (1 δ)(1 β)dv 9 = ;. (7)
Krok 5/6 W tym miejscu korzystamy z założenia, że wierzchołki dodawane są w równych odstępach czasu. A zatem prawdopodobieństwo, że użytkownik u został dodany do grafu później niż w iteracji S (S t) wynosi 1 Φ(t u S) = 1 S 1 t. Wprowadzenie tej obserwacji do równania 7 prowadzi do 8 < βη + δ(1 β)k Φ {k u(t) < k} = 1 Φ : tu t βη + δ(1 β)d u «η βη + δ(1 β)k (1 δ)(1 β)dv = 1. βη + δ(1 β)d u «η (1 δ)(1 β)dv 9 = ;
Krok 6/6 W tym miejscu wykonuje się ostatni ważny trzeci krok. Funkcję gęstości rozkładu zmiennej losowej k można otrzymać przez różniczkowanie jej dystrybuanty P(k) = Φ{k j (t) < k}/ k. Stąd P(k) = «η η βη + δ(1 β)k (1 δ)(1 β)dv 1 δ(1 β), (8) (1 δ)(1 β)v βη + δ(1 β)d u w rezultacie otrzymujemy formułę na funkcję gęstości rozkładu stopni wierzchołków typu użytkownik «η βη + δ(1 β)k (1 δ)(1 β)dv 1 P(k). (9) βη + δ(1 β)d u
Plan prezentacji 1 Wprowadzenie 2 Dane rzeczywiste 3 Generator grafów dwudzielnych 4 Własności generatora 5 Podsumowanie
Podsumowanie zaobserwowaliśmy związek między grafami dwudzielnymi i macierzą użytkownik-przedmiot w systemach rekomendujących dotychczasowe modele grafów dwudzielnych nie mają wszystkich pożądanych własności zaproponowaliśmy nowy generator grafów dwudzielnych zaproponowaliśmy nowy wskaźnik do mierzenia tranzytywności przeprowadzono formalną analizę wariantu podstawowego generatora
Dziękuję za uwagę Dziękuję za uwagę