Title: Semantic spaces and word games

Przestrzenie semantyczne i gry słowne

Prace:

  1. Duch W, Szymanski J, Sarnatowicz T, Towards linguistic competence of avatars in cyberspace (in prep). Cyberworlds 23-25.11.2005
  2. Duch W, Szymanski J, Sarnatowicz T, Concept description vectors and the 20 question game. Intelligent Information Processing and Web Mining, Advances in Soft Computing, Springer Verlag Vol. xxx (2005) yyy-zz
  3. Duch W, Matykiewicz, P. Minimum Spanning Trees Displaying Semantic Similarity. Intelligent Information Processing and Web Mining 2005 (in print)
  4. Duch W, Brain-inspired conscious computing architecture. Journal of Mind and Behavior Vol. 26 (1-2) 2005, pp. xxx

Jest tu wiele etapów i projekt się nam powoli rozrasta. Ogólne linki do zagadnień związanych z NLP, IR oraz IE są tutaj.

Pawel Matykiewicz ma dokumentacje do pamięci rozpoznawczej tutaj.

Działa, da się grać ze stroną www.20q.net, chociaż ustawienie mikrofonu nie jest łatwe i często pojawiają się odpowiedzi przypadkowe, tworzone zapewne na podstawie szumu.
Ogólnie tego typu interfejsy to problem sam w sobie: notatki na temat HIT (Humanized InTerfaces).

Do grania w 20 pytań lub zgadywania wyrazów do krzyżówek potrzebny jest nam nowy rodzaj słownika, zawierający wartości wszystkich pojęć, jakie dla danej koncepcji mają jakiś sens. Wtedy będzie można określić, ile informacji uzyskamy pytając się o jakąś cechę: część ją ma, inne nie, reszta nieokreślona.
Jakie pytanie najlepiej zadać? W NLP istnieje poddziedzina "question answering" lub "query answering", kilka linków jest tu.

Odpowiadania na pytania lub prowadzenie dialogu jest trudne, trzeba do niego podchodzić stopniowo. W pierwszym rzędzie chcemy rozpoznać dokładnie, o jaki obiekt chodzi w zadanym pytaniu, lub mając już częściową wiedzę sprecyzować dokładniej, o co chodzi rozmówcy, co ma na myśli.

Schemat systemu do dialogu powinien wyglądać tak:

  1. Pamięć rozpoznawcza: ciąg znaków => słowo, nazwa, koncepcja. Ta mapa powinna uniezaleznić nas od błędów, literówek, rozwinąć skróty i niejednoznaczności tekstowe. Literówki i świadomie robione błędy można wyłapać za pomoca pamięci autoasocjacyjnych.
  2. Pamięć semantyczna: słowo => wektor kontekstowy. W najprostszym przypadku wektor opisuje cechy, którym można nadać wartości logiczne, symboliczne lub liczbowe, w najlepszym tworzy ramę, w której są szufladki pozwaljące na wchodzenie w relację róznego typu.
  3. Pamięć epizodyczna: wzajemne relacje obiektów reprezentowanych przez wektory kontekstowe, opisujące sytuację w danym tekście/dialogu.
  4. Pamięć robocza: przechowuje fragmenty epizodów ale też stosuje mechanizmy grupowania (chunking) do rozwiązywania problemów; na razie nie planujemy się nią zajmować.

To nie rozwiązuje całego problemu rozumienia zdań, rozkładu gramatycznego, rozumienia relacji w zdaniu itp, ale stanowi konieczną podstawę, na której można budować systemy NLP np. tłumaczące proste zdania. W szczególności mając słownik cech obiektów system może zadawać sensowne pytania dotyczące własności obiektów, pojawiających się w tekście czy w czasie rozmowy tak, by lepiej sprecyzować jej temat. Pełny problem NLP zostawmy sobie na później.

Pamięć rozpoznawcza:
moje notatki o sieciach bezwagowych i macierzach korelacji;
reprezentacja informacji tekstowej podawanej sieci
odporność na zniekształcenia ciągów liter - nie całkiem tak samo jak zniekształcenia obrazów;
związek z badaniami zdolności do czytania tekstów z pomieszanymi literami
zastosowania w filtrowaniu spamu (tu związek z klasyfikacją dokumentów)
znajdywanie zbioru najbardziej podobnych wyrazów przy obniżonym progu podobieństwa
możliwości zastosowania sieci dynamicznych są chyba ograniczone ze względu na skalowanie.

