Tym artykułem rozpoczynamy cykl wpisów dotyczących metod badań i odnoszących się do prac badawczo-rozwojowych, którymi zajmuje się zespół data science Literackiej. Zazwyczaj widoczne są jedynie efekty tych działań, dlatego zależy na tym, by opowiedzieć również o tym, w jaki sposób do nich dochodzimy. Rozpisujemy procesy, wyjaśniamy pojęcia, prezentujemy kolejne kroki naszych prac. Zapraszamy do lektury – zaczynamy od analizy NER. 

NER (ang. Named Entity Recognition) tłumaczone jest na język polski jako rozpoznawanie jednostek nazewniczych. Stanowi jedno z zadań ekstrakcji informacji z tekstu. Lokalizuje i klasyfikuje jednostki nazewnicze. Wspomnianymi jednostkami nazewniczymi mogą być osoby, lokalizacje, organizacje, czas itp.

Przykład:

Do oznaczania NER w tekście stosowany jest najczęściej format IOB (ang. Inside-Outside-Beginning). Pierwszy token danej jednostki nazewniczej oznaczany jest przedrostkiem “B”. Każdy kolejny zaś przedrostkiem “I”. “O” używane jest, gdy dany token nie został zakwalifikowany jako NER. 

W powyższym przykładzie mamy do czynienia z trzema różnymi jednostkami NER:
EMOSTATE – oznaczający stany emocjonalne;
PERSON – oznaczający osoby;
GPE – oznaczający miejsca możliwe do geolokalizacji.

Podejścia związane z ekstrakcją NER zmieniały się na przestrzeni lat wraz z rozwojem ogólnie pojętego NLP (ang. Natural Language Processing). Zatem, podobnie jak w przypadku NLP, były to metody oparte na regułach, metody statystyczne związane z uczeniem maszynowym oraz podejścia neuronowe – oparte na uczeniu głębokim. Aktualnie prym wiodą, w oczywisty sposób, metody związane z sieciami neuronowymi. 

Początkowo używano w tym celu sieci rekurencyjnych RNN (ang. Recurrent Neural Network) opartych o komórki GRU (ang. Gated Recurrent Unit) lub LSTM (ang. Long-Short Term Memory). Wszystko zmieniło się jednak wraz z pojawieniem się artykułu Attention Is All You Need [1] wydanego przez zespół Google i opisanej w nim architektury Transformer opartej na wielowątkowym mechanizmie uwagi własnej (ang. Multi-Head Attention). Była to rewolucja w ogólnie pojętym NLP. Wspomniana architektura umożliwia zrównoleglenie, a zatem znaczne przyspieszenie obliczeń, przy czym znacznie poprawiła również wyniki. Transformer był modelem typu seq2seq opartym o architekturę encoder-decoder i pierwotnie używany był do zadania tłumaczenia pomiędzy językami naturalnymi. Elementy Transformera pozwoliły jednak na zbudowanie nowoczesnych modeli językowych. Na bazie bloków decoderowych Transformera powstał model GPT

Wspomniany w tytule model BERT zaś składa się tak naprawdę z szeregowo połączonych encoderów. BERT pierwszy raz został wspomniany w artykule BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding  [2] autorstwa badaczy Facebooka. Architektura BERT umożliwiła tworzenie pre-trenowanych modeli językowych uczących się zależności językowych na podstawie dużych korpusów danych tekstowych. Przykładem takiego modelu językowego jest PoLitBert – model trenowany m. in. na korpusie złożonym z literatury. 

Mając do dyspozycji gotowy, pre-trenowany model językowy o architekturze BERT możemy dostroić go (ang. fine-tuning) do konkretnego zadania. Takim zadaniem może być wspomniana w tytule ekstrakcja NER. W naszym przypadku fine-tuning modelu polegał na dołożeniu do pre-trenowanego modelu dodatkowych warstw. Mianowicie warstwy w pełni połączonej (ang. Fully Connected) zakończonej funkcją aktywacji ReLU (ang. Rectified Linear Unit) oraz warstwą kwalifikacyjną związaną z liczbą rozważanych jednostek nazewniczych. Tak zmodyfikowana architektura, po doborze optymalizatora, funkcji straty oraz wartości hiperparametrów jest trenowana na przygotowanym datasecie zawierającym tekst  z anotowanymi w kierunku ekstrakcji NER danymi. Wytrenowany model jest zdolny do ekstrakcji NER z zadanego tekstu. 

Poniżej przykład działania pre-trenowanego modelu PoLitBert dostrojonego do rozpoznawania  etykiet NER takich jak PERSON, GPE, DATE oraz EMOSTATE:

Co dają NER-y wydawcom? Pozwalają wstępnie określić charakter tekstu, oszacować, o czym może być dany utwór, jakich czytelników zainteresuje, a nawet jakie emocje wzbudzi jego lektura. Co ważne informacje te wydawca dostaje zanim sam przeczyta tekst utworu. Dzięki NER-om wydawnictwo może szybko ocenić czy dany tekst wpisuje się w jego profil. Analiza ta pomaga zdecydować, którymi utworami (w zalewie propozycji wydawniczych), zająć się w pierwszej kolejności. Więcej na ten temat piszemy w tym artykule > KLIK.

Autor tekstu: Sebastian Jankowski, Data Scientist oraz programista Python w Literackiej.

Bibliografia:

[1] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, Illia Polosukhin. Attention is all you need, Advances in Neural Information Processing Systems, (2017), 6000-6010.

[2] Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova. BERT: Pre-training of deep bidirectional transformers for language understanding, North American Association for Computational Linguistics (NAACL), (2019).

Kategorie: Blog

0 Komentarzy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *