Hello Folks! W tym artykule, będę opisywał algorytm używany w Natural Language Processing: Latent Semantic Analysis ( LSA ).
Główne zastosowania tej wspomnianej metody są szeroko zakrojone w lingwistyce: Porównywanie dokumentów w przestrzeniach niskowymiarowych (Document Similarity), Znajdowanie powtarzających się tematów w dokumentach (Topic Modeling), Znajdowanie relacji między terminami (Text Synoymity).

Zdjęcie dzięki uprzejmości: Pinterest

Wprowadzenie

Model Latent Semantic Analysis jest teorią dotyczącą tego, w jaki sposób reprezentacje znaczenia
mogą być uczone na podstawie napotkania dużych próbek języka bez wyraźnych wskazówek co do jego struktury.

Aby wyodrębnić i zrozumieć wzorce z dokumentów, LSA z natury opiera się na pewnych założeniach:
1) Znaczenie zdań lub dokumentów jest sumą znaczeń wszystkich występujących w nich słów. Ogólnie rzecz biorąc, znaczenie danego słowa jest średnią ze wszystkich dokumentów, w których występuje.
2) LSA zakłada, że związki semantyczne między słowami nie są obecne jawnie, ale tylko utajone w dużej próbce języka.

Perspektywa matematyczna

Latentna Analiza Semantyczna (LSA) obejmuje pewne operacje matematyczne w celu uzyskania wglądu w dokument. Algorytm ten stanowi podstawę Modelowania Tematycznego. Podstawową ideą jest wzięcie macierzy tego, co mamy – dokumentów i terminów – i rozłożenie jej na oddzielną macierz dokument-temat i macierz temat-term.

Pierwszym krokiem jest wygenerowanie naszej macierzy dokument-term przy użyciu Tf-IDF Vectorizer. Można ją również skonstruować przy użyciu Bag-of-Words Model, ale wyniki są skąpe i nie wnoszą żadnego znaczenia do sprawy.
Dając m dokumentów i n słów w naszym słowniku, możemy skonstruować macierz
m × n A, w której każdy wiersz reprezentuje dokument, a każda kolumna słowo.

Picture-1: Term Frequency- Inverse Document Frequency (Tf-IDF) Score

Intuicyjnie, termin ma dużą wagę, gdy występuje często w dokumencie, ale rzadko w korpusie.
Utworzymy macierz dokumentów-terminów, A, używając tej metody transformacji (tf-IDF) do wektoryzacji naszego korpusu. (W sposób, który nasz dalszy model może przetworzyć lub ocenić, ponieważ nie pracujemy jeszcze na ciągach znaków!)
Jest jednak pewna subtelna wada, nie możemy niczego wywnioskować obserwując A, ponieważ jest to hałaśliwa i rzadka macierz. (Czasami zbyt duża, aby ją nawet obliczyć dla dalszych procesów).

Ponieważ Topic Modeling jest z natury algorytmem nienadzorowanym, musimy wcześniej określić ukryte tematy. Jest to analogiczne do klasteryzacji K-Means Clustering, w której określamy wcześniej liczbę klastrów.

W tym przypadku wykonujemy aproksymację Low-Rank Approximation wykorzystując technikę redukcji wymiarowości za pomocą Truncated Singular Value Decomposition (SVD).
Singular value decomposition jest techniką w algebrze liniowej, która faktoryzuje dowolną macierz M do iloczynu 3 oddzielnych macierzy: M=U*S*V, gdzie S jest diagonalną macierzą wartości singularnych M.

Truncated SVD redukuje wymiarowość wybierając tylko t największych wartości singularnych i zachowując tylko pierwsze t kolumn U i V. W tym przypadku, t jest hiperparametrem, który możemy wybrać i dostosować, aby odzwierciedlić liczbę tematów, które chcemy znaleźć.

Obraz-2: Przycięte SVD: U i V są macierzami ortonormalnymi, S jest macierzą diagonalną

Uwaga: Truncated SVD dokonuje redukcji wymiarowości, a nie SVD!

Picture-3: Pictorial Representation of Truncated SVD

Mając te wektory dokumentów i wektory terminów, możemy teraz łatwo zastosować miary takie jak podobieństwo cosinusowe do oceny:

  • podobieństwa różnych dokumentów
  • podobieństwa różnych słów
  • podobieństwa terminów (lub „zapytań”) i dokumentów (co staje się przydatne w wyszukiwaniu informacji, gdy chcemy pobrać fragmenty najbardziej odpowiadające naszemu zapytaniu).

Uwagi końcowe

Algorytm ten jest używany głównie w różnych zadaniach opartych na NLP i jest podstawą dla bardziej solidnych metod, takich jak Probabilistic LSA i Latent Dirichlet Allocation (LDA).

Kushal Vala, Junior Data Scientist w Datametica Solutions Pvt Ltd

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.