Jeszcze lepsze maszynowe rozpoznawanie języka? Proszę bardzo. Sieć neuronowa już pobiła człowieka w rozumieniu tekstu
Komputerowe algorytmy – a ściślej sieci neuronowe – coraz lepiej radzą sobie z rozpoznawaniem języka naturalnego. Niedawno pisaliśmy, że w testach na rozumienie tekstu osiągają wyniki coraz bliższe tym, jakie osiąga przeciętny człowiek.
Chińscy programiści z Baidu (największej wyszukiwarki internetowej) przełamali właśnie tę barierę. Przeciętny człowiek w teście SuperGLUE osiąga 87 punktów, a ich sieć neuronowa osiągnęła właśnie 90. Jak im się to udało?
Ich model bazuje na poprzednich, opartych na technice BERT. W skrócie polega na tym, że zamiast przewidywać, jakie słowo może wystąpić na podstawie poprzedniego, sieć neuronowa uczy się tego na podstawie zarówno poprzedzającego, jak i następującego słowa. Innymi słowy starsze modele widząc „pociąg przyjechał _ stację spóźniony kilka minut” na podstawie słowa „przyjechał” zgadywały, że właściwym słowem może być „na”. Nowe algorytmy potrafią zgadywać łatwiej, bowiem wnioskują i na podstawie słowa „przyjechał” oraz słowa „stację”. Z każdego przykładu czerpią więc dwa razy więcej danych.
Systemy oparte na BERT są tak naprawdę nieco bardziej skomplikowane – biorą pod uwagę nie tylko częstotliwość występowania słów obok siebie, ale i ich wagę w zdaniu. Ponadto BERT jest tylko zbiorem reguł, w jaki sposób dostarczane dane mają być przetwarzane. Dane do przetwarzania zaś pochodzą ze specjalnych z korpusów gromadzących miliony tekstów.
Gdy Chińczycy zaczęli rozwijać rozpoznawanie języka za pomocą modeli maszynowych, dość naturalne było, że wezmą pod uwagę nie pojedyncze znaki, lecz ciągi dwóch lub trzech znaków. Okazało się to znakomitym podejściem – sprawiło, że opracowany przez nich model jest lepszy niż dotychczasowe.
Chińczycy postanowili tę metodę rozwinąć i ich algorytm (nazwany ERNIE) bierze pod uwagę nie pojedyncze słowa, lecz ich ciągi. To zresztą przyszło im dość naturalnie. Pojedynczy chiński znak rzadko niesie za sobą jednoznaczną informację o znaczeniu (zwykle niesie kilka znaczeń, czasami bardzo od siebie odległych). Dopiero postawienie obok drugiego znaku sprawia, że całość (a jest nią zwykle para, rzadziej dłuższy ciąg znaków) staje się jednoznacznie zrozumiała.
Gdy więc Chińczycy zaczęli rozwijać rozpoznawanie języka za pomocą modeli maszynowych, dość naturalne było, że będą brać pod uwagę nie pojedyncze znaki, lecz ciągi dwóch lub trzech znaków. Okazało się to znakomitym podejściem – sprawiło, że opracowany przez nich model jest lepszy niż dotychczasowe. W powyższym przykładzie tak nauczone sieci neuronowe łatwiej odgadną całą frazę „na stację” (na podstawie „pociąg przyjechał” czy „spóźniony kilka minut”).
Chiński sposób okazał się równie skuteczny w przypadku rozpoznawania języka angielskiego. Ma dodatkową właściwość, której nie miały poprzednie modele. Pozwala znacznie lepiej odróżnić mało sensowne ciągi wyrazów od ich bardziej logicznych językowo kombinacji. W zasadzie nic w tym dziwnego, bowiem taki model bierze pod uwagę więcej danych wejściowych, rozpatrywanie dłuższych ciągów słów też przynosi sensowne rezultaty.
Ciągi „stację spóźniony” i „spóźniony kilka” są dla ludzi praktycznie pozbawione znaczenia. Ma je dopiero fraza „spóźniony kilka minut”. Czy tego komputery właśnie się nauczyły? Nie powinniśmy przypisywać im szczególnej inteligencji. Nadal wyciągają tylko wnioski na podstawie analizy statystycznej setek milionów przykładów. Tyle że czynią to coraz lepiej.
Pracę opublikowano w serwisie ArXiv.