Riccardo Govoni - Search

96
Search Corso di formazione d’Eccellenza in Web 2.0, online business e social media marketing Social Media Lab Universita’ IULM Govoni Riccardo - 28/Apr/2009

description

Credits:Section Logos:--------------p.1: logo, socialmedialab.netp.2: http://shelfsphotoblog.wordpress.com/2008/06/18/1-introduction/p.4: http://www.warriorsofthe.net/ galleryp. 13: 2-var gaussian distribution, generated by gnuplotp. 18: O'Reilly Google Hacks Cover, http://oreilly.com/catalog/9780596004477/p. 31: Q glyph, http://msdn.microsoft.com tech docsp. 34: http://www.myconfinedspace.com/tag/milhouse/p. 41: Semantic Rubik's cube: http://www.twine.com/twine/1w3b23v2-6j0/web-3-0-semantic-webp. 54: http://pcbunn.cacr.caltech.edu/jjb/Synthesizers/Minisonic2/default.htmp. 60: Blender, http://blendtec.com/p. 65: Book of Keels portion, http://www.uwo.ca/english/site/archive/confrncs/medievalisms/Abstracts.htmp. 82: logo, www.bayesfor.eup. 92: Oracle HQs, http://www.flickr.com/photos/70276096@N00/148724126/in/photostream/p. 94: http://commons.wikimedia.org/wiki/File:Minard.pngSection contents and images:----------------------------p.4 - p.12 : en.wikipedia.org, p.13 - p. 17: author-made, bubbl.usp.18 - p. 30: http://www.google.com/insights/search/, Calorielab.com, en.wikipedia.org, https://www.google.com/adplannerp.31 - p. 33: author-madep.34 - p. 40: microformats.org, en.wikipedia.org, http://code.google.com/apis/socialgraph/, http://developer.yahoo.net/blog/archives/2008/12/monkey_finds_microformats_and_rdf.html p.41 - p. 53: semantic-conference.com, en.wikpedia.org, http://commons.wikimedia.org/wiki/File:W3c-semantic-web-layers.svg, creativecommons.org, developer.mozilla.com, intertwingly.net, www.opencalais.com, gnosis.clearforest.comp.54 - p.59 : http://apiwiki.twitter.com/, developer.nytimes.com, http://moritz.stefaner.eup. 60 - p.64: pipes.yahoo.com , http://www.programmableweb.com/p. 65 - p.81: en.wikipedia.org, http://www.ohohlfeld.com/zipf.html, http://irthoughts.wordpress.com/2008/07/07/understanding-tfidf/, http://home.dei.polimi.it/matteucc/Clustering/tutorial_html/index.html, bayesfor.eu, battlehorse.net, http://www.cs.cmu.edu/~enron/, http://jheer.org/enron/, http://www.cs.umass.edu/~ronb/enron_dataset.htmlp. 82 - p.91: www.bayesfor.eu, www.polisblog.it/cerca/bayesfor p. 92 - p.93: see links inside presentationp. 94 - p.95: see links inside presentation

Transcript of Riccardo Govoni - Search

Page 1: Riccardo Govoni - Search

SearchCorso di formazione d’Eccellenza in Web 2.0, online

business e social media marketing

Social Media LabUniversita’ IULM

Govoni Riccardo - 28/Apr/2009

Page 2: Riccardo Govoni - Search

IntroDi cosa si parla oggi?

Page 3: Riccardo Govoni - Search

Intro

• Il Web, la ricerca quantitativa e l’informazione strutturata

• Fonti dati e disponibilita’

• Data & Text mining

• Case studies ed esempi

Page 4: Riccardo Govoni - Search

Web

An internet firewall, as seen from www.warriorsofthe.net

Page 5: Riccardo Govoni - Search

Breve storia del web

• Da 3 terminali a 1.1B utenti

• Arpanet e il TCP/IP

• Cern e WWW

• HTTP ed il modello page-by-page

• HTML ed i linguaggi di markup

• La crescita esponenziale, i motori di ricerca

Page 6: Riccardo Govoni - Search

HTML

• Linguaggio di markup piu’ popolare per contenuti web

• prima apparizione nel 1991, formalizzato nel 1993

• E’ de-facto il mattone base del world-wide-web...