Rozważamy zastosowanie sieci bezwagowych z odpowiednią analizą wstępną, która rozbije słowo na szereg bigramów odpowiedzialmnych za korelacje par liter sąsiednich, z jedną lub dwiema pomiedzy, i wybrane trigramy. Dodatkowo warto uznać za tożsame niektóre litery i znaki specjalne, np. {@, a}, {|, 1, I (i), l} itd, znaki, które wizualnie moga być podobne ale mają całkiem inne ASCII. Dzięki temu można się uniezależnić od literówek czy efektów pisowni brytyjeskij i amerykańskiej. Słowo "neurone" (br) będzie mapowane na "neuron" (am) itd. Budowa pamięci rozpoznawczej i jej zastosowanie od mapowania na jednoznaczne formy, filtrowania spamu, porównywania zdolności rozpoznawania z ludzkimi dla wyrazów z pomieszanymi literami, będzie niezależną częscią otólnego projektu.

Pamięci semantyczne.
Najprostsze zadanie: opisów cech obiektów, automatycznie wygenerowany na podstawie analizy słowników, tezaurusów, encyklopedii, ontologii i internetowych tekstów.
Czemu to odpowiada? Ramom, w których mamy jedynie szufladki typu "ma"?
Jak utworzyć rdzenie do wyrazów, jak wybrać frazy rzeczownikowe stanowiące jedno pojęcie? New York jest jednym obiektem, "samochód policyjny" szczególnym przypadkiem samochodu, który powinien dziedziczyć większość cech, wiele równoważnych nazw odpowiada tej samej koncepcji, itd.
Korelacje kontekstowe zawierają relacje wszystkich typów, jak je automatycznie poklasyfikować?
Czy da się wyprowadzić z korelacji automatycznie relacje ontologiczne?

Słownik podstawowych cech może mieć różną postać:

Np: V(needle) pojawia się w zdaniach z sharp, slender, steel, small, sewing, surgical suturing, polished steel, eye at one end, thread, pointer, indicator, dial, scale, part of a mechanical device, magnetic, hypodermic, injection, a shot, narrow stiff leaf, sharp projection, spine of a sea urchin, crystal, sharp-pointed instrument ... a to raczej prosty wyraz.
Liczba wyrazów w formie podstawowej może wynosić 105 a po uzwzglednieniu fraz znacznie więcej.

Do czego się przydadzą słowniki podstawowych cech?
Jak je tworzyć automatycznie?
Jak przejść od reprezentacji binarnej, przypominającej logiczne predykaty definiujące obiekty, do ram, zawierających zmienne i wartości?
Jak rozszerzać je o relacje w automatyczny sposób?
Jak uwzględniać szyk? Niesymetryczne wektory kontekstowe?
Jakie są ograniczenia najprostszej reprezentacji wiedzy opartej o binarne wektory opisujące wiedzę o obiektach i koncepcjach? Na jakie pytnaia można za ich pomocą odpowiedzieć?
Jakie są minimalne rozszerzenia takiej reprezentacji wiedzy i na jakie pytania będzie mozna za ich pomocą odpowiedzieć?
Jak wygląda szczegółowa hierachia metod reprezentacji wiedzy o koncepcjach? Od binarnych do złożonych ram? Jak to się ma do modeli neurobiologicznych?

Dobrym pomysłem jest budowanie słownika stopniowo, najpierw dla obiektów typu przedmiotów (rzeczowniki), które dają się dobrze okreslić, potem dla pozostałych, które się pojawiają w ich kontekście. Abstrakcyjne pojęcia są definiowane przez bardziej złożone konstrukcje logiczne niż tylko sam kontekst. Szkielet wiedzy semantycznej powinien powstać z wiedzy encyklopedycznej i słownikowej, teksty ogólne mogą go jedynie wzbogacać ale nie powinny popsuć. Może warto zacząć od tekstów dla dzieci?

Dobra strategia: utworzyć listę wszystkich możliwych własności (rzeczowniki + przymiotniki), które mogą opisać obiekt w pamięci, sprawdzić, które z nich wystepują w analizowanych tekstach encyklopedycznych i słownikach w hasłach na temat obiektów, które chcemy mieć na liście, i szukać w nich takich cech. Jedyny problem to ustalenie czy dana cecha jest czy nie, jesli nie mamy takiej infromacji uznajemy, że słuszna jest hipoteza: dana cecha nie dotyczy danego obiektu.
Zapewnie nie unikniemy ręcznego porawiania po takim kroku, ale powinno to nam dać dużo w mairę poprawnych koncepcji.
Problem: przymiotniki stosują się do części ciała, nie ma sensu koncepcja "dlugi" dla całego zwierzęcia, ale np. moze byc dluga_szyja. To pozwala uzywac binarnych cech do opisu obiektu i dodac nieco wiecej wiedzy, jest wiec rozszerzeniem najprostszego schematu. Jesli trzymać się najprostszego schematu to "dlugi" stosuje sie do wszystkich obiektow fizycznych, "szyja" do zwierzat.

Zadanie: za pomocą słownika (np. www.dictionary.com) utworzyć wektory kontekstowe dla zwierząt, używając rzeczowników i przymiotników.

