BERT – czyli jak bohater Ulicy Sezamkowej zmienia wyszukiwarki

Pod koniec 2019 roku firma Google zaktualizowała algorytm, który poprawi wyniki wyszukiwania o 10% pod nazwą Google BERT (stąd powiązanie z muppetem Bertem). Google opisuje BERTa jako największą zmianę w systemie wyszukiwania od czasu wprowadzenia prawie pięć lat temu RankBraina, a nawet jedną z największych zmian algorytmicznych w historii wyszukiwania. Algorytm BERT jest obecnie wdrażany na całym świecie.

Wykorzystywany może być zarówno w miejscach przechowywania produktów jak wielopowierzchniowe i wielopoziomowe magazyny, aby sprawdzić, czy produkt podobny posiadamy już swojej ofercie, ale także do rozwoju inteligentnej automatyzacji procesów biznesowych (np. OCR (ang. Optical Character Recognition)). Algorytm ten jest w stanie porównywać ze sobą nazwy produktów na pozór się różniących, czasem ze skutecznością porównania lepszą od osoby z wieloletnim doświadczeniem w danej branży. Omówimy tutaj jeden z praktycznych przykładów wykorzystania tego algorytmu.

Algorytm RoBERTa – co to jest?

RoBERTa (ang. A Robustly Optimized BERT Pretraining Approach) jest to pre-trenowana sieć neuronowa wykorzystywana do problemów związanych z przetwarzaniem języka naturalnego (NLP). Jest to zoptymalizowany algorytm BERT (ang. Bidirectional Encoder Representations from Transformers). Oba te algorytmy cechują się umiejętnością wyciągania kontekstu ze zdania. Jest to skutek tego, że RoBERTa, czy też sam BERT, nie interpretują słów jedno po drugim.

W odróżnieniu od większości modeli językowych, algorytmy te otrzymują tzw. reprezentację wektorową danego słowa (Embedding) poprzez równoczesne odniesienie się zarówno do tego, co występuje przed tym słowem, jak i po nim. W ten sposób algorytm „widzi” różnicę pomiędzy słowem „zamek” użytym w odniesieniu do zamka błyskawicznego, a użytym w odniesieniu np. do budynku. 

Podstawą algorytmów BERT oraz RoBERTa jest głęboka sieć neuronowa o nazwie Transformer. Służy ona do zamiany jednej sekwencji w inną. Odbywa się to z wykorzystaniem tzw. Enkoderów i Dekoderów, które na ogół odpowiadają za przekształcenie wejściowej sekwencji w pojedynczy wektor (Enkoder) i pojedynczego wektora w sekwencję wyjściową (Dekoder). 

W Transformersach Enkodery i Dekodery działają jako dwa osobne mechanizmy. Pierwszy z nich odpowiada za zrozumienie tekstu przez maszynę. Ich wejściem jest tekst zamieniony na wektor. Dodatkowo dodaje się informację na temat położenia każdego słowa. Następnie jest to przetwarzane przez kolejne warstwy sieci tak, aby otrzymać reprezentację wektorową wprowadzonego tekstu, która jest w stanie przechowywać nauczone informacje.

Dekoder odpowiada z kolei za predykcję prawdopodobieństwa wystąpienia danego słowa. Mając na przykład zdanie „I am fine”, Dekoder analizuje je słowo po słowie. Za każdym razem maskuje kolejne słowo i próbuje je przewidywać. Próbując przewidzieć słowo „fine” Dekoder widzi „I am _”. Jego celem jest możliwie najtrafniej przewidzieć brakujące słowo.

Artykuł stanowi fragment artykułu "BERT – czyli jak bohater Ulicy Sezamkowej zmienia wyszukiwark" autorstwa Michał Więtczaka oraz Kingi Głąbińskiej, który ukazał się na łamach portalu Bulldogjob.
 

Dodaj komentarz

      adres e-mail nie zostanie opublikowany

            Najczęściej czytane w tej kategorii