Nei motori di ricerca di oggi c’è poca semantica e molta analisi comportamentale e probabilistica

Sto ancora sperando che la semantica possa diventare quel “segnale forte” col quale Google potrebbe finalmente togliere peso ai link. Immaginavo un motore di ricerca intelligente e difficile da ingannare. Poi è arrivato Google+, e mi è venuto qualche sospetto che i tempi si sarebbero allungati (perchè concentrarsi sul social network se fosse stata sufficiente la semantica?).

Poi l’anno scorso mi sono accorto che se scrivo una pagina web che risolve un problema ad una persona, pensando principalmente al “significato” del problema da risolvere, ecco che google mi manda traffico anche su tanti vari “significanti” (cioè le parole chiave) anche se queste non sono sinonimi grammaticalmente compatibili. Esempio: sulla pagina della stitichezza, mi aspettavo di trovare in ingresso anche ricerche legate a “stipsi” e “costipazione” eppure sono arrivate anche varie ricerche tipo “non riesco ad andare in bagno da 5 giorni”. Che Google abbia capito che quelle persone sono stitiche? Che Google sia finalmente diventato intelligente?

Queste e molte altre domande sono sfociate in una miriade di test ed esperimenti (molti anche fatti dalla community dei seo italiani). Dopo tanti anni ad aspettare l’emancipazione del motore di ricerca dai link, sarà la volta buona? (Matt Cutts dice che in teoria si, ma in pratica ci terremo il mercato dei link per tanti altri anni).

Siccome da solo non ho trovato risposte, e siccome tra qualche giorno dovrò tenere un corso ai giornalisti del Sole, ho pensato di chiedere ad uno dei massimi esperti italiani di semantica applicata:

varoneAmici del blog e dei prossimi master dove avrò la fortuna di parlare, date il benvenuto a Marco Varone, fondatore e CTO di Expert System (qui il suo fantastico blog).

Colgo l’occasione e ringrazio anche pubblicamente Marco per la sua infinita gentilezza e disponibilità nel rilasciare questa intervista. L’ho trascritta come meglio potevo dato che non sono riuscito a registrare, tutti gli errori di battitura sono miei.

Marco, è possibile far capire ad una macchina le differenze tra significato e significante? (linguistica)

– realisticamente no, secondo me la singularity non esisterà mai. Ciò che è possibile fare invece è ottenere una capacità simile, su casi specifici, simulando la mente umana, usando algoritmi dotati di sufficiente contesto e che risolvono solo una piccola parte del problema alla volta. La reale comprensione di significato è un problema non computabile, ma alcuni sotto problemi si. Ad esempio Worlphram Alpha, si appoggia su un RDF condiviso e riesce a rispondere ad alcune domande per le quali ha sufficiente contesto e conoscenza.

come quando provo a chiedergli “quanti anni aveva Leonardo quando è morto?“, lui “capisce” che mi sto riferendo a Leonardo Da Vinci e mi da l’esatta età?

– Si.

quanto c’entra la lingua parlata con la semantica?

– fino a 7-8 anni fa la lingua parlata era irrilevante nelle tecnologie semantiche perchè tutto ciò che era analizzabile era testo scritto fin dall’inizio con l’intento di dire qualcosa per iscritto.

poi i sistemi di riconoscimento vocale hanno iniziato a funzionare bene e quando una persona parla non pensa come quando scrive (è piu naturale e meno lineare).

è nata la comunicazione sociale (blog, social network) che sono diventati volumi di informazioni enormi. buona parte di questi contenuti hanno una struttura sintattica, espressioni, significati, ecc. simili a quelli della lingua parlata. Per comprenderli è necessario rendere più robusta e più intelligente qualsiasi tecnologia semantica. (non si è mai scritto così tanto come adesso).
è una sfida per la semantica perchè io vado ad esprimere una parte del contenuto del discorso con elementi paralinguistici (es. il significato della faccina emoticon nel discorso).

Capire una nuova forma di espressione come l’ibrido che troviamo sui social network richiede cambiamenti alle logiche o è “sufficiente” arricchire il database?

– purtroppo richiede anche nuove logiche oltre a più conoscenza

