Co marketer powinien wiedzieć o sieciach neuronowych?

Piotr Golczyk

Łączę marketing z technologią, naukę z intuicją, a pracę z zabawą. Konsultuję rozwiązania. piotr @ golczyk com.

W bardzo prosty sposób o trudnym temacie.

Po co marketerowi znajomość sztucznych sieci neuronowych?

Głównie po to, by był wstanie zrozumieć jak działają mechanizmy, które już lub w najbliższej przyszłości będą go wspomagać zarówno w codziennej pracy jak i strategicznych decyzjach.

Przykłady zastosowania ANN (skrót od Artificial Neural Network) w marketingu aktualnie obejmują między innymi takie obszary jak: segmentację rynku, forecasting, analizę predyktywna czy też personalizacja.

Co cechuje sztuczne sieci neuronowe?

Sieci neuronowe naśladują pracę naszych mózgów. Uczą się, generalizują swoją wiedzę, kojarzą. Dlatego doskonale sprawdzają się w przypadku rozwiązywania złożonych problemów czyli takich jakich w marketingu nie brakuje.

Jak wygląda sieć neuronowa?

Sieć składa sie z neuronów. Neuron zaś to coś co z jednej strony przyjmuje dane przez wejścia, potem mnoży daną z każdego wejścia przez liczbę, którą nazywa się wagą. Sumuje wyniki, a potem wysyła do funkcji, która przetwarza ten wynik na kilka różnych sposobów, na przykład robi tak, że wszystko co powyżej 100 da 1, a wszystko co poniżej 100, da 0. Potem wynik z funkcji, w tym wypadku 1 lub 0 wysyła wyjściem do następnego neuronu.

Neurony są połączone w sieć. Nie jest to jednak na przykład 100 neuronów rozrzuconych w przestrzeni i połączonych losowo. Czyli mamy na przykład 5 neuronów na pierwszej warstwie, one się łączą z neuronami na drugiej warstwie, a potem jeżeli to konieczne to druga łączy się z neuronami w trzeciej, czwartej lub piątej warstwie. (chociaż łącznie 5 warstw to górna granica potrzeb). Do pierwszej warstwy przychodzą dane, które należy zinterpretować, a z ostatniej warstwy wychodzą dane już zinterpretowane.

Jak uczy się sieć neuronowa?

Uczy się trochę jak człowiek z nauczycielem. Najprostszy przykład: wrzucamy w sieć dziesięć „1” i oczekujemy, że odpowiedź sieci na te dziesięć „1” będzie „0”. Chcemy też, by dla kontrastu odpowiedzią na dziesięć „0” było „1”.

Nauka to pamięć. Pamięcią w neuronach są wagi o których już wspominałem, czyli liczby przez które się mnoży to co przyjdzie do neuronu.  Innymi słowy, jeżeli do neuronu przyjdzie wartość 10, a my chcemy, aby wynik wychodzący z neuronu wynosił 1, to musimy tak długo modyfikować wagę, aż wyjdzie będzie równa 0.1, bo 0.1 * 10 = 1. Jeżeli osiągniemy cel i neuron będzie pokazywał „1” gdy otrzyma „10” to możemy uznać, że neuron się „nauczył”, a jego pamięcią jest waga.

A jak to wygląda działanie sieci na przykładzie?

Przede wszystkim początki nie są trudne. Prostą sieć neuronową, która potrafi rozpoznać na przykład literkę „A” można zrobić w arkuszu kalkulacyjnym.

Najłatwiej wyjaśnić działanie sieci neuronowych na przykładzie rozpoznawania liter. Spróbujmy sobie wyobrazić literki X, O, +,- zapisane na 9 pikselach czyli kwadracie 3×3 piksele. Innymi słowy literka „O” zapisana na takim kwadracie, to jest po prostu cały czarny kwadrat z białym pikselem po środku:

111
101
111

Jeżeli zapisaemy to w ciągu 9 znaków to otrzymamy

111101111

i podobnie dla innych znaków czyli „X”

101
010
101

czy też „+”

010
111
010

Te jedynki i zera wrzucamy do wejścia sieci neuronowej. W związku z tym, że mamy 4 literki, to będziemy chcieli mieć 4 różne wartości na wyjściu – żeby rozpoznać, która literka jest która.

I tak, uznamy, że sieć nauczyła się rozpoznawać „O” jeżeli po wprowadzeniu do sieci ciągu znaków 111101111 czyli „O”, otrzymamy 0001, dla „X” poprawnym wynikiem będzie 0010, dla „+” 0100, a dla „-” 1000.

Czas teraz zaprojektować sieć. Mamy 9 wejść (bo mamy 9 pikseli) czyli pierwsza warstwa będzie mieć 9 neuronów. Potem musimy zdecydować (metodą prób i błędów), ile neuronów będzie miała warstwa 2, bo warstwa 3 musi z siebie wypluć 4 różne wartości, więc będziemy mieli 4 neurony w ostatniej warstwie.

Ostatni etap to nauka sieci czyli ustalanie wag. Kiedy wagi będą ustalone poprawnie, wtedy taka sieć będzie w stanie na ciąg znaków

101
010
101

oraz wersje zniekształcone

101
011
101

wyprowadzić wartość oczekiwaną dla „x” czyli 0010. To jest właśnie ta „generalizacja” posiadanej wiedzy. System jest w stanie rozpoznać w

101
011
101

literkę „X”.

W ten oto sposób działa prosta sieć neuronowa.

Granice możliwości sieci neuronowych

W styczniu 2014 roku w Japonii, wykorzystując czwarty co do mocy komputer na świecie zwany „K”, wyposażony w 705,024 procesory, 1.4 mln GB RAM, został obarczony symulacją 1 sekundy aktywności ludzkiego mózgu. Zajęło mu to 40 minut. Byłoby to całkiem obiecujące biorąc pod uwagę, że szybkość komputerów zgodnie z prawem Moore’a podwaja się co 24 miesiące, gdyby nie to, że symulacja obejmowała 1% ludzkiego mózgu. Tak więc mamy symulacje 1 sekundy aktywności 1% ludzkiego mózgu i zajęło to 40 minut. Oto są dzisiejsze ograniczenia sieci neuronowych. Chociaż Markus Diesmann, jeden z naukowców działających przy projekcie powiedział, że skoro to się udało, to w przeciągu następnej dekady uda się to samo zrobić z symulacją 100% ludzkiego mózgu. Cóż, pożyjemy zobaczymy.

Podsumowanie

Z punktu widzenia marketera, sieci neuronowe pozwalają pracować na „rozmytych pojęciach” i „niedokładnych danych” czyli materii, z którą marketer zmaga się cały czas. Nie sądzę, żeby marketingowiec kiedykolwiek sam projektował sieci neuronowe, które będą potrzebne do jego pracy. Wątpię też, czy będzie intensywnie współpracował z developerami, którzy projektują tego typu narzędzia. Niezależnie od tego znajomość podstaw sieci neuronowych, pozwoli mu lepiej ocenić możliwości systemów wspieranych przez takie sieci i lepiej zrozumieć dlaczego ma zaufać lub nie sugestii systemu.