Poprzednie projekty dotyczące tworzenia reprezentacji semantycznych za pomocą wektorów kontekstowych:

HAL pokazuje jak skojarzenia epizodyczne przechodzą w relacje semantyczne, a może i ontologiczne. Korpus liczył ok. 300 M słów z Usenetu, analizowany z okienkiem 10 wyrazów z każdej strony, a wektory 140 K elementów. Granice zdań były ignorowane. Czy nie lepiej trzymać się zdań lub zacząc od definicji a potem tylko to dostrajać by zbytnio nie popsuć? Usenet to śmietnik ale przypomina język mówiony i są tam wszystkie możliwe tematy.
Wyrazy obok siebie dodają +10, oddalając się max(0, 10-pom), gdzie pom jest liczbą wyrazów pomiedzy centralnym i pozostałymi. To ma symulowac pojemność pamięci roboczej w czasie czytania lub słuchania. Wiersze naliczają wyrazy poprzedzające a kolumny nastepujące po danym słowie w macierzy współwystępowania (co-occurence). Nie próbowano oddzilić wyrazów mających kilka znaczeń (WSD).
Słownik zawierał 70 K najczęściej występujących wyrazów, połowa normalnych ze słownika, a połowa to imiona własne, slangowe, błędy i skróty. Pamięć rozpoznawcza powinna to zmniejszyć. Końcowy wektor był połączeniem rzędu i kolumny, stąd 140 K wymiarów. Wektory są normalizowane, dzielone przez: Z=sqrt (sum(Vi2))/(N*666). Skąd to 666?
Dla danego tematu liczba słów, które wykazują znacząca wariancję jest niewielka i zwykle nie przekracza 200. W eksperymentach psychlingwistycznych Burgess często używał jeszcze mniejszej liczby słów. Wyniki najczęściej przedstawia się używając MDS ale dodaje się analizę wariancji wewnątrz klastrów i pomiędzy. Model prowadzi do loklanego i globalnego efektu współwystepowania: słowa, które często są razem nabierają podobnych reprezewntacji, i słowa, które nigdy nie są razem ale mają takie same konteksty, np. wróbel i leci to lokalne, a wróbel, jaskółka globalne podobieństwa.

Wyniki: semantyczna kategoryzacja, np. buty i skarpetki; gramatyczna kategoryzacja, np. rzeczowniki i czasowniki oddzielnie; emocje i pojęcia prawnicze etc. Eksperymenty pokazują, że większość ludzi porządkuje podobieństwo wyrazów (np, widząc "frightned" i 7 najbliższych sąsiadów "scared", ... "afraid") zgodnie z odległościami. Pokazuje to wiarygodność "sąsiedztw kognitywnych", chociaż lepiej byłoby to wyprowadzić z neuronowego modelu uczenia się kontekstów.
Trudno jest znaleźć relacje pomiędzy czasownikami i narzedziami, np kopać - łopata, prowadzić - samochód itd. Nieco pomaga szukanie wspólnych sąsiadów, a więc efektów, które nie wynikają bezpośrednio z współwystepowania. Niemniej pokazuje to ograniczenia tworzenia wektorów konktekstowych z infromacji Usnetu - rzeczy oczywiste nikt nie pisze, a w słownikach i encyklopediach można je znaleźć.
Zrobiono wiele innych eksperymentów psycholingwistycznych.

Można to podejście zastosować na kilku poziomach.

Uwzgledniano wszystkie wyrazy, ok. 140.000, bez szukania rdzeni, stąd book, books są koło siebie ale są rozróżniane. Lepiej - zwłaszcza w j. polskim - będzie znaleźć najpierw rdzeń, może już na etapie pamięci rozpoznawczej kojarząc słowa z rdzeniami.

Projekt stracił impet, skupiał się głównie na badaniu psycholingwistycznych efektów: odległości między słowami są skorelowane z czasami reakcji; błędy osób cierpiących na dysleksję też; imiona własne sławnych ludzi są łatwiej przypominane (bogatszy kontekst); więcej jest błędów dla imion własnych niż dla zwykłych rzeczowników.
Imiona tworzą klaster: John, David, Paul, Peter ... ale nazwiska sławnych ludzi mają inne otoczenie, np. Reagan jest koło republican, Clinton, democrats, Bush itd. Bill czy Gene mają bardziej zróżnicowane otoczenie i dlatego łatwiej są prawidłowo przypominane.

Jaka jest lokalna gęstość obiektów w różnych częściach przestrzeni cech? Ile jest lokalnie wymiarów? Jaka krzywizna? Jak to scharakteryzować? Można np. brać 10 najbliższych sąsiadów i patrzeć na max/średnią odległość. Dla 20 najbardziej popularnych imion gęstość jest większa niż dla 20 najczęstszych rzeczowników. Pomyłki zależą od gęstości obiektów w okolicy. Jest to przykład geometrycznej analizy struktury przestrzeni semenatycznej.

