From 27a179cac90d5ee3a4e09827a8ee41fa111a9941 Mon Sep 17 00:00:00 2001 From: Filip Gralinski Date: Sat, 23 Apr 2022 12:37:17 +0200 Subject: [PATCH] Fixes --- wyk/08_Neuronowy_ngramowy_model.org | 95 +++++++++--------- .../bow1.drawio.png | Bin 0 -> 23080 bytes wyk/08_Neuronowy_ngramowy_model/tanh.png | Bin 23989 -> 9354 bytes 3 files changed, 49 insertions(+), 46 deletions(-) create mode 100644 wyk/08_Neuronowy_ngramowy_model/bow1.drawio.png diff --git a/wyk/08_Neuronowy_ngramowy_model.org b/wyk/08_Neuronowy_ngramowy_model.org index 2c95c29..ec88517 100644 --- a/wyk/08_Neuronowy_ngramowy_model.org +++ b/wyk/08_Neuronowy_ngramowy_model.org @@ -4,18 +4,18 @@ Omówiony w poprzedniej części neuronowy bigramowy model języka warunkuje kolejny wyraz jedynie względem bezpośrednio poprzedzającego — jak w każdym bigramowym modelu przyjmujemy założenie, że $w_i$ zależy tylko od $w_{i-1}$. Rzecz jasna jest to bardzo duże -ograniczenie, w rzeczywiście bardzo często prawdopodobieństwo +ograniczenie, w rzeczywistości bardzo często prawdopodobieństwo kolejnego wyrazu zależy od wyrazu dwie, trzy, cztery itd. pozycje wstecz czy w ogólności od wszystkich wyrazów poprzedzających (bez względu na ich pozycje). *Pytanie*: Wskaż zależności o zasięgu większym niż 1 wyraz w zdaniu -_Zatopieni w kłębach dymu cygar i pochyleni nad butelkami z ciemnego +/Zatopieni w kłębach dymu cygar i pochyleni nad butelkami z ciemnego szkła obywatele tej dzielnicy, jedni zakładali się o wygranę lub przegranę Anglii, drudzy o bankructwo Wokulskiego; jedni nazywali geniuszem Bismarcka, drudzy — awanturnikiem Wokulskiego; jedni krytykowali postępowanie prezydenta MacMahona, inni twierdzili, że -Wokulski jest zdecydowanym wariatem, jeżeli nie czymś gorszym…_ +Wokulski jest zdecydowanym wariatem, jeżeli nie czymś gorszym…/ ** Trigramowy neuronowy model języka @@ -29,24 +29,24 @@ Byłoby to jednak zupełnie niepraktyczne, jako że: - liczba zanurzeń do wyuczenia byłaby olbrzymia ($|V|^2$ — byłoby to ewentualnie akceptowalne dla modeli operujących na krótszych - jednostkach niż słowno, np. na znakach), + jednostkach niż słowa, np. na znakach), - w szczególności zanurzenia dla par $(v, u)$, $(u, v)$, $(u, u)$ i $(v, v)$ nie miałyby ze sobą nic wspólnego. *** Konketanacja zanurzeń -Właściwsze rozwiązanie polega na zanurzenia dalej pojedynczych słów i +Właściwsze rozwiązanie polega na zanurzeniu dalej pojedynczych słów i następnie ich *konkatenowaniu*. Przypomnijmy, że konkatenacja wektorów $\vec{x_1}$ i $\vec{x_2}$ to wektor o rozmiarze $|\vec{x_1}| + |\vec{x_2}|$ powstały ze „sklejania” wektorów $\vec{x_1}$ i $\vec{x_2}$. Konkatenację wektorów $\vec{x_1}$ i $\vec{x_2}$ będziemy oznaczać za pomocą $[\vec{x_1}, \vec{x_2}]$. -Przykład: jeśli $\vec{x_1} = [-1, 2, 0]$ i $\vec{x_2} = [3, -3]$ +Przykład: jeśli $\vec{x_1} = [-1, 2, 0]$ i $\vec{x_2} = [3, -3]$, wówczas $[\vec{x_1}, \vec{x_2}] = [-1, 2, 0, 3, -3]$ -Oznacza to, że nasza macierz „kontekstowa” $C$ powinna mieć w modelu trigramowy rozmiar nie -$|V| \times m$, lecz $|V| \times m+m$ = $|V| \times 2m$ i wyjście będę zdefiniowane za pomocą wzoru: +Oznacza to, że nasza macierz „kontekstowa” $C$ powinna mieć w modelu trigramowym rozmiar nie +$|V| \times m$, lecz $|V| \times (m+m)$ = $|V| \times 2m$ i wyjście będzie zdefiniowane za pomocą wzoru: $$\vec{y} = \operatorname{softmax}(C[E(w_{i-2}),E(w_{i-1})]),$$ @@ -59,7 +59,7 @@ co można przedstawić za pomocą następującego schematu: Zamiast mnożyć macierz $C$ przez konkatenację dwóch wektorów, można rozbić macierz $C$ na dwie, powiedzmy $C_{-2}$ i $C_{-1}$, przemnażać -je osobno przez odpowiadający im wektory i następnie _dodać_ macierze, +je osobno przez odpowiadające im wektory i następnie *dodać* macierze, tak aby: $$C[E(w_{i-2}),E(w_{i-1})] = C_{-2}E(w_{i-2}) + C_{-1}E(w_{i-1}).$$ @@ -81,9 +81,9 @@ $$\vec{y} = \operatorname{softmax}(C[E(w_{i-n+1}),\dots,E(w_{i-1})]),$$ gdzie macierz $C$ ma rozmiar $|V| \times nm$ lub za pomocą wzoru: -$$\vec{y} = \operatorname{softmax}(C_{-(i-n+1)}E(w_{i-n+1}) + \dots + C_{-1}E(w_{i-1}),$$ +$$\vec{y} = \operatorname{softmax}(C_{-(n-1)}E(w_{i-n+1}) + \dots + C_{-1}E(w_{i-1}),$$ -gdzie macierze $C_{-(i-n+1)$, \ldots, $C_{-1}$ mają rozmiary $|V| \times m$. +gdzie macierze $C_{-(n-1)}$, \dots, $C_{-1}$ mają rozmiary $|V| \times m$. Por. diagram: @@ -106,7 +106,7 @@ niż $nm$ (a może nawet od $m$). *** Funkcja aktywacji -Aby warstwa ukryta wnosiła coś nowego, na wyjściu z tej funkcji musimy +Aby warstwa ukryta wnosiła coś nowego, na wyjściu z tej funkcji musimy (dlaczego?) zastosować nieliniową *funkcji aktywacji*. Zazwyczaj jako funkcji aktywacji w sieciach neuronowych używa się funkcji ReLU albo funkcji sigmoidalnej. W prostych neuronowych modelach języka sprawdza się też @@ -114,7 +114,7 @@ sigmoidalnej. W prostych neuronowych modelach języka sprawdza się też $$\operatorname{tgh}(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}.$$ -#+BEGIN_SRC python :session mysession :results file +#+BEGIN_SRC ipython :session mysession :results file import matplotlib.pyplot as plt import torch import torch.nn as nn @@ -138,7 +138,7 @@ fname Tangens hiperboliczny wektora będzie po prostu wektorem tangensów hiperbolicznych poszczególnych wartości. -#+BEGIN_SRC python :session mysession :results file +#+BEGIN_SRC ipython :session mysession :results file import torch import torch.nn as nn @@ -160,7 +160,7 @@ gdzie: - $W$ jest wyuczalną macierzą wag o rozmiarze $h \times nm$, - $C$ będzie macierzą o rozmiarze $|V| \times h$. -Zmodyfikowaną się można przedstawić za pomocą następującego schematu: +Zmodyfikowaną sieć można przedstawić za pomocą następującego schematu: #+CAPTION: Dwuwarstwowy n-gramowy neuronowy model języka [[./08_Neuronowy_ngramowy_model/ngram-tgh.drawio.png]] @@ -183,17 +183,17 @@ $$O(m|V| + nm^2).$$ Zauważmy, że względem $n$ oznacza to bardzo korzystną złożoność $O(n)$! Oznacza to, że nasz model może działać dla dużo większych -wartości $n$ niż tradycyjny n-gramowy model języka (dla którego +wartości $n$ niż tradycyjny, statystyczny n-gramowy model języka (dla którego wartości $n > 5$ zazwyczaj nie mają sensu). ** Model worka słów -Jak stwierdziliśmy przed chwilą, dwuwarstwowy n-gramowym modelu języka +Jak stwierdziliśmy przed chwilą, dwuwarstwowy n-gramowy model języka może działać dla stosunkowo dużego $n$. Zauważmy jednak, że istnieje pewna słabość tego modelu. Otóż o ile intuicyjnie ma sens odróżniać słowo poprzedzające, słowo występujące dwie pozycje wstecz i zapewne trzy pozycje wstecz, a zatem uczyć się osobnych macierzy $C_{-1}$, -$C_{-2}$, $C_{-3}$ to zapewne różnica między wpływem słowa +$C_{-2}$, $C_{-3}$ to różnica między wpływem słowa występującego cztery pozycje wstecz i pięć pozycji wstecz jest już raczej nieistotna; innymi słowy różnica między macierzami $C_{-4}$ i $C_{-5}$ będzie raczej niewielka i sieć niepotrzebnie będzie uczyła @@ -209,7 +209,7 @@ modelem $n$-gramowym. *** Agregacja wektorów Zamiast patrzeć na kilka poprzedzających słów, można przewidywać na -cały ciąg słów poprzedzających przewidywane słowo. Zauważmy jednak, że +podstawie *całego* ciągu słów poprzedzających odgadywane słowo. Zauważmy jednak, że sieć neuronowa musi mieć ustaloną strukturę, nie możemy zmieniać jej rozmiaru. Musimy zatem najpierw zagregować cały ciąg do wektora o *stałej* długości. Potrzebujemy zatem pewnej funkcji agregującej $A$, takiej by @@ -228,7 +228,7 @@ Jeśli rozmiar zanurzenia (embeddingu) wynosi $m$, wówczas rozmiar wektora uzyskanego dla całego poprzedzającego tekstu wynosi również $m$. Proste dodawanie wydaje się bardzo „prostacką” metodą, a jednak -dodawanie wektorów słów jest *zaskakująco skuteczną metodą zanurzenia +suma wektorów słów jest *zaskakująco skuteczną metodą zanurzenia (embedowania) całych tekstów (doc2vec)*. Prostym wariantem dodawania jest obliczanie *średniej wektorów*: $$A(w_1,\dots,w_{i-1}) = \frac{E(w_1) + \dots + E(w_{i-1})}{i-1} = \frac{\sum_{j=1}^{i-1} E(w_j)}{i-1}.$$ @@ -255,12 +255,12 @@ $$y = \operatorname{softmax}(C\sum_{j=1}^{i-1} E(w_j)).$$ Według wzoru podanego wyżej, jeśli słowo w poprzedzającym tekście pojawia się więcej niż raz, jego embedding zostanie zsumowany odpowiednią liczbę razy. -Na przykład embedding tekstu _to be or not to be_ będzie wynosił: +Na przykład embedding tekstu /to be or not to be/ będzie wynosił: $$E(\mathrm{to}) + E(\mathrm{be}) + E(\mathrm{or}) + E(\mathrm{not}) + E(\mathrm{to}) + E(\mathrm{be}) = 2E(\mathrm{to}) + 2E(\mathrm{be}) + E(\mathrm{or}) + E(\mathrm{not}).$$ Innymi słowy, choć w worku słów nie uwzględniamy kolejności słów, to -*liczba wystąpień* ma dla nas znaczenie. Można powiedzieć, że +*liczba wystąpień* ma dla nas ciągle znaczenie. Można powiedzieć, że traktujemy poprzedzający tekst jako *multizbiór* (struktura matematyczna, w której nie uwzględnia się kolejności, choć zachowana jest informacja o liczbie wystąpień). @@ -273,9 +273,9 @@ się słowa, a zatem zamiast multizbioru słów rozpatrywać po prostu ich zbió $$A(w_1,\dots,w_{i-1}) = \sum_{w \in \{w_1,\dots,w_{i-1}\}} E(w).$$ Jest kwestią dyskusyjną, czy to lepsze czy gorsze podejście — w końcu -liczba wystąpień np. słów _Ukraina_ czy _Polska_ może wpływać w jakimś -stopniu na prawdopodobieństwo kolejnego słowa (_Kijów_ czy -_Warszawa_?). +liczba wystąpień np. słów /Ukraina/ czy /Polska/ może wpływać w jakimś +stopniu na prawdopodobieństwo kolejnego słowa (/Kijów/ czy +/Warszawa/?). *** Worek słów a wektoryzacja tf @@ -284,23 +284,23 @@ sumować po wszystkich słowach ze słownika, zamiast po słowach rzeczywiście $$A(w_1,\dots,w_{i-1}) = \sum_{j=1}^{i-1} E(w_j) = \sum_{w \in V} \#wE(w)$$ -gdzie $\#w$ to liczba wystąpień słowa $w$ (w wielu przypadkach równa zero!). +gdzie $\#w$ to liczba wystąpień słowa $w$ w ciagu $w_1,\dots,w_{i-1}$ (w wielu przypadkach równa zero!). -Jeśli teraz zanurzenia będzie reprezentować jako macierz $E$ (por. poprzedni wykład), +Jeśli teraz zanurzenia będziemy reprezentować jako macierz $E$ (por. poprzedni wykład), wówczas sumę można przedstawić jako iloczyn macierzy $E$ i pewnego wektora: $$A(w_1,\dots,w_{i-1}) = E(w) [\#w^1,\dots,\#w^{|V|}]^T.$$ -(Odróżniamy $w^i$ jako $i$-ty wyraz w słowniku $V$ od $w_i$ jako $i$-ty wyraz w ciągu). +(Odróżniamy $w^i$ jako $i$-ty wyraz w słowniku $V$ od $w_i$ jako $i$-tego wyraz w rozpatrywanym ciągu). Zwróćmy uwagę, że wektor $[\#w_1,\dots,\#w_{|V|}]$ to po prostu reprezentacja wektora poprzedzającego tekstu (tj. ciągu -$(w_1,\dots,w_{i-1})$) przy użyciu schematu wektoryzacji tf (_term -frequency_). Przypomnijmy, że tf to reprezentacja tekstu przy użyciu +$(w_1,\dots,w_{i-1})$) przy użyciu schematu wektoryzacji tf (/term +frequency/). Przypomnijmy, że tf to reprezentacja tekstu przy użyciu wektorów o rozmiarze $|V|$ — na każdej pozycji odnotowujemy liczbę wystąpień. Wektory tf są *rzadkie*, tj. na wielu pozycjach zawierają zera. -Innymi słowy, nasz model języka _bag of words_ można przedstawić za pomocą wzoru: +Innymi słowy, nasz model języka /bag of words/ można przedstawić za pomocą wzoru: $$y = \operatorname{softmax}(C\operatorname{tf}(w_1,\dots,w_{i-1})),$$ @@ -320,15 +320,15 @@ Czy wszystkie słowa są tak samo istotne? Rzecz jasna, nie: poprzedzające odgadywany wyraz mają większy wpływ niż słowa wcześniejsze; intuicyjnie, wpływ słów stopniowo spada — tym bardziej, im bardziej słowo jest oddalone od słowa odgadywanego; - jak wiemy z wyszukiwania informacji, słowa, które występują w wielu tekstach czy dokumentach, powinny mieć - mniejsze znaczenie, w skrajnym przypadku słowa występujące w prawie każdym tekście (_że_, _w_, _i_ itd.) powinny - być praktycznie pomijane jako stop words (jeśli rozpatrywać je w „masie” worka słów — oczywiście - to, czy słowo poprzedzające odgadywane słowo to _że_, _w_ czy _i_ ma olbrzymie znaczenie!). + mniejsze znaczenie, w skrajnym przypadku słowa występujące w prawie każdym tekście (/że/, /w/, /i/ itd.) powinny + być praktycznie pomijane jako /stop words/ (jeśli rozpatrywać je w „masie” worka słów — oczywiście + to, czy słowo poprzedzające odgadywane słowo to /że/, /w/ czy /i/ ma olbrzymie znaczenie!). Zamiast po prostu dodawać zanurzenia, można operować na sumie (bądź średniej) ważonej: -$$\sum_{j=1}^{i-1} \omega(j, w_j)E(w_j), gdzie$$ +$$\sum_{j=1}^{i-1} \omega(j, w_j)E(w_j),$$ -$\omega(j, w_j)$ jest pewną wagą, która może zależeć od pozycji $j$ lub samego słowa $w_j$. +gdzie $\omega(j, w_j)$ jest pewną wagą, która może zależeć od pozycji $j$ lub samego słowa $w_j$. *** Uwzględnienie pozycji @@ -338,14 +338,14 @@ uwzględnienie pozycji słowa, np. w taki sposób: $$\omega(j, w_j) = \beta^{i-j-1},$$ dla pewnego hiperparametru $\beta$. Na przykład jeśli $\beta=0,9$, -wówczas słowo bezpośrednio poprzedzające dane słowo ma $1 / 0,9^9 \approx 2.58$ +wówczas słowo bezpośrednio poprzedzające dane słowo ma $1 / 0,9^9 \approx 2,58$ większy wpływ niż słowo występujące 10 pozycji wstecz. *** Odwrócona częstość dokumentowa Aby większą wagę przykładać do słów występujących w mniejszej liczbie -dokumentów, możemy użyć, znanej w wyszukiwaniu informacji -odwrotnej częstości dokumentowej (_inverted document frequency_, _idf_): +dokumentów, możemy użyć, znanej z wyszukiwania informacji, +odwrotnej częstości dokumentowej (/inverted document frequency/, /idf/): $$\omega(j, w_j) = \operatorname{idf}_S(w_j) = \operatorname{log}\frac{|S|}{\operatorname{df}_S(w_j)},$$ @@ -356,7 +356,7 @@ gdzie: w ilu dokumentach występuje $w$. Rzecz jasna, ten sposób ważenia oznacza tak naprawdę zastosowanie wektoryzacji tf-idf zamiast tf, -nasza sieć będzie dana wzorem: +nasza sieć będzie dana zatem wzorem: $$y = \operatorname{softmax}(C\operatorname{tfidf}(w_1,\dots,w_{i-1})).$$ @@ -369,7 +369,7 @@ $$\omega(j, w_j) = \beta^{i-j-1}\operatorname{idf}_S(w_j).$$ *Uwaga*: „wagi” $\omega(j, w_j)$ nie są tak naprawdę wyuczalnymi wagami (parametrami) naszej sieci neuronowej, terminologia może być tutaj myląca. Z punktu widzenia sieci neuronowej $\omega(j, w_j)$ są -stałe i są optymalizowane w procesie propagacji wstecznej. Innymi +stałe i *nie* są optymalizowane w procesie propagacji wstecznej. Innymi słowy, tak zdefiniowane $\omega(j, w_j)$ zależą tylko od: - hiperparametru $\beta$, który może być optymalizowany już poza siecią (w procesie *hiperoptymalizacji*), @@ -378,11 +378,11 @@ słowy, tak zdefiniowane $\omega(j, w_j)$ zależą tylko od: *Pytanie*: czy wagi $\omega(j, w_j)$ mogłyby sensownie uwzględniać jakieś parametry wyuczalne z całą siecią? -** Modelowanie języka przy użyciu bardziej złożonych neuronowych sieci _feed-forward_ +** Modelowanie języka przy użyciu bardziej złożonych neuronowych sieci /feed-forward/ Można połączyć zalety obu ogólnych podejść (n-gramowego modelu i worka -słów) — można _równocześnie_ traktować w specjalny sposób (na -przykład) dwa poprzedzające wyrazy, zaś wszystkie inne wyrazy +słów) — można *równocześnie* traktować w specjalny sposób (na +przykład) dwa poprzedzające wyrazy, wszystkie zaś inne wyrazy reprezentować jako „tło” modelowane za pomocą worka słów lub podobnej reprezentacji. Osiągamy to poprzez konkatenację wektora poprzedzającego słowa, słowa występującego dwie pozycje wstecz oraz @@ -390,13 +390,16 @@ zagregowanego zanurzenia całego wcześniejszego tekstu: $$y = \operatorname{softmax}(C[E(w_{i-1}),E(w_{i-2}),A(w_1,\dots,w_{i-3})]),$$ -lepiej z dodatkową warstwą ukrytą: +czy lepiej z dodatkową warstwą ukrytą: -$$y = \operatorname{softmax}(C\operatorname{tg}(W[E(w_{i-1}),E(w_{i-2}),A(w_1,\dots,w_{i-3})])),$$ +$$y = \operatorname{softmax}(C\operatorname{tgh}(W[E(w_{i-1}),E(w_{i-2}),A(w_1,\dots,w_{i-3})])),$$ W tak uzyskanym dwuwarstwowym neuronowym modelu języka, łączącym model trigramowy z workiem słów, macierz $W$ ma rozmiar $h \times 3m$. +*Pytanie*: jakie mamy możliwości, jeśli zamiast przewidywać kolejne słowo, mamy za zadanie +odgadywać słowo w luce (jak w wyzwaniach typu /word gap/)? + ** Literatura Skuteczny n-gramowy neuronowy model języka opisano po raz pierwszy diff --git a/wyk/08_Neuronowy_ngramowy_model/bow1.drawio.png b/wyk/08_Neuronowy_ngramowy_model/bow1.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..c500af51b1ce9404a6c9f749b8e900b25f86bdbd GIT binary patch literal 23080 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 z