• User

    Information retrieval e vector model

    Sono da pochi giorni fruitore di questo forum e già mi avete costretto a rivoluzionare il modo di vedere il concetto di ottimizzazione di un sito!
    Adesso, però, non dovete lasciarmi a metà strada e dovete aiutarmi a completare l'opera. 🙂

    Da una ricerca che ho fatto leggendo i vari thread, ho notato che un'importanza centrale hanno i concetti di IR e vector model, che vorrei capire meglio.
    Sono sicuro che discuterne (e farlo in maniera chiara come può richiedere una persona nuova che non dà niente per scontato) può essere di aiuto a tutti.

    Bene... iniziamo.
    Secondo me ciò che rende spesso offuscati e empirici questi studi (ognuno dice la sua e spesso i concetti sono astratti, mentre gli algoritmi sono concreti e deterministici) è il fatto che ci troviamo a dover ragionare con moli enormi di dati, che difficilmente noi poveri umani riusciamo a visualizzare intuitivamente, al contrario degli elaboratori.
    Allora vorrei operare delle semplificazioni iniziali e poi via via possiamo passare a situazioni più realistiche.

    Immaginiamo di avere un motore di ricerca che chiameremo "poogle" (un google dei poveri) che prevede solo due termini : 1.bella, 2.gnocca.
    Eseguo la mia query, che chiamo "Q", che comprende entrambi termini "bella gnocca".

    potete vedere qua una immagine che io ho fatto:

    image

    (una vera e propria giofeca da un punto di vista grafico, ma non potevo permettermi di pagare un grafico).

    Adesso immaginiamo di avere un piano xy individuato dai due termini su cui giace un vettore che indica quale ricerca abbiamo fatto.
    Nel nostro caso la query è Q=(1,1), che taglia a 45° il piano XY.
    Altre possibili query sarebbero potute essere "bella" (1,0), parallela all'asse X e "gnocca" (0,1), parallela all'asse Y.
    Ogni volta che noi facciamo una ricerca su un motore di ricerca (se ho capito bene, ma credo di aver capito bene), inviamo al motore un vettore.
    A noi è difficile immaginare questo perchè, al massimo possiamo immaginarci uno spazio tridimensionale, ma i motori di ricerca possono benissimo lavorare su N dimensioni.
    Ed N è un numero enorme! Non solo tutti i termini di una lingua, ma anche quelli di altre lingue e in più anche termini non presenti in nessuna lingua che però lo spider ha scovato da qualche parte.
    Su quest'ultima considerazione concordate? Adesso mi chiedo anche come la mettiamo con le ricerche fatte su più termini tra virgolette, ad. esempio "parola1 parola2" .. :-0

    Ok, adesso che immaginiamo meglio cosa è una query, passiamo ai documenti da ricercare.
    Anche in questo caso ogni documento è raffigurabile come un vettore, ma questa volta non h coordinate unitarie.

    Ho tre documenti d1 = (0.7, 0), d2= (0, 0.8 ) d3 = (0.1, 0.15).
    Quindi il primo documento non fa nessun rifermento al termine "gnocca", ma un riferimento forte a "bella.
    Il secondo docuemnto fa il contrario, il terzo fa un rifermento debole ad entrambi, ma in misura quasi uguale.
    Come si è visto, per ogni termine ogni documento, ha una rilevanza da 0 a 1.
    Cosa significhi avere una rilevanza minore di 1 (e se nella mia esposizione ci sono state alcune imprecisioni) lo lascio a chi ne capisce di più.

    Adesso devo fornire un risultato: quale documento dò come più rilevante?
    istintivamente sarei portato a pensare d1 o d2, ma in realtà il documento più affine al mio criterio di ricerca è d3!
    Perchè? perchè quello che conta è l'angolo tra i due vettori.

    Quindi possiamo immaginarci la situazione in questo modo: la nostra query è un vettore e i singoli documenti on line sono vettori orientatati variamente nelle N dimensioni di tutti i termini presenti nel database.
    Il risultato è un elenco, ordinato per valori descrescenti dell'angolo tra i vari vettori.
    Ma come fanno i motori di ricerca a lavorare con i vettori?
    Semplice... utilizzano una serie di valori in un vettore di dimensione N: es. (0.2, 0.1, 0, 0, 0, 0.9... ).
    In questo vettore la maggior parte dei valori è 0.
    Questo spiegherebbe come mai se faccio una ricerca su google o msn mi ritorna un risultato dopo una frazione di secondo.
    L'operazione di paragone tra i vettori e molto immediata e l'unica lungaggine consiste nel passare in rassegna tutti i vettori (cioè tutte le pagine indicizzate).

    La conclusione di tutto questo è che promuovere una propria pagina non significa imbottirla di parole giuste, ma di fare in modo che il suo vettore punti nella direzione voluta.

    Ah dimenticavo... se sto dicendo imprecisioni ammazzatemi prima che continui a spargere ignoranza, in caso contrario assolvetemi, così il mio modo di esporre può essere utile anche per gli altri.
    Spero che questa possa essere una base per tutti (dopo le opportune aggiunte e correzioni) per riflettere in maniera un po' diversa dal solito su questi temi.


  • Super User

    Ehi Larry, quante volete ti ho detto che non devi postare dal Googleplex? 😄
    :mani::mani::mani:
    Bravissimo/a giusdisa, veramente tanto di cappello!!! Questo è quello che chiamo** caffè vettoriale **:D. Non ho appunti da farti , nè posso rispondere alle domande che poni , perchè sono un ignorantone, aspettiamo che i nerds si sveglino, sai hanno il sonno pesante :D. Vorrei chiederti una cosa però, cercando di battere il primo nerd che inforca gli occhialoni e che brama di postare al più presto :D:

    Ho tre documenti d1 = (0.7, 0), d2= (0, 0.8 ) d3 = (0.1, 0.15).
    Quindi il primo documento non fa nessun rifermento al termine "gnocca", ma un riferimento forte a "bella.
    Il secondo docuemnto fa il contrario, il terzo fa un rifermento debole ad entrambi, ma in misura quasi uguale.
    Come si è visto, per ogni termine ogni documento, ha una rilevanza da 0 a 1.
    Cosa significhi avere una rilevanza minore di 1 (e se nella mia esposizione ci sono state alcune imprecisioni) lo lascio a chi ne capisce di più.

    Adesso devo fornire un risultato: quale documento dò come più rilevante?
    istintivamente sarei portato a pensare d1 o d2, ma in realtà il documento più affine al mio criterio di ricerca è d3!
    Perchè? perchè quello che conta è l'angolo tra i due vettori.

    In che senso conta l'angolo? Viene presa la coppia di valori con angolo che si discosta meno relativamente ai valori stessi? E se avessi 0.9 e 0.1 come valori di attinenza, con un angolo maggiore rispetto alla coppia da te menzionata 0.1, 0.15?
    Davvero interessante il tuo post, mi ha aperto gli occhi sull'importanza dell'approccio teorico, cosa che altri non avevano saputo fare. Sono indeciso se mettermi a studiare subito l'IR, oppure andare a spostare la macchina visto fanno la pulizia della strada e mi becco minimo 35 euro di multa :D.


  • Super User

    A proposito di IR, ti segnalo questo recente post di LowLevel in Laboratorio Seo.

    http://www.giorgiotave.it/forum/viewtopic.php?t=6145&postdays=0&postorder=asc&start=45

    post Dom Apr 30, 2006

    Cordialmente,
    Stuart


  • User

    In che senso conta l'angolo?

    L'angolo tra i 2 vettori che rappresentano i 2 documenti nel vector model è la misura di similitudine tra i 2 documenti.


  • Super User

    @k3k said:

    In che senso conta l'angolo?

    L'angolo tra i 2 vettori che rappresentano i 2 documenti nel vector model è la misura di similitudine tra i 2 documenti.

    Si, si, lo chiedevo in relazione all'esempio che aveva fatto 🙂