*

Historia Sztucznej InteligencjiArtificial Intelligence Experts

Inne Podejście Do Uzasadnienia I Reprezentacji

Rozwiązywanie problemów związanych z satysfakcją z ograniczeń

Oprócz metod wnioskowania opartych na sieciach logicznych lub semantycznych zbadano kilka innych technik. W tej sekcji opiszemy klasę problemów zwanych problemami z ograniczeniami (lub problemami z przypisaniem) i metodami ich rozwiązywania. W tych problemach mamy zestaw obiektów, którym należy przypisać wartości spełniające zestaw ograniczeń. Widzieliśmy już jeden przykład problemu z przypisaniem - przypisywania etykiet do linii na obrazie. W tym problemie ograniczenie polega na tym, że każdej linii na obrazie można przypisać jedną i tylko jedną etykietę. Ograniczenia można wyrazić w postaci relacji z bazami danych, wzorów logicznych, równań lub nierówności. Dlatego problemy związane z satysfakcją z ograniczeń pojawiają się naturalnie w wielu ustawieniach, w tym w harmonogramie, symulacji, wizji komputerowej i robotyce. (Arkusz kalkulacyjny jest na przykład prostym systemem spełniania ograniczeń.) Na szczęście istnieją pewne ogólne metody rozwiązywania tych problemów, które są niezależne od aplikacji. Zilustruję jedną z takich metod małym przykładem. Rozważ problem z umieszczeniem czterech królowych na szachownicy 4 x 4 w taki sposób, aby żadna królowa nie mogła złapać żadnej innej. W problemie Four-Queens mamy cztery obiekty, c1; c2, c3 i c4, reprezentujące odpowiednio kolumny od 1 do 4, w których można umieścić królową. Każdy z tych obiektów może mieć jedną z czterech wartości 1, 2, 3 lub 4, odpowiadających numerom wierszy. Na przykład, gdy c3 ma wartość 2, królowa jest umieszczana w drugim rzędzie trzeciej kolumny.

Problem Four-Queens ogranicza wartości tych zmiennych

Na przykład, jeśli c1 ma wartość 1, c2 nie może mieć wartości 1 lub 2; c3 nie może mieć wartości 1 lub 3; oraz c4 nie może mieć wartości 1 lub 4. Więzy są reprezentowane jako wykres zwany wykresem ograniczeń. Każdy węzeł na tym wykresie jest oznaczony nazwą obiektu wraz z zestawem wszystkich wartości tego obiektu. Powietrze węzłów jest połączone łukiem (krawędzią, która ma kierunek), jeśli możliwe wartości obiektu na końcu łuku są ograniczone przez dowolną z wartości obiektu na szczycie łuku. Przykład takiego wykresu dla problemu Czterech Królowych pokazano poniżej



W tym problemie każdy obiekt ogranicza wszystkie pozostałe, więc wszystkie węzły mają łuki do wszystkich pozostałych węzłów. (Aby to nie było zaśmiecone, reprezentuję dwa różne łuki za pomocą jednej linii ze strzałkami na każdym końcu). Zaczynamy od przypisania wartości do jednego z obiektów. To przypisanie jest wartością "próbną" i początkiem procesu wyszukiwania. Jeśli to nie zadziała, będziemy musieli cofnąć się i wypróbować inną wartość. Załóżmy, że zaczynamy od przypisania wartości 2 do obiektu c1 (odpowiadającego umieszczeniu królowej w kolumnie 1, wiersz 2). Teraz iteracyjnie badamy wszystkie łuki na rycsunku i eliminujemy dowolną wartość obiektu na ogonie łuku, który jest niespójny (zgodnie z więzi) ze wszystkimi wartościami na początku łuku. Proces ten, zwany propagacją ograniczeń, zatrzymuje się, gdy nie można już wyeliminować żadnych wartości. Kilka pierwszych kroków tego procesu może wyglądać następująco:

1. Najpierw spójrz na łuk od c2 do c1: Możemy wyeliminować c2 = 1, c2 = 2 i c2 = 3, ponieważ każda z tych wartości jest niezgodna z wartościami (jest tylko jedna) c1.

2. Następnie spójrz na łuk od c3 do c1: Możemy wyeliminować c1 = 2 i c1 = 4.

3. Następnie spójrz na łuk od c4 do c1: Możemy wyeliminować c1 = 2.

Wyeliminowanie niektórych wartości, tak jak właśnie to zrobiliśmy, czyni jeszcze więcej wartości podatnymi na eliminację. Ponowne odwiedziny łuków w celu ponownego sprawdzenia spójności ujawnią, które z nich. Można powiedzieć, że eliminacja wartości "propaguje" się na wykresie ograniczeń. Kontynuacja procesu propagacji eliminuje wszystkie wartości oprócz jednej wartości dla każdego węzła. W tym momencie wszystkie łuki są spójne i nie można już wyeliminować żadnych wartości. Wykres pokazany na rysunku poniżej pokazuje, jak może przebiegać proces, zaczynając od wartości pozostałych po wykonaniu trzech wymienionych kroki.



W tym przypadku propagacja ograniczeń rozwiązała problem (biorąc pod uwagę, że zaczęliśmy od c1 = 2, zgadywanka). Umieszczenie czterech królowych pokazano tu