• ma l’ultima revisione (HTML 4.01) risale al 1999 !

Page 7: Riccardo Govoni - Search

HTML

• Pro:

• Semplicita’

• Portabilita’

• Contro:

• Applicabilita’ limitata nella sua concezione originale

• Commistione di presentazione e contenuto

Page 8: Riccardo Govoni - Search

L’esplosione del web

Page 9: Riccardo Govoni - Search

HTML• Perfetto per contenuti testuali

• Pessimo per lo scambio dati

• Un layer di presentazione di troppo successo

Text

Human

Data

Machine

Page 10: Riccardo Govoni - Search

HTML (cont.)

Page 11: Riccardo Govoni - Search

HTML (cont.)<td>1</td><td> <span class="flagicon"> <a href="/wiki/File:Flag_of_Utah.svg" class="image" title="Flag of Utah.svg"> <img alt="" src="http://.../22px-Flag_of_Utah.svg.png" width="22" height="15" border="0" class="thumbborder" /> </a>&#160;</span> <a href="/wiki/Utah" title="Utah">Utah</a></td><td>2.50</td>

Page 12: Riccardo Govoni - Search

Altri standard

• Cascading Style Sheet (CSS)

• Javascript

• Flash

• eXtensible Markup Language (XML)

• Really Simple Syndication (RSS)

Page 13: Riccardo Govoni - Search

Ricerca QuantitativaDato, Misura, Ripetibilita’, Statistica, Esperimento

2-var normal gaussian distribution

Page 14: Riccardo Govoni - Search

Ricerca Quantitativa

Page 15: Riccardo Govoni - Search

Ricerca Qualitativa

Page 16: Riccardo Govoni - Search

Obiettivo

• dati, dati, dati

• Hard numbers, quantita' verificabili, datasets, serie storiche.

• Esistono sul web? Esistono in formati aperti a successive analisi?

Page 17: Riccardo Govoni - Search

Come trovarli?

• Ehi, ma il web e’ (quasi) tutto testo!

• Identifichiamo le fonti dati disponibili

• Preferiamo l’utilizzo di informazioni strutturate

Page 18: Riccardo Govoni - Search

Searching...Dal testo ai dati

Page 19: Riccardo Govoni - Search

Alcuni esempi

• Google Insights for Search

• Google Ad Planner

Page 20: Riccardo Govoni - Search

Insights for Search

http://www.google.com/insights/search/

Page 21: Riccardo Govoni - Search

Esempi

• Seasonality

• Brand recognition

• Marketing response

• Demographics

• Sales Trends

Page 22: Riccardo Govoni - Search
Page 23: Riccardo Govoni - Search
Page 24: Riccardo Govoni - Search
Page 25: Riccardo Govoni - Search

Demographics: Obesity

Page 26: Riccardo Govoni - Search

Demographics: Obesity

• Google insights for search for obesity - weight loss

• http://calorielab.com/news/wp-images/post-images/fattest-states-2007.gif

• http://www.google.com/insights/search/#cat=&q=Weight%20Loss&geo=US&date=&clp=&cmpt=geo

Page 27: Riccardo Govoni - Search

Demographics: Swine Flu

Page 28: Riccardo Govoni - Search

Demographics: Swine Flu

• Google insights for search for swine flu

• http://en.wikipedia.org/wiki/2009_swine_flu_outbreak_in_the_United_States

• http://www.google.com/insights/search/#q=swine%20flu&geo=US&date=today%207-d&cmpt=geo

Page 29: Riccardo Govoni - Search

Google Ad Planner

Page 30: Riccardo Govoni - Search
Page 31: Riccardo Govoni - Search

[Un]structured informationWhy structure matters

Never tell a typographer that text is “just text”

Page 32: Riccardo Govoni - Search

Perche’ e’ importante?

• Importanza dell’informazione strutturata per l’analisi quantitativa

• Gestire l’information overload

• Facilitano l’elaborazione automatica

• Ripetibilita’ del processo di analisi

• Migliore interpretazione del dato: meno soggettivo, piu’ oggettivo.

Page 33: Riccardo Govoni - Search

Text

Data ProvisioningCSV

Microformat

API

Semantic Web

RSS

Page 34: Riccardo Govoni - Search

