Poszukiwania złota w masie danych

Analiza dużych zbiorów danych to szukanie igły w stogu siana. Nadchodzą jednak nowe rozwiązania, które zmienią zasady wyszukiwania w strumieniu informacji.

Wyrażenia regularne pomogą w szukaniu

W najnowszej bazie Oracle 12c producent wprowadzi opcję rozpoznawania sekwencji rekordów o pewnych własnościach, definiowanych w treści procedury lub perspektywy za pomocą funkcji MATCH_RECOGNIZE. Unikatową cechą tej opcji jest możliwość definicji zdarzeń przez wyrażenia regularne oraz powołanie się na poprzednie z nich, na przykład przy porównaniu wartości lub czasu. "Działanie MATCH_RECOGNIZE można łatwo pokazać na przykładzie analizy indeksów giełdowych, gdzie często poszukuje się podwójnych lokalnych minimów występujących w określonym odstępie czasu. Zapytanie, które to zrealizuje, jest proste, zajmuje 11 wierszy i wykona się znacznie szybciej od zapętlonych funkcji" - wyjaśnia Andrew Witkowski, architekt oprogramowania w firmie Oracle, jeden z autorów wniosku o rozszerzenie standardu SQL.

Tym, co odróżnia MATCH_RECOGNIZE od dotychczas używanych narzędzi języka klasy SQL, jest:

- wyszukiwanie zdarzeń w uporządkowanym podzbiorze danych;

- użycie zasad wyrażeń regularnych;

- definiowanie dopasowań za pomocą wyrażeń porównania realizowanych między wartościami w wierszach;

- możliwość powołania się w porównaniach do danych z poprzednich wierszy.

Utworzona w ten sposób perspektywa działa o wiele sprawniej od zapętlonych zapytań. Nawet skomplikowane zapytania z użyciem MATCH_RECOGNIZE charakteryzują się o wiele mniejszymi kosztami wskazywanymi przez bazę po włączeniu opcji AUTOTRACE. Zapytania, które za pomocą MATCH_RECOGNIZE są łatwo definiowane, wymagały dotąd korzystania z wielu połączeń (self join), zapytań rekursywnych albo funkcji okien (SQL window - kwerendy wykonywane na zestawie krotek w pewien sposób ze sobą powiązanych). Funkcja ta jest już dostępna w języku Oracle Fusion Middleware CQL dla wersji 11g Release 1 (11.1.1.6.0).

Każdy zbiór danych można poddać zaawansowanej analizie, by pozyskać informacje, które się w nim znajdują, ale nie są wprost widoczne. Informacje statystyczne i dotyczące trendów można uzyskać już za pomocą arkusza kalkulacyjnego, ale dogłębna analiza danych daje znacznie więcej informacji. Wymaga też znacznie bardziej zaawansowanych narzędzi.

Analiza danych umożliwia zdobycie informacji na wiele różnych tematów, m.in.:

- wykrycie najważniejszego czynnika prawdopodobnie odpowiedzialnego za zdarzenia;

- wyszukanie najlepszego klienta na podstawie zapisów z różnych źródeł;

- przewidywanie działań ludzi;

- szacowanie przyszłej wartości, co jest szczególnie ważne w przypadku nieruchomości lub inwestycji finansowych;

- znajdowanie profili ludzi lub rzeczy, którymi badacze są szczególnie zainteresowani;

- segmentowanie populacji, by podzielić ja na grupy zależne od pewnych właściwości lub upodobań;

- odkrycie rodzących się zjawisk, które w przyszłości mogą stać się trendem;

- znajdowanie fraudów lub innych zdarzeń rzadkich;

- określanie punktów skupienia zbioru, takich jak wspólne koszyki zakupów.

Źródłem informacji może być baza danych, ale coraz większe znaczenie mają dane niestrukturalne, takie jak: dokumenty, nagrania wideo lub zapisy z sieci społecznościowych. Dane niestrukturalne można przetworzyć na zewnątrz w specjalizowanym, zrównoleglonym środowisku, np. Apache Hadoop, skorzystać z narzędzi dostarczanych przez język matematyczny R, a następnie połączyć przygotowany strumień informacji z danymi strukturalnymi pochodzącymi z baz relacyjnych. Po zebraniu kompletu danych z różnych źródeł można dokonać analizy, a następnie wyciągać wnioski, jednocześnie ulepszając model. Dzięki szybkości rozwiązań komputerowych przygotowanie i przeliczenie modelu określającego punkty skupienia na petabajtowym zbiorze nie przekracza godziny, a niektóre modele uruchomione na mocnych klastrach serwerów działają w czasie rzeczywistym.