quindi vi costa di piu?

– certo, abbiamo bisogno di rendere il sistema più flessibile, questo però aumenta il rumore. occorre andare a modificare gli algortimi di analisi, provando ad aumentare la flesssiblità minimizzando la perdita.

quando devi capire un contesto specifico usi tutta la “macchina” o usi solo logiche specifiche?

– entrambi- quando capiamo che si tratta di un certo tipo di linguaggio usiamo solo algoritmi personalizzati. se ad esempio analizzi twitter, sai già che le logiche sono quelle.

quanto si puà fare tramite algoritmi e quanto “allenando” algoritmi (es. agenti)?

– è indispensabile fare “allenamento” perchè la comunicazione si evolve, quindi è fondamentale poter far analizzare grosse moli di testo al sistema, e questo ci aiuta a mettere a punto le logiche migliori. Senza un intervento di validazione di questa conoscenza o di questi elementi rilevanti rischi di avere molto rumore. se stai lavorando su un contesto specifico te la puoi cavare facendo un allenamento automatico. ma se non lavori su un costesto specifico e metti a punto una tecnologia che possa essere usata in orizzontale, allora l’allenamento aiuta ma deve essere mediato da una validazione umana

come fai a distinguere il rumore da ciò che invece aiuta un lettore a capire il significato del contenuto in esame?

– la maggior parte del contenuto testuale viene usato dal sistema per riconoscere i significati. la logica dell’analisi semantica riguarda le espressioni che ci sono in un testo. es. la parola bagno può essere un locale, può essere un’azione, quindi quando trovo quella parola devo capire il significato all’interno del contesto. Analizzo una serie di fattori, co-occorrenze e segnali che identificano l’argomento di cui si sta parlando. es. se parlo anche di sabbia, sdraio, ombrelloni ecc. posso capire che ti riferivi a quel tipo di bagno che si fa al mare… oppure che ti riferivi ad uno stabilimento balneare. Sono tutte hint che fanno capire al sistema il contesto. quasi tutte le informazioni che ci sono in un testo aiutano il sistema a scoprire i significati, sono pochi gli elementi da scartare. quando ci sono parole ambigue che non ti aiutano a capire il contesto, le scartiamo (es. “acqua” vale in quasi tutti i contesti). il sistema le scarta in automatico. Se ti chiami Giovanni Bagno, capiamo che invece sei una persona.
ciò che è piu forte all’interno delle varie ipotesi viene preso come più probabile. Se io ho un elemento X che canta, so che non può essere una pianta (questo è un dato logico). in altri casi quando si parla di parole tutte appartenenti ad uno stesso contesto posso usare la valenza statistica.

un sistema semantico può usare ontologie dinamiche?

– può avere senso. fino ad un certo punto è possibile usare elementi noti usati in modo ignoto (il sistema ipotizza un significato che non conosce, in quel caso può imparare). Il sistema però deve avere un numero sufficiente di occorrenze per poter imparare (cioè grandi volumi). tipicamente i nuovi significati sono poco probabili, ma possibili.

Google tiene molto “aperto il rubinetto”, pur non avendo una vera e propria tecnologia semantica. Google deve essere sempre sull’attualità. hanno bisogno di freschezza nei dati esposti, mentre noi teniamo stretto il rubinetto “dell’apprendimento”, loro lo tengono molto aperto. se ci sono conoscenze o relazioni che sembrano significative, non aspettano molto per renderle integrate nel sistema, quindi a volte è facilmente ingannabile. è il rovescio della medaglia. è molto difficile usare il giusto compromesso, noi abbiamo scelto da sempre di essere più conservatori e lasciamo che il sistema apprenda solo in presenza di segnali forti e di durata nel tempo. D’altra parte loro vendono pubblicità, noi software. L’approccio per chiedersi quanto al sistema è consentito di apprendere è importante, loro possono usare subito qualcosa appena imparato. Google ha il vantaggio di essere una cosa gratis, quindi anche se sbaglia un utente ripete la ricerca. noi invece siamo a pagamento quindi i nostri utenti hanno meno tolleranza sugli errori.
tutte le volte che clicchi il quarto risultato piuttosto che il primo dai un grande vantaggio competitivo a Google. Nonostante questo hanno molte tecniche per individuare potenziali trucchi e abusi da parte di chi ha capito come funziona parte del loro sistema.

