Na wstępie proponuję szybki eksperyment myślowy. Zastanówmy się jakie spostrzeżenia pojawiają się, gdy gdzieś tam z tyłu umysłu majaczy tematem procesów biznesowych… i tutaj chwila na to ćwiczenie… sugeruję nawet zamknąć oczy i skupić się na tym przez kilka sekund… Czy jedną z takich myśli było, że zrozumienie procesów, ich analiza, a finalnie wyciągnięcie wniosków prowadzących do optymalizacji to trudne i czasochłonne zadanie? W moim eksperymencie myślowym pojawiła się taka właśnie refleksja. Może nie dokładnie w tych słowach, ale jednak. To fakt – poprawne opisanie, zebranie danych, analiza procesów – to wszystko potrafi zająć znaczną ilość czasu i zasobów. Co więcej, często z racji złożoności procesów, uchwycenie wszystkich (lub chociaż najważniejszych) ich elementów to wymagające zadanie.
Tutaj process mining stanowi furtkę, przez którą możemy przejść, aby znaleźć się… chciałem napisać „w sekretnym ogrodzie”, ale lepszym słowem będzie „miejsce”. Więc dzięki process mining możemy, przechodząc przez tę furtkę znaleźć się w miejscu, w którym mamy dostęp do natury procesów, ich dokładnego wyglądu, a nawet do ich najgłębiej skrywanych sekretów. Taki wgląd w procesy może czasem odsłonić zaskakujące rzeczy. Dwa główne aspekty, na których chciałem się skupić w tym artykule, to że możemy przedstawić procesy w sposób obiektywny (na podstawie rzeczywistych danych), a jednocześnie możemy to zrobić w dużej części automatycznie. Z pomocą przychodzą nam tutaj algorytmy specyficzne dla process mining, które część tej pracy wykonają za nas. Naszym zadaniem (ewentualnie może to być analityk procesu) jest jak najlepsze ustawienie pokręteł sterujących tymi algorytmami, oraz nałożenie na to wiedzy domenowej.
Jeśli ktoś ma negatywne doświadczenia z pracy z procesami, a niektórzy mogą takie mieć, to rzeczy, które opisałem powyżej mogą się wydawać niemożliwe. Sam, gdy kilka lat temu pierwszy raz zetknąłem się z process mining zastanawiałem się nad jego skutecznością i aplikowalnością. Z początku była to tylko ciekawostka, która wydawała się otwierać kilka nowych drzwi. Aczkolwiek ta myśl o process mining nie dawała mi spokoju. Gdy w końcu zagłębiłem się w ten temat bardziej, stało się dla mnie jasne, że process mining otwiera wiele nowych drzwi, a część z nich kryje naprawdę wartościowe skarby. A co stoi za automatycznym odkrywaniem procesu? Jest kilka rozwiązań analitycznych, które decydują o jego skuteczności i właśnie kilka z nich chciałem omówić poniżej.
Znaczenie sieci Petriego
Modele procesów potrafią mieć złożony charakter, to dość oczywisty fakt. Chociaż jak spojrzy się czasem na diagramy procesu zbudowane z pełnych danych, to często przypominają one spaghetti. Aż takiego skomplikowania, czasem nawet najprostszych procesów, się nie spodziewamy. Ta złożoność dotyczy nie tylko samych zrealizowanych czynności, ale też uchwycenia zależności pomiędzy nimi oraz ich postępowanie po sobie w czasie. Przykładowo, dwie czynności mogą po sobie następować w czasie zawsze, czasami lub nigdy. Zdarzają się przypadki gdy czynności są realizowane jednocześnie, a czasem asynchronicznie bez ustalonej z góry kolejności. Jedną z ważniejszych cech narzędzi do analizy procesów jest możliwość uchwycenia tych informacji i modelowania ich. To właśnie dają nam sieci Petri’ego (Petri Nets), które są jednym z cześciej wykorzystywanych w process mining sposobów reprezentacji kroków w procesie (tzw. notacji).
Czym są więc sieci Petri’ego? Już odpowiadam – jest dosyć szczególny rodzaj grafu, który został zaproponowany w latach 60-tych XX wieku przez niemieckiego matematyka Carla Adama Petriego. Podejście to wywodziło się oryginalnie z tzw. grafów dwudzielnych. Tutaj drobne ostrzeżenie, poniżej trochę matematyki, więc jak ktoś chciałby ominąć to zapraszam do dalszej części.
Sieć Petri’ego to graf dwudzielny, czyli taki który posiada dwa zbiory wierzchołków V1 i V2, dla których krawędzie zawsze łączą wierzchołki rozdzielnych typów. W sieci Petri’ego krawędzie są skierowane, a dwa rodzaje wierzchołków to „Miejsca” (Places) i „Tranzycje” (Transitions).
W najprostszej postaci definicja Sieci Petri’ego to:
PN = (N, M), gdzie:
N = (P, T, F) jest siecią, gdzie P i T to rozłączne skończone zbiory „miejsc” (Places)
i „tranzycji” (Transitions),
a F⊆(P×T)∪(T×P) jest relacją przepływu (Flow)M:P→Z to multizbiór “żetonów” (Tokens) umieszczonych w „miejscach” (Places), gdzie Z jest policzalnym zbiorem. M nazywane jest „Znakowaniem” (Marking)
Sieci Petriego są szeroko wykorzystywane m.in. w Process Mining, m.in. z uwagi na fakt, że odwzorowanie informacji procesowych przy ich pomocy otwiera możliwości analityczne. Istotną rolę pełni koncept „żetonów” (eng. Tokens), które mogą w określony sposób podróżować po sieci. W podstawowej wersji „żetony” reprezentowane są poprzez czarne kropki. Możemy jednak pójść krok dalej i zastosować jedną z rozszerzonych definicji sieci Petri’ego, w których np. „żetonom” możemy przypisywać wartości liczbowe, takie jak np. koszt produktu. W bardziej zaawansowanych przypadkach „żeton” może być nawet modelowany jako osobna sieć Petri’ego. W praktyce, często stosuje się właśnie takie rozszerzone sieci Petri’ego:
- Kolorowane sieci Petri’ego (Coloured Petri Nets)
- Hierarchiczne (Hierarchy Petri Nets)
- Obiektowe (Object Petri Nets)
- Priorytetowe (Prioritised Petri Nets)
- Czasowe (Timed Petri Nets)
n.p. Stochastyczne (Stochastic Petri Nets)
Dzięki wykorzystaniu tego typu reprezentacji modelu procesu nie tylko możemy prześledzić krok po kroku czynności w procesie, aby potem na tej bazie wygenerować interesujące nas zestawienia, ale również zbudować algorytmy i miary do automatycznej analizy, czy też do porównywania jakości różnych wersji modelu procesu. Finalnie możemy sięgnąć też po zaawansowane analizy statystyczne, symulacje i predykcję z wykorzystaniem uczenia maszynowego.
Jak process mining korzysta z danych?
Oczywiście im więcej posiadamy danych, tym lepsze analizy jesteśmy w stanie przeprowadzić. Jednak nie zawsze potrzebujemy olbrzymich ilości informacji. W praktyce, w wersji minimalnej, dla zbudowania modelu procesu za pomocą narzędzi process mining potrzebujemy trzech poniższych informacji:
- Identyfikator przypadku (case id): jest konieczny, aby rozróżnić od siebie dane dotyczące różnych realizacji procesu (traces). W standardzie XES spotkamy się z oznaczeniem “case:concept:name”.
- Identyfikator czasu (timestamp): co dość oczywiste – pozwala poprawnie określić sekwencję kolejnych wydarzeń oraz zmierzyć odstęp czasowy pomiędzy nimi
- Nazwa wydarzenia: pozwala nam przypisać kolejne kroki do faktycznych czynności zrealizowanych w toku procesu. W tym przypadku w standardzie XES spotkamy się z oznaczeniem “concept:name”.
Zestaw danych składający się już z tych trzech kolumn (nazywany w Process Mining dziennikiem zdarzeń ang. Event log) umożliwia nam zbudowanie modelu procesu wraz z jego wizualną reprezentacją. Na to możemy nałożyć czasy pomiędzy poszczególnymi czynnościami oraz ilości wykonań.
Ten podstawowy zestaw danych możemy rozszerzać dokładając kolejne elementy. Przykładowo, możemy dodać informację o czasie początku i końca zdarzenia, o tym kto wykonywał poszczególne czynności lub też dla jakiego klienta były on realizowane. Z tak rozszerzonymi danymi jesteśmy w stanie patrzeć na proces z różnych perspektyw, dodać nowe statystyki, liczyć miary KPI, a tym samym lepiej zrozumieć w jakiś sposób dany proces jest faktycznie wykonywany przez naszych pracowników.
Algorytm Alpha
Jednym z podstawowych algorytmów w process miningu jest algorytm alpha. Pozwala on przekształcić informacje zawartą w danych z dzienników zdarzeń na reprezentację w formie sieci Petriego. W podstawowej wersji składa się on z ośmiu kroków, w wyniku których otrzymujemy grupowanie zdarzeń. Te pięć grup to w rzeczywistości pięć rodzajów relacji pomiędzy elementami procesu. Kluczowym aspektem jest to, że uwzględniają one różny charakter następowania kroków procesu po sobie (zob. grafikę)
Podstawowa wersja alpha algorytmu ma pewne ograniczenia, dlatego w praktyce stosuje się rozszerzone podejścia:
- Alpha+ – ta wersja algorytmu alpha jest w stanie poradzić sobie z tzw. „krótkimi pętlami”, czyli powtórzeniami tego samego zdarzenia w procesie.
- Alpha++ – który pozwala wykryć niejawne zależności między zdarzeniami.
- Alpha# – rozszerza klasyczną wersję algorymu alpha o możliwość wykrywania „niewidzialnych” zdarzeń, czyli takich, które istnieją w procesie, ale nie ma ich w dzienniku zdarzeń. To takie “duchy” w procesie.
Algorytm inductive mining
Kolejnym podejściem pozwalającym na znalezienie modelu procesu m.in. jako sieci Petri’ego jest algorytm inductive miner (IM). Podstawą tego algorytmu są tzw. drzewa procesu. Są one budowane jakby w tle i dopiero potem tłumaczone na sieć Petri’ego lub opisane poniżej diagram bezpośrednich następstw (Directly-follows). Takie podejście, opierające się właśnie na drzewach procesu, gwarantuje m.in., że odkryty model będzie pozbawiony anomalii takich jak blokady czy brak połączeń pomiędzy elementami. W podstawowej wersji składa się z trzech strategii: poszukiwania przypadków bazowych (ang. Base Cases), poszukiwania przecięć (ang. Cuts) i poszukiwanie niezgodnych przejść (ang. Fall-through). Inductive miner podobnie jak podstawowa wersja alpha algorytmu operuje na pełnym zbiorze danych, co oczywiście nie wyklucza filtrowania danych w konkretnych przypadkach.
W praktyce w dziennikach zdarzeń zawsze pojawiają się odchylenia lub zachowania rzadkie, których nie chcemy uwzględniać w finalnym modelu. Tutaj z pomocą przychodzą modyfikacje algorytmu:
- Inductive Miner Infrequent – IMF, która radzi sobie właśnie z odchyleniami i przypadkami rzadkimi poprzez dodanie parametrów odpowiadających za odfiltrowanie tych nazwijmy to anomalii.
- Inductive Miner Incompleteness – IMc, która radzi sobie z niekompletnymi przebiegami procesu poprzez dodanie do strategii prawdopodobieństw relacji pomiędzy zdarzeniami
- Inductive Miner All operators – IMA, która dodaje operatory relacji takie jak opcjonalność (Optionality τ), przeplatanie (Interleaving ↔), włączenie (Inclusive choice ∨)
- Inductive Miner Infrequent All operators – IMFA, łączy cechy algorytmów IMF i IMA
- Inductive Miner – life cycle – IMlc, który operuje na logach zawierających informację o cyklu życia zdarzenia
Jak już pisałem powyżej, w przypadku algorytmu inductive miner oparcie reprezentacji o drzewo procesu pozwala na „tłumaczenie” modelu zarówno na sieci Petri’ego jak, diagram Directly-Follows, czy też diagram BPMN.
Podejście directly follows
W praktyce większość dostępnych na rynku rozwiązań komercyjnych oferuje process mining wykorzystujący podejście directly follows z elementami logiki rozmytej lub uproszczoną wersję algorytmu Inductive Miner. Oznacza to, że algorytm nie odkrywa sieci Petri’ego, ale buduje Graf Bezpośrednich Następstw (Directly Follows Graph). Jak sama nazwa wskazuje dzieje się to w oparciu o regułę następowania po sobie kolejnych kroków. Dodatkowo, aby mieć lepszą kontrolę nad złożonością procesu wykorzystujemy ustawienia poziomu abstrakcji dla zdarzeń i przejść między nimi. Podejście takie jest w niektórych przypadkach wystarczające do przedstawienia wizualnego procesu oraz podstawowych analiz statystycznych. Można powiedzieć, że model procesu jako graf directly follows umożliwia nam zbudowanie tzw. mapy procesu oraz dashboardów przedstawiających ten proces i jego miary KPI.
Directly follows ma też swoje ograniczenia. Trudniej jest w takim podejściu budować miary jakości modelu, nie jesteśmy w stanie uchwycić niektórych zależności modelu takich jak na przykład równoległe lub przeplatające się zdarzenia w procesie.
Jakość modelu procesu
Reprezentacja procesu, czy to za pomocą sieci Petri’ego, notacji BPMN, czy też mapy procesu daje nam konkretne możliwości. Jesteśmy w stanie wykorzystać miary jakości modelu, w analogiczny sposób jak w projektach uczenia maszynowego i AI wykorzystuje się n.p. „Trafność” (Accuracy), czy miarę F-score. Standardowo w Process Mining są to:
- Dopasowanie (Fitness) – stopień w jakim model odzwierciedla zachowania zawarte w danych. Im więcej ścieżek wykonania procesu, które da się przejść również w modelu tym większe dopasowanie.
- Precyzja (Precision) – jest to podobna miara do Dopasowania, z tą różnicą, że uwzględnia karę dla modelu za pozwolenie na zachowania, których nie ma w danych. Innymi słowy, im więcej możliwości symulowania wykonania procesu, które nie odpowiadają danym tym niższa precyzja.
- Generalizacja (Generalization) – w pewnym sensie odwrotność precyzji, czyli na ile model pozwala na zachowania do tej pory nie zaobserwowane w danych, ale cały czas prawdopodobne
- Prostota (Simplicity) – nacisk na czytelność procesu i jak najmniejszą ilość elementów. Pomimo, że często jest to raczej miara “jakościowa”, to przy zastosowaniu odpowiedniego podejścia można się pokusić o jej numeryczną reprezentację.
Najbardziej dostępną miarą jest „Dopasowanie” (Fitness), którą można policzyć praktycznie dla każdego modelu i dziennika zdarzeń. „Precyzja” (Precision) bywa bardziej skomplikowana z uwagi na, to że dodanie już tylko jednej pętli do modelu powoduje, że zbiór możliwych symulacji wykonania procesu staje się praktycznie nieskończony. Tutaj przychodzą nam z pomocą bardziej zaawansowane koncepcje jak „dostosowanie” (Alignement) i „anty-dostosowanie” (Anti-alignement), które pozwalają policzyć miary, właśnie takie jak „Precyzja” (Precision) i „Generalizacja” (Generalization) w bardziej ogólnych przypadkach.
Tak trochę w celu podsumowania napiszę, że zastosowanie numerycznych miar jakości dla modeli procesu to narzędzie do ich obiektywnego porównania i często do udzielenia odpowiedzi na całkiem ważne pytania: który z modeli, biorąc pod uwagę nasze dane, lepiej przedstawia rzeczywistość, a który lepiej pasuje do konkretnej potrzeby biznesowej?
Często się w zespole nad tym zastanawiamy i zawsze dochodzimy do jednego wniosku. W naszej ocenie, obecnie dostępne rozwiązania komercyjne cierpią na brak funkcjonalności związanych z oceną modeli procesu z zastosowaniem chociażby niektórych z przytoczonych powyżej miar.
Podsumowanie
Istnieje więcej niż jedno podejście do realizacji process miningu. Nie wymieniłem też wszystkich z szerokiej gamy algorytmów odkrywania procesów dostępnych w process mining. Skupiłem się na tych, które wydały mi się najważniejsze historycznie i najważniejsze z uwagi aplikowalność. A wracając do ogólnej myśli o process mining, to do wyboru mamy różne narzędzia – mogą to być komercyjne pakiety i platformy, czy oprogramowanie open source, czy też biblioteki w Pythonie lub R. W praktyce wybór podejścia i narzędzi powinien przede wszystkim zależeć od potrzeb i możliwości naszej organizacji. Możemy potrzebować tylko analiz samego procesu, czy to z wykorzystaniem uproszczonego podejścia directly follows, czy bardziej zaawansowanego przy wykorzystaniu sieci Petri’ego i drzew procesu. Możemy potrzebować niewielkiej liczby analiz i np. tylko jego opomiarowania i monitorowania, a możemy chcieć sięgnąć po więcej i realizować symulację wykonania procesu, albo wręcz predykcję z wykorzystanie uczenia maszynowego (w tym też głębokiego uczenia). Z całą pewnością mogę stwierdzić, że process mining otwiera szereg nowych drzwi, które prowadzą do rezultatów, których procesy biznesowe po prostu potrzebują.
Źródła:
- http://www.petrinets.info/docs/pnstd-4.7.1.pdf
- http://www.informatik.uni-hamburg.de/TGI/PetriNets/history/CAPetriAndPetriNets.pdf
- https://pure.tue.nl/ws/files/63890938/20170509_Leemans.pdf
Bardzo możliwe, że ten artykuł podsunął pytania odnośnie narzędzi i analiz process mining. Jeżeli chciałbyś dowiedzieć się więcej skontaktuj się z nami lub przeczytaj inne nasze artykuły:
Czemu wiedza co to process pining okazuje się kluczowa dla biznesu?
Dlaczego warto korzystać z process mining?
Co to jest process mining?
Dojrzałość danych na potrzeby process mining