Poszukiwany, poszukiwana

Przykładem badań, do których często stosuje się analitykę biznesową, jest podział populacji wszystkich klientów na podzbiory. Umożliwia to modelowanie zachowań ludzkich i wydzielenie klientów, którzy są lojalni, i tych, którzy są bardzo podatni na zmianę usługodawcy. Badania mogą dotyczyć telefonii komórkowej, w której operatorzy dzielą klientów na lojalnych oraz tych, którzy chętnie zmieniają sieć. Gdyby przykładowy rozkład lojalnych klientów umieścić na wykresie, określając zależność od dochodów miesięcznych klienta i jego stażu w sieci, nie dałoby się go aproksymować żadną krzywą (przybliżać jednej wartości za pomocą innych).

Podobne zjawiska wymykają się szacunkom dokonanym za pomocą krzywych wielomianowych czy wykładniczych, zatem najlepszym podejściem byłoby wydzielenie podzbiorów. Tak też się dzieje, dzięki czemu prawdopodobieństwo, że według modelu użytkownik będzie miał oczekiwane cechy w zależności od przychodów i stażu w sieci jest znacznie większe niż przy prostej aproksymacji. Jeśli model został zaprojektowany i wyliczony poprawnie, to przygotowane oferty będą miały wielokrotnie wyższą skuteczność dla grupy docelowej od ofert ogólnych, adresowanych do wszystkich. Przykładem oferty, która wykazała swoją skuteczność w praktyce, mimo adresowania do pewnej niszy użytkowników, były taryfy no limit w polskich sieciach komórkowych (pierwszą była sieć Play). W USA klasycznym przykładem są kontrakty utrzymaniowe w sieciach Verizon i AT&T.

Poszukiwanie nieznanego

Znacznie trudniejsze jest wyszukiwanie nadużyć, gdyż są to rzadko spotykane zdarzenia, które przynoszą poważne straty firmie. Ponieważ początkowo nie ma żadnego celu, do którego należałoby w trakcie analizy dążyć, skutecznym sposobem jest analiza retrospektywna, przeprowadzana na podstawie zdarzeń, które już wystąpiły. Najprostszym sposobem wykrycia nadużycia jest opracowanie statystycznego modelu korzystania z usług przez każdego z klientów, a następnie wyszukiwanie zdarzeń, które od tego modelu odbiegają. Jest to pracochłonne zadanie, ale właśnie w ten sposób wiele banków wykrywa kradzieże pieniędzy z kart płatniczych. Jeśli użytkownik karty płatniczej regularnie wypłaca porównywalne kwoty z tego samego bankomatu, kupuje w tych samych sklepach tego samego dnia tygodnia i dwa razy wyjeżdża na urlop w góry, to sporządzenie jego profilu jest proste i każda radykalna rozbieżność w jego zachowaniach może sugerować fraud.

Bardzo pomocna jest geolokalizacja, dzięki której wiadomo, że jeśli w odstępie jednej godziny użyto karty płatniczej w sklepie w Polsce oraz w bankomacie w USA, to przynajmniej jedna z tych transakcji jest fałszywa, gdyż nie można przemieścić się w ciągu godziny na taką odległość. Regułą jest zapisanie rozmieszczenia poszczególnych bankomatów i sklepów w kraju. Dzięki temu wzrasta szansa na wykrycie nielegalnie zrobionej kopii karty płatniczej. Niektóre banki mają też zapisane rozkłady lotów na trasach europejskich i transatlantyckich.

Sekwencje zdarzeń

Niekiedy najbardziej wartościową informację niosą nie tyle same zjawiska, ile ich sekwencje w czasie. Przykładem takiej analizy jest poszukiwanie osób, które: podróżowały z kraju A do kraju B, przebywały w tym kraju dwa dni, następnie udały się do kraju C, gdzie przebywały 30 dni, spotkały się z osobą X, a następnie wypłaciły w oddziale banku 10 tys. USD. Innym przykładem może być wykrywanie podejrzanych transakcji pieniężnych - transferu trzech lub więcej przelewów z jednego konta na nieduże kwoty, a następnie dużego przelewu w czasie krótszym niż 10 dni. Podobne analizy są regularnie wykonywane przez organy ścigania, w celu odnalezienia przestępców.

