Nowy algorytm lepiej wyszuka produkt w sklepie i przetłumaczy nasz język na inny
Gdy robimy zakupy online zwykle wpisujemy kilka wyrazów i liczymy na to, że wyszukiwarka poda nam prawidłowy wynik. Od naszej strony wygląda to banalnie prosto, jednak dopasowanie odpowiedniego produktu wśród milionów innych to nie lada wyzwanie. Dla firm zajmujących się handlem on-line właściwy algorytm może być żyłą złota.
Badacze z Rice University i Amazona poinformowali właśnie o dokonaniu ważnego przełomu, dzięki któremu rozwiązanie problemów związanych z dopasowaniem, czy to w algorytmach do wyszukiwania towarów w sklepie czy algorytmach tłumaczenia pomiędzy językami, będzie wymagało znacznie mniej zasobów niż obecnie.
Czas treningu naszego algorytmu jest 7-10 razy krótszy, a potrzebna ilość pamięci 2-4 razy mniejsza niż w najlepszych podobnych systemach, mówi główny autor badań profesor Anshumali Shrivastava. Mamy milion słów w języku angielskim, ale z pewnością online dostępnych jest ponad 100 milionów produktów, informuje doktorant Tharun Medini.
Miliony ludzi codziennie dokonują zakupów, a każdy robi to na swój sposób. Niektórzy wpisują słowa kluczowe, inni zadają pytania. Wiele osób nie ma też sprecyzowanych oczekiwań. Jako że każdego dnia dokonywane są w ten sposób miliony wyszukiwań, firmy takie jak Google, Amazon czy Microsoft dysponują olbrzymimi bazami danych. Służą one m.in. do maszynowego uczenia algorytmów. Ich twórcy ciągle je udoskonalają, by jak najlepiej dopasować wynik wyszukiwania do potrzeb kupującego.
Systemy do głębokiego uczenia się, sieci neuronowe do olbrzymie zestawy równań, które przetwarzają dane wprowadzane przez użytkownika w dane wynikowe. Zestawy takie pogrupowane są w matryce, coraz bardziej uściślające wynik wyszukiwania. Dane trafiają do pierwszej matrycy, następnie do kolejnej i następnej. Modele takie zawierają miliardy różnych parametrów służących uzyskaniu jak najlepszych danych wyjściowych. Informacje, jakie w wyszukiwarce sklepu internetowego wprowadza użytkownik mogą dać wiele różnych wyników, dlatego też są przetwarzane w bardzo złożony sposób, by jak najlepiej dopasować wynik do oczekiwania użytkownika. Modele do głębokiego uczenia się tak bardzo rozbudowane i korzystają z tak olbrzymich zestawów danych, że trening przeprowadza się na maszynach, które można uznać z superkomputery.
Siec neuronowa, która przyjmuje dane wejściowe i dopasowuje je do 100 milionów możliwych danych wyjściowych, czyli produktów, zwykle zawiera 2000 parametrów na każdy produkt. Zatem ostateczna warstwa obliczeniowa tej sieci zawiera 200 miliardów parametrów. Przechowywanie tych 200 miliardów parametrów wymaga około 500 gigabajtów pamięci. Jeśli jednak przyjrzymy się współczesnym algorytmom uczącym, zobaczymy, że w słynnym algorytmie Adam na każdy parametr przypadają dwa dodatkowe służące monitorowaniu i statystykom. Robi nam się z tego 1,5 terabajta pamięci potrzebnej modelowi do pracy. A nie doszliśmy jeszcze do rozmiarów bazy danych. Najlepsze procesory graficzne, wykorzystywane do obliczeń tego typu, obsługują 32 gigabajty pamięci, więc trenowanie takiego modelu wymaga olbrzymiej liczby GPU i szybkiej komunikacji pomiędzy nimi, stwierdza Medini.
Uczeni z Rice'a opracowali nowy model o nazwie MACH (merged-average classifiers via hashing). To algorytm typu "dziel i zwyciężaj". Aby go zrozumieć, proponują eksperyment myślowy. Należy przypadkowo podzielić wspomniane 100 milionów produktów na trzy klasy. "Powiedzmy, że w wrzucę do jednego worka iPhone'y z t-shirtami. Ze 100 milionów danych wyjściowych robią mi się raptem trzy". W proponowanym eksperymencie myślowym mamy więc 3 worki z produktami. I dwa różne światy. Co oznacza, że w każdym ze światów każdy produkt może znajdować się w innym worku. System klasyfikujący jest trenowany tak, by podawane przez użytkownika dane wejściowe przypisywał do worka, a nie do konkretnego produktu.
Podajemy dane wejściowe dla wyszukiwania w świecie numer jeden i otrzymujemy wynik: „worek 3”. Następnie to samo wyszukiwanie jest dokonywane w świecie numer dwa i otrzymujemy wynik: „worek 1”. Co to oznacza? Że produkt, którego poszukuję, należy do klasy produktów znajdujących się w obu światach w obu wspomnianych workach. Jeśli policzymy liczbę możliwych rozwiązań to otrzymamy 3 w jednym świecie razy 3 w drugim świecie. W ten sposób redukujemy przestrzeń wyszukiwania 1:9 i tworzymy tylko sześć klas przedmiotów. Jeśli dodamy jeszcze jeden świat z kolejnymi trzema workami, trzykrotnie zwiększymy liczbę powiązań. Mamy więc teraz 27 możliwości, zmniejszyliśmy przestrzeń wyszukiwania do 1:27, ale koszt wyszukiwania to przeszukanie jedynie 9 klas. Zwiększamy więc koszt linearnie, ale możliwości wyszukiwania zwiększają się wykładniczo.
Specjaliści wykorzystali do swoich badań sklep Amazona, w którym znajduje się 49 milionów produktów. Podzielili te produkty na 10 000 klas (worków) i cały proces powtórzyli 32 razy. W ten sposób liczba parametrów wykorzystanych przez model zmniejszyła się z około 100 miliardów do 6,4 miliarda, a trening modelu wymagał mniej czasu i mniej dostępnej pamięci niż porównywalnych modeli, mówi Medini.
Naukowiec zauważa, że jedną z najważniejszych cech modelu MACH jest fakt, że nie wymaga on komunikacji pomiędzy procesorami. W naszym eksperymencie myślowym ten brak komunikacji jest reprezentowany przez oddzielne światy. One nie muszą wymieniać się danymi. Możemy przeprowadzić cały proces na pojedynczym GPU, czego nigdy wcześniej nie udało się dokonać, cieszy się Medini.
Ogólnie rzecz ujmując, trenowanie tego typu algorytmów wymaga ciągłej komunikacji pomiędzy parametrami, co oznacza, że wszystkie uruchomione procesory muszą dzielić się informacjami. Komunikacjach zużywa olbrzymie zasoby systemów do głębokiego uczenia się. Google ma ambicję stworzenia sieci korzystającej z biliona parametrów. MACH, w chwili obecnej, nie może być używany do rozwiązywania przypadków z niewielką liczbą klas, ale tam, gdzie mamy do czynienia z zagadnieniami ekstremalnej klasyfikacji udało nam się spowodować, by system działał bez potrzeby komunikacji pomiędzy procesorami, stwierdza Shrivastava.
Komentarze (0)