il vostro sistema è quindi piu ingenuo di quello di google?

– non direi ingenuo, semplicemente solitamente il nostro sistema è utilizzato in contesti in cui non c’è nessuno da ingannare perciò non è necessario implementare logiche di riconoscimento di imbrogli o trucchi

e nel caso in cui l’autore di un brano sia il primo a non voler rendere evidente lo scopo o il significato del suo scritto?

– allora ne capiremo poco e non saremo in grado di individuare i concetti o gli elementi rilevanti e i corrispondenti significati

c’è un modo di scrivere che risulta più facile da capire per una macchina che cerchi di estrarne i “topic” o il suo RDF?

– assolutamente si. tu puoi scrivere gli stessi contenuti in modo facilmente comprensibile per una macchina, o in modo estremamente difficile. esempio: costruire un testo composto da frasi brevi con poche subordinate è una grande semplificazione, perchè quando comincio ad avere più subordinate ho una parte del testo che dipende da quello che è stato scritto prima. Se utilizzi parole rare il sistema funziona molto meglio, se invece di macchina scrivo automobile, quest’ultima è meno comune ed il sistema è in grado di capire meglio. Scrivendo troppo per le macchine comunque ottieni un testo piatto e di solito meno interessante per gli esseri umani. Sei meglio per le macchine o più faticoso per le persone. Devi sceglire qual’è il tuo obiettivo.

in che modo si riesce a capire l’autorevolezza di un Resource Definition Framework?

– non è possibile individuare la maggiore solidità o rilevanza di una fonte rispetto ad un’altra in nessun modo automatico. Quello che puoi fare è confrontare N fonti e vedere quella più vicina al “consenso”. questa però è un’approssimazione. molte informazioni tra freebase e wikipedia sono identiche perchè freebase le ha prese da wikipedia, però hanno poi livelli di aggiornamento diversi. Entrambe sono fonti gestite con un processo strutturato, freebase è di Google quindi forse è piu affidabile. il problema è che è molto difficile usare contenuti simili e confrontabili. la cosa diventa colossalmente complessa. generalmente i repository di conoscenza non sono tantissimi quindi viene fatta una valutazione iniziale e poi viene tenuta buona. quindi se battezzi freebase come fonte di qualità, non cambierà nei prossimi anni. è un insieme di analisi umane. superate certe soglie difficilmente si scende. google lo può fare pechè ha il controllo di una serie di flussi e di passaggi di conoscenza che noi non abbiamo. noi da fuori non sappiamo quante volte gli utenti consultano freebase o wikipedia. spiegavo ad alcuni ragazzi che Google è un’azienda che ha come primo obiettivo quello di fare soldi e nel fare questo fornisce servizi apparentemente gratis, però è un’azienda. ma non è la verità, non è il tutto, non è obiettivo, non è indipendente. ma per chi è abituato da quando aveva 15 anni a usare Google e a trovarsi il primo risultato come quello giusto, per loro è difficile capirlo. è incredibile come la gente si fidi di Google (e non solo di Google purtroppo…)

possono esserci diversi livelli dei significati, anche legati alla struttura stessa dell’html ad esempio?

– si, il fatto di usare il grassetto ha diversi significati, magari lo usi in senso figurato o altro.

come fai a dosare?

– abbiamo approssimazioni imparate nel corso degli anni. ci sono una serie di meta logiche che abbiamo imparato negli anni e sono cose che raramente cambiamo.

come definiresti l’utilizzo della semantica tra documenti collegati tra loro (es. via link ipertestuale)

– la presenza di un link nella parte semantica non è rilevante perchè la correlazione e il rapporto di vicinanza tra due documenti sono basati sui concetti piuttosto che sulle relazioni dirette. Puoi linkare due documenti non correlati e viceversa. La vicinanza semantica tra due documenti può essere diversissima, quindi la semantica tende ad ignorare gli aspetti legati ai link. la semantica lavora sul contenuto.

