Wpisy

Mądre maszyny – narzędzia marketingu

Pamiętacie jeszcze o Big Data? Na pewno pamiętacie, trudno o tym obecnie zapomnieć. jeśli komuś się przydarzyła jednak informacyjna luka – polecam moje wyjaśnienia dotyczące tych niewyobrażalnych ilości danych, które bez przerwy pojawiają się w Internecie oraz tego, co można z nimi zrobić.

Big Data operuje na dużej ilości danych o różnej wartości – często niezwykle interesujących dla marketerów jako źródło wiedzy na temat klientów. Jak jednak wykorzystać tę wiedzę, jak ją zanalizować w czasie rzeczywistym, czyli tak, by mieć gotową odpowiedź, gdy tylko pojawi się zapytanie czy wyrażona aktywnością internetową potrzeba klienta? Człowiek jest tu zupełnie bezradny – w przeciwieństwie do maszyn, które bezustannie się uczą. Maszyny uczące się, czyli machine learning, to temat mojego ostatniego postu. Dziś zamierzam przybliżyć Wam zastosowanie uczenia maszynowego w marketingu.

Wbrew pozorom, mądrzejsze maszyny nie przełożą się — przynajmniej w najbliższym czasie – na redukcję pracowników „ludzkich”. Ucząca się maszyna – tak jak każda inna – przeglądów, doskonalenia i obsługi – osiągnięcie spektakularnych efektów jest możliwe po zintegrowaniu odpowiednich procesów, ludzi, treści, danych i informacji. Natychmiastowe korzyści wypływające z automatyzacji marketingu wyraźnie polepszają wydajność, elastyczność i kreatywność w obrębie całej firmy.

Co nam daje maszyna, która bezustannie zbiera i analizuje dane?

Dzięki takiemu rozwiązaniu szybciej, sprawniej i skuteczniej poznajemy klientów. Dowiadujemy się, kto i w jaki sposób do nas trafił, jak korzysta z serwisu i na jakiej płaszczyźnie można/należy zoptymalizować kampanie marketingowe.  Wyniki pracy maszyny pozwalają zbudować strategię i nawiązać kontakt z klientem, wtedy, kiedy on tego rzeczywiście potrzebuje i oczekuje.  Paradoksalnie, udział maszyny w komunikacji z klientem pozwala na budowę osobistej relacji – często przecież podstawą kontaktu są dane wrażliwe, które potencjalny klient ujawnia w sieci.

Wykorzystanie wiedzy maszyn pozwala maksymalne sprzężenie działań wszystkich działów firmy (z naciskiem na sprzedaż) i podniesienie efektów. innowacyjność, kreatywność, komunikatywność, umiejętność szybkiego przyswajania wiedzy, zdolności analityczne – brzmi jak opis idealnego pracownika? Dodajemy do tej wyliczanki „niskie koszty eksploatacji” i już wiemy, dlaczego maszyny uczące są ważnym elementem zespołu. „Kreatywność” może budzić pewne wątpliwości – w końcu omawiamy zalety maszyny. Pamiętać należy, że odpowiednia aplikacja czy oprogramowanie to coś w rodzaju pracownika działu. Jeśli aplikacja zajmuje się przewidywalnymi, powtarzalnymi zadaniami – na przykład przypomina klientom o terminach spotkań, pozostali, żywi członkowie załogi mają czas na obowiązki wymagające większej elastyczności, pomysłowości, natchnienia. Wkład maszyny w pracę działu marketingu najlepiej jest rozpatrywać właśnie przez pryzmat jej wkładu w funkcjonowanie całej komórki, czy nawet firmy.

Warto zwrócić uwagę na kilka narzędzi marketingu, które ułatwiają działania marketingowe i wykorzystują do tego machine learning:

SAS – środowisko stworzone przez SAS Institute. Nazwa pochodzi od angielskiego Statistical Analysis System.

Funkcjonalność obejmuje m.in.:

  • import i przetwarzanie danych, wyszukiwanie informacji, zarządzanie danymi oraz eksploracja danych,
  • generowanie raportów i grafiki,
  • analizę statystyczną,
  • niezależność od platformy systemowej, możliwość prowadzenia zdalnych obliczeń.

