Wektory dystrybucyjne: uzyskiwanie wektorów dystrybucyjnych

W tej sekcji omówimy 2 popularne metody umieszczania treści:

  • Redukcja wymiarów
  • Wyodrębnianie embeddingu z większego modelu sieci neuronowej

Techniki redukcji wymiarów

Istnieje wiele technik matematycznych umożliwiających uchwycenie ważnej struktury dużej przestrzeni w przestrzeni niskiej. Teoretycznie można użyć dowolnej z tych technik do utworzenia wektora dystrybucyjnego dla systemów uczących się.

Na przykład do tworzenia zasobów danych z umieszczonymi w nich słowami użyto analizy głównych składowych (PCA). Biorąc pod uwagę zbiór wystąpień, np. worek słów, PCA próbuje znaleźć ściśle powiązane wymiary, które można zwinąć w jeden wymiar.

szkolenie wbudowania w ramach sieci neuronowej;

Wektor dystrybucyjny możesz utworzyć podczas trenowania sieci neuronowej na potrzeby zadania docelowego. Dzięki temu możesz uzyskać wstępnie dopasowany do Twojego systemu embedding, ale może to zająć więcej czasu niż trenowanie embeddingu osobno.

Ogólnie w swojej sieci neuronowej możesz utworzyć warstwę ukrytą o rozmiarze d, która jest wyznaczona jako warstwa zanurzeniowa, gdzie d reprezentuje zarówno liczbę węzłów w warstwie ukrytej, jak i liczbę wymiarów w przestrzeni zanurzeniowej. Ten poziom zanurzania można łączyć z dowolnymi innymi cechami i warstwami ukrytymi. Podobnie jak w przypadku każdej głębokiej sieci neuronowej, parametry będą optymalizowane podczas trenowania, aby zminimalizować straty na węzłach warstwy wyjściowej sieci.

Wracając do przykładu rekomendacji dotyczących jedzenia, naszym celem jest przewidywanie nowych posiłków, które spodobają się użytkownikowi, na podstawie jego obecnych ulubionych posiłków. Po pierwsze, możemy zebrać dodatkowe dane o 5 najbardziej lubianych potrawach naszych użytkowników. Następnie możemy modelować to zadanie jako problem uczenia nadzorowanego. Cztery z tych 5 najlepszych produktów traktujemy jako dane o cechach, a piąty losowo wybrany produkt traktujemy jako pozytywną etykietę, którą ma przewidywać model. Prognozy modelu optymalizujemy za pomocą funkcji utraty softmax.

Podczas trenowania model sieci neuronowej uczy się optymalnych wag dla węzłów na pierwszej warstwie ukrytej, która służy jako warstwa wstawiania. Jeśli na przykład model zawiera 3 węzły w pierwszym ukrytym warstwie, może określić, że 3 najbardziej trafne wymiary produktów spożywczych to: „sandwichness”, „dessertness” i „liquidness”. Rysunek 12 przedstawia wartość wejściową „hot dog” zakodowaną w postaci wektora trójwymiarowego.

Rysunek 12. Sieć neuronowa do kodowania 1-hot hot doga. Pierwsza warstwa to
 warstwa wejściowa z 5 węzłami, z których każdy jest oznaczony ikoną potrawy, którą reprezentuje (barszcz, hot dog, sałatka... i szoarma). Te węzły mają odpowiednio wartości [0, 1, 0, ..., 0], co odpowiada kodowaniu „hot dog” w formie wektora jednowymiarowego. Warstwa wejściowa jest połączona z warstwą embeddingu z 3 węzłami, której węzły mają odpowiednio wartości 2,98, -0, 75 i 0. Warstwa wektorowa jest połączona z ukrytą warstwą z 5 węzłami, która jest następnie połączona z warstwą wyjściową z 5 węzłami.
Rysunek 12. Kodowanie jednoelementowe wartości hot dog podawane jako dane wejściowe do głębokiej sieci neuronowej. Warstwa wektorowa przekłada jednogotowe kodowanie na trójwymiarowy wektor [2.98, -0.75, 0].

W trakcie treningu wagi warstwy embeddingu będą optymalizowane, aby wektory embeddingu w przypadku podobnych przykładów były do siebie zbliżone. Poszczególne wymiary warstwy osadzania (co reprezentuje każdy węzeł w warstwie osadzania) rzadko są tak zrozumiałe jak „dessertness” czy „liquidness”. Czasami można się domyślić, co „oznaczają”, ale nie zawsze jest to możliwe.

Elementy wbudowane są zwykle dostosowane do konkretnego zadania i różnią się od siebie, gdy zadania się różnią. Na przykład wektory wygenerowane przez model klasyfikacji wegetariańskiej i niewegetariańskiej mogą mieć 2 wymiary: zawartość mięsa i zawartość produktów mlecznych. Tymczasem wektory dystrybucyjne wygenerowane przez klasyfikatory kuchni amerykańskiej na śniadanie i obiad mogą mieć nieco inne wymiary: zawartość kalorii, zawartość zboża czy zawartość mięsa. „Płatki” i „kanapka z jajkiem i bekonem” mogą być blisko siebie w przestrzeni embeddingu klasyfikatora śniadania i kolacji, ale daleko od siebie w przestrzeni embeddingu klasyfikatora wegetarianizmu i niewegetarianizmu.

Trenowanie wektora dystrybucyjnego słowa

poprzedniej sekcji poznaliśmy wizualizację relacji semantycznych w przestrzeni osadzania word2vec.

Word2vec to jeden z wielu algorytmów służących do trenowania reprezentacji właściwościowych słów. Korzysta ona z hipotezy dystrybucyjnej, aby mapować słowa podobne semantycznie na wektory osadzone geometrycznie. Hipoteza dystrybucyjna mówi, że słowa, które często sąsiadują ze sobą, są zwykle podobne pod względem semantycznym. Wyrazy „pies” i „kot” często pojawiają się blisko słowa „weterynarz”, co odzwierciedla ich semantyczne podobieństwo. Jak powiedział w 1957 r. językoznawca John Firth, „słowo poznasz po towarzystwie, w którym się pojawia”.

W filmie poniżej objaśniamy inną metodę tworzenia wektora dystrybucyjnego słów w ramach procesu trenowania sieci neuronowej za pomocą prostszego modelu:

Wektory dystrybucyjne statyczne a kontekstowe

Jednym z ograniczeń zasobów danych słów, takich jak te omówione w powyższym filmie, jest to, że są one statyczne. Każde słowo jest reprezentowane przez pojedynczy punkt w przestrzeni wektorowej, mimo że może mieć wiele różnych znaczeń w zależności od tego, jak jest użyte w zdaniu. W ćwiczeniu nr 4 odkryliśmy, że trudno jest zmapować podobieństwa semantyczne w przypadku słowa pomarańczowy,które może oznaczać kolor lub rodzaj owocu.

Aby rozwiązać te problemy, opracowano kontekstualne zanurzone dane. Wektory dystrybucyjne kontekstowe pozwalają na wielokrotne przedstawianie tego samego słowa, a każdy z nich uwzględnia informacje o kontekście, w którym dane słowo jest używane. W przypadku kontekstowego umieszczania w tekście słowo pomarańcza może mieć 2 osobne reprezentacje: jedną, która odzwierciedla użycie słowa w znaczeniu „kolor”, jak w zdaniach „Mój ulubiony sweter ma pomarańczowe paski”, i drugą, która odzwierciedla użycie słowa w znaczeniu „owoc”, jak w zdaniach „Pomarańcza została zerwana z drzewa, zanim dojrzała”.