Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Data Science per la SEO: nozioni di scienza dei dati applicate alla SEO (e non solo)

Data Science per la SEO: nozioni di scienza dei dati applicate alla SEO (e non solo)

La combinazione di analisi dei dati, statistica, studio degli algoritmi e metodo scientifico è alla base della data science. Vediamo insieme alcuni concetti di scienza dei dati e le possibili applicazioni nel nostro quotidiano lavoro da marketer.

Gianluca Campo

December 03, 2021
Tweet

More Decks by Gianluca Campo

Other Decks in Marketing & SEO

Transcript

  1. Data Science per la SEO: nozioni di scienza dei dati

    applicate alla SEO (e non solo) Gianluca Campo Twitter: @giancampo Email: [email protected] #SMConnect
  2. Chi sono Gianluca Campo Head of SEO & Analytics @

    Nucleus NON SONO • uno sviluppatore • un matematico/statistico
  3. Indice 1. Alcuni concetti di statistica 2. EDA – Analisi

    esplorativa dei dati 1. Comprendere le variabili 2. Pulire il proprio dataset 3. Analizzare le relazioni tra variabili 3. Forecasting 1. Regressione lineare 2. Smorzamento esponenziale 4. Text mining 1. Il modello bag of words (BOW) 5. Clustering 1. Algoritmo K-means 2. DBSCAN Excel e il componente aggiuntivo Analysis Toolpak (disponibile anche per Google Sheets) Python e librerie aggiuntive (Pandas, Scikit-learn, NLTK) Strumenti
  4. Possiamo manipolare una miriade di dati! • Crawling • Log

    dei web server • Backlink • Comportamento utenti • Processi d’acquisto • Query degli utenti • Ranking in SERP • Caratteristiche delle SERP • Uso di app • Trending topics • Knowledge bases e entità • …
  5. Introduzione / Parleremo della distribuzione normale (o di Gauss) •

    È la nozione di statistica più importante per la comprensione e la valutazione di ipotesi • Il punto forte della distribuzione gaussiana è che offre un riferimento statistico a cui paragonare altre distribuzioni • In natura infatti non esistono solo distribuzioni normali
  6. Introduzione / Caratteristiche della distribuzione normale 68% 95% 99,7% 2,5%

    2,5% Deviazioni standard dalla media Significatività statistica P-value ≤ 0,05 (5%) Media / Mediana / Moda
  7. EDA / Cos'è l'analisi esplorativa dei dati • L'acronimo EDA

    sta per Exploratory Data Analysis • Sviluppata dal matematico e statistico John Wilder Tukey (1915-2000) • Obiettivo della EDA è studiare i dati partendo dai dati stessi
  8. EDA / Obiettivi dell'analisi esplorativa dei dati • estrarre variabili

    importanti • tralasciare le variabili inutili 1. Comprendere le variabili di un dataset • identificare valori anomali, mancanti e errori umani • massimizzare le informazioni del dataset 2. Pulire il proprio dataset • comprendere la relazione • valutare la mancanza di relazione tra variabili 3. Analizzare le relazioni tra variabili
  9. Statistica descrittiva / 4. Esaminiamo i risultati Media dei valori

    analizzati Mediana e moda: altre misure di tendenza centrale Deviazione standard: più è alta più variano i dati rispetto alla media
  10. Statistica descrittiva / 4. Esaminiamo i risultati Curtosi: più è

    alta maggiore è l’altezza della distribuzione rispetto ad una distribuzione normale (0 = curtosi uguale alla distribuzione normale)
  11. Statistica descrittiva / 4. Esaminiamo i risultati Asimmetria (detta anche

    skewness): • 0 = simmetrica • -1 a +1 = abbastanza simmetrica • <-1 o >+1 = asimmetrica
  12. Statistica descrittiva / 4. Esaminiamo i risultati Intervallo: differenza tra

    valori minimo e massimo Valore minimo e valore massimo Conteggio dei valori
  13. Box plot / 4. Capiamo il box plot Il più

    piccolo tra valore massimo o 75° percentile + 1,5 * IQR 75° percentile 50° percentile (la mediana) 25° percentile Il più grande tra valore minimo o 25° percentile - 1,5 * IQR IQR* *Intervallo interquartile (Interquartile Range) Media
  14. Box plot / 5. Interpretiamo le informazioni 1. Le query

    sull’abbigliamento hanno minori query con posizioni anomale 2. Le query sull’abbigliamento hanno una posizione media maggiore delle altre categorie 3. In generale, i dati delle query sull’abbigliamento risultano migliori delle altre
  15. Identificare i dati anomali / 1. Calcoliamo alcune metriche =QUARTILE(F:F;1)

    (25° percentile) =QUARTILE(F:F;3) (75° percentile) =Terzo Quartile -Primo Quartile =Primo Quartile -(1,5*IQR) =Terzo Quartile +(1,5*IQR)
  16. Identificare i dati anomali / 2. Conteggiamo i valori anomali

    =SE(O(Valore in esame < Limite inferiore; Valore in esame > Limite superiore); ‘’Sì’’;’’No’’)
  17. Carta di controllo / 2. Calcoliamo media e deviazione standard

    =MEDIA(Colonna clic) =DEV.ST.P(Colonna clic)
  18. Carta di controllo / 3. Calcoliamo le linee (a 3

    deviazioni standard) =media+(3*deviazione standard) =media-(3*deviazione standard) =media
  19. Carta di controllo / 4. Creiamo la carta di controllo

    dei clic di GSC - 10.000 20.000 30.000 40.000 50.000 60.000 Clic Media Linea di controllo superiore Linea di controllo inferiore
  20. Carta di controllo / 5. Possiamo modificare le linee a

    1 deviazione standard - 10.000 20.000 30.000 40.000 50.000 60.000 Clic Media Linea di controllo superiore Linea di controllo inferiore
  21. Correlazione / 4. Il risultato è la matrice di correlazione

    Coefficienti di correlazione Variabili Variabili
  22. Correlazione / 5. Interpretiamo la matrice Significato dei coefficienti di

    correlazione: • -1 = correlazione negativa • 0 = correlazione nulla • +1 = correlazione positiva Nuovi utenti, transazioni e revenue crescono al crescere delle sessioni Transazioni e revenue crescono al crescere dei nuovi utenti Le revenue crescono al crescere delle transazioni
  23. Correlazione / Perché gli studi di correlazione nella SEO non

    sono affidabili? • Non tengono in considerazione le feature delle SERP come Top Stories ecc • Non considerano la diversità di risultati in SERP causate da intenti differenti
  24. Correlazione / Pro e contro Vantaggi (+) Quantifica la forza

    di una relazione tra variabili (+) Ottimo punto di partenza per ulteriori analisi (+) La relazione tra variabili potrebbe sintetizzare una causalità Svantaggi (-) Correlation is not causation (-) Se abbiamo pochi dati la correlazione può non essere attendibile (-) In presenza di valori anomali la correlazione perde efficacia (-) Le variabili confrontate devono essere distribuite normalmente
  25. Correlazione / Testiamo la significatività della correlazione (di Pearson) =PEARSON(Sessioni;Revenue)

    =CONTA.NUMERI(Sessioni) =(Coeff. Pearson * RADQ(Conteggio valori-2))/(RADQ(1- Coeff. Pearson ^2)) =Conteggio valori-2 =DISTRIB.T.2T(T Statistic;DF) p-value < 0,05 quindi la correlazione è significativa!
  26. Correlazione / Testiamo anche il coeff. di Spearman (per distr.

    non normali) =RANGO.MEDIA(Singolo valore Sessioni;Colonna Sessioni;Ordine crescente) =RANGO.MEDIA(Singolo valore Sessioni;Colonna Sessioni;Ordine crescente)
  27. Correlazione / Testare la correlazione con il coefficiente di Spearman

    la correlazione è significativa, ma il coefficiente di Spearman è molto vicino allo zero =CORRELAZIONE(Rank Sessioni;Rank Revenue)
  28. Forecasting / Cos’è il forecasting • E’ l’attività di previsione

    di dati futuri basati su serie temporali storiche e analisi di trend e stagionalità • Esistono diverse tecniche di forecasting, qui vedremo la regressione lineare e lo smorzamento esponenziale
  29. Regressione lineare / 4. Significato delle opzioni Colonna della variabile

    dipendente = quella da predire Colonna della variabile indipendente = quella conosciuta Grafici e dati sui risultati della regressione
  30. Regressione lineare / 6. Analizziamo i risultati Coefficiente di correlazione

    (di Pearson) Coefficiente di determinazione = il 20% della variabilità dei click può essere spiegata dalla data (il resto è legato ad altri fattori In media, le distanze dei punti dalla linea di regressione è di 8653 clic Intercetta (la b dell’equazione) Coeff. angolare (la m dell’equazione)
  31. Regressione lineare / 6. Analizziamo i risultati Equivalente del p-value

    per la correlazione. < 0,05 dunque la correlazione è significativa !
  32. Regressione lineare / 7. Valori stimati VS valori osservati A

    B C + = Valori stimati dalla regressione Valori osservati
  33. Regressione lineare / 8. Aggiungiamo le date e calcoliamo i

    valori futuri =(Coeff. angolare * Data)+Intercetta cioè l’equazione della regressione y = mx + b Nota: per rapidità si può usare la formula seguente =PREVISIONE.LINEARE(Data;Colon na dei click;Colonna delle date)
  34. Regressione lineare / Pro e contro Vantaggi (+) Facile da

    implementare e interpretare (+) Algoritmo molto flessibile, tra i più usati dai data scientist, non solo per il forecasting Svantaggi (-) Previsioni molto semplici, che non tengono conto delle stagionalità (-) I valori anomali impattano molto i risultati
  35. Smorzamento / 3. Vediamo le opzioni dello strumento Data fino

    a cui effettuare la previsione Intervallo di confidenza: dati entro cui rientra la previsione futura Stagionalità: nel nostro caso 7 gg vanno bene perché i clic hanno una microstagionalità settimanale
  36. Smorzamento / Pro e contro Vantaggi (+) Molto veloce da

    applicare ai propri dataset (+) Più accurato della regressione lineare perché tiene conto delle stagionalità (+) Flessibile e ricco di opzioni Svantaggi (-) Piuttosto accurato, ma solo nel breve termine (-) Non ancora all’altezza di una canonica sfera di cristallo ☺
  37. Text mining / Cos’è il text mining • Sono le

    tecniche volte a trasformare il testo - non strutturato - in dati strutturati e normalizzati e ad elaborarlo • Il text mining estrae significato dai testi grazie alla conversione delle informazioni in un linguaggio comprensibile alle machine, dunque senza una comprensione semantica.
  38. Text mining / Il processo. Le possibili 6 fasi della

    pipeline di text mining Lettura dati di testo Conversione in documento e Tokenizzazione Arricchimento Pulizia dataset e pre-elaborazione Estrazione keyword / Bag Of Words Codifica / embedding Analisi argomenti e sentiment
  39. Text mining / Il processo. Step #1 Lettura dati di

    testo Conversione in documento e Tokenizzazione Arricchimento Pulizia dataset e pre- elaborazione Estrazione keyword / Bag Of Words Codifica / embedding Analisi argomenti e sentiment La lettura dei dati di testo può avvenire secondo modalità diverse Nel web i dati sono già disponibili in formato tabella, oppure si può fare scraping Su Python si usano le librerie: • Pandas per gestire i cosiddetti dataframe • Scrapy, BeautifulSoup, Selenium per fare scraping
  40. Text mining / Il processo. Step #2 Lettura dati di

    testo Conversione in documento e Tokenizzazione Arricchimento Pulizia dataset e pre- elaborazione Estrazione keyword / Bag Of Words Codifica / embedding Analisi argomenti e sentiment I testi vengono convertiti in oggetti documento e tokenizzati La tokenizzazione è il processo di suddivisione del testo in unità più piccole Segue l’assegnazione di identificativi a ciascuna parola del testo L’obiettivo è dunque creare un indice completo di parole da processare
  41. Text mining / Il processo. Step #3 Lettura dati di

    testo Conversione in documento e Tokenizzazione Arricchimento Pulizia dataset e pre- elaborazione Estrazione keyword / Bag Of Words Codifica / embedding Analisi argomenti e sentiment I token vengono arricchiti con informazioni aggiuntive Ad esempio si possono taggare alcune parti di testo come titolo, sommario ecc Sempre in questa fase è possible arricchire i token con delle entità (persone, città ecc)
  42. Text mining / Il processo. Step #4 Lettura dati di

    testo Conversione in documento e Tokenizzazione Arricchimento Pulizia dataset e pre- elaborazione Estrazione keyword / Bag Of Words Codifica / embedding Analisi argomenti e sentiment In questa fase si procede con la semplificazione dei token mediante stemming e/o lemmatizzazione Si possono anche eliminare testi troppo corti, cifre, stop words, tag non necessari
  43. Text mining / Il processo. Step #5 Lettura dati di

    testo Conversione in documento e Tokenizzazione Arricchimento Pulizia dataset e pre- elaborazione Estrazione keyword / Bag Of Words Codifica / embedding Analisi argomenti e sentiment I termini vengono raccolti nelle cosiddette Bag of Words Ad ogni termine viene assegnato un punteggio basato sulla sua frequenza nel testo Se si lavora con troppi termini, questi possono essere sintetizzate in keywords
  44. Text mining / Il processo. Step #6 Lettura dati di

    testo Conversione in documento e Tokenizzazione Arricchimento Pulizia dataset e pre- elaborazione Estrazione keyword / Bag Of Words Codifica / embedding Analisi argomenti e sentiment Con la codifica, ai termini viene assegnato 0 o 1 se presenti o meno all’interno di un documento L’embedding è un processo simile ma più complesso
  45. Text mining / Il processo. Step #7 Lettura dati di

    testo Conversione in documento e Tokenizzazione Arricchimento Pulizia dataset e pre- elaborazione Estrazione keyword / Bag Of Words Codifica / embedding Analisi argomenti e sentiment L’ultima fase è quella in cui si impiegano delle tecniche più specifiche per l’identificazione del sentiment o degli argomenti trattati
  46. Text mining / Fasi in genere presenti negli script per

    la SEO Lettura dati di testo Conversione in documento e Tokenizzazione Arricchimento Pulizia dataset e pre-elaborazione Estrazione keyword / Bag Of Words Codifica / embedding Analisi argomenti e sentiment
  47. BOW / Esempio di conversione in Bag of Words Review

    1: This movie is very scary and long Review 2: This movie is not scary and is slow Review 3: This movie is spooky and good
  48. BOW / Trasformazione in vettori per l’elaborazione matematica Review 1:

    This movie is very scary and long Review 2: This movie is not scary and is slow Review 3: This movie is spooky and good Vettore di Review 1: [1 1 1 1 1 1 1 0 0 0 0] Vettore di Review 2: [1 1 2 0 0 1 1 0 1 0 0] Vettore di Review 3: [1 1 1 0 0 0 1 0 0 1 1]
  49. BOW / Calcolo della Term Frequency (TF) Review 2: This

    movie is not scary and is slow TF per il termine “this“ = numero di occorrenze per “this“ (1) numero di termini in Review 2 (8) = 1/8
  50. BOW / Calcolo della Term Frequency (TF) Review 2: This

    movie is not scary and is slow TF per il termine “this“ = numero di occorrenze per “this“ (1) numero di termini in Review 2 (8) = 1/8 Ricorda qualcosa?
  51. BOW / Calcolo della Inverse Document Frequency (IDF) IDF per

    il termine “this“ = log Numero di documenti (3) Numero di documenti con il termine “this“ (3) = log(3/3) = log(1) = 0 In parole povere, un termine è meno importante tanto più è presente nel corpus di documenti (ad es. le stop words)
  52. BOW / TF-IDF e le fondamenta dell’information retrieval TF-IDF per

    il termine “this“ in Review 2 = TF ( “this“) * IDF (“this“) = 0 La metrica TF-IDF è una delle prime ad essere utilizzate in information retrieval e dai primi motori di ricerca
  53. BOW / John Mueller sul TF-IDF nella SEO “With regards

    to trying to understand which are the relevant words on a page, we use a ton of different techniques from information retrieval. And there’s tons of these metrics that have come out over the years.” “ …My general recommendation here is not to focus on these kinds of artificial metrics… because it’s something where on the one hand you can’t reproduce this metric directly because it’s based on the overall index of all of the content on the web. ” https://www.searchenginejournal.com/google-tf-idf/304361/
  54. Clustering / Significato e tipologie di algoritmi • Il clustering

    – anche detto analisi dei gruppi – è un insieme di tecniche che hanno l’obiettivo di raggruppare elementi omogenei tra loro • È tra i principali algoritmi di unsupervised learning, cioè applicabile a dataset poco strutturati (tecnicamente non etichettati) • Gli algoritmi di clustering si possono suddividere in tre macro-gruppi: o partizionali, in cui si formano dei gruppi in base alla distanza dei punti da un centro o gerarchici, i gruppi si formano per rappresentazione ad albero (ad es. per dendrogramma) o density-based, i gruppi si formano analizzando lo spazio intorno ad ogni punto • Nel prosieguo ci soffermiamo sul clustering partizionale (K-means) e density-based (DBSCAN)
  55. Clustering / Clustering partizionale (ad es. K-means) 1. Si decide

    un numero di cluster (e relativi centroidi*) 2. Si calcolano le distanze dei punti dai centroidi (ad es. distanza euclidea) 3. Si assegnano i punti al cluster più vicino 4. Si spostano i centroidi in una nuova posizione 5. Si ripete il processo dal punto 2 per un certo numero di volte * I centroidi sono punti principali attorno a cui creare un cluster
  56. 1. Dataset iniziale 2. Input random dei primi centroidi 3.

    Primo calcolo delle distanze 4. Si spostano i centroidi 5. Secondo calcolo delle distanze 6. Dataset finale
  57. Clustering / Clustering density-based (ad es. DBSCAN) 1. Per ogni

    punto si calcola un intorno, cioè i punti più vicini 2. Per definire l’intorno di punti occorre decidere: 1. Il raggio massimo dell’intorno 2. Il numero minimo di punti nell’intorno
  58. Raggio massimo entro cui individuare punti simili Punti minimi all’interno

    del gruppo Punto centrale nel cui intorno ci sono almeno 4 punti Punto nel cui intorno NON ci sono 4 punti
  59. K-means / Clustering di query da GSC e identificazione opportunità

    Google Colab qui: https://colab.research.google.com/drive/15V y2pU93DNtVYSAQe5q4PD2_xrOCTp11?usp= sharing Fonte originale: https://www.shrikar.com/blog/python-for- seo-using-google-search-console
  60. K-means / 1. Carichiamo il file su Colab Per il

    funzionamento dello script è necessario modificare questa intestazione nel csv Carichiamo il csv
  61. K-means / 2. Come funziona lo script Importiamo le librerie

    necessarie Creiamo la BOW Applichiamo il modello K-means con 20 centroidi Per ogni cluster stampiamo i termini che contiene
  62. K-means / 4. Come funziona lo script Generiamo una mappa

    di nomi per i cluster Assegniamo i nomi, calcoliamo il CTR e ordiniamo i cluster nel dataframe creato Generiamo un file di risutlati e stampiamo un grafico con la posizione dei cluster
  63. K-means / 5. Interpretare il grafico I cluster Volantino e

    Friggitrici generano poche impressioni e CTR bassi: da dismettere? Volantino Friggitrici Letto Camerette Cucina e camerette hanno alti CTR ma impressioni basse: meritano più attenzione! Query su Letto e Divano Letto registrano molte impressioni e un alto CTR: le più performanti! Cucina Divano letto
  64. DBSCAN / Clustering di keyword da GSC o da GAds

    Google Colab qui: https://colab.research.google.com/drive/1F9 XkBZkx0P1WKXfexNPFU2K3I_qNi6Ez?usp=sh aring Fonte originale: https://www.pemavor.com/seo-keyword- clustering-with-python/
  65. DBSCAN / 1. Come funziona lo script Importiamo le librerie

    necessarie Creiamo una funzione per la generazione di parole dopo stemming
  66. DBSCAN / 1. Come funziona lo script Leggiamo il file

    e ne creiamo una lista con stemming (applicando la funziona creata in precedenza) Generiamo la BOW e applichiamo DBSCAN Raccogliamo i risultati e creiamo un file di output