Model trenowany na ~230M słów z encyklopedii i New York Times, ale nie całkiem widać, co właściwe ten model robi. HAL i LSA jest w/g autora zbyt skomplikowany i wymaga analizy całego tekstu by się czegoś nauczyć; tu uczy się cały czas stopniowo. Wektory mają tu reprezentować pobudzenie mózgu i mieć dowolny wymiar. Analizowane jest zdanie przez skojarzenie wszystkich słów w nim wystepujących i dodanie do wektorów tych słów, "proste sumowanie kontekstów". Jak? Nie wiadomo.
Najprościej dodać 1 do wszystkich słów w zdaniu ale składowe muszą być wtedy słowami, a nie dowolnymi wymiarami.

Można oczywiście robić LVQ na wektorach o dowolnej liczbie wymiarów przypadkowo zaincjalizowanych lub startujących z zera, ale wtedy nie ma prostej interepretacji składowych. Można za to zrobić WDS, zadając kilka punktów na słowo; jeśli nie pojawiają się całkiem odmienne konteksty to punkty zostają blisko.

Na pewno da się coś podobnego zrobić za pomocą macierzy korelacji jako model pamięci semantycznej. Celem jest zrobienie prostej reprezentacji obiektów jako podstawy, a nie pełnej analizy gramatycznej. Trzeba zrobić bootstrap tak by jak najwięcej dało się zrobić automatycznie.

Proste wektory kontekstowe można dodatkowo klasteryzować za pomocą LVQ. Analiza współczynników wektorów kontekstowych da informację o cechach, które stosują się do danej koncepcji, zwłaszcza jesli najpierw przeanalizować słowniki, opisujące obiekty. Frazy rzeczownikowe pojawią się jako silnie skorelowane obiekty. Trzeba je dodać do wektora kontekstowego.

Analiza Wordnetu: można określić podobieństwo semantyczne ale nie da się wyciągnąć wszystkich cech.

Inne ontologie: jest oczywiście CyC, w podstawowej wersji darmowy, i inne, np:
virtual.cvut.cz/kifb/en/ oparta na Wordnecie; nie jest zbyt duża, ale zawiera dodatkowo kilka specjalistycznych ontologii.

Może warto zacząć od dziedzin wąskich, np. geografii czy fauny; może też wyspecjalizowanych, np literatury na temat JRA; ogólnie struktura przestrzeni semantycznej pokazuje, że będzie w niej wiele odizolowanych obszarów, dla zagadnień specjalistycznych trzeba budować oddzielne przestrzenie koncepcji i wektory kontekstowe.

Czy reguły poprawiające słownik cech obiektów muszą uwzględniać kategorie gramatyczne?

Automatyczne tworzenie przestrznei semantycznych.

Zastosowania:

  1. Krzyżówki: gotowe pytania na które chcemy znać odpowiedź, np Ateny mają określone cechy: stolica, Grecja;
  2. 20 pytań.
  3. Tworzenie zagadek.
  4. Ukierunkowanie pytań chatterbota, rozszerzenie AIML o pamięć semantyczną i zastosowanie w botach Alice.
  5. Inne gry słowne?
  6. Precyzyjna specyfikacja obiektu w czasie dialogu: co rozmówca miał na myśli?
  7. Ustalenie sensownego pytania: jeśli obiekt jest znany to można pytać o jego cechy lub różne z nim związane koncepcje występujące w wektorze kontekstowym.
  8. Sieć semantyczna (model pamięci epizodycznej) z wektorami kontekstowymi? Jakie mechanizmy neuronowe to ma przybliżać? Jest trochę programów pozwalających na budowanie takich sieci w wyniku analizy fragmentów tekstu.

Plany na dłuższa metę:


Źródła tekstów: słowniki, encyklopedie, bajki, inne?
Wikipedia jest w różnych językach, ma słownik, po polsku: http://pl.wikipedia.org.

Tekst z projektu dla Centrum Doskonałości.

Inne pomysły:
Wordnet - integracja z Wikipedią, uczenie na podstawie glossów w otagownym korpusie w Wordnecie.
Wizualne linki w opisie, np. dla pnia mózgu. Różne spojrzenia za pomocą typów linków.
Jak wizualizować pojęcia? Użyć wizualizacji pierścieniowej?
Neuroinformatyka i porządkowanie infromacji.
BSI RIKEN Team-map. oraz Visome, and INCF.

Inne:
Alegro - prezenty za pomocą określenia parametrów.

Czasopisma w tej dziedzinie?

    Computational Linguistics

Links to other Duch-Lab projects, many talks and to other papers on various subjects.

Working log (local accsess only), maintained by Wlodzislaw Duch.