Naturalni sojusznicy

Poniższy wpis jest rozwinięciem tematu prelekcji “Jak połączyć usługi kognitywne z RPA (w kontekście własnych modeli i jakości danych)?”, która odbyła się na konferencji Rakieta2018 zorganizowanej przez Zakład Zarządzania Informatyką funkcjonujący w ramach Instytutu Informatyki i Gospodarczej Cyfrowej SGH, kierowanego przez prof. SGH dr. hab. Andrzeja Sobczaka. 

Prezentacja dostępna jest na serwisie robonomika.pl 

 

Potrzeba  

Jeśliby zapytać Data Scientist’a z czym kojarzy mu się niska jakość danych, to zapewne w pierwszej kolejności wymieniłby braki w danych, duplikaty czy przypadłości, które ewidentnie utrudniają jego prace, jak np. niezbalansowany zbiór danych. Natomiast gdyby zapytać o to specjalistę od Business Intelligence (BI) to z jednej strony odniósłby się do ogólnej definicji wymiaru Jakości Danych (ang. Data Quality Dimension) opracowanej przez DAMA: 

“A Data Quality (DQ) Dimension is a recognised term used by data management professionals to describe a feature* of data that can be measured or assessed against defined standards in order to determine the quality of data.” 

 a z drugiej wskazał sześć podstawowych wymiarów: 

  • Kompletność  (ang. Completeness) 
  • Unikalność  (ang. Uniqueness) 
  • Aktualność (ang. Timeliness) 
  • Ważność  (ang.Validity) 
  • Dokładność (ang. Accuracy) 
  • Spójność (ang. Consistency) 

Coraz bardziej uzasadnione staje się pytanie – jak odnieść do siebie powyższe spojrzenia i czy ich synteza jest możliwa. Warto też zwrócić uwagę, że w dyscyplinie Data Science jakość danych staje się coraz częściej dyskutowanym tematem (np. „If Your Data Is Bad, Your Machine Learning Tools Are Useless”).

Celem tego artykułu jest próba zbudowania pomostu między klasycznym podejściem do jakości danych a wyzwaniami jakości stojącymi przed Data Science. We wstępie warto się jeszcze odnieść do dość szeroko rozumianego pojęcia „Data Science” (por. „Is it just me, or is „data science” the worst name for a field ever?”), którego definicja może brzmieć następująco: 

„Interdyscyplinarna dziedzina, w której wykorzystywane są naukowe metody, procesy, algorytmy i systemy do wydobywania wiedzy i spostrzeżeń z danych w różnych formach, zarówno ustrukturyzowanych, jak i pozbawionych struktury.”

Wydaje się, iż nieco łatwiej można zrozumieć to pojęcie z perspektywy procesowej. Dla celów realizacji projektów z obszaru „Data Science”, w Promity stosujemy powszechnie znany proces CRISP-DM:

 

Cechą charakterystyczną rzeczywistych projektów z obszaru „Data Science” jest, iż tak lubiane “Modelowanie” czyli trenowanie modeli, ich ewaluacja, czy wytwarzanie „dobrych cech” (ang. Feature Engineering), stanowią tylko małą część pracy Data Scientist’a.

O ile trudno w sposób zwarty wyjaśnić pojęcie Data Science, o tyle o Wysokiej Jakości Danych możemy powiedzieć:

Wysoka Jakość Danych oznacza, że dane te pozwalają na osiągnięcie założonego celu

 

Z tym stwierdzeniem zgodzi się zarówno ekspert Business Intelligence, jak i Data Scientist, choć zapewne będą mieli zgoła odmienne cele. Za deseczki pomostu między jakością danych a Data Science obrałem wcześniej wspomniane sześć wymiarów Jakości Danych, próbując ukazać je również w świetle uczenia maszynowego (ang. Machine Learning) i głębokiego uczenia (ang. Deep Learning).

 

Kompletność

Kompletność nie wymaga tłumaczenia – mamy luki w danych. W konsekwencji powyższego Data Scientist będzie zmuszony uzupełnić brakujące wartości medianą czy też najczęściej występującą kategorią, zastosować modele regresyjne, bądź też po prostu wyrzucić rekord. Specjalista BI po przeprowadzeniu profilowania danych (ang. data profiling) może stwierdzić, że zbiór jest kompletny w 86%, czyli np. poniżej określonej wcześniej wartości dla miary wynoszącej 90%, i odrzucić dane jako niespełniające kryteriów danego celu. Kompletność może też mieć szersze zastosowanie do danych nieustrukturyzowanych, a wobec tego możemy przejść do zagadnienia głębokiego uczenia. Przykładowo, jedną z trudności jakiej muszą sprostać inżynierowie budujący systemy rozpoznawania twarzy są jej zasłonięcia, a to jest w istocie problem kompletności. Co więcej sposoby radzenia sobie z częścią problemów przypominają wcześniej wspomniane techniki Data Science – tak jak medianą można zastępować brakujące wartości, tak filtry medianowe mogą posłużyć do poprawy jakości zdjęcia:

Jakość danych zawsze rozpatrujemy w kontekście celu, tak jest również w przypadku rozwiązań kognitywnych. W zależności od specyfiki zdjęcie może zostać uznane za niewystarczające (i wtedy np. wyrzucone) lub przeciwnie – być cennym obiektem.

Można sobie wyobrazić zarówno system rozpoznawania wieku, składający się z kilku sieci neuronowych, każda od innego “fragmentu twarzy”, gdzie powyższe zdjęcie okaże się wystarczające, jak i system wymagający przedstawienia całej twarzy, który w oparciu o wspomnianą wcześniej fotografię nie będzie działał prawidłowo.

 

Unikalność

Zmorą specjalistów BI są duplikaty, czyli posiadanie rekordów dotyczących tego samego np. Bartka Jana Kowalskiego, B.J. Kowalskiego czy Bartosza Kowalskiego. Taka sytuacja jest szczególnie dotkliwa podczas integracji danych z różnych systemów.

W przypadku uczenia maszynowego i głębokiego uczenia unikalność jest najbardziej krytyczna w kontekście zbiorów trenujących i testujących.

Jeśli te same zdjęcia trafią zarówno do zbioru, na którym model się uczy, jak i do zbioru, na którym przeprowadzamy test, to taka ewaluacja przestaje być wiarygodna i nie otrzymujemy zwrotnej informacji jak sprawuje się nasz model.

Z drugiej strony, jeśli podczas samego trenowania mamy kilkaset duplikatów na kilkaset tysięcy przykładów, to statystycznie przestaje to być istotne – w sieciach neuronowych możemy intencjonalnie duplikować dane, by nadać im wyższą wagę podczas trenowania, choć oczywiście bardziej wskazana byłaby nieco “rozsądniejsza” augmentacja. Na poniższym rysunku przedstawiono augmentację twarzy:

Możemy też rozumieć unikalność inaczej, odrobinę rozszerzając to pojęcie.

W uczeniu maszynowym i głębokim uczeniu zależy nam na zróżnicowaniu danych. Przykładowo, zdjęcia Nicolasa Cage’a mogą nie być najlepszym źródłem danych do tworzenia systemu rozpoznawania emocji, zważywszy na to, że potrzebujemy jak największego “rozrzutu” ekspresji.

 

Niemniej, tak jak w przypadku każdego zagadnienia dotyczącego jakości danych, ważny jest cel, a naszym może być nie rozpoznawanie emocji, lecz wieku – wtedy, biorąc pod uwagę, że Nicolas Cage urodził się w 1964 roku, jego zdjęcia mogą okazać się bardzo wartościowe.

 

Aktualność

Aktualność danych jest niezwykle trudna do utrzymania w rzeczywistych rozwiązaniach np. z uwagi na niechęć klientów do aktualizacji danych. Na bazie przykładu dotyczącego rozpoznawania wieku możemy sobie wyobrazić zdjęcia młodego aktora, którego adnotacja wieku zostanie “przeniesiona” na zdjęcie, które w systemie pojawi się wiele lat później, i tym samym wyrządzi szkody.

Sytuacja dotyczy również, a może zwłaszcza, przetwarzania języka naturalnego (ang. natural language processing). Gdy starsza osoba mówi “koń by się uśmiał”, to jej wnuczek to samo może określić skrótem “LOL”, czy “XD” . Język jest żywy i modele językowe muszą to odzwierciedlać – należy zadbać o aktualność.

 

 

 

 

Na aktualności zakończę niniejszy wpis, w którym dokonałem próby odniesienia pierwszych 3 wymiarów jakości danych na szeroko rozumianą dyscyplinę Data Science. W następnym poście dokończę omawianie wymiarów, ze szczególnym naciskiem na dokładność. Spróbuję również odpowiedzieć na pytanie czy klasyczne wymiary jakości danych są wystarczające w kontekście uczenia maszynowego i głębokiego uczenia.