Nie tylko policja i sektor finansowy może skorzystać z analizy zdarzeń. Gdyby przejrzeć logi z systemów uwierzytelnienia w dużej firmie, można poszukać niepoprawnych zalogowań po zwolnieniu pracownika i deaktywacji jego konta. Należy podnieść alarm, gdy po zdarzeniach "zwolnienie pracownika" lub "odwołanie uprawnień" wystąpi "próba zalogowania" lub "zalogowanie", ale między nimi nie będzie zdarzeń "nadanie uprawnień" lub "utworzenie użytkownika".

Ciekawym zadaniem jest analiza połączeń telefonicznych, by wykryć problemy z nawiązywaniem sesji i odnaleźć zerwane połączenia. Zdarzeniem, które należy analizować, jest zakończenie połączenia i następnie nawiązanie nowego do tego samego abonenta w ciągu 60 sekund. W ten sposób można określić średni czas połączenia, liczbę restartów sesji, średnią długość całej rozmowy, obszar przywołań, a także informacje, które mogą pomóc działowi odpowiedzialnemu za zasięg sieci radiowej. Ponieważ abonenci nie lubią zrywania połączeń, operator może być zainteresowany znalezieniem miejsc i charakterystycznych zdarzeń, które towarzyszą takim zjawiskom. Mając takie informacje, można rozważać podjęcie działań zaradczych, takich jak dostawienie stacji bazowej lub rekonfiguracja sieci na danym obszarze.

Dla portali internetowych cenne są raporty dotyczące czasu, jaki użytkownicy spędzają na stronie. Wyodrębnienie sesji tworzonych przez odwiedzanie stron z kliknięciami częstszymi niż co 10 sekund umożliwia określenie nie tylko informacji o kolejności odwiedzin, ale także o upodobaniach internautów, co przyczynia się do poprawy jakości serwisów internetowych. Do takich poszukiwań warto użyć opcji MATCH_RECOGNIZE, która będzie obecna w bazie Oracle 12c i stanie się niebawem standardem SQL. Nad tym standardem pracują intensywnie Oracle i IBM.

Tekst powstał na podstawie sesji "Analyze this! Analytical power in SQL, more than you dreamed of" oraz "Finding gold in your data warehouse" zaprezentowanych na konferencji Oracle OpenWorld 2012.

Dlaczego w Singapurze trudno o taksówkę, gdy pada deszcz

W życiu codziennym ludzie nie zdają sobie sprawy, jak ważne informacje można uzyskać przez analizę dużych zbiorów danych. Przykładem zastosowań praktycznych była analiza usług taksówkarskich w Singapurze. Informacja od turystów, którzy nie mogli podczas deszczu zamówić taksówki, była na tyle niepokojąca, że poddano analizie 830 mln zapisów tras z nawigacji w 16 tys. taksówek, a także informacje z satelitów pogodowych i wiele wyników innych pomiarów. Analiza ruchu ulicznego wskazała, że taksówkarze zatrzymywali się, gdy zaczyna padać deszcz i do zakończenia opadów nie przyjmowali nowych zleceń. Dogłębna analiza udowodniła, że przyczyną takiego postępowania był proceder potrącania 1000 dolarów singapurskich (ok. 800 USD) z pensji kierowcy w przypadku kolizji do czasu ustalenia, kto jest jej sprawcą. Ponieważ czas ten może liczyć się w miesiącach, taksówkarze uważają, że ryzyko związane z utratą części wynagrodzenia nie jest warte kilku dodatkowych kursów w deszcz.

Metody analityki biznesowej umożliwiają wyodrębnienie z grupy klientów najbardziej lojalnych użytkowników oraz tych, którzy bez wahania skorzystają z konkurencyjnych ofert.

Metody analityki biznesowej umożliwiają wyodrębnienie z grupy klientów najbardziej lojalnych użytkowników oraz tych, którzy bez wahania skorzystają z konkurencyjnych ofert.