MicroformatsEmbedding structured info under the hood

An example of microchip art. Milhouse on a Sil154CT64 chip

Page 35: Riccardo Govoni - Search

Cosa sono?“Designed for humans first and machines second, microformats are a set of simple, open data formats built upon existing and widely adopted standards.”

http://microformats.org/

Page 36: Riccardo Govoni - Search

Cosa sono?

• Un sistema totalmente compatibile con gli standard esistenti (HTML, XHTML) per arricchire i contenuti web con metadati semantici

• Un tentativo per risolvere la commistione tra presentazione e contenuto dell’ HTML.

• Ad esempio: contact details, coordinate geografiche, eventi di calendario.

Page 37: Riccardo Govoni - Search

Microformat:geoInformazioni geografiche: http://microformats.org/wiki/geo

<div class="geo"> <abbr class="latitude" title="37.408183">N 37° 24.491</abbr> <abbr class="longitude" title="-122.13855">W 122° 08.313</abbr></div>

N 37° 24.491 W 122° 08.313

per l’utente

per la macchina

Page 38: Riccardo Govoni - Search

Microformat:xfnInformazioni sociali: http://en.wikipedia.org/wiki/XHTML_Friends_Network

<a href="http://www.battlehorse.net/" rel="colleague"> Riccardo Govoni</a>

Riccardo Govoni

per l’utente

per la macchina

Page 40: Riccardo Govoni - Search
Page 41: Riccardo Govoni - Search

Semantic Web<item rdf:about="http://dbpedia.org/resource/Cat">Cat</item>

Artwork of the W3C Semantic Web logo

Page 42: Riccardo Govoni - Search

Semantic Web

• E’ un set di principi, standard e tecnologie volta a superare la limitazione del web odierno nel discernere presentazione da contenuto.

• E’ una forma di fruizione dell’universo di informazioni presenti sul web orientata all’elaborazione da parte di una macchina.

“Semantic technologies include software standards and methodologies that are aimed at providing more explicit meaning for the information that's at our disposal”

http://www.semantic-conference.com/primer.html

Page 43: Riccardo Govoni - Search

Cos’e’ una lista? E uno stato?

Page 44: Riccardo Govoni - Search

Cos’e’ una lista?<td>1</td><td> <span class="flagicon"> <a href="/wiki/File:Flag_of_Utah.svg" class="image" title="Flag of Utah.svg"> <img alt="" src="http://.../22px-Flag_of_Utah.svg.png" width="22" height="15" border="0" class="thumbborder" /> </a>&#160;</span> <a href="/wiki/Utah" title="Utah">Utah</a></td><td>2.50</td>

Page 45: Riccardo Govoni - Search

Le tecnologie in gioco

Page 46: Riccardo Govoni - Search

OWL

• Ontologia: una rappresentazione formale di un set di concetti all’interno di un dominio definito e delle relazioni che li collegano

• OWL (Web Ontology Language): Linguaggio per la definizione di ontologie.

Page 47: Riccardo Govoni - Search

RDF

• RDF (Resource Description Framework): un’insieme di specifiche per la descrizione e modellazione di ‘risorse’ in forma di triple “Soggetto - Predicato - Oggetto”

• SPARQL: linguaggio di ricerca per risorse descritte tramite RDF.

Page 48: Riccardo Govoni - Search

RDF: esempio<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ANIMALS="http://www.some-fictitious-zoo.com/rdf#">

<RDF:Seq about="http://www.some-fictitious-zoo.com/all-animals"> <RDF:li> <RDF:Description about="http://www.some-fictitious-zoo.com/mammals/lion"> <ANIMALS:name>Lion</ANIMALS:name> <ANIMALS:species>Panthera leo</ANIMALS:species> <ANIMALS:class>Mammal</ANIMALS:class> </RDF:Description> </RDF:li> <RDF:li> <RDF:Description about="http://www.some-fictitious-zoo.com/arachnids/tarantula"> <ANIMALS:name>Tarantula</ANIMALS:name> <ANIMALS:species>Avicularia avicularia</ANIMALS:species> <ANIMALS:class>Arachnid</ANIMALS:class> </RDF:Description> </RDF:li> <RDF:li> <RDF:Description about="http://www.some-fictitious-zoo.com/mammals/hippopotamus"> <ANIMALS:name>Hippopotamus</ANIMALS:name> <ANIMALS:species>Hippopotamus amphibius</ANIMALS:species> <ANIMALS:class>Mammal</ANIMALS:class> </RDF:Description> </RDF:li> </RDF:Seq></RDF:RDF>

