- Home
- Categorie
- Digital Marketing
- Consigli su Penalizzazioni e Test SEO
- Sviluppo tool basato su algoritmi IR
-
Se ho ben interpretato lo studio che hai postato direi che è ideato un po' malino; cioè serve a dimostrare cose piuttosto ovvie; se ho capito bene lui fissa una query, poi prende 500 pagine di cui 50 in serp e 450 random. Ordina queste 500 pagine in base alla page authority da un lato e in base allo score dell'algoritmo semantico dall'altro. Poi conta la percentuale delle prime 50 voci di queste liste ordinate che sono effettivamente presenti in serp e si accorge che nell'ordinamento basato su PA la percentuale è analoga a quella del "gruppo di controllo" formato da 50 voci random tra le 500 mentre nell'ordinamento basato sullo score semantico è 10 volte più alta. Ma direi che questo era abbastanza prevedibile..o meglio dice esattamente quello che abbiamo osservato in questo post. Per quale ragione la semplice PA dovrebbe fornire un parametro di pertinenza rispetto ad una query arbitraria? La PA è solo relativa al numero di link inbound...e qui torniamo al punto, ossia che secondo me google utilizza un qualche algoritmo semantico (tipo LDA LSA ecc.) per fare una prima scrematura e capire quali pagine sono rilevanti e quali no per una data query, i.e. la relevance dell'articolo che hai postato; a questo punto sforna proprio il ranking finale e lo ottiene principalmente tramite la PA e, aggiungo io, secondariamente anche tramite algoritmi di similarity un po' più "rozzi" dal punto di vista semantico ma più attenti alla presenza di corrispondenze esatte come appunto i vari modelli vettoriali tf*idf o il BM25.
Dico questo perché sappiamo bene tutti che la presenza di una corrispondenza esatta di una query nel title o nel dominio ha il suo peso; peso senza dubbio relativo; perché chiaramente una pagina che ha "solo" una corrispondenza generica in title e nulla in URL se ha una PA alta batterà la mia pagina senza link in entrata ma con title e url ottimizzati; ma di certo non troveremo in prima pagina title che non c'entrano nulla con la query anche se hanno una PA alta, cosa che stando solo agli score semantici sarebbe possibile...si può parlare in modo estremamente pertinente del "topic latente" di una query evitando accuratamente di usare qualsiasi parola della query. Google lo capisce e ti posiziona, ma ti posiziona meglio se usi proprio la query =_=
Tra l'altro questo non contraddice affatto la "scarsa" correlazione degli score col posizionamento, perché è chiaro che la PA pesa molto di più...quel grafico sulla correlazione andrebbe letto così "se per assurdo dovessi fare a meno di PA o di score per posizionarmi, mi posizionerei meglio se sacrificassi un po' di score in favore di PA, fermo restando che se lo sacrificassi tutto non mi posizionerei" (mentre invece per una query non competitiva è vero il contrario, posso posizionarmi solo con lo score...)
Tu secondo me hai centrato esattamente il punto della questione prima dicendo che andrebbero condotti esperimenti con pagine con bassa PA (o nulla). La pensiamo esattamente allo stesso modo. Sono certo che così (o più in generale utilizzando pagine con PA simile, non necessariamente bassa) troveremmo che gli score degli algoritmi IR hanno una correlazione quasi perfetta col ranking. Il punto è che un esperimento simile purtroppo non si può fare...perché semplicemente non troveremo mai una serp che contempli solo pagine senza authority...quello che ho fatto io è un po' diverso; mi sono andato a scegliere un centinaio di pagine, tutte posizionate, ognuna per la sua keyword, e ognuna con PA prossima a zero. In questo modo si può ottenere un dato statistico sui valori di questi score per "una generica pagina X priva di authority posizionata per una keyword Y"; secondo me è l'unico approccio possibile per cercare di avere un range di riferimento "ideale" di quegli score. L'idea è che aggiungere poi authority alle suddette pagine non possa che rafforzarne la stabilità nel posizionamento. E` un modo in sostanza per sapere su che range di score devo attestarmi quando ottimizzo una pagina, a prescindere dalla keyword che sto spingendo o dal link building che voglio fare in seguito.
In definitiva lo scopo di un qualsiasi strumento come quello che sto sviluppando è solo quello di fare le cose nel miglior modo possibile dal punto di vista dell'ottimizzazione interna per poi potersene dimenticare e dedicarsi con più tranquillità alla costruzione dell'authority nei mesi (e anni..) successivi. Niente più di questo. Tra l'altro il fatto che la PA sia molto più importante di questi score a pensarci è una benedizione; e l'idea che sottende è geniale. Se google si basasse solo sugli score non riuscirei a trovare una pagina di wikipedia che magari sarebbe battuta da una qualsiasi pagina piena di stupidaggini che però ha title e url ben ottimizzati...
Mi scuso per la prolissità, quando parlo di qualcosa che mi interessa divento verboso. Ti ringrazio ancora per il tuo preziosissimo feedback, ti invito a darmi quanti più pareri e idee ti sia possibile. Vale ovviamente per chiunque voglia dire la sua; qualsiasi parere è fondamentale; soprattutto da chi di SEO ne sa infinitamente più di me. A presto!
Rob
-
Ciao, solo un rapido pensiero mattutino prima di andare al lavoro:
@Bodhisattva said:...non troveremo mai una serp che contempli solo pagine senza authority...
Oh sì, in tutte le SERP intorno allla pagina 10
-
Ciao Bodhisattva e benvenuto nel forum gt!
Bello il tuo nick, mi fai riaffiorare tutti i mesi passati in Thailandia degli ultimi 10 anni della mia vita. Ma non sono così vecchio, ho 31 anni
E con il tuo post mi hai fatto ricordare di una "piccola" cosa successa in queste meravigliose pagine del Forum GT, nel 2005! Un certo LowLevel, che oggi si è "ritirato" su Google Plus (Enrico Altavilla), aprì un thread storico dal titolo "Gli è tutto sbagliato, tutto da rifare..." (Bartali).
Per tutti noi rappresentò un momento di crescita veramente importante. Incominciammo a studiare seriamente i motori di ricerca, gli algoritmi, l'IR e tutto quanto.
Personalmente, se devo identificare un momento in cui la community Italiana è cresciuta di molto è stato quello e per me Enrico rappresenta la persona più influente ieri e oggi.
Ti consiglio di leggere quel thread.
Ci portò, per gioco, a costruire un motore di ricerca chiamato Teecno.
Oggi credo e sostengo che sia impossibile fare IR su Google perché nemmeno loro sarebbero in grado di farlo. I fattori in gioco sono diventati tantissimi e gli algoritmi in apprendimento automatico stanno diventando sempre più influenti. Senza considerare che il concetto di query di 10 anni fa non esiste praticamente più, oggi per una singola query entrano in gioco le entità, le categorizzazioni, le personalizzazioni.
Spero che Enrico possa darti una visione migliore della mia per indirizzarti verso la giusta strada.
Lo pingo su Google Plus
Giorgio
P.s. ottimi consigli Federico!
-
Salve Giorgio, sarà un caso o forse no ma è stato proprio Enrico Altavilla a portarmi (involontariamente) a scrivere su queste pagine... Ho capito che prima di procedere mi serviva un qualche parere illuminato e mi è capitato di chiedere consiglio a lui sul suo blog, poi seguendo un po' le sue orme virtuali ho scoperto che la comunità di riferimento per questi argomenti in italia è questa. E` interessante che tu abbia citato proprio lui; leggerò quel thread con entusiasmo.
ps: <offtopic> Per quanto riguarda il mio nick temo ti deluderò un po'; nel mio caso (per chi mi conosce) "bodhisattva" ha una enoooorme componente ironica...:D nel senso che sono probabilmente la persona più lontana al mondo dall'illuminazione e dal silenzio della mente. In compenso adoro la figura del santone in generale; ma più il tipo predicatore a las vegas vestito da elvis che l'asceta in Tibet. </offtopic>
@Federico: :°D
-
Spunto davvero molto interessante.
Sostanzialmente condivido tutto quello che ha detto Federico Sasso.
Se riportiamo tutto in ambito culinario, anche avendo la lista degli ingredienti e la ricetta esatta, la torta che fa mia moglie non è mai uguale a quella di mia madre. Non mi sbilancio per ovvie ragioni, nel dire quale sia la migliore, ma non sono uguali.
Ora a noi (mi includo già nel progetto) non solo manca la lista completa degli ingredienti (alcuni li intuiamo), ma cosa piu' importante, ignoriamo completamente come questi si uniscono e lavorino in simbiosi per incidere sul risultato finale.
Inoltre nel progetto si partirebbe già a priori nell'escludere tutto cio' che è considerato "off site", e probabilmente anche cio' che è in-site ma al di fuori del documento in analisi.
Senza contare che la ricetta di fatto cambia di tanto in tanto, e non si sa neppure quando, quindi dovremo fare migliaia di torte al giorno, assaggiarle tutte e ritarare l'algoritmo prima che la ricetta cambi nuovamente.
Con tutti questi distinguo la possibilità di ottenere un risultato simile a quello di google è di fatto impossibile.
Tutto cio' potrebbe comunque essere interessante, fermo restando l'impossibilità di trovare una stretta correlazione tra i due rank.
Una cosa che ho trovato molto interessante e potrebbe ispirare qualche idea innovativa se applicata ad un progetto come questo potrebbe essere quella che viene definita "genetic programming" qui un semplice esempio chiarificatore: rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mona-lisa/
-
Premetto che tutti i parametri presi in considerazione da Google, o almeno quelli che dichiara, e tutti i suoi algoritmi mi hanno proprio rotto le scatole.
Inoltre considero la SEO una parte integrante di un progetto web, come lo sono grafica, accessibilità, user experience, programmazione, hostibng, etc etc...
Tornando all'esempio di Gianmaria direi che da molti anni ormai sviluppo progetti web come mia suocera fa le torte: come mi viene con quello che ho.
Lei quasi sempre non segue le dosi ma valuta gli ingredienti (come mi viene) e personalizza il gusto con quello che ha a disposizione: yogurt, pinoli, mandorle, etc. (quello che ho).
Certo avere uno strumento per sapere se la torta verrà bene prima di averla cotta e decorata sarebbe fantastico perchè non sempre basta l'esperienza.
Direi quindi che un tool del genere come descritto da Bodhisattva sono anni che vorrei realizzarlo ma il tempo che ho non è sufficiente, mentre invece sarei felice di collaborare per realizzarlo.
-
Ciao Bodhisattva e benvenuto sul forum GT,
io vorrei rompere un po' le uova nel paniere in modo costruttivoPerchè dovrei usare il tuo tool?
Quali benefici ne ottengo?Poi vorrei solo evidenziare anche una cosa, come sappiamo google ha una marea di algoritmi ognuno dedicato ad una funzione, di cui quelli dedicati alla comprensione del contesto non sono per il posizionamento ma per archiviare meglio il contenuto trovato (correggetemi pure se mi sbaglio :-)).
Quindi qual'è l'obbiettivo di google? Fornire il miglior risultato possibile all'utente che effettua una ricerca.
Come ottiene questo?
Io credo che lo ottenga appunto avendo messo in ordine nel suo archivio tutte queste informazioni, poi ovviamente usa anche l'archivio dei fattori esterni, frulla tutto e il risultato più rilevante verrà mostrato in serp (ovviamente ho semplificato molto).
Quindi torno alle prime domande, quali benefici ottengo con il tuo tool?
A cosa mi serve lo score elaborato?Ciao
Enea
-
<ot>
@Giorgio grazie per aver linkato il vecchio thread di Enrico. Sapevo era un vecchio frequentatore del Forum GT, ma il suo "Jè tutto sbagliato" m'era ignoto.
L'ho letto con piacere, e con esso un bel po' di discussioni successive. Mi ha stupito vedere la positiva reazione dei membri del Forum buttatisi a capofitto nel ristudiare le basi di materie sicuramente ostiche per chi non le ha mai affrontate nel proprio corso di studi.
Nemmeno sapevo del progetto Teecno; peccato avervi scoperto ben dopo, è un'avventura mi sarebbe piaciuto vivere.
</ot>
-
@Giorgio
Grazie alla mia insonnia ho appena avuto tempo di leggere tutto il post di LowLevel...è stato molto interessante. Leggendolo continuavo a dimenticare che fosse un post di 8 anni fa ed ero sempre lì lì per commentare. In effetti l'analogia con questo thread è forte...sono lieto di aver "rispolverato" una vecchia gloria. Chissà che non continui a dare frutti anche 8 anni dopo.@Gianmaria
Il paragone culinario è quantomai azzeccato. Ricordo che fu il primo paragone che usò l'insegnante in un corso di algoritmi e strutture dati che seguii all'università, la ricetta di cucina è il modo migliore per immaginare un algoritmo. E tu hai perfettamente ragione; non possiamo conoscere né gli ingredienti né i "passi" della ricetta. Però questo direi che è nell'ordine delle cose; sono le regole del gioco cui abbiamo scelto di giocare...se avessimo accesso agli algoritmi di Google non esisterebbe nemmeno questo forum e non saremmo qui a discutere (e smetterebbe presto di esistere anche Google). Posso risonderti però che non serve avere la formula della coca cola per produrre la pepsi...o i vari cloni che in definitiva sono abbastanza simili. Gli algoritmi di google muovono il mondo e l'economia; modificarli significa modificare il pil delle nazioni...probabilmente quegli algoritmi saranno custoditi in un bunker 10 metri sotto il deserto del Nevada con un piccolo esercito a presidiare la zona. Questo per dire che siamo solo poveri peccatori che sperano in un posto in paradiso (in prima pagina :D) ma non ci è dato conoscere i piani di Dio (Google)...questo però non vuol dire che non possiamo farcene un'idea anche piuttosto precisa. Se non potessimo farlo non esisterebbe il mestiere di SEO; quindi lo scopo è affinare quella precisione. Il modo? Questo è complicato.
Tanto per cominciare bisogna chiarire ancora lo scopo del gioco: non si tratta di trovare una formula magica che risolva in modo algoritmico il problema del posizionamento; questo è ridicolo solo pensarlo. Come hai detto tu partiamo subito con l'escludere tutto quello che è "off-site", e già così tagliamo fuori i fattori di ranking maggiori. Il punto però è che l'ottimizzazione è una pratica settoriale; e i due settori "interno" ed "esterno" sono completamente indipendenti, non si disturbano a vicenda e ci si occupa indipendentemente prima dell'uno poi dell'altro. Quello esterno pesa di più, ma questo non vuol dire che quello interno non sia necessario. Ecco, il mio scopo quindi è fare chiarezza una volta per tutte sulle centinaia di discussioni a proposito dell'IR che si leggono in giro e fornire un tool che sfrutti effettivamente gli algoritmi noti di information retrieval di cui si parla spesso nelle comunità seo ma che poi in definitiva sono argomenti appannaggio di chi ha un po' di competenze di settore per andarsi a leggere i testi e gli articoli accademici in cui sono riportati. Per il resto; pensare di approcciare in modo algoritmico la costruzione dell'authority di una pagina è fuori discussione, è come pensare di trovare una "formula per diventare famosi" o una "formula per dare un valido contributo all'umanità", non credo che abbiamo queste mire.
Come si fa a capire se funziona? Questo è semplice, basta stabilire una correlazione statistica tra il posizionamento e l'appartenenza a un certo range di questi score. Ma attenzione, per avere dati interessanti bisogna testare solo pagine che abbiano fattori di posizionamento esterno simili (possibilmente nulli). Sono certo che con queste ipotesi la correlazione sarà molto alta; infatti non capisco perché negli studi proposti da semoz e dalle altre comunità i fattori di correlazioni continuino a venir calcolati sulle "prime n pagine"...così è come voler trovare una correlazione tra la velocità massima delle automobili e le dimensioni degli sportelli...-.- mi pare ovvio che sarà bassa -.- se invece fissiamo la cilindrata e i cavalli scommetto che le linee aerodinamiche di sportelli più sottili avranno una correlazione molto più alta.
ps: appena posso guarderò l'articolo del tuo link.@FraTac
L'esperienza può tra le altre cose sopperire benissimo all'uso di algoritmi simili. Se hai l'"occhio" giusto e quel sesto senso che ti fa scrivere naturalmente le cose come piacciono a google sei a cavallo e non ti serve nient'altro. Diciamo che un programmino simile potrebbe al più darti un riscontro delle tue intuizioni. Io ad esempio non credo di avere occhio in quel senso; è da poco tempo che mi occupo di seo e per uno come può fare la differenza.
In ogni caso sei il benvenuto per qualsiasi supporto tu voglia dare; magari tra qualche tempo se la nostra "politica" resta (come io vorrei) di procedere in ambito opensource potrei chiedere a qualche volenteroso di queste parti di partecipare al beta testing.@Enea
Non chiederti cosa il mio tool può fare per te, chiediti invece cosa tu puoi fare per il mio tool!! (cit.)Ovviamente scherzo, ora ti rispondo seriamente e ahimè, sinceramente:
Cosa può fare il mio tool per te?
Direi che dipende, dalla tua esperienza e dalla tua bravura come SEO; in generale ti rispondo che se hai molta esperienza e sei molto bravo può fare poco, non ti farà posizionare pagine per keyword competitive se non gli associ le altre pratiche di posizionamento usuali, può darti un supporto per l'ottimizzazione interna e in alcuni casi fare anche la differenza; la verità è che per risponderti con precisione devo prima svilupparlo e raccogliere dati.
Direi che se la mia intuizione è giusta lo scenario è il seguente: se di tuo sei già molto bravo nella migliore delle ipotesi può farti "limare" qui e lì l'ottimizzazione del testo on-page e guadagnare qualche posizione; e sicuramente può darti un riscontro oggettivo e quantificabile per essere certo che il tuo lavoro rientri in un "range ottimale" che sei certo che piace a google. Se invece sei scarso può fare la differenza. Tutto ciò per chiavi non competitive. Per quelle competitive il contributo che può dare è sensibilmente ridimensionato per tutti i discorsi già fatti.
Poi magari la mia intuizione è pessimistica e invece questi score saranno determinanti in scenari più generali, staremo a vedere.Cosa può fare il mio tool per me?
Per me lo scenario è più roseo che per te perché tanto per cominciare io ho un'esperienza molto ridotta quindi l'aiuto che può darmi è più significativo, mi è stato chiesto di occuparmi di posizionamento e lo faccio partendo da quello che conosco, la matematica. Poi ci sarà tempo e modo per chiedere a voi come fare per risolvere le altre questioni seo...:D (ho già aperto un paio di thread in proposito) Poi semplicemente mi piace l'idea di poter dare un contributo (di qualsiasi entità sia) in base alle mie competenze; quindi molto semplicemente mi diverte approfondire queste questioni e sviluppare software in qualche modo innovativo.
Ah poi dimenticavo, in una qualche misura mi darà visibilità; perché di fatto non esiste nulla di simile a parte i lavori (a pagamento) di seomoz ma anche quelli sono abbastanza diversi; il che significa che contribuirà a farmi lavorare nell'ambito che mi piace...(spero che sincerità e onestà siano apprezzate...). Ma posso dire altrettanto sinceramente che quest'ultimo punto gioca un ruolo del tutto secondario; ci sono modi più rapidi per fare soldi; mi sono stati offerti lavori molto più immediati e remunerativi che, forse stupidamente, ho rifiutato per voler continuare a lavorare alla nostra attività. Insomma questo post non è una marchetta :D, o se lo è lo è in percentuale assolutamente trascurabile.Cosa può fare il mio tool per entrambi, o per chiunque stia ottimizzando una pagina per una data keyword?
Può permettergli di stare tranquillo; di dedicarsi maggiornemente a sviluppare contenuti che siano interessanti senza stare troppo a pensare a quali e quante parole inserire in questa o in quella sezione, cosa che sarà "assistita" dal software.Rob
-
Rob, vorresti appagare la mia malsana curiosità?
Quando dici "siamo una piccola realtà...", cosa intendi di preciso? Siete una piccola startup? O lavorate all'interno di un contesto universitario?
Quando dici "mi è stato chiesto di occuparmi..." ti riferisci a dei soci, un docente, un Venture Capitalist / Business Angel, etc... ?Ogni risposta è valida ovviamente, ti faccio i miei migliori auguri, e se potrò aiutarti in qualche misura lo farò.
Ciao
-
La risposta è nelle primissime righe di questo thread. Ma ti do qualche informazione in più. Siamo per lo più esuli universitari, ricercatori falliti, ronin della scienza : D insomma il concetto è questo. Personalmente ho abbandonato un dottorato in germania per ragioni personali che mi hanno costretto in italia. Altri due amici di vecchissima data si sono trovati anche loro dopo la laurea in situazioni analoghe e abbiamo deciso di lavorare per conto nostro e soprattutto a modo nostro. Non è stata una scelta obbligata, avevamo la possibilità di lavorare per qualche azienda più grande e affermata ma abbiamo preferito così. (In realtà ci sono anche altre persone esterne che gravitano attorno a noi tra grafici e collaboratori vari) Quindi facciamo piccole consulenze, realizziamo siti e applicazioni web per aziende e professionisti. Questo per i soldi. Per passione invece lavoriamo a progetti come questo. C'è sempre il sacro fuoco della ricerca che arde...non vincerò la medaglia fields di certo ma magari ne esce un bel thread : D
-
La risposta di Enrico qui:
Quanti ricordi... Grazie a Giorgio per la segnalazione.
Interessarsi un po' di IR non può che far bene, purché a mio parere non si creda di poter costruire qualcosa che emuli i calcoli fatti da Google, specie se si tratta di calcoli legati alla fase di ranking delle risorse.
Il problema non è costituito solo dal fatto che le formule usate da Google sono sconosciute ma anche dal fatto che Google applica queste formule all'intero web. Per esempio, se io volessi calcolare un indice di vicinanza semantica tra due parole potrei sfruttare la loro co-occorrenza sul web. Quindi per fare questo calcolo ho bisogno di analizzare l'intero web e questa quantità di dati ce l'hanno solo Google, Bing e pochi altri.
Anni fa le cose erano molto diverse e più semplici, oggi la complessità è enorme e il web è molto più grande. Quindi avere basi di IR può essere utile per capire cosa fa Google in certi contesti, ma nel momento in cui si cerca di emulare un sistema che è una scatola nera e chiusa, entriamo nel campo della pseudoscienza.
-
Aggiornamento: dopo 2 settimane e qualche migliaio di linee di codice ho qualcosa in mano. Siamo ancora lontani ma la via sembra tracciata. Mi servirebbe un parere autorevole (il vostro) per quanto riguarda la "pesatura" delle varie componenti di una pagina web. Uno degli algoritmi implementati (BM25F per chi fosse interessato) necessita di sapere quanto "sono importanti" le varie parti una pagina. Le suddette parti in questa particolare implementazione sono Title, Description, H1, H2, URL, ALT-text, Body-text. (dove H1, H2 e ALT vanno intesi nel loro insieme, non singolarmente). Dunque mi servirebbe di sapere voi che "importanza" date a queste parti quando ottimizzate una pagina per una data keyword? Io ad esempio buttando lì numeri a spanne direi una cosa come
TITLE 30%
Description 10%
URL 20%
H1 20%
H2 5%
ALT 5%
BODY 10%ma ripeto, sono numeri messi lì senza cognizione di causa. A voi la parola...qualsiasi parere è prezioso.
Rob
-
Per chi volesse ulteriori dettagli (che richiedono una qualche competenza matematica) c'è un articolo (che non posso linkare in pubblico, in caso chiedete in privato) sul sito della City University di Londra, in cui c'è una trattazione completa e chiara del background probabilistico su cui si basa la formulazione di BM25 e della sua recente evoluzione BM25F, pensata per il Web. Io ho implementato una variante leggermente diversa da quella presentata qui, ho introdotto una funzione di saturazione anche per la query e ho "ritarato" quella del documento. Sul finale dell'articolo c'è anche una lista di motori di ricerca opensource che implementano questi algoritmi (per lo più il BM25). A mio modesto parere è la fonte più chiara e completa sull'argomento reperibile in rete.
-
@Bodhisattva said:
Mi servirebbe un parere autorevole (il vostro) per quanto riguarda la "pesatura" delle varie componenti di una pagina web. Uno degli algoritmi implementati (BM25F per chi fosse interessato) necessita di sapere quanto "sono importanti" le varie parti una pagina.
Non so quanto si possa considerare "autorevole" la mia opinione, ma ecco il mio contributoTITLE 40%
BODY 25%
URL 15%
H1 10%
H2 5%
ALT 5%
Description 0%La meta-descrizione è volutamente a zero: Google ha più volte rimarcato di non utilizzarlo come fattore di ranking (e studi indipendenti - per quanto opinabili - sembrano confermarlo).
ALT e titoli vari sono spesso abusati ho l'impressione Google ne abbia di conseguenza ridotto il peso relativo.
-
@Bodhisattva said:
Per chi volesse ulteriori dettagli (che richiedono una qualche competenza matematica) c'è un articolo (che non posso linkare in pubblico, in caso chiedete in privato) sul sito della City University di Londra, in cui c'è una trattazione completa e chiara del background probabilistico su cui si basa la formulazione di BM25 e della sua recente evoluzione BM25F, pensata per il Web. Io ho implementato una variante leggermente diversa da quella presentata qui, ho introdotto una funzione di saturazione anche per la query e ho "ritarato" quella del documento. Sul finale dell'articolo c'è anche una lista di motori di ricerca opensource che implementano questi algoritmi (per lo più il BM25). A mio modesto parere è la fonte più chiara e completa sull'argomento reperibile in rete.
Sono interessatoP.S.. so che Lucene ha implementato BM25 per il suo full-text search
-
(come mi fa giustamente notare Federico il documento in questione è banalmente linkato su wikipedia...io non ci avevo fatto caso, lo avevo raggiunto in altri modi. Se non lo posto è perché per i nuovi utenti è contrario alle regole del forum, non è questione di riservatezza : D)
-
Puoi sempre mettere il link in maniera inattiva, cioè senza http e senza www.
Ciao
Enea
-
Shhhh ...ecco il link al "documento segreto":
"The Probabilistic Relevance Framework: BM25 and Beyond"
http://www.soi.city.ac.uk/~ser/papers/foundations_bm25_review.pdf
-
Aggiornamento n.2
Dunque, l'algoritmo nella sua versione base è implementato e blandamente rodato. Si dimostra stabile e di buon umore. Sono già stati effettuati alcuni pochi test preliminari i cui risultati sono stati davvero molto incoraggianti...tanto che non ho resistito e sono venuto a postare. =_= Troverete i risultati dei test alla fine di questo post, ma andiamo con ordine:
Idea di base:
l'idea alla base di tutto come è già stato esposto sopra è che i fattori di posizionamento si dividano in modo netto in esterni ed interni e che le due parti non si influenzino a vicenda; ossia in altre parole che Google apprezzi o meno l'ottimizzazione di una pagina a prescindere dai fattori esterni come l'authority o il pagerank e che quindi ci si possa dedicare all'ottimizzazione dimenticandoci di quello che verrà dopo; prendendola come un qualcosa che va fatto, che non basterà per posizionarci per una chiave competitiva ma che aiuterà in modo sostanziale. Quindi lo scopo del gioco non è il posizionamento, lo scopo del gioco è la migliore ottimizzazione possibile in vista di un futuro posizionamento. Questi "assiomi" di base hanno definito l'ambiente di test nel modo in cui spiegherò dopo.
Su queste premesse la mia teoria è che google per quanto riguarda i fattori interni utilizzi algoritmi tutto sommato semplici e ben approssimabili da oggetti come il BM25; certo google ha dalla sua anche qualcosa di "semantico" ma credo come già esposto che questo serva solo per una prima scrematura e che poi la serp su questa scrematura sia data da algoritmi più semplici ma più diretti, come appunto il BM25.Algoritmo:
si tratta nella sua struttura base del BM25F, la recente versione del "vecchio" Okapi BM25, considerato lo "state of the art" degli algoritmi basati sul modello vettoriale. La differenza sostanziale che lo distingue dagli algoritmi vettoriali classici è la scelta di una crescita asintotica al posto di quella lineare o logaritmica; può sembrare una modifica marginale ma di fatto non è così; le ragioni che portano a questa particolare scelta sono di natura probabilistica e hanno una loro motivazione teorica molto profonda e soprattutto molto corretta (dettagliatamente esposta nell'articolo postato poco sopra)...infatti nella letteratura il BM25 risulta molto più performante rispetto agli altri algoritmi del tipo Tf*Idf.
Quello che abbiamo fatto è stato prendere il modello base BM25F e strutturarlo per l'ambiente WWW, ecco su questo non esiste letteratura o se esiste è molto scarna.Rough Tuning:
è stato effettuato un rough tuning dell'algoritmo che di suo è abbastanza robusto, ossia consente buone performance già con un tuning approssimativo. Per tuning si intende sostanzialmente fissare i parametri variabili dell'algoritmo che servono ad adattarlo ai vari contesti di utilizzo con lo scopo di incrementarne la performance. Ad esempio alcuni di questi parametri sono le lunghezze medie dei vari campi (title, url, h1, h2, ecc..) dei documenti nella collezione che si è deciso di indicizzare (in questo caso il web..) oppure le rilevanze dei suddetti campi. Per le seconde ci siamo largamente ispirati ai suggerimenti del buon Federico Sasso. Unico e apprezzatissimo supporter :° Per quanto riguarda le lunghezze è stato più complesso...stabilire la lunghezza media dei title nel web è folle. Così l'idea è stata; ok riduciamo il campo; facciamo che non ci interessa come ambiente il web ma solo la parte di web "ottimizzata", in fondo è con quella che dovremo competere; quindi facciamo che non ci interessa la media dei title generale ma solo la media dei title di quelle pagine che qualcuno con una certa esperienza ha redatto con fini di ottimizzazione. Quindi abbiamo raccolto qualche decina di pagine ottimizzate da seo noti (di cui una grandissima parte tra i moderatori di questo forum...) e abbiamo calcolato le suddette lunghezze; anche in questo modo le deviazioni standard sono state notevoli ma non ci interessa troppo la precisione in questa fase.
Altro parametro necessario è la dimensione della collezione di documenti presa in analisi.
A questo punto abbiamo stabilito che questa collezione è l'insieme delle pagine web "ottimizzate" presenti su internet. Ecco in questo caso purtroppo la follia sarebbe stimare questo numero così com'è...come si può calcolare quante pagine del web sono ottimizzate? Al contrario invece è fattibile fare delle stime sulle dimensioni del web in generale ed è questo che abbiamo calcolato.
<dettaglio tecnico>
Questa "contraddizione" nella scelta dei parametri, ossia scegliere in un caso le pagine ottimizzate e nell'altro le pagine in generale è stata attentamente valutata e carta e penna alla mano abbiamo dimostrato analiticamente che questa scelta non inficia la coerenza dell'algoritmo e che anzi non genera nessuna differenza, a patto che si accetti l'assunto di base secondo cui il fatto che una pagina sia o meno ottimizzata non dipende da quali parole contiene; ossia che scelte 2 qualsiasi parole distinte nel dizionario la probabilità che una pagina contente la prima sia ottimizzata è uguale alla probabilità che una pagina contente la seconda sia ottimizzata, questo per ogni coppia di parole distinte. E` una ipotesi abbastanza forte ma tutto sommato ragionevole, infatti si possono ottimizzare pagine su qualsiasi argomento e di fatto avviene.
</dettaglio tecnico>
Tornando al punto, come abbiamo calcolato le dimensioni del web? Ci sono varie fonti sull'argomento, una fra tutte è la pagina worldwidewebsizedotcom pagina tenuta da un tizio che sulla base delle ricerche nella sua tesi di dottorato utilizza metodi statistici per stimare le dimensioni dell'indice di google, attualmente le sue stime si attestano attorno a 15 miliardi di pagine uniche.Al che però ho pensato, perché cavolo devo dare retta a questo qui quando lo posso chiedere direttamente a Google? Infatti utilizzando gli operatori di ricerca avanzati si può fare la seguente query
intext:"a OR e OR 一 OR i OR u OR o OR y"
in questo modo stiamo chiedendo a google di restituirci tutte le pagine che contengano nel loro testo (qualunque testo) ALMENO una vocale O il carattere 一 che è il più comune ideogramma cinese. Non è difficile intuire che questa richiesta è estremamente vicina alla richiesta "restituiscimi in serp TUTTE le pagine del tuo indice". Bene, mr.G con questa richiesta dice di avere indicizzate la sciocchezza di 25 miliardi e 270 milioni di pagine con queste caratteristiche. Modificando la query e ampliandola non c'è comunque verso di superare questo numero, Google non restituisce serp con più di 25.27*10^9 pagine. Siamo ben 10 miliardi sopra le stime del tizio, e non parliamo di stime qui, la fonte è direttamente google. Il che significa di fatto che purtroppo nonostante la buona volontà costui può prendere la tesi di dottorato e buttarla nel cesso. Credo che gli manderò una email di auguri con le buone notizie.
Test Effettuati:
Fissati i suddetti parametri abbiamo effettuato 4 o 5 test elementari per calcolare il coefficiente di correlazione di Spearman tra il nostro algoritmo e google al netto di fattori di posizionamento esterni.<dettaglio tecnico>
Il coefficiente di correlazione di spearman non è altro che un numerino compreso tra -1 e 1 che in questo caso ci dice quanto il ranking che il nostro algoritmo fornisce sui documenti web è "vicino" al ranking fornito da google. Un coefficiente pari a 0 indica che tra i due non c'è nessuna correlazione e che quindi abbiamo perso tempo, un coefficiente pari a -1 indica che i due rankano al contrario ossia che le due serp prodotte sono l'una l'inversa dell'altra =_= un coefficiente pari a 1 è un jackpot. Se è 1 il nostro algoritmo fornisce esattamente lo stesso ranking di google.
</dettaglio tecnico>4 o 5 prove sono un campione statistico misero e non sono nemmeno lontanamente sufficienti per avere dati pubblicabili, però forniscono delle indicazioni elementari e in questo caso sono stati molto incoraggianti.
Dunque per escludere i fattori di posizionamento esterni abbiamo utilizzato i seguenti parametri:- abbiamo utilizzato solo query di ricerca che non totalizzassero più di 350k risultati circa, quindi query non competitive.
- abbiamo scelto pagine con una domain authority non superiore a 15 e una page authority non superiore a 25, creando di fatto una "serp virtuale" costituita solo da pagine quasi del tutto prive di backlinks in cui quindi l'ordinamento che google fornisce è dato solo dall'ottimizzazione.
- non abbiamo scelto pagine nell'ordine esatto fornito dalla serp di google ma abbiamo messo un po' di distanza tra l'una e l'altra al fine di smorzare un po' l'effetto di altri fattori imprevedibili (anzianità del sito, authorship e chissà che altro). Quindi abbiamo scelto saltando un po' di pagine tra l'una e l'altra.
- abbiamo escluso le pagine di cui google modifica il title pubblicato in serp.
- abbiamo escluso le pagine con testo volutamente non visibile.
- abbiamo messo insieme in questo modo 6 o 7 pagine per ogni query scelte andando non oltre circa la quinta pagina della serp.
Purtroppo è impossibile eliminare in modo esatto ogni segnale esterno, ad esempio una pagina con pochi backlinks ottimizzata in modo perfetto, se ha qualche backlink nocivo ce la ritroveremo bassa nel ranking di google nonostante rientri nei parametri che abbiamo scelto ma avendo una buona ottimizzazione invece risulterà alta nel nostro ranking falsando così i risultati. In ogni caso questo è il set che abbiamo usato.
Risultati Ottenuti:
premetto che stando a quanto ho trovato online la miglior correlazione trovata fino ad ora è stata quella dell'algoritmo LDA (latent dirichlet allocation) prodotta in uno studio di Ben Hendrickson, il matematico di seomoz. Il buon Ben ha messo insieme questo algoritmo e sull'onda dell'entusiasmo ha indetto una sorta di conferenza per dire a tutti che LDA produceva un coefficiente di correlazione con google pari a 0.32 (tutto è presente in questo articolo mozdotcom/blog/lda-and-googles-rankings-well-correlated ); un risultato notevolissimo se rapportato agli altri, salvo poi accorgersi che aveva sbagliato i calcoli e che il vero coefficiente era 0.17 un risultato comunque buono ma largamente ridimensionato.
A questo punto Ben ha passato un pessimo quarto d'ora e l'imbarazzo è abbastanza palese in quest'altro post di rettifica ( mozdotcom/blog/lda-correlation-017-not-032 ).Vengo al punto, nei 5 test fatti da noi la correlazione trovata è stata in media superiore a 0.8, con una vetta di 0.94. In un singolo caso in cui abbiamo praticamente disatteso il protocollo di scelta delle pagine e abbiamo preso la serp in prima pagina para para ha totalizzato 0.6 che è comunque un risultato strepitoso (ci aspettavamo un crollo verticale vista la totale vicinanza tra le pagine esaminate e quindi l'influenza dei fattori esterni).
Ripeto, i test sono troppo pochi per trarre conclusioni ma questi numeri parlano da soli. Parrebbe che la mia teoria se non esatta quanto meno si muove nella giusta direzione.
Fine Tuning e Modifiche dell'Algoritmo:
Per fare il fine tuning di questo algoritmo occorre fare una serie di operazioni dell'ordine di 10^17. Serve un ampio database di pagine web. Serve tempo. Serve potenza di calcolo. servono algoritmi che ottimizzino i calcoli da fare. Sarà un lavoro lungo, ma col giusto tuning si possono incrementare ancora le prestazioni. Inoltre l'idea è quella di modificare strutturalmente BM25F e di introdurre un sistema di espansione della query, dei segnali relativi alla prossimità delle parole che premino la presenza di corrispondenze esatte della query e altre modifiche di questo tipo che lo rendano più "intelligente". Servirà del tempo ma se questi pochi semplici test preliminari sono anche solo vagamente rappresentativi del quadro generale, con questi miglioramenti contiamo di ottenere qualcosa di veramente spendibile in ambito SEO. Lo sarebbe già nella versione base. Sono fermamente convinto che sia possibilissimo alla fine chiudere un algoritmo che mimi il comportamento di Google per quanto riguarda i fattori interni.
Documentazione:
Non appena il nostro sito web sarà online (a meno di cambi nella politica di divulgazione) sarà online anche un tool che permetta già un utilizzo di base corredato con una documentazione completa. Stilerò un paper in cui saranno esposti tutti i dettagli.Che dire, è un post molto lungo, spero che qualcuno abbia la pazienza di leggerlo. Aspetto vostri feedback. In ogni caso buone feste :**
R.