Ten proces radzenia sobie z problemami związanymi z satysfakcją z ograniczeń jest oparty na AC-3 (skrót od Arc Consistency Algorytm nr 3), algorytmie zaproponowanym przez Alana K. Mackwortha, profesora na University of British Columbia . Mackworth kontynuował prace nad problemami związanymi z ograniczeniami i ich zastosowaniami w robotyce i kontroli agentów. (Zaproponował również i zbudował pierwsze roboty do gry w piłkę nożną).` Zaproponowano różne rozszerzenia i ulepszenia AC-3. Zostało to dobrze opisane w książce Riny Dechter (która wniosła znaczący wkład w samą eldę) oraz w rozdziale piątym tekstu Russella i Norviga. Artykuł Vipina Kumara analizuje całą dziedzinę. Firmy komercyjne, takie jak ILOG (przejmowane przez IBM), rutynowo używają języków programowania z ograniczeniami w aplikacjach obejmujących planowanie i symulację. Przykład Four-Queens, którego użyłem do zilustrowania propagacji ograniczeń, znalazł rozwiązanie bez wyszukiwania (ponieważ zacząłem od wyboru c1= 2). Gdybym jednak początkowo wybrał c1 = 1, propagacja ograniczeń wyeliminowałaby wszystkie wartości we wszystkich węzłach, wskazując, że nie ma rozwiązania problemu Czterech Królowych z królową w kolumnie 1, wiersz 1. (You są zaproszeni do sprawdzenia tego.) Dokonanie tego wyboru i stwierdzenie, że nie ma wtedy rozwiązania, wymagałoby wyższego poziomu procesu wyszukiwania, aby cofnąć się, aby wypróbować inną wartość. Możliwe jest również, że selekcja próbna, po której nastąpi propagacja ograniczeń, pozostawiłaby nierozwiązane wartości niektórych obiektów. W takim przypadku należałoby dokonać wyboru wartości jednego z tych obiektów, po czym nastąpiłaby większa propagacja ograniczeń, możliwe cofanie się itd. Zatem rozwiązanie problemów związanych z satysfakcją z ograniczeń zwykle wymaga przeszukiwania, a kilka procedur cofania zostało zaproponowanych i wykorzystanych.

Rozwiązywanie problemów za pomocą logiki zdań

Ważnym szczególnym przypadkiem reprezentacji i rozumowania wiedzy logicznej jest przypadek, w którym żadna z formuł logicznych nie zawiera zmiennych. Chociaż ten przypadek nie mógł mieć formuł takich jak (∀x) [Man (x) ⊃ Mortal (x)], mógł mieć formuły takie jak [Man (Socrates) ⊃ Mortal (Socrates)] i [Man (Plato) ⊃ Mortal ( Plato)] i tak dalej. Ponieważ nie ma zmiennych, ten szczególny przypadek jest zasadniczo taki sam jak logika zdań. Wynika to z tego, że wyrażenia takie jak Człowiek (Sokrates) i Śmiertelny (Sokrates), ilekroć występują w bazie wiedzy, można zastąpić twierdzeniami, takimi jak P014 i Q234, które nie mają wewnętrznej struktury, a zatem są całkowicie niezwiązane. Wadą ograniczania się do logiki zdań jest to, że musielibyśmy mieć możliwie bardzo dużą liczbę formuł obejmujących wszystkie byty, o których chcemy rozmawiać {zamiast używać tylko pojedynczych formuł ze zmiennymi obejmującymi je wszystkie. Zaletą kompensującą jest jednak to, że opracowano niezwykle silne metody rozumowania z bardzo dużą liczbą formuł zdań. Zilustruję działanie tych metod za pomocą prostej logicznej łamigłówki. zakładają, że wśród zaproszonych na przyjęcie są trzy raczej kłopotliwe osoby Ann, Bill i Charlie. Przyjaciel, który zdaje sobie sprawę z dynamiki społecznej wśród tych osób, informuje gospodynię, że przynajmniej jeden z tych gości na pewno będzie uczestniczył, ale jeśli Ann weźmie udział, Bill nie weźmie udziału, a jeśli Bill weźmie udział, Charlie nie weźmie udziału, a jeśli Charlie weźmie udział Ann nie. Czy na podstawie tych informacji gospodyni może dowiedzieć się, kto może wziąć udział? Gdyby była logikiem, mogłaby przekształcić informacje o swojej przyjaciółce w następujący zestaw formuł w logice zdań (gdzie A oznacza "Ann jest nadchodzi "i tak dalej):

A ∨ B∨ C;
¬ A ∨ ¬ B;
¬PNE;
¬ C ∨ ¬ A:

Przypomnij sobie z mojego wcześniejszego użycia formuł logicznych, że "¬" oznacza "nie" i że "∨" oznacza "lub". Formuły takie jak te, które składają się ze zdań (lub ich negacji) połączonych znakami "lub", nazywane są "klauzulami". Poszczególne pozycje same w sobie nazywane są "zmiennymi", ponieważ ich wartości prawdy nie zostały jeszcze przypisane. Aby rozwiązać swój problem, nasza gospodyni musi dowiedzieć się, jak przypisać wartości prawdy (T lub F) do trzech zdań A, B i C, tak aby wszystkie klauzule mają wartość T (ponieważ pochodzą z twierdzeń uznanych za prawdziwe). Jeśli klauzula ma wartość T, logik powiedziałby, że jest "satysfakcjonujące" . Na przykład, jeśli A ma wartość T, co oznacza, że Ann nadchodzi, pierwsza klauzula byłaby spełniona (bez względu na wartości B i C ). Logicy i informatycy wymyślili sposoby rozwiązania tego problemu , czy istnieje przypisanie wartości prawdy do zmiennych w zestawie klauzul, tak aby wszystkie klauzule były spełnione i jakie mogą być te wartości. Trudność polega na tym, że problem określania zdolności satis, zwany "problemem SAT", jest NP-zupełny, co oznacza, że w najgorszym przypadku czas potrzebny wszystkim znanym algorytmom na rozwiązywanie problemów SAT rośnie wykładniczo wraz z rozmiarem problem. Oczywiście problem, z którym boryka się nasza gospodyni, nie jest dużym problemem i nie miałaby trudności z jej rozwiązaniem, po prostu wypróbowując (tylko) osiem możliwych sposobów przypisania wartości prawdy A, B i C, aby odkryć, który z tych ośmiu ( jeśli w ogóle) spełnia wszystkie jej klauzule. Ale wiele problemów obliczeniowych zakodowanych jako zestawy klauzul może obejmować setki tysięcy klauzul zawierających tysiące zmiennych. Takie problemy byłyby trudne do rozwiązania w przypadku metody prób i błędów. Na szczęście opracowano bardziej wydajne metody, które rzeczywiście są w stanie rozwiązać bardzo duże problemy. W rzeczywistości Bart Selman, jeden z wynalazców niektórych z tych bardziej wydajnych metod, mówi: "&helli. obecne solwery mogą rozwiązać instancje za pomocą jednego lub więcej zmiennych i kilku milionów klauzul". Co więcej, twierdzi, że nie jest to "wynik szybszego sprzętu … to w rzeczywistości 95% wynik lepszych algorytmów. Nadal mamy do czynienia z problemem NP-zupełności i wykładniczą przestrzenią wyszukiwania. Zatem ulepszenia sprzętowe bez pomysły algorytmiczne nie mają zbyt dużego wpływu ". Istnieją dwa główne typy metod rozwiązywania problemów SAT. Jedna klasa składa się z tak zwanych metod systematycznych, a druga klasa zawiera tak zwane lokalne metody wyszukiwania. W rzeczywistości niektóre z najlepszych solverów wykorzystują techniki z obu tych dwóch metod.

Metody systematyczne

Większość metod systematycznych opiera się na procedurze zwanej algorytmem DPLL i jej różnymi ulepszeniami. (Algorytm DPLL wywodzi się z wcześniejszego algorytmu, algorytmu DP, zaproponowanego przez Martina Davisa i Hilary Putnam.) Algorytm DPLL działa poprzez przeszukanie drzewa możliwych sposobów przypisania wartości prawdy do zmiennych. W każdym węźle drzewa wyszukiwania do zmiennej przypisywana jest wartość T wzdłuż jednej gałęzi i wartość F wzdłuż innej gałęzi. Te przypisania konwertują zestaw klauzul w węźle na nowe zestawy w dwóch następnych węzłach za pomocą następującego procesu uproszczenia:

1. W każdej klauzuli zastąp zmienną właśnie przypisaną przez T lub F, w zależności od branej gałęzi.
2. Wyeliminuj te klauzule, które zawierają T lub a: F. (Te klauzule są jest już spełniony przez to zadanie).
3. Wyeliminuj dowolne: litery T lub F. ze wszystkich klauzul, w których się pojawiają. (Dla zestaw klauzul, które mają być spełnione, przynajmniej jedna z pozostałych zmiennych w tych klauzulach musi mieć wartość T.)
4. Dla każdej klauzuli, która zawiera tylko jedną zmienną, ustaw tę zmienną na wartość, która spełni tę klauzulę i kontynuuj uproszczenie, jeśli to możliwe.
DPLL kończy się, gdy wystąpi jeden lub drugi z następujących warunków:

i. Jeśli uzyskany zestaw klauzul jest pusty, DPLL zaniża, po ustaleniu, że oryginalny zestaw klauzul jest satysfakcjonujący i że przypisane dotąd wartości prawdy spełniają te klauzule.
ii. Jeśli którakolwiek z klauzul pojawiających się wzdłuż gałęzi drzewa jest pusta (to znaczy, że nie ma już zmiennych, aby spróbować ją spełnić), to DPLL ustaliło, że oryginalny zestaw klauzul jest niezgodny z prawdą, że zostały przydzielone do tej pory wzdłuż tej gałęzi. W takim przypadku wyszukiwanie jest kontynuowane wzdłuż innej gałęzi drzewa, jeśli nadal istnieją zmienne z nieprzypisanymi wartościami prawdy. Jeśli nie, DPLL posiada ustalono, że oryginalny zestaw klauzul nie jest satysfakcjonujący.

Jako przykład przyjrzyjmy się drzewu, które byłoby związane z moim problemem "kto przyjdzie na obiad". Na rysunku pokazano część drzewa wyszukiwania, która zostałaby stworzona przez przypisanie wartości prawdy (w kolejności A, B i C) i uproszczenie.



Jedną interesującą rzeczą, na którą należy zwrócić uwagę w tym przykładzie, jest to, że w zależności od kolejności wyszukiwania, DPLL może (i zwykle robi) zakończyć działanie, zanim wszystkie gałęzie drzewa wyszukiwania zostaną zbadane. Szansa na szybkie zakończenie jest zwiększona przez wykonanie dogłębnego (zamiast szerokiego) wyszukiwania. DPLL osiąga wysoką wydajność i szybkość, wykorzystując to, co informatycy nazywają "rekurencyjnym wyszukiwaniem wstecznym". Dalsze udoskonalenia DPLL zaowocowały znacznie szybszymi i potężnymi globalnymi metodami rozwiązywania problemów SAT. Ulepszenia te polegają na zwiększeniu "inteligencji" cofania się poprzez zastosowanie mechanizmów zwanych "uczeniem się klauzul" i wykorzystanie niektórych strategii stosowanych przez lokalne metody wyszukiwania. Witryna internetowa jednego z tych programów, o nazwie zChaff, twierdzi \ Mamy historie sukcesów w używaniu zChaff do rozwiązywania problemów z ponad milionem zmiennych i 10 milionami klauzul. (Oczywiście nie może rozwiązać każdego takiego problemu!) "

Lokalne metody wyszukiwania

Lokalne metody wyszukiwania działają poprzez wykonanie wyszukiwania podczas wspinania się na wzgórze, wprowadzając sekwencję pojedynczych modyfikacji zestawu losowo wybranych początkowych wartości prawdy dla wszystkich klauzul. W przypadku problemów SAT każdy możliwy zestaw wartości prawdy odpowiada położeniu w krajobrazie, a liczba spełnionych klauzul (dla tego zestawu wartości prawdy) odpowiada wysokości lub wysokości odpowiedniego położenia. Najwyższa lokalizacja w krajobrazie (której może być więcej niż jedna) odpowiada maksymalnej liczbie klauzul, które można spełnić (które byłyby wszystkie, gdyby zbiór klauzul był wystarczający). W 1992 r. Bart Selman (1959 {; ryc. 27.6), Hector Levesque i David Mitchell (1957 {; ryc. 27.6) wprowadzili metodę atakowania problemów SAT o nazwie GSAT.10 (\ G "oznacza chciwość, a my Zobaczę, dlaczego w komentarzu.) GSAT i jego różne rozszerzenia, takie jak WALKSAT, zostały z powodzeniem zastosowane do problemów z aż 200 000 zmiennych. GSAT przeprowadza lokalne poszukiwania wspinaczkowe po krajobrazie wartości prawdy. W formie konspektu, oto jak to działa. Zaczyna się od losowego przypisania wartości prawdy i ocenia, ile klauzul spełnia to przypisanie. Jeśli to zaspokajajac je wszystkie, proces kończy się rozwiązaniem. W przeciwnym razie zmienia kolejno wartość prawdy każdego zdania. Wybiera odwrócenie, które powoduje największy ("najbardziej zachłanny") wzrost liczby klauzul spełnianych, a wyszukiwanie lokalne jest kontynuowane na podstawie nowego zestawu wartości prawdy (z wartością odwróconą). Często zdarza się, że żaden pojedynczy adres IP nie może zwiększyć liczby spełnionych klauzul. Mimo to zwykle są to klapki, które przynajmniej utrzymują tę liczbę. W takim przypadku GSAT wybiera jeden z nich (losowo) i robi odpowiedni krok na osiągniętym "płaskowyżu", mając nadzieję, że może później wznowić wspinaczkę pod górę. Lub może być tak, że wszystkie możliwe kroki podjęte w krajobrazie będą z górki. (W jednym artykule opisującym te lokalne techniki stwierdzono, że taki wynik "prawie nigdy nie występuje".) W tym rzadkim przypadku GSAT z pewnością osiągnął najwyższy możliwy poziom i osiągnął "lokalne maksimum". W niektórych aplikacjach przypisanie wartości prawdy, która nie spełnia wszystkich klauzul, może być przydatne i dopuszczalne, ale jeśli nie, GSAT można "zrestartować" przy użyciu innego zestawu losowych przypisań prawdy z nadzieją, że większy lokalny maksimum można uzyskać w nowym trawersie. W każdym razie GSAT nakłada ograniczenia na liczbę przewróceń , że próbuje, aby nie wędrować bez końca po płaskowyżu. Ponieważ problem SAT ogólnie jest NP-zupełny, możliwe jest znalezienie problemów, dla których metody lokalne (lub dowolne metody) zajęłyby wykładniczy czas, ale autorzy GSAT twierdzą, że takie problemy "wydają się niezwykle rzadkie, i nie występują naturalnie w aplikacjach, które zbadaliśmy. " Oto, w jaki sposób GSAT może rozwiązać nasz problem "kto przyjdzie na obiad", którego zdania są powtarzane tutaj:

A∨ B ∨ C;
¬ A ∨¬ B;
¬PNE;
¬ C ∨ ¬A:

Wybiera losowy zestaw wartości prawdy, powiedzmy T dla A, T dla B i T dla C. Ten zestaw spełnia tylko jedną klauzulę, mianowicie A ∨ B ∨ C. Gdyby GSAT miał odwrócić dowolną z wartości prawdy (od T do F), trzy klauzule byłyby spełnione - wszystkie duże kroki "pod górę". Załóżmy, że GSAT decyduje się na zmianę wartości A, co skutkuje spełnieniem pierwszej, drugiej i ostatniej klauzuli. Zmiana wartości B lub C powoduje, że wszystkie cztery klauzule są spełnione - każdy krok w górę do rozwiązania. Załóżmy, że tak przewraca wartość B. W takim przypadku GSAT znalazłby jedno rozwiązanie, a mianowicie F dla A, F dla B i T dla C. (Logicznie skłonny czytelnik zauważyłby, że w rzeczywistości istnieją trzy rozwiązania, odpowiadające jednemu z trzej zaproszeni są jedynymi uczestnikami wśród nich. Oczywiście gospodyni nie byłaby w stanie zdecydować między tymi trzema, ale przynajmniej wiedziałaby, ile miejsc usiąść przy jej stole.) Nic dziwnego, że GSAT znalazło rozwiązanie za ten mały problem. W rzeczywistości w przypadku dużych losowo generowanych problemów, gdy liczba zmiennych (A, B i C) jest znacznie mniejsza niż liczba klauzul, prawdopodobnie istnieje wiele satysfakcjonujących przypisań prawdy i GSAT (a także innych metod ) prawdopodobnie znalazłoby rozwiązanie. Jednak gdy liczba zmiennych jest znacznie większa niż liczba klauzul, prawdopodobnie nie ma w ogóle żadnych rozwiązań. Jednym z ważnych rozszerzeń GSAT jest WALKSAT (czasem nazywany WSAT), w którym zamiast zawsze zmieniać wartość prawdy tej propozycji, prowadząc do największego wzrostu liczby spełnionych klauzul, czasami dokonuje się losowego wyboru. Dodanie niewielkiej ilości losowości pomaga uniknąć utknięcia w lokalnych maksimach krajobrazu. Porównując globalne i lokalne metody wyszukiwania, Bart Selman twierdzi: "Lokalne metody wyszukiwania są nadal konkurencyjne w wielu domenach, ale ... ponieważ metody DPLL są mniej wrażliwe na kodowanie roblem, są one obecnie częściej wykorzystywane do rozwiązywania problemów strukturalnych [takich jak sprzęt i weryfikacja oprogramowania]. " Mówi jednak, że użycie losowości i ponowne uruchomienie w DPLL… [wprowadza niektóre] niesystematyczne aspekty wyszukiwania lokalnego do DPLL.

Zastosowania solverów SAT

Kilka ważnych problemów można zakodować jako problemy SAT. Na przykład Henry Kautz i Bart Selman wykazali, że wygenerowanie planu działań można wyrazić jako problem SAT. SATPLAN i Blackbox to dwa systemy, które kodują zadania planowania jako problemy SAT, a następnie wykorzystują solwery SAT do tworzenia planów. SATPLAN zaczyna się od specjalnie opracowanych formuł logicznych opisujących efekty działań, a Blackbox zaczyna się od reguł planowania STRIPS. (Przypomnicie sobie system automatycznego planowania STRIPS, który opisałem w rozdziale 12.1.3.) Według Bart Selman, solwery SAT pracujące na logistyce. Na przykład problemy z planowaniem mogą stworzyć optymalne plany około 500 kroków w ciągu kilku minut. Ostatnie wersje systemów planowania opartych na SAT zdobyły pierwsze miejsca w dwuletnich Międzynarodowych Konkursach Planowania. Skuteczne solwery SAT zostały również zastosowane do problemów z weryfikacją programów i obwodów cyfrowych oraz w genomice. Blisko spokrewniony temat obejmuje tak zwane "binarne schematy decyzyjne"(BDD) używane w weryfikacji projektów układów logicznych.

Reprezentowanie tekstu jako wektorów

Poprzednio opisałem systemy odpowiadające na pytania, w których pytanie jest konwertowane na postać zarządzalną obliczeniowo (być może na formułę logiczną), która jest następnie używana do przeszukiwania komputerowej bazy danych (być może bazy wiedzy o formułach logicznych). Prawdopodobnie najbardziej znane przykłady odpowiedzi na pytania mają dziś miejsce w wyszukiwarkach internetowych. Osoba AI o przekonaniu logika może mieć nadzieję, że ostatecznie tekst na stronach internetowych może być reprezentowany jako logiczne formuły i że zapytanie może być reprezentowane jako logiczna formuła, na którą należy odpowiedzieć (udowodnić) na podstawie formuł w jednej (lub więcej) z tych sieci strony. Istnieją pewne początkowe próby odpowiedzi w ten sposób na zapytania w języku angielskim, ale większość wyszukiwarek internetowych stosuje prostsze i bardziej skuteczne techniki. Dam ogólny obraz działania niektórych z nich. Konwertują tekst w dokumentach i zapytaniach na wektory i porównują wektor zapytań z konkurencyjnymi wektorami dokumentów. Najpierw opowiem kilka rzeczy o wektorach, a następnie opiszę, jak tekst może być reprezentowany jako wektor. (Przypomnicie wam moje wcześniejsze dyskusje na temat zastosowania wektorów w rozpoznawaniu wzorów.) W matematyce wektor jest wielkością o wielkości i kierunku. Na przykład w przestrzeni trójwymiarowej jeden przedstawia wektor jako strzałkę wyciągniętą z początku tej przestrzeni do punktu w tej przestrzeni. Strzałka wskazuje kierunek wektora, a długość strzałki jest wielkością wektora. Ponieważ punkt określa wektor (istnieje tylko jeden sposób na narysowanie strzałki od początku do punktu), słowa "punkt" i "wektor" są często używane synonimicznie. Każdą uporządkowaną listę number można traktować jako współrzędne punktu, a zatem jako elementy wektora. Na przykład lista (7; 4; 3; 20) to wektor, jeden w przestrzeni czterowymiarowej. Można mieć wektory o wielu wymiarach; wektory używane do reprezentowania dokumentów mogą mieć tysiące wymiarów. Długość wektora jest pierwiastkiem kwadratowym sumy kwadratów wszystkich składników wektora. (W przypadku wektorów dwuwymiarowych obliczenie to jest po prostu zastosowaniem twierdzenia Pitagorasa, a mianowicie kwadrat długości przeciwprostokątnej trójkąta prostokątnego jest sumą kwadratów jego boków.) Na przykład długość wektora (7; 4; 3; 20) s 21,77. Można zmierzyć podobieństwo między dwoma wektorami albo przez obliczenie odległości między ich punktami końcowymi (być może dostosowanymi w celu uwzględnienia ich długości) lub przez "niewielkość" kąta między ich dwoma kierunkami - im mniejszy kąt, tym bardziej podobne są wektory. W metodzie kątowej wykonuje się następujące obliczenia podobieństwa: Pomnóż każdy składnik jednego z wektorów przez odpowiedni składnik drugiego wektora, a następnie dodaj wszystkie te produkty. Następnie podziel tę sumę przez iloczyn długości każdego wektora. Liczba końcowa, którą nazwiemy S dla podobieństwa, może wynosić co najwyżej 1, gdy dwa wektory są dokładnie wyrównane (to znaczy skierowane w tym samym kierunku). Jest 0, gdy dwa wektory są prostopadłe do każdego inne i jest ujemny, gdy wskazują w przeciwnych kierunkach. Im bardziej wektory są podobne, tym bliższe jest ich obliczenie S. (Czytelnicy zaznajomieni z trygonometrią rozpoznają to obliczenie jako cosinus kąta między dwoma wektorami.) Na przykład wartość S dla wektorów (7; 4; 3; 20) i (7; 0; 2; 15) można obliczyć jako (49 + 6 + 300) = (21:77 16: 67) = 0: 978, wartość wskazująca, że te dwa wektory są dość podobne. Jak przekonwertować tekst na wektor? Ludzie, którzy brali udział w komputerowym wyszukiwaniu dokumentów (tak zwane wyszukiwanie informacji), opracowali metodę. Najpierw wybiera się uporządkowaną listę terminów (słów lub fraz) dla zestawu dokumentów reprezentowanych przez wektory. Jeśli dokumenty dotyczą sztucznej inteligencji, odpowiednie byłoby kilkaset terminów, w tym "wyszukiwanie", "heurystyka", "wizja komputerowa" i tak dalej. Jeśli wszystkie dokumenty są w języku angielskim i mogą dotyczyć czegokolwiek, mogą istnieć setki tysięcy terminów (w zasadzie wszystkie słowa w języku angielskim). Zazwyczaj wybranymi terminami są słowa kluczowe, tak że "komputer", "komputery" i "komputer" byłyby objęte terminem "komputer". (Trzeba uważać na tego rodzaju połączenie, zwane "wywiązywaniem się", aby uniknąć zastąpienia "przepływu" terminem "kwiat" itp.) Również dlatego, że słowa takie jak "i", "jeśli" i "dlatego" i tak więc rzadko dotyczą treści dokumentu, te słowa nie są używane jako terminy. Następnie w procesie reprezentowania dokumentu jako wektora liczone są wszystkie wystąpienia każdego z tych terminów w dokumencie. Lista tych numerów wystąpienia jest następnie składana (w tej samej kolejności co lista terminów), a ta lista jest wektorową reprezentacją dokumentu. Na przykład, jeśli termin "wyszukiwanie" w ogóle nie występuje w reprezentowanym dokumencie, jeśli termin "heurystyczny" występuje siedem razy, a termin "wizja komputerowa" występuje trzy razy, wówczas lista będzie, powiedzmy,

(0; 0; 0; 0; 0; 7; 0; 0; 3; 0; 0;:: :);

gdzie podkreślone liczby oznaczają, ile razy terminy, o których wspomniałem, występują w tym dokumencie. Oczywiście może być wiele, wiele zer, ponieważ wiele terminów z wybranej listy terminów może w ogóle nie występować w dokumencie, a może być o wiele więcej niezerowych liczb odpowiadających liczbie przypadków, gdy inne terminy występują w tym dokumencie . Załóżmy teraz, że interesuje nas pytanie "Jakich heurystyk używa się w wizji komputerowej?" i prześlij to zapytanie do wyszukiwarki internetowej. Jeśli założymy, że w zapytaniu (i dokumentach) zastosowano jakieś przetwarzanie wstępne, aby zmienić słowa na ich "pędy", reprezentacja wektorowa naszego zapytania byłaby

(0; 0; 0; 0; 0; 1; 0; 0; 1; 0; 0;:: :)

Podobieństwo S między naszym zapytaniem a dokumentem, który właśnie rozważaliśmy, wynosi 10 podzielone przez iloczyn długości dwóch wektorów. Wartość ta zostałaby porównana z wartościami podobieństwa z innymi dokumentami w celu ustalenia, które dokumenty są najbardziej podobne i dlatego należy je pobrać w odpowiedzi na nasze zapytanie. Wszystko to brzmi dość prosto, ale chociaż podstawowa idea jest prosta, potrzeba kilku opracowań (i zostały one dodane), aby wyszukiwanie dokumentów i internetowe witryny internetowe oparte na tym pomyśle były praktyczne i przydatne. Po pierwsze, liczba terminów w dokumencie jest zazwyczaj dostosowywana w celu uwzględnienia długości tekstu w tym dokumencie. Ponieważ dłuższe dokumenty mogą zawierać względnie więcej wystąpień danego terminu, liczba dla danego terminu jest obliczana jako procent całkowitej liczby wszystkich terminów w dokumencie. Po drugie, ponieważ dany termin może być dość powszechny wśród wszystkich przeszukiwanych dokumentów (a zatem niezbyt przydatny do dyskryminacji), liczba ta jest zmniejszana o czynnik, który zależy od ogólnej częstotliwości tego terminu wśród tych dokumentów. Bardziej wyrafinowane programy pobierające wykorzystują również różne metody statystyczne do obliczania prawdopodobieństwa trafności dokumentu w zapytaniu. Innowacja wymyślona przez Google klasyfikuje witryny internetowe według szacunków związanych z ich popularnością lub "centralnością". Coraz częściej metody "uczenia maszynowego" (niektóre z nich zostaną opisane w następnym rozdziale) są również wykorzystywane do poprawy wydajności systemów wyszukiwania i, oczywiście, wydajność wymaga odpowiednich schematów indeksowania i korzystania z wielu tysięcy komputerów.

Utajona analiza semantyczna

Niektórzy badacze sugerują, że reprezentowanie tekstu jako wektorów oddaje "znaczenie" tekstu. Jak to możliwe, gdy reprezentacje wektorowe są obliczane tylko na podstawie tego, jak często różne terminy występują w dokumentach, a wcale nie w kolejności, w jakiej występują te terminy? (W końcu znaczenie słowa "Pies gryzie człowieka" jest zupełnie inne niż słowo "Człowiek gryzie psa".) Thomas K. Landauer (1932 {: ryc. 27.7) i jego koledzy, najpierw w jego Cognitive Science Research Group w Bell Communications Badania (potomek Bell Laboratories) w połowie lat 80., a później na University of Colorado, zaproponowały oparty na wektorze schemat przechwytywania znaczenia, który nazywają Latent Semantic Analysis (LSA). Myślę, że potrafię wyjaśnić podstawowe pomysł bez użycia całej matematyki wymaganej przez pełny opis. Tutaj, w pomniejszonym przykładzie, w zasadzie działa metoda LSA. Załóżmy, że mamy dość długi dokument lub inny materiał tekstowy na określony temat. Dzielimy się materiał na sekcje, zwane "pasażami", o długości około 100 terminów. Zakładając, że słownictwo materiału jest przechwycone przez 1000 terminów (które mogą składać się z pojedynczych słów lub kombinacji słów), wówczas każdy z tych fragmentów jest reprezentowany przez wektor 1000-wymiarowy. ( Liczby terminów stosowane przy konstruowaniu tych wektorów są korygowane metodami podobnymi do tych, które już wyjaśniłem.) Załóżmy, że mamy 100 takich wektorów. Wizualizacja 1000-wymiarowej przestrzeni, w której osadzone są nasze wektory, jest trudna (naprawdę niemożliwa), ale być może można sobie przynajmniej wyobrazić, że jakaś niższa "podprzestrzeń" zawiera wszystkie lub większość wektorów. Pomocne może być rozważenie trójwymiarowego przykładu pokazanego poniżej



Na schemacie pokazao pięć punktów leżących na płaszczyźnie (przestrzeń dwuwymiarowa) w przestrzeni trójwymiarowej. Przestrzeń dwuwymiarowa jest podprzestrzenią przestrzeni trójwymiarowej. W tej dwuwymiarowej przestrzeni punkty te można przedstawić za pomocą wektorów dwuwymiarowych zamiast wektorów trójwymiarowych. Stosując różne złożone techniki matematyczne, możliwe jest skonstruowanie przestrzeni o niższych wymiarach, która odpowiednio "zawiera" 100 wektorów (być może powiedzmy, o przestrzeni 50-wymiarowej). LSA stosuje metody oparte na technice zwanej "Singular Value Decomposition" (SVD), której szczegóły nie muszą nas tutaj dotyczyć. Oczywiście reprezentacja tych wektorów w 50 wymiarach będzie inna niż w 1000 wymiarach. Wiele terminów związanych z wymiarami w większej przestrzeni zostaje połączonych w nowe komponenty w mniejszej przestrzeni. Co więcej, według Landauera i współpracowników, to właśnie to połączenie pozwala na wydobycie ukrytego ogólnego znaczenia z oddzielnych fragmentów dokumentu. Jak to wyjaśniają przykład procesu, "… gdybyśmy zmienili wpis w dowolnej komórce oryginału, wartości w rekonstrukcji ze zmniejszonymi wymiarami mogą być zmienione wszędzie; jest to matematyczny sens, w którym LSA dokonuje wnioskowania lub indukcji".Przekształcanie wektorów w te z mniejszą liczbą składników zasadniczo łączy ze sobą wiele terminów występujących (i nie występujących) w oryginalnych pasażach, z których pochodzą wektory. To połączenie może być pomyślany jako stworzenie "koncepcji" wyższego poziomu w oparciu o powiązane terminy. Wyrażenie dokumentu tekstowego w kategoriach tych pojęć (to znaczy w odniesieniu do wektorów o zmniejszonym wymiarze) wydobyło, zdaniem ludzi z LSA, zasadnicze " znaczenie "dokumentu. Wektory o zmniejszonym wymiarze mogą łączyć ze sobą terminy z różnych sekcji tekstu, jeśli występują w fragmentach mających podobne znaczenie, nawet jeśli nigdy nie występują w tym samym fragmencie. Proces LSA umożliwia obliczenie podobieństwa między dowolnymi dwoma fragmentami dokumentu, powiedzmy przez obliczenie wielkości kąta między dwoma odpowiadającymi wektorami o zmniejszonych wymiarach. Wraz z procesem reprezentowania przejść przez wektory o zmniejszonym wymiarze, metoda LSA wytwarza również reprezentację każdego terminu w całym zestawie terminów przez wektor mający ten sam zmniejszony wymiar. Korzystając z tej reprezentacji, można również obliczyć podobieństwo między dwoma terminami, a także podobieństwo między terminem a fragmentem. Wreszcie sam dokument może być reprezentowany jako wektor składający się ze średniej jego wektorów przejścia. Po takim przedstawieniu można obliczyć podobieństwo między dokumentami. Ten krok jest wykorzystywany w jednej z aplikacji LSA o nazwie "Latent Semantic Indexing" (LSI). Podano, że metoda LSI oferuje pewne ulepszenia w porównaniu ze standardowymi metodami wyszukiwania (chociaż kwestia ta jest nadal kontrowersyjna). LSA była używana w kilku ustawienia, w tym eseje oceniające napisane przez osoby przystępujące do egzaminu wstępnego na uczelnię, pomoc uczniom w nauce pisania, pomoc w diagnozowaniu schizofrenii na podstawie werbalizacji pacjentów oraz tworzenie streszczeń słów kluczowych. Ponadto, służy do naśladowania niektórych ludzi umiejętności, takie jak punktacja, a także średnia liczba osób zdających test na synonimowej części TOEFL (TEst of English as a Foreign ETS Language) i osiąganie zaliczenia na egzaminie wielokrotnego wyboru przy użyciu wektorów z analizy LSA wprowadzającej podręcznik psychologii Czytelnik może sprzeciwić się, że system LSA do oceniania esejów może zostać udaremniony przez kogoś, kto napisał dużą liczbę odpowiednich słów w przypadkowej kolejności, bez wyrażania jakichkolwiek spójnych myśli. Landauer odpiera ten zarzut, mówiąc, że trudno byłoby "zdobyć dobre słowa bez napisania dobrego eseju ... Próbowaliśmy pisać złe eseje i uzyskać dobre oceny, a czasem możemy to zrobić, jeśli naprawdę znamy materiał cóż. Najłatwiejszym sposobem oszukiwania tego systemu jest ciężkie studiowanie, znajomość materiału i napisanie dobrego eseju. " W 1998 r. Landauer i współpracownicy utworzyli Technologie analizy wiedzy (KAT) w celu opracowania aplikacji edukacyjnych LSA. KAT został przejęty przez Pearson Education w 2004 roku i sprzedaje produkty edukacyjne oparte na LSA produkty takie jak Pearson Knowledge Technologies (PKT). Niektórzy badacze zwrócili uwagę, że główną siłą metod LSA jest redukcja wymiarów wektorowych i że istnieje kilka innych metod (niektóre z nich są prostsze niż te stosowane w LSA) w celu zmniejszenia wymiarów. W rzeczywistości, w jednym z pierwszych artykułów na temat LSA, Landauer i Susan Dumais opisują analog LSA oparty na sieci neuronowej. Probabilistyczne rozszerzenie Latent Semantic Indexing zostało zaproponowane i przetestowane przez Thomasa Hofmanna. Bardziej ogólny model probabilistyczny opracowali David Blei, Andrew Ng i Michael Jordan. Wszelkiego rodzaju modele probabilistyczne zaczęły odgrywać bardzo znaczącą rolę w sztucznej inteligencji od późnych lat 80.