è possibile usare la tecnologia semantica con un layer adatto a qualsiasi lingua?

– si, è quella parte che si stacca dal lessico e riguarda la rappresentazione del mondo. in qualunque lingua del mondo esiste almeno una parola per definire un tavolo. il concetto di tavolo in alcune culture è minimale e ridotto (magari dove non si usa). C’è una parte di semantica che è indipendente dalla lingua però deve esistere anche una parte dipendente dalla lingua. C’è chi ipotizza che pensiero stesso sia linguistico e chi dice che non dipende dalla lingua. puoi cercare di fare più lavoro possibile in modo indipendnete dalla lingua, con meta rappresentazioni.

che ruolo potrebbe avere la compilazione di documenti nei formati di linked open data rispetto all’applicazione di software semantici?

– Potrebbe sicuramente aiutare il sistema a capire meglio il contenuto e a ridurre l’ambiguità

se una macchina riesce a “capire” il corretto significato, a che punto siamo con una “scrittura” creativa di nuovi contenuti da parte di una macchina?

– Molto indietro: ci sono ottimi programmi che scrivono testi fattuali con qualche spunto apparentemente creativo (ad esempio, cronache sportive di eventi minorei partendo dal risultato e da qualche altro dato oggettivo) ma oltre questo non c’è nulla di veramente rilevante (e non credo ci sarà per molti anni ancora).

In fondo, credo sia sensato chiamarla stupidità allenata, piuttosto che intelligenza artificiale.

simone
appassionato di seo, linked open data e ambiente

2 Comments

  1. Contributo importante da parte di un autore estremamente autorevole e illuminante. Da quello che leggo però vedo che il processo di sviluppo da parte di Google rispetto alla semantica lessicale e frasale, cioè lo studio del significato di parole e co-occorrenze allo scopo di determinare associazioni in base alle quali attribuire valore, non solo è in atto, ma va avanti anche molto bene. Il fatto che il tuo contenuto sulla stitichezza sia visibile per “non riesco ad andare in bagno da cinque giorni” e non per “stipsi” e “costipazione” è perché queste ultime due, come parole chiave (e secondo me non lo sono), non definiscono un ambito specifico di ricerca, ma essendo parole singole aprono a un’universo semantico molto ampio, che parte dalle definizioni da vocabolario e finisce ovunque. Se la semantica funziona invece, succede proprio quello che è successo al tuo contenuto. Si tratta di tenere conto che sul web non ci sono solo i nostri contenuti, ma molto altro, come molto varie sono le ricerche degli utenti. Questo è il terreno su cui ci misuriamo ogni giorno.
    Secondo me (e concludo) link e semantica nel “sistema” Google vanno insieme. Non capisco perché bisogna esprimersi in modo manicheo su questo punto. Piuttosto, una volta distribuite le co-occorrenze tali da ingabbiare la sotto struttura esistente delle rappresentazioni diffuse sui siti di riferimento (algoritmo LSI), bastano un paio di link messi bene per dare la spinta che serve a solleticare le corde di Google.
    Ti va di parlarne insieme un giorno? 🙂

  2. Ciao Fra, scusa il ritardo. L’unica risposta che ti posso dare al momento è “non lo so”. Oltre a fare esperimenti (che a volte riescono ed a volte no) devo dire che ho poche certezze, e queste poche non sono quasi mai applicabili in modo “controllato” su qualsiasi sito. Insomma ogni sito, ogni progetto, mi richiede uno studio particolare e proprio per questo motivo sono andato ad intervistare Marco, perchè mi rendo conto che da solo ci capisco poco.

    Sul concetto del rimpiazzare totalmente i link invece ancora ci spero e ci spero da anni (nonostante Cutts abbia recentemente detto che non accadrà mai) perchè i link non sono un sistema equo, non sono un sistema sostenibile e non sono un sistema “pulito” in generale. La cultura invece si, e se davvero un giorno bastasse la cultura intrisa in un brano per farlo stare a galla nei risultati, quello sì che sarebbe un internet nel quale mi piacerebbe navigare.

Comments are closed.