SAS jako środowisko programistyczne umożliwia programowanie w różnych językach, w zależności od potrzeb:

  • SAS 4GL – najpopularniejszy język w środowisku SAS
  • SQL – język zapytań do baz danych
  • SCL (Screen Control Language) – budowa aplikacji okienkowych w środowiskach graficznych, np. Windows, XWindow
  • makra
  • możliwość integracji z językami C, COBOL, FORTRAN, PL/I, IBM assembler

IBM Predictive Customer Intelligence personalizuje kontakt z klientem, przedstawiając rekomendacje oparte na zachowaniach zakupowych, aktywności internetowej (w tym społecznościowej) oraz innych czynnikach unikalnych dla konkretnego użytkownika. Zasada działania jest prosta: programowanie w sposób zautomatyzowany zbiera informacje z różnych źródeł wewnętrznych i zewnętrznych oraz modeluje zachowania klientów. Następnie przeprowadza ocenę alternatywnych możliwości i proponuje najlepsze działanie, jakie można podjąć na danym etapie interakcji z klientem — tak, aby proponować trafne oferty właściwym klientom w najlepszym do tego czasie.

IBM Predictive Customer Intelligence realizuje następujące funkcje:

  • Analizy predykcyjne, które pomagają w przewidywaniu zachowań poszczególnych klientów.
  • Zarządzanie procesami decyzyjnymi mające na celu przekształcenie oceny modelu predykcyjnego w rekomendację działania.
  • Oceny w czasie rzeczywistym pozwalające generować i aktualizować prognozy na żądanie.
  • Optymalizacja uwzględniająca więcej niż jedną kampanię z myślą o podejmowaniu jak najkorzystniejszych decyzji dotyczących poszczególnych klientów.
  • Segmentacja klientów w oparciu o wartość w całym okresie trwania relacji — służąca klasyfikacji i zatrzymywaniu klientów.

RapidMiner dostarcza oprogramowanie, rozwiązania i usługi w dziedzinie zaawansowanych analiz, w tym analiz predykcyjnych, data mining i text mining. Pozwala automatycznie i inteligentnie analizować dane – w tym baz danych i tekstu – na dużą skalę. Nasza technologia pozwala firmom na wykonanie przy użyciu inteligentnych decyzji biznesowych oraz działań opartych na metodzie prognozowania. Flagowym produktem jest RapidMiner 4.0, najczęściej stosowana do zaawansowanej analityki platforma na rynku. Setki tysięcy aplikacji są już używane w ponad 50 krajach, zarówno jako samodzielne aplikacje, jak i silniki zintegrowane z własnymi produktami klientów; daje to silną przewagę konkurencyjną. Trudno nie wierzyć w to rozwiązanie, skoro wiemy, że zaufały mu firmy takie jak: EADS GfK, Lufthansa, PayPal, Pepsi, Sanofi, Siemens, Telenor i Volkswagen.

STATISTICA – zintegrowany pakiet oprogramowania statystycznego i analitycznego wydany przez firmę StatSoft. STATISTICA daje szeroki wybór procedur analizy i zarządzania danymi, zapewnia także wizualizację wyników analizy oraz generowanie raportów.

  • 1991. Pierwsza, DOSowa wersja programu STATISTICA. Nowa, zorientowana graficznie linia programów statystycznych została wydana w marcu 1991.
  • 1992. Wersja programu STATISTICA dla komputerów Macintosh
  • 1993. Wersja programu STATISTICA dla systemu Microsoft Windows
  • 1994-1998. Program STATISTICA w wersjach – 4.0, 4.5, 5.0, 5.1 oraz wydania ’97 i ’98
  • 2001. Nowa generacja pakietu STATISTICA. Wydanie wersji 6 programu STATISTICA opiera się na architekturze COM i korzysta z nowych technologii, takich jak wielowątkowość i wsparcie dla przetwarzania współbieżnego.
  • 2002-2004. Wprowadzanie rozwiązań wykorzystujących rozproszone realizowanie zadań oraz rozwiązań bazujących na interfejsie przez WWW.

Cztery narzędzia marketingu  – to tylko dobry początek. W tej dziedzinie wiele się dzieje, jeszcze więcej będzie się działo z czasem. Obserwujemy:)

Machine learning – samodoskonalenie z problemami