Page 49: Riccardo Govoni - Search

RDF: esempio

• http://creativecommons.org/licenses/by/3.0/

Page 50: Riccardo Govoni - Search

FOAF

• FOAF (Friend of a Friend): E’ un’ ontologia rivolta alla descrizione di persone e reti sociali.

Page 51: Riccardo Govoni - Search

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:foaf="http://xmlns.com/foaf/0.1/"><foaf:Person> <foaf:name>Sam Ruby</foaf:name> <foaf:firstName>Sam</foaf:firstName> <foaf:surname>Ruby</foaf:surname> <foaf:nick>rubys</foaf:nick> <foaf:mbox_sha1sum>703471c6f39094d88665d24ce72c42fdc5f20585</foaf:mbox_sha1sum> <foaf:homepage rdf:resource="http://www.intertwingly.net/"/> <foaf:depiction rdf:resource="http://www.intertwingly.net/images/SamR_small.jpg"/> <foaf:workplaceHomepage rdf:resource="http://www.ibm.com/"/> <foaf:schoolHomepage rdf:resource="http://www.cnu.edu/"/>

<!-- DJ Adams --> <foaf:knows> <foaf:Person rdf:ID="dj"> <foaf:givenName>DJ</foaf:givenName> <foaf:surname>Adams</foaf:surname> <foaf:mbox rdf:resource="mailto:[email protected]"/> <rdfs:seeAlso rdf:resource="http://www.pipetree.com/~dj/foaf.rdf"/> </foaf:Person> </foaf:knows>...

FOAF example

Page 52: Riccardo Govoni - Search

Case: Open Calais

• Calais, un progetto Thomson Reuters, e’ un servizio online per la conversione di testo non strutturato in strutture semantiche, utilizzando tecniche di Natural language Processing e Machine Learning.

• Esempio: Gnosis

• Alternative: KIM - OntoText

http://viewer.opencalais.com/http://www.opencalais.com/

Page 53: Riccardo Govoni - Search

Gnosis

Page 54: Riccardo Govoni - Search

APIApplication ProgrammingInterface

Tektronix 556 dual beam spectrum analyzer

Page 55: Riccardo Govoni - Search

API• Il modo migliore per avere

accesso a dati strutturati.

• Permettono all’utente (programmatore) l’accesso al dato saltando il layer di presentazione (HTML).

• Sono ubiquitarie: ricerca, e-commerce, news, finance, reti sociali, photo, mapping, mobile, travel, music, ovunque.

• Sono componibili (Mashups).

Page 56: Riccardo Govoni - Search

API• Sono rivolte a “programmatori”, ma ...

• Riducono la barriera di accesso all’informazione per chiunque

• Rendono possibile l’accesso a sistemi che il singolo non sarebbe in grado di ottenere.

• Sono espressione dell’idea di “open communication” come forma di auto-gestione del web.

• Sono un esempio digitale di mutua simbiosi.

Page 57: Riccardo Govoni - Search

Twitter API{ "trends":{ "2009-04-27 22:10:19":[ { "query":"\"Swine Flu\" OR Flu", "name":"Swine Flu" }, { "query":"#swineflu", "name":"#swineflu" }, { "query":"Mexico", "name":"Mexico" }, { "query":"#musicmonday", "name":"#musicmonday" }, { "query":"#savechuck", "name":"#savechuck" } ] }, "as_of":1240870219}

http://search.twitter.com/trends/current.json

Page 58: Riccardo Govoni - Search

New York Times APIs

http://developer.nytimes.com/docs

Page 59: Riccardo Govoni - Search

NYT elastic lists

Text

http://moritz.stefaner.eu/projects/elastic-lists/NYT/

Page 60: Riccardo Govoni - Search

MashupsBlending the web together

Page 61: Riccardo Govoni - Search

Mashups• Applicazioni web che combinano dati

provenienti da piu’ fonti in una singola funzionalita’ integrata.

