WMR 01 - Introduzione al Web Mining



In questa lezione abbiamo introdotto i concetti fondamentali di interesse per il corso.

Il web è un sistema distribuito, in quanto è percepito come una singola entità che viene arricchita dagli utenti. Una rete di calcolatori invece non è percepita come una singola entità.

Con l'avvento del Web 2.0, il web è diventato sempre di più il luogo degli user generated content, ovvero dei contenuti generati da parte delle persone comuni.

Il contenuto presente sul web è memorizzato all'interno di vari server sotto forma di dati. Il gap tra il dato e il contenuto che il dato sta rappresentando è molto grande e importante, e passare dal dato al contenuto necessita sempre di una interpretazione.

Noi esseri umani siamo abbastanza in grado di capire la giusta interpretazione per passare dal dato al contenuto. Automatizzare questo processo però è estremamente difficile. Il problema ultimale che cercheremo di risolvere in questo corso è quindi il seguente:

come possiamo utilizzare una macchina di Turing per colmare questo gap interpretativo?

Un approccio iniziale a questo problema potrebbe essere l'utilizzo di un linguaggio logico per descrivere i contenuti rappresentati dai dati tramite l'utilizzo di metadati che aggiungono informazioni al dato al fine di poterlo interpretare correttamente.

Per fare un esempio, tra i metadati che possono essere associati ad un libro troviamo anche i seguenti:

  • Data pubblicazione

  • Autore

  • Categoria

Osservazione: La parola "meta" in "metadati" sta a significare il fatto che i metadati aggiungono informazioni ai dati astraendo dal dato in sé. Detto in altri termini, i metadati sono dati che parlano di dati.

Detto questo, l'utilizzo di metadati pone alcuni problemi, tra cui:

  • Data la mole di dati che vengono generati ogni minuto, non è fattibile pensare di aggiungere questi metadati in modo manuale. Dobbiamo quindi automatizzare il processo di generazione dei metadati.

  • Molto spesso poi non sappiamo nemmeno come verranno utilizzate e interpretate le nostre parole, in quanto i significati sono generati in modo dinamico a partire dalle produzioni letterarie, nel senso che il significato molto spesso è il prodotto di una frase inserita in un particolare contesto culturale, sociale e linguistico. Per questa ragione sono necessari i modelli data-driven, ovvero modelli che utilizzano i dati generati per costruirsi ulteriori modelli con cui poi prendere delle decisioni.

Il web mining (WM) è un insieme di tecnologie che ci permettono di sfruttare le informazioni presenti nel web pubblico. Tra queste troviamo anche le seguenti

  • Information Retrieval (IR): Studia il problema della localizzazione delle informazioni memorizzate. Nel web questo è un problema molto difficile, che viene in parte risolto da tecnologie come Google Search.

  • Machine Learning (ML): Offre delle tecniche che permettono di filtrare i dati per ottenere le informazioni utili utilizzate al fine di risolvere un particolare task. Le soluzioni offerte dal ML non sono mai deterministicamente esatte, ma molto spesso offrono le migliori approssimazioni.

  • Content processing.

  • Language processing.

L'idea alla base del WM è dunque quella di utilizzare tutti i dati disponibili al fine di interpretare un dato testo.

La wikification consiste nell'utilizzo della famosa risorsa wikipedia al fine di identificare le entità presenti in un testo. Questo task viene risolto annotando le entità presenti in un testo con il link alla pagina di wikipedia associata all'entità in questione, se quest'ultima esiste.

Tramite la wikification siamo parzialmente in grado di colmare il gap presente tra il dato e il contenuto. Tramite la wikification infatti possiamo riconoscere se lo stesso nome fa riferimento alla stessa persona (stesso link di wikipedia), oppure se i due nomi fanno riferimento a persone diverse.

Il machine learning studia i meccanismi tramite i quali un agente intelligente migliora nel tempo le sue prestazioni rispetto ad un determinato compito muovendosi in un determinato ambiente.

Un sistema di learning è quindi caratterizato da:

  • Compito

  • Prestazione

  • Esperienza

Esistono vari approcci per definire degli algoritmi di apprendimento, ciascuno dei quali costruisce un particolare modello. Tra i più importanti troviamo:

  • Approcci Logici:

    1. Programmazione logica induttiva: utilizzata per passare dati dati alle strutture. Utilizzo di programmazione dichiarativa come prolog.

    2. Alberi delle decisioni: costruiti utilizzando misure come l'entropia.


  • Approcci probabilistici: In questo contesto apprendere significa costruire delle distribuzioni di probabilità tramite

    1. Stima dei parametri.

    2. Funzioni target.


  • Approcci geometrici: In questo contesto invece si cercano delle funzioni di separazione all'interno di uno spazio vettoriale.

    1. kNN.

    2. Support Vector Machines (SVM).

    3. Neural Networks (NN).

    4. Embeddings.

    5. Analisi spettrale.

Se non ho dati a disposizione è possibile utilizzare delle tecniche di apprendimento senza supervisione.

Queste tecniche ci permettono di raggruppare elementi simili tra loro in clusters. Una volta ottenuti i clusters, possiamo annotare ciascun cluster con dei metadati che caratterizzano tutte le istanze del cluster.