Oglądaliście film „Ona” („Her„) Spike’a Jonza? Jeśli nie – polecam. Fascynująca historia miłości człowieka i systemu komputerowego mówiącego głosem Scarlett Johansson. Wzruszający zapis rozwoju maszyny, która uczy się bycia człowiekiem w najbardziej ludzkim obszarze – uczuć i emocji. Brzmi jak science-fiction w opcji romantycznej, trąca rojeniami na temat sztucznej inteligencji, które rozgrzewały wyobraźnię w latach 90? Trochę na pewno, jednak pamiętać należy, że maszyny uczące się (czy uczenie maszyn – machine learning) to nie jest już tylko filmowa fikcja. Od lat 90. zmieniło się sporo.  Skoro o filmach mowa – faktów poszukać można w „Najmądrzejszej maszynie na świecie” – dokumentalnym wprowadzeniu w świat maszyn, które mogą być mądrzejsze niż ludzie.

Machine learning to stosunkowo młoda dziedzina interdyscyplinarna zajmująca się sztuczną inteligencją. Interdyscyplinarność oznacza tu styk robotyki, informatyki i statystyki. Głównym jej celem jest stworzenie automatycznego systemu potrafiącego doskonalić się przy pomocy gromadzonego doświadczenia (czyli danych) i nabywania na tej podstawie nowej wiedzy, czyli ciągły rozwój wynikający z nieustannego przetwarzania informacji i wyciągania z nich wniosków.

Uczenie maszynowe dotyczy głównie ewoucji oprogramowania stosowanego zwłaszcza w innowacyjnych technologiach i przemyśle. Odpowiednie algorytmy mają pozwolić oprogramowaniu na zautomatyzowanie procesu pozyskiwania i analizy danych do ulepszania i rozwoju własnego systemu. Uczenie się może być rozpatrywane jako konkretyzacja algorytmu, czyli dobór parametrów, nazywanych wiedzą lub umiejętnością. Służy do tego wiele typów metod pozyskiwania oraz reprezentowania wiedzy. Jeśli słysząc „algorytm” natychmiast myślicie „Google” to macie rację – kolejne, coraz bardziej zaawansowane algorytmy tej wyszukiwarki to po prostu kolejne etapy rozwoju wynikającego z odpowiedniego zastosowania zgromadzonej wiedzy.

Jakie może mieć to zastosowanie? Coraz mądrzejsze maszyny to większa efektywność, wydajność i bezawaryjność oraz redukcja kosztów. Czyli warto.

machine learning

W ogólnym schemacie uczenia się mamy do czynienia z systemem uczącym się i środowiskiem, w którym system musi się dynamicznie dostosowywać do zmieniających się warunków (np. systemy sterowania). Nie da się w tych warunkach uniknąć problemów, które są złożone i trudne do opisu. Często nie ma wystarczających modeli teoretycznych albo ich uzyskanie  jest zbyt kosztowne czy mało wiarygodne.

Uczenie maszynowe przynieść ma konkretne skutki:

  • tworzenie nowych pojęć
  • wykrywanie nieznanych prawidłowości w danych
  • formułowanie reguł decyzyjnych
  • przyswajanie nowych pojęć i struktur przy pomocy uogólnienia i analogii
  • modyfikowanie, uogólnianie i precyzowanie danych
  • zdobywanie wiedzy poprzez interakcję z otoczeniem
  • formułowanie wiedzy zrozumiałej dla człowieka

W praktyce oznacza to rozwiązania takie jak:

  • oprogramowanie do rozpoznawania mowy:
    • automatyczne tłumaczenie
    • rozpoznawanie mowy ludzkiej
    • dyktowanie komputerowi
    • interfejsy użytkownika sterowane głosem
    • automatyzacja głosem czynności domowych
    • interaktywne biura obsługi
    • rozwój robotów
  • automatyczna nawigacja i sterowanie:
    • kierowanie pojazdem (ALVINN)
    • odnajdywanie drogi w nieznanym środowisku
    • kierowanie statkiem kosmicznym (NASA Remote Agent)
    • automatyzacja systemów produkcji i wydobycia (przemysł, górnictwo)
  • analiza i klasyfikacja danych:
    • systematyka obiektów astronomicznych (NASA Sky Survey)
    • rozpoznawanie chorób na podstawie symptomów
    • modelowanie i rozwijanie terapii lekowych
    • rozpoznawania pisma na podstawie przykładów
    • klasyfikowanie danych do grup tematycznych wg kryteriów
    • aproksymacja nieznanej funkcji na podstawie próbek
    • ustalanie zależności funkcyjnych w danych
    • przewidywanie trendów na rynkach finansowych na podstawie danych mikro i makro ekonomicznych