• Si basano quasi sempre sulle API rese disponibili dai singoli servizi

• Offrono a non sviluppatori l’accesso a informazioni strutturate “pre-digerite”

• Yahoo pipes (e.g.: Social Media Tracker)

• Programmable Web

Page 63: Riccardo Govoni - Search

Programmable Web

• La risorsa di riferimento, dove aggiornarsi su API e Mashups disponibili

Page 65: Riccardo Govoni - Search

At the end, it’s all text...Introduzione al Text processing e Text mining

Book of Kells, Trinity College, Dublino

Page 66: Riccardo Govoni - Search

Data mining

• Il problema dell’information overload

• Data mining “is the process of extracting hidden patterns from data”

• Il Data mining si divide in 2 rami: Discovery e Prediction

• Il Data mining riguarda 4 classi di problemi: Classification, Clustering, Regression, Pattern Inference

Page 67: Riccardo Govoni - Search

Text mining, Information Retrieval

• ramo del Data Mining, focalizzato all’estrazione di dati a partire da corpora testuali.

• Sottogruppi: text clustering, normalization, entity recognition, summarization, computational linguistics, natural language processing

Page 68: Riccardo Govoni - Search

Zipf distributionOriginally, Zipf's law stated that, “in a corpus of natural language utterances, the frequency of any word is roughly inversely proportional to its rank in the frequency table”.

http://www.ohohlfeld.com/zipf.html

Page 69: Riccardo Govoni - Search

tf-idf• Le basi della ricerca testuale:

• All’interno di un corpo di testo, come distinguere i termini che danno un contributo significativo ad un documento, rispetto ai connettivi?

• Valorizzare i termini che appaiono spesso in un documento

• Penalizzare i termini che appaiono spesso nell’intero corpus

Page 70: Riccardo Govoni - Search

tf-idf

• tf-idf : Term Frequency / Inverse Document Freq.

• Term weighting: aij = f(Lij,Gi,Nj) = Lij Gi Nj

• Classic tf-idf:

http://irthoughts.wordpress.com/2008/07/07/understanding-tfidf/

Page 71: Riccardo Govoni - Search

Clustering

• Identificare una struttura in un’insieme di dati non noti a priori.

• Organizzare oggetti in gruppi i cui mmbri sono simili secondo una certa metrica.

http://home.dei.polimi.it/matteucc/Clustering/tutorial_html/index.html

Page 72: Riccardo Govoni - Search

Graph Theory

• the study of graphs: mathematical structures used to model pairwise relations between objects from a certain collection.

• A "graph" in this context refers to a collection of vertices or 'nodes' and a collection of edges that connect pairs of vertices. A graph may be undirected, meaning that there is no distinction between the two vertices associated with each edge, or its edges may be directed from one vertex to another.

Page 73: Riccardo Govoni - Search

Graph Theory

Page 74: Riccardo Govoni - Search

Graph Theory e Clustering

• Entrambe le teorie si basano sul concetto di metrica. Perche’ non sfruttarlo?

• Esempio: identificare gruppi all’interno di un network sociale.

Page 75: Riccardo Govoni - Search

Esempio: processing battlehorse.net

Page 76: Riccardo Govoni - Search

Machine learning

• Riguarda il disegno e lo sviluppo di algoritmi che permettono ad un computer di migliorare le proprie capacita’ nel tempo, sulla base dei dati a disposizione.

• Include numerose discipline usate quotidianamente per gestire l’enorme mole di dati disponibile sul web.

Page 77: Riccardo Govoni - Search

Case study: Enron

• Enron ando’ in bancarotta il 2 Dicembre 2001, a seguito di scandali e illegalita’ finanziarie.

• Per effetto delle indagini, un corpus di 200.000(*) email riguardanti 150 persone e’ diventato di dominio pubblico: il dataset Enron.

Page 78: Riccardo Govoni - Search

L’analisi quantitativa

• Utilizziamo i legami mittente-destinatario per creare grafi di relazioni, da cui estrarre informazioni sociali in base ai volumi di scambio: chi parla con chi? chi agisce da accentratore?

Page 79: Riccardo Govoni - Search
Page 80: Riccardo Govoni - Search
Page 81: Riccardo Govoni - Search

Enron: riferimenti

