Jaka jest różnica między RNN generowania tekstu opartego na słowie i na znakach?


15

Czytając o generowaniu tekstu za pomocą Recurrent Neural Networks, zauważyłem, że niektóre przykłady zostały zaimplementowane w celu generowania tekstu słowo po słowie, a inne znak po znaku bez podania przyczyny.

Jaka jest zatem różnica między modelami RNN, które przewidują podstawę tekstu na słowo, a tymi, które przewidują podstawę tekstu na znak ? Czy RNN oparty na słowach wymaga większego rozmiaru korpusu? Czy RNN oparty na znakach uogólnia się lepiej? Być może jedyną różnicą jest reprezentacja danych wejściowych (kodowanie na gorąco, osadzanie słów)? Które wybrać do generowania tekstu?

Odpowiedzi:


15

Oto, czego się ostatnio nauczyłem.

Oczywiście, mówiąc o RNN generujących tekst, mówimy o modelach językowych RNN. Kiedy pyta o słowo / char oparte RNNs generacji tekstu, prosimy o słowo / char oparte na modelach językowych RNN (LM).

LM oparte na słowie wykazują wyższą dokładność i niższe koszty obliczeniowe niż LM oparte na znakach.

Ten spadek wydajności jest mało prawdopodobny z powodu trudności w przechwytywaniu dłuższej pamięci krótkoterminowej przez model poziomu znaków, ponieważ również sieci rekurencyjne o dłuższej pamięci krótkoterminowej (LSTM) działają lepiej z wprowadzaniem słów.

Wynika to z faktu, że LM oparte na znakach wymagają znacznie większej warstwy ukrytej, aby skutecznie modelować długoterminowe zależności, co oznacza wyższe koszty obliczeniowe.

Dlatego możemy to powiedzieć

jedną z podstawowych różnic między modelami poziomu słowa i poziomu znaków jest liczba parametrów, do których RNN ma dostęp podczas szkolenia i testu. Im mniejsza jest warstwa wejściowa i wyjściowa RNN, tym większa musi być w pełni połączona warstwa ukryta, co powoduje, że szkolenie modelu jest drogie.

Jednak RNN LM oparte na znakach lepiej modelują języki o bogatej morfologii, takie jak Finish, Turkish, Russian itp. Używanie RNN LM opartych na słowach do modelowania takich języków jest trudne, o ile to możliwe, i nie jest zalecane.

Powyższa analiza ma sens szczególnie, gdy spojrzysz na tekst wyjściowy wygenerowany przez RNN oparte na znakach:

Zaskoczeni inwestorzy nie zamierzali zbierać pieniędzy. Nie jestem firmą z czasem, gdy wszystko jest szybko interesujące, nie muszę wysiadać z tych samych programistów.

Podczas gdy prosty LM Maximum Likelihood oparty na znakach z 13-znakowym oknem zapewnia:

A kiedy zrobiła wiele solidnych cegieł. Układał je w stosy i tupał nogami. Lekarz zdiagnozował go nietoperzem. Dziewczyna i jej chłopak zaprosili ją.

Oczywiście wybrałem przykład (tak naprawdę większość przykładów ML LM wyglądało lepiej niż jakikolwiek tekst wygenerowany przez RNN, który przeczytałem do tej pory) i ten malutki ML LM został przeszkolony na prostszym korpusie, ale masz pomysł: bezpośrednie prawdopodobieństwo warunkowe generuje lepsze teksty niż znacznie bardziej złożony RNN oparty na znakach.

Oparte na znakach RNN LM mogą naśladować poprawne gramatycznie sekwencje dla szerokiej gamy języków, wymagają większej ukrytej warstwy i są obliczeniowo droższe, podczas gdy oparte na słowach LM RNN trenują szybciej i generują bardziej spójne teksty, a jednak nawet te wygenerowane teksty są dalekie od rzeczywistego sensu .


1
Doskonały komentarz. Należy dodać, że w przypadku niektórych problemów jeden lub drugi może mieć większy sens niezależnie od problemów obliczeniowych. Na przykład, jeśli Twoim celem jest studiowanie wektorów słów w celu znalezienia relacji między słowami lub jeśli chcesz wygenerować tekst na podstawie tematu słownego, musisz skorzystać z RNN opartego na słowach. I odwrotnie, prawdopodobnie istnieją problemy, w których RNN oparty na znakach jest właściwą drogą. Zależy to również od tego, co użytkownik próbuje zrobić.
Ricardo Cruz,

Nie zrozumiałem twojego ostatniego komentarza: „RNN LM oparty na Char (...) nie ma sensu, jeśli chodzi o sens.” Nie widziałem też sensu RNN opartego na słowie. Dlaczego wyodrębniłeś tutaj modele oparte na znakach?
Ricardo Cruz,

Zaktualizowałem niejednoznaczne zakończenie.
minerały

Świetna odpowiedź! Rzeczywiście ktoś mógłby łatwo dodać, że zależy to w dużej mierze od zadania, wielkości zbioru danych, języków i poziomu wstępnego przetwarzania, które jesteś gotów wykonać. Na przykład, aby przetwarzać bogatsze języki morfologiczne i zarządzać słowem bez słownictwa (OOV), możesz także użyć modelu słów z lematyzacją, tagowaniem pos, a także dodawać prefiksy, sufiksy itp.
Claude COULOMBE

5

Miło napisać o modelowaniu języka za pomocą miliarda słów . Poniżej kilka fragmentów:

Modele na poziomie słów mają istotną przewagę nad modelami na poziomie znaków.
Weźmy następującą sekwencję jako przykład (cytat z Roberta A. Heinleina):

Wczesne ptaszki nie robią postępów. Tworzą go leniwi mężczyźni próbujący znaleźć łatwiejsze sposoby na zrobienie czegoś.

Po tokenizacji model na poziomie słów może uznać tę sekwencję za zawierającą 22 tokeny. Z drugiej strony, poziom postaci będzie widział tę sekwencję jako zawierającą 102 żetony. Ta dłuższa sekwencja sprawia, że ​​zadanie modelu znakowego jest trudniejsze niż model słowny, ponieważ musi on uwzględniać zależności między większą liczbą tokenów w większej liczbie kroków. Innym problemem związanym z modelami języka znaków jest to, że muszą oni uczyć się pisowni oprócz składni, semantyki itp. W każdym razie modele języka słowa zwykle mają mniejszy błąd niż modele znaków

Główną zaletą postaci w porównaniu do modeli słownych jest to, że mają bardzo małe słownictwo. Na przykład zestaw danych GBW będzie zawierał około 800 znaków w porównaniu do 800 000 słów (po przycięciu tokenów niskiej częstotliwości). W praktyce oznacza to, że modele postaci będą wymagały mniej pamięci i będą miały szybsze wnioskowanie niż ich odpowiedniki słów. Kolejną zaletą jest to, że nie wymagają tokenyzacji jako etapu wstępnego przetwarzania.


1

Moim zdaniem RNN oparte na znakach również będą działały lepiej, ale potrzebują znacznie więcej danych niż modele oparte na słowach i modele oparte na znakach muszą trenować przez znacznie dłuższy okres czasu. Powiedziałbym, że jest to raczej próba i błąd, a także kompromis między dostępnymi danymi a mocą obliczeniową.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.