Jeszcze bardziej praktycznie? Przywołajmy Cleverbota.

Cleverbot to aplikacja internetowa, która rozmawia z ludźmi. Chatbota stworzył Rollo Carpenter (razem z podobną aplikacją internetową, Jabberwacky). Wraz ze współpracownikami odbył z nim kilkanaście tysięcy rozmów w pierwszej dekadzie jego działania. Od momentu udostępnienia w Internecie w 1997 liczba rozmów przekroczyła 150 milionów. Cleverbot jest też obecnie aplikacją dostępną za 0,99 USD. Inaczej niż w przypadku innych chatbotów, odpowiedzi Cleverbota nie są zaprogramowane. Zamiast tego „uczy się” on na podstawie danych uzyskanych od ludzi, którzy piszą w polu pod logiem Cleverbota, a system znajduje słowa kluczowe lub całe frazy pasujące do danych wejściowych. Po przeszukaniu zebranych rozmów udziela odpowiedzi opartej o to, co ludzie odpowiedzieli na tę treść, kiedy to Cleverbot ją napisał. Cleverbot brał udział w formalnym teście Turinga w czasie festiwalu Techniche w Indian Institute of Technology Guwahati 3 sierpnia 2011. Na podstawie 334 głosów został uznany za ludzkiego w 59,3% (ludzie uzyskali w tym teście 63.3%). Wynik 50.05% lub więcej jest często uznawany za zaliczenie testu. Oprogramowanie obsługiwało w czasie testu tylko 1 lub 2 jednoczesne pytania, a w internecie Cleverbot rozmawia z 10 000 ludzi na raz.

Za mało przykładów? ASIMO, czyli Zaawansowany Postęp w Innowacyjnej Mobilności to humanoidalny robot pokazany światu 31 października 2000 roku. Stworzyła go Honda i wbrew powszechnemu mniemaniu, nie uczciła (podobno) nazwą pisarza science fiction Isaaca Asimova. ASIMO jest jedenastym udanym modelem dwunożnego robota. Uważany jest za jeden z najbardziej rozwiniętych technicznie chodzących robotów na świecie. Projekt rozwijał się od roku 1986, kiedy to stworzono pierwszy model E0. ASIMO może chodzić do przodu, do tyłu, w bok, biegać, omijać przeszkody, zawracać i wchodzić w interakcję z otoczeniem. Celem producenta jest stworzenie robota, który będzie pomocny w codziennym życiu człowieka.

Tak wygląda ten przystojniaczek. Czy scenariusz „Her” wciąż wydaje Wam się nierealny?

robo

Jak uczy się maszyna? Uczenie maszynowe i jego powodzenie zależą od wyboru odpowiedniej metody formułującej problem, zbioru uczącego (czyli doświadczeń) oraz sposobu uczenia się nowych pojęć.

Metody maszynowego uczenia się:

  • wnioskowanie wartości funkcji logicznej z przykładów
  • uczenie drzew decyzyjnych (ang. Decision Tree Learning) – drzewo decyzyjne to graficzna metoda wspomagania procesu decyzyjnego, stosowana w teorii decyzji. Algorytm drzew decyzyjnych jest również stosowany w uczeniu maszynowym do pozyskiwania wiedzy na podstawie przykładów. Jest to schemat o strukturze drzewa decyzji i ich możliwych konsekwencji. Zadaniem drzew decyzyjnych może być zarówno stworzenie planu, jak i rozwiązanie problemu decyzyjnego. Metoda drzew decyzyjnych jest szczególnie przydatna w problemach decyzyjnych z licznymi, rozgałęziającymi się wariantami
  • uczenie Bayesowskie (ang. Bayesian Learning) – metody oparte na twierdzeniu sformułowanym przez XVIII-wiecznego matematyka Thomasa Bayesa odgrywają znaczną i ostatnio rosnącą rolę w dziedzinie sztucznej inteligencji, zwłaszcza w uczeniu się maszyn. Można ogólnie powiedzieć, że wzór Bayesa stał się podstawą do rozwoju teorii i algorytmów różnych form wnioskowania probabilistycznego.
  • uczenie z przykładów (ang. Instance-based Learning) – w odróżnieniu od metod uczenia, które konstruują ogólny, tzw. jawny opis funkcji docelowej, który dostarcza dane uczące, uczenie tego typu po prostu zapamiętuje przykłady. Uogólnianie nad tymi przykładami jest odwlekane do czasu, aż nowy przykład (zadanie) ma być klasyfikowane. Za każdym razem, kiedy przychodzi nowe zapytanie (przykład), badane są jego powiązania z zapamiętanymi już przykładami, aby ustalić wartość docelowej funkcji nowego przykładu.
  • uczenie się zbioru reguł (ang. Learning Sets of Rules) – zbiór reguł w postaci klauzul Hornowskich może być interpretowany jako program w np. języku Prolog
  • analityczne uczenie (ang. Analytical Learning) – metody uczenia indukcyjnego (wykorzystują sieci neuronowe, drzewa decyzyjne), wymagają pewnej liczby przykładów aby osiągnąć pewien poziom uogólnienia. Analityczne uczenie stosuje wiedzę aprioryczną i wnioskowanie dedukcyjne do powiększania informacji dostarczanej przez przykłady uczące.
  • połączenie indukcyjnego i analitycznego uczenia (ang. Combining Inductive and Analytical Learning) – czyste indukcyjne uczenie formułuje ogólne hipotezy poprzez znalezienie empirycznych regularności w przykładach uczących. Natomiast czyste analityczne uczenie stosuje aprioryczną wiedzę do otrzymania ogólnych hipotez dedukcyjnie. Połączenie obu podejść daje korzyści: lepszą poprawność i trafność uogólniania gdy dostępna jest wiedza aprioryczna oraz szukanie zależności w obserwowanych danych uczących do wypracowania szybkiej wiedzy apriorycznej.
  • uczenie przez wzmacnianie (ang. Reinforcement Learning) – uczenie przez wzmacnianie to metoda wyznaczania optymalnej polityki sterowania przez agenta w nieznanym mu środowisku, na podstawie interakcji z tym środowiskiem. Jedyną informacją, na której agent się opiera jest sygnał wzmocnienia (poprzez wzorowanie się na pojęciu wzmocnienia z nauk behawioralnych w psychologii), który osiąga wysoką wartość (nagrodę), gdy agent podejmuje poprawne decyzje lub niską (karę) gdy podejmuje decyzje błędnie.

Wszystko to brzmi dobrze, ale problemów nie brakuje i jak na razie są one poważne:

Poza etapem tworzenia systemu powstają następujące problemy:

  • zbyt mała lub zbyt duża zależność systemu od środowiska, w którym się znajduje co może prowadzić do niepełnej analizy danych lub błędnej interpretacji
  • wiarygodność i poprawność generowanych wniosków, według Poppera „wiedza zdobyta w wyniku obserwacji ma charakter jedynie domyślny”, a rozumowanie indukcyjne nie może być w pełni udowodnione, a jedynie sfalsyfikowane
  • niekompletne lub częściowo sprzeczne dane
  • niezdefiniowanie ograniczeń dziedzinowych, może prowadzić do zbyt daleko idących uogólnień i błędnych wniosków

W związku z powyższymi problemami przyjęto następujące postulaty, które wiedza generowana przez systemy powinna spełniać:

  • wiedza generowana przez system powinna podlegać kontroli i ocenie człowieka, według podanych przez niego kryteriów
  • system powinien być zdolny do udzielenia wyjaśnienia w przypadku problemu
  • wiedza powinna być zrozumiała dla człowieka, czyli wyrażalna w opisie i modelu myślowym przez niego przyjętym

Jaki etap rozwoju – wbrew tym problemom – osiągnęło uczenie maszynowe i w jaki sposób znajduje ono zastosowanie w marketingu? O tym już w następnym odcinku:)