W jaki sposób szukamy?
Komputery nadają się do szukania całkiem nieźle. Szukamy czegoś – do przeczesania jest duża baza danych z której potrzebujemy tylko pewnych, często krótkich informacji. Wertowanie sterty książek w celu znalezienia wystąpień konkretnego słowa może być ciężkie, bądź niewykonalne, lecz prawdę mówiąc rzadko czujemy taką potrzebę. Rozkazanie komputerowi przeszukania naszych e-booków w takim samym celu jest banalnie proste. Ma też większy sens (dlaczego, o tym później). Poniżej moje proste rozważanie o tym jak myślimy, gdy bierzemy się za szukanie metodami tradycyjnymi, a jak gdy używamy maszyn cyfrowych.
Gdy szukamy w książce wiemy gdzie zajrzeć. Znamy swój księgozbiór, wiemy co jest w książkach bo je znamy, bądź znamy dziedzinę problemu który chcemy zgłębić. To pozwala nam na sięgnięcie po najbardziej prawdopodobne tytuły. Stamtąd droga nie jest ciężka. Jeśli wiemy czego szukamy to w spisie treści odnajdujemy odpowiedni rozdział odpowiadający naszemu problemowi. Zostaje nam do zgłębienia rozsądnie mały przedział danych. Rozsądnie mały dla człowieka. Jeszcze lepiej gdy nawet ten rozdział ma przemyślaną strukturę, która pozwala szybko ominąć niepotrzebne informacje. Pomaga nam gromadzenie danych w tabelach, rysunki, wytłuszczenia itd. ...
Gorzej gdy szukamy informacji, której nie potrafimy sklasyfikować. Załóżmy, że chcemy dowiedzieć się o czymś, o czym właściwie nie mamy pojęcia. Dajmy na to, że słyszeliśmy tylko nazwę zjawiska/rzeczy/zdarzenia. Co robić? Którą książkę przejrzeć? Należy przejrzeć indeks. Spis treści spisów treści … może by tak zacząć od Encyklopedii? :) Taki twór mógłby odpowiedzieć na podstawowe pytania na temat danego słowa kluczowego. Nawet gdy to dla nas za mało, to będziemy już wiedzieć w jakiej kategorii znajdziemy więcej informacji. Dobrze skonstruowany indeks ratuje nam skórę.
Zdarzyć się może, że potrzebujemy znaleźć drobną, lecz istotną dla nas informację w tworze takim jak powieść. W co był ubrany bohater R. gdy stał przed domem, zaraz po załamaniu się pogody? Ułatwić nam mogłaby wiedza o czasie – moglibyśmy wtedy zacząć choćby od konkretnego rozdziału. Zakładając nawet sporą chronologię w książce znalezienie tej informacji może być mimo wszystko ciężkie – narrator mógł wspomnieć o tym przy okazji jakiejś refleksji z przeszłości, bądź wybiegając w przyszłość. To powieść, więc pewnie nie tylko my ją czytaliśmy. Ktoś inny może zwrócił na to uwagę i ma taką informację, bądź zindeksował wystarczającą ilość informacji byśmy mogli za ich pomocą odnaleźć potrzebną informację – pamięta, że załamanie pogody miało miejsce na początku, 2. lub 3. rozdział. Jeśli nie mamy takiej pomocy (nie oszukujemy…) uzyskanie tej informacji może oznaczać przeczytanie całej książki (ponowne?!).
Człowiek nie jest dobry w prostej pracy z dużą ilością suchych informacji. Komputer nawet używając najprostszych metod zrobi to szybciej. Człowiek może dobrze radzić sobie na terenie słabo mu znanym. Przy sporej różnorodności przeszukiwanych danych łatwo mu w locie kategoryzować, uczyć się kiedy odrzucać nawet duże porcje niepotrzebnych w tym momencie informacji. Maszynie przychodzi to trudniej – musi się powoli nauczyć (zostać zaprogramowaną), mieć silnik, który zrozumie dane, będzie próbować przewidywać poprawne wyniki. Ogólnie mówiąc, by komputer potrafił wybierać esencję informacji z taką skutecznością jak człowiek, trzeba się nieźle napocić przy jego programowaniu, zahaczając o wiele dziedzin związanych ze Sztuczną Inteligencją. Może bardzo tutaj generalizuję i podaję mało konkretów, lecz by nie przedłużać podam przykład:
Stajecie przed problemem – mamy dane. Powiedzmy długi akapit technicznego tekstu. Całkiem prostego do zanalizowania przez komputer i strawnego dla człowieka. Zadaniem jest wybranie z niego esencji informacji, tak by zmieścić się w jednym zdaniu. Jakie wybralibyście „narzędzie” by rozwiązać problem jak najmniejszym nakładem pracy (= pieniędzy)? Komputer, czy kolegę z biurka obok?
Z kolei co wybrać, gdy trzeba poprawić kilkuset stronicową publikację o błędnym formatowaniu. Rzucić pracownikowi podręcznik z prawidłowym formatem i kazać naprawić dane, czy poświęcić czas na zaprogramowanie do tego celu maszyny?
Ok, napisałem trochę rzeczy związanych ze sobą luźno i pozornie oddalonych od tematu (do którego jeszcze nawet nie doszedłem ;p), lecz chciałem uzmysłowić [sobie?] czego oczekujemy od różnych podejść do wyszukiwania. Gdy korzystam z wyszukiwarki internetowej zapytanie które wpisuje ma zwykle specyficzny charakter. Spodziewam się konkretnych rezultatów i zwykle je dostaje. Gdy wyniki mnie nie zadowalają, zwykle widzę od razu, że muszę zmodyfikować zapytanie, bądź to czego szukam nie jest takie jak bym się tego spodziewał – nadaje zapytaniu błędny kierunek, mylnie przydzielając mój problem do jakiejś kategorii. Zapytanie takie zawiera zwykle nazwę osoby/zjawiska/zdarzenia/etc. lub coś co może ją zastąpić oraz, jeśli taka nazwa nie jest wystarczająco unikalna, dziedzinę w jakiej znajduje się problem. Najprostszy przykład: „bezpieczeństwo linux”. Szukam przecież informacji o bezpieczeństwie, lecz o bezpieczeństwie systemu linux, a nie samochodowym.
Problemem, którym skusił mnie do napisania tego wpisu, jest odszukiwanie rzeczy których tak naprawdę nie znamy. Nie wiemy czym są, jak się prawidłowo nazywają, nie znamy dokładnej dziedziny w jakiej moglibyśmy „coś” sklasyfikować. Błądzimy po omacku. Ciekawi mnie jak sobie w takiej sytuacji radzimy? Nie możemy spytać kolegi – sposób najprostszy, ale jest tylko obejściem problemu (acz skutecznym). Możemy zacząć zawężać krąg poszukiwań, zaczynając od najbardziej podstawowych rzeczy jakie już wiemy. Pytamy o coś podstawowego i próbujemy dowiedzieć się na szybko więcej. W praktyce czasem wystarczają mi nagłówki stron z wyników wyszukiwania Google. Jedno zdanie z takiego nagłówka wystarczy by przypomnieć sobie/otrzymać słowo klucz do kolejnego szukania. Mając je możemy zmniejszyć krąg poszukiwań do stron we właściwej tematyce… itd. itd..
A może podejść do tego prościej? Często łapię się na tym, że zapominam o „pytaniu wprost” i wymyślam regułkę, która ma mnie uratować. „Coś coś2 -aukcje site:strona 2006”... Przecież można spytać po ludzku. Chcę wiedzieć „Jak postawić serwer www”, więc po prostu o to spytam. Na codzień używam google. Google (mimo iż afaik pracuje nad tym) nie potrafi pracować na zapytaniach w języku naturalnym. No, może nie do końca. Wiele pytań znajdzie swoją odpowiedź. Głównie dlatego, że w takim medium jak internet ilość informacji jest tak wielka, że prawdopodobnie ktoś już kiedyś zapytał o to samo. Znajdę więc często informację jaka jest mi potrzebna na jakiejś zindeksowanej stronie, która zawiera podobne pytanie. Zapytałem google o populację swojego kraju. „what is the population of Poland?”, w otrzymanych stronach można było doszukać się odpowiedniej informacji. Spróbowałem tego samego po polsku. „jaka jest populacja Polski?”. Niestety nie było już tak łatwo.
Mimo wszystko spytanie google pełnym zdaniem może przynieść rezultat. Całe te rozważania zaczęły się od pewnego pytania z irca:
"00:42 < tajny_nick> co to jest 'wang' po angielsku? czy to jest obraźliwe? 00:42 < tajny_nick> bo np. na bash.org pare razy sie pojawiło i nie rozkminiam o co chodzi".
Normalnie cieszyłbym się z bana dla takiej osoby, bo kanał związku z j. angielskim nie miał, ale chciałem z przekory poszukać. Oczywiście słowniki ang-pol w sieci nie powiedziały wiele. „Dolna szczęka”,„kość policzkowa”. Nijak nie pasuje to do kontekstu. Wpisanie samego słowa do google daje mnóstwo wyników – bardzo dalekich od spodziewanych. I tutaj bingo, dlaczego nie zrobić tego, co opisałem w ostatnim akapicie? „What does wang mean?” wklepane w google. Okazuje się, że ktoś zadał już to pytanie i otrzymał odpowiedź :) Tak, jest to obraźliwe, slangowe słowo na członka, lecz także np. popularne nazwisko. Wiem, wiem, przykład o wątpliwych walorach edukacyjnych. Przepraszam ;)
Więc czy potrzebujemy mechanizmów wyszukiwania, które naprawdę rozumieją o co pytamy? „Natural language search”, czyli zapytania w języku naturalnym mogą znacznie ułatwić nam życie. Przykładowe projekty to www.powerset.com i www.hakia.com. Wpisałem wcześniej rozpatrywane zapytanie na hakii – „what is the population of Poland?”. Wyniki okazały się bardzo skuteczne. Otrzymałem precyzyjną odpowiedź na swoje pytanie. „Population: 38,635,144 (July 2005 est.)”. Czy podoba Ci się taki sposób szukania informacji? Mało? A może by tak poprosić komputer o informacje w ten sposób: „zdjęcia zrobione w ostatnim tygodniu”? Pewien człek opisuje taki mechanizm zaimplementowany w Windows Vista.
Wiele pracy wkłada się w próby analizy treści naszych informacji przez komputery. Tagujemy co tylko się da. Katalogujemy, układamy, łączymy w grupy, linkujemy, budujemy sieci zależności, tworzymy trackbacki, wymieniamy listy znajomych. Wszystko dla naszej wygody, by pracowało nam się naturalnie. By odnajdywać nie tylko to czego szukamy, ale to czego prawdopodobnie szukamy, lecz nie jesteśmy świadomi, że chcemy! Zdarza się nam przecież zapomnieć o znajomym z podstawówki. Teraz ktoś inny dba o to, byśmy go znaleźli – my zaczynamy uczestniczyć w wymianie informacji, choćby szukając potencjalnego pracodawcy, a wyniki mogą nas zaskoczyć.
Takie „porządkowanie” nie jest tylko dla naszej wygody. Można przecież powiedzieć, że uczy maszyny „rozumieć” nasze informacje, by same mogły precyzować dla nas wyniki. Wspólne tagi dodają całe społeczności wymieniając linki, słuchając muzyki, czy publikując/oglądając filmiki. Powstają nowe metody na analizowanie treści, a także rozwijana jest komunikacja w języku naturalnym. Jednak wciąż pasuje mi wpisanie dwóch słów do przeglądarki i otrzymanie wyników w postaci stron najbardziej powiązanych z kombinacją tychże słów, nie ważne w jakim kontekście. Gdy chcę zapytać o coś informatycznego w języku naturalnym, wchodzę na irc i pytam jak umiem najlepiej. Gdy nie rozumiem czegoś z podatków dzwonie do swojej rodziny i pytam, tak jak potrafię. Ludzie, do których moje zapytanie dotarło, w miarę chęci i wolnego czasu uruchamiają skomplikowane mechanizmy wyszukiwania w swojej pamięci, przyśpieszając cały proces super szybkim, obszernym cache’em i włączając w to mechanizmy dzięki którym mogą dedukować odpowiedź nawet nie znając prawidłowej odpowiedzi na pytanie.
Ciężko znaleźć jedną zadowalającą odpowiedź od nawet najbardziej zmyślnego cyfrowego mechanizmu szukającego w bazie wiedzy, gdy połowa pytania to „nie wiem w ogóle gdzie jestem i co mam zrobić, ciężko mi wyrazić co już mam, bo nie znam się na tym i wykonuję przypadkowe czynności z nadzieją na sukces, ale wiem, że chce uzyskać...” ...
Wpis do niczego konkretnego nie dąży i jest luźną refleksją autora nie popartą żadnymi naukowymi dowodami/doświadczeniami.
Źródła:
wszechmocne google.
Can natural language search bring down Google?
Ludwikc'owi dziękuję za uwagi.
17 grudnia 2007 o 15:36:00
test komentarza. t0, to jednak chyba dziala. cos nie tak z Twoim internetem ;p
17 grudnia 2007 o 15:47:22
dziala nie dziala