• http://www.cs.cmu.edu/~enron/

• http://jheer.org/enron/

• http://www.cs.umass.edu/~ronb/enron_dataset.html

Page 82: Riccardo Govoni - Search

BayesForUn caso di studio suWeb crawling e Media monitoring

www.bayesfor.eu

Page 83: Riccardo Govoni - Search

BayesFor.eu

• Un’associazione che si propone di promuovere e realizzare ricerche, studi o sperimentazioni in materia di analisi dei dati e utilizzo di tecniche statistiche

• Ha l’obiettivo di fare spidering di fonti sul web con lo scopo di estrarre informazioni, come ad esempio:

• Correlazione tra concetti semantici nel tempo

• Associazioni tra concetti semantici e publisher

• Media bias e relazioni tra informazioni e notizie

• Interrelazione tra news, media e mercati finanziari

Page 84: Riccardo Govoni - Search

Come funziona?

• Lista di fonti (siti di quotidiani italiani ed esteri, agenzie di stampa, feed rss, etc...)

• Lista di topics di interesse, incrementata dinamicamente in base alla popolarita’

• Un motore di crawling web

• Un archivio dati con memoria storica dei contenuti analizzati fino ad oggi

• Strumenti di analisi statistica e numerica

Page 85: Riccardo Govoni - Search

Volumi• ca. 200 fonti : portali, news websites, feeds

• 40000 termini lessicali tracciati giornalmente

• 20M di termini identificati negli ultimi 5 mesi

• ~ 50Mb di dati giornalieri : come 60 libri di 300 pagine l’uno

• ~ 25Gb di dati accumulati da fine 2007, come una biblioteca di 40.000 volumi

Page 86: Riccardo Govoni - Search

Il processo di estrazione

CrawlingEstrazione automatica dei contenuti delle pagine web di interesse.

Archival Archiviazione storica per giorno e per fonte

CleaningRimozione della formattazione indesiderata. Pulizia del codice HTML e della punteggiatura.

Filtering Separazione delle stop-word per ogni lingua analizzata

Stemming Identificazione delle radici lessicali e raggruppamento

WeightingPesatura dei termini in base a posizione e prominenza all’interno delle pagine web

Indexing Analysis Indicizzazione, ricerca e analisi statistica

Page 87: Riccardo Govoni - Search
Page 88: Riccardo Govoni - Search

Graph theory & News events

Page 89: Riccardo Govoni - Search

Candidato True Value Predicted

Veltroni 75.81% 68.95%

Bindi 12.88% 15.47%

Letta 11.07% 15.47%

Case: Primarie PDTrue Value Predicted

Bonazzi A., Brunori P., Govoni R., Lampronti G.I., and Zandi M. Italy 2008 Polls, Web Visibility and Election Results, EDem2008 E-Democracy Conference proceedings, Danube University Krems

Page 90: Riccardo Govoni - Search

Zandi, Grippa, Bazarnick, Brunori, Frongia, Govoni, Bonazzi, Poster: Media Behavior During 2008 Electoral Campaign: a Web Content Analyis, SUNBELT Annual Conference, San Diego USA

Page 91: Riccardo Govoni - Search

Case: 2008 US Presidential Campaign

Page 92: Riccardo Govoni - Search

WebDatasetsDove stanno i dati sul web?Quali datasets sono disponibili?

Oracle headquarters, California

Page 93: Riccardo Govoni - Search

Datasets?

• Wikipedia Dump: http://download.wikimedia.org/

• il caso Enron: http://www.cs.cmu.edu/~enron/

• Grouplens: http://www.grouplens.org/taxonomy/term/14

• swivel.com , many-eyes.com

• http://www.gapminder.org/

• http://www.ted.com/index.php/talks/hans_rosling_shows_the_best_stats_you_ve_ever_seen.html

Page 94: Riccardo Govoni - Search

Data VisualizationUn’immagine vale piu’ di mille parole

J. Minard map of Napoleon’s Russia campaign. ca 1861.

Page 95: Riccardo Govoni - Search

Data Visualization

• Processing:

• http://www.processing.org

• http://www.openprocessing.org

• Google Visualization APIs

• http://code.google.com/apis/visualization/

Page 96: Riccardo Govoni - Search

Thanks