2. Brief (non-technical) history
īŽ
Early keyword-based engines
īŽ
īŽ
Altavista, Excite, Infoseek, Inktomi, ca. 1995-1997
Sponsored search ranking: Goto.com (morphed
into Overture.com â Yahoo!)
īŽ
īŽ
Your search ranking depended on how much you
paid
Auction for keywords: casino was expensive!
3. Brief (non-technical) history
īŽ
1998+: Link-based ranking pioneered by Google
īŽ
īŽ
īŽ
īŽ
Blew away all early engines save Inktomi
Great user experience in search of a business
model
Meanwhile Goto/Overtureâs annual revenues were
nearing $1 billion
Result: Google added paid-placement âadsâ to
the side, independent of search results
īŽ
Yahoo followed suit, acquiring Overture (for paid
placement) and Inktomi (for search)
5. Web search basics
Sponsored Links
CG Appliance Express
Discount Appliances (650) 756-3931
Same Day Certified Installation
www.cgappliance.com
San Francisco-Oakland-San Jose,
CA
User
Miele Vacuum Cleaners
Miele Vacuums- Complete Selection
Free Shipping!
www.vacuums.com
Miele Vacuum Cleaners
Miele-Free Air shipping!
All models. Helpful advice.
www.best-vacuum.com
Web
Results 1 - 10 of about 7,310,000 for miele. (0.12 seconds)
Miele, Inc -- Anything else is a compromise
Web spider
At the heart of your home, Appliances by Miele. ... USA. to miele.com. Residential Appliances.
Vacuum Cleaners. Dishwashers. Cooking Appliances. Steam Oven. Coffee System ...
www.miele.com/ - 20k - Cached - Similar pages
Miele
Welcome to Miele, the home of the very best appliances and kitchens in the world.
www.miele.co.uk/ - 3k - Cached - Similar pages
Miele - Deutscher Hersteller von Einbaugeräten, Hausgeräten ... - [ Translate this
page ]
Das Portal zum Thema Essen & Geniessen online unter www.zu-tisch.de. Miele weltweit
...ein Leben lang. ... Wählen Sie die Miele Vertretung Ihres Landes.
www.miele.de/ - 10k - Cached - Similar pages
Herzlich willkommen bei Miele Ãsterreich - [ Translate this page ]
Herzlich willkommen bei Miele Ãsterreich Wenn Sie nicht automatisch
weitergeleitet werden, klicken Sie bitte hier! HAUSHALTSGERÃTE ...
www.miele.at/ - 3k - Cached - Similar pages
Search
Indexer
The Web
Indexes
Ad indexes
6. User Needs
īŽ
Need [Brod02, RL04]
īŽ
īŽ
īŽ
Informational â want to learn about something (~40% / 65%)
Low hemoglobin
Navigational â want to go to that page (~25% / 15%)
United Airlines
Transactional â want to do something (web-mediated) (~35% / 20%)
īŽ Access a service
Seattle weather
Mars surface images
īŽ Downloads
īŽ
īŽ
Shop
Canon S410
Gray areas
īŽ
īŽ
Car rental Brasil
Find a good hub
Exploratory search âsee whatâs thereâ
7. How far do people look for results?
(Source: iprospect.com WhitePaper_2006_SearchEngineUserBehavior.pdf)
8. Usersâ empirical evaluation of results
īŽ
Quality of pages varies widely
īŽ
īŽ
Relevance is not enough
Other desirable qualities (non IR!!)
īŽ
īŽ
īŽ
īŽ
Precision vs. recall
īŽ
īŽ
On the web, recall seldom matters
What matters
īŽ
īŽ
Precision at 1? Precision above the fold?
Comprehensiveness â must be able to deal with obscure
queries
īŽ
īŽ
Content: Trustworthy, diverse, non-duplicated, well maintained
Web readability: display correctly & fast
No annoyances: pop-ups, etc
Recall matters when the number of matches is very small
User perceptions may be unscientific, but are
significant over a large aggregate
9. Usersâ empirical evaluation of engines
īŽ
īŽ
īŽ
īŽ
īŽ
Relevance and validity of results
UI â Simple, no clutter, error tolerant
Trust â Results are objective
Coverage of topics for polysemic queries
Pre/Post process tools provided
īŽ
īŽ
īŽ
īŽ
Mitigate user errors (auto spell check, search assist,âĻ)
Explicit: Search within results, more like this, refine ...
Anticipative: related searches
Deal with idiosyncrasies
īŽ
Web specific vocabulary
īŽ
īŽ
īŽ
Impact on stemming, spell-check, etc
Web addresses typed in the search box
âĻ
10. The Web document collection
īŽ
īŽ
īŽ
īŽ
īŽ
īŽ
The Web
īŽ
No design/co-ordination
Distributed content creation, linking,
democratization of publishing
Content includes truth, lies, obsolete
information, contradictions âĻ
Unstructured (text, html, âĻ), semistructured (XML, annotated photos),
structured (Databases)âĻ
Scale much larger than previous text
collections âĻ but corporate records
are catching up
Growth â slowed down from initial
âvolume doubling every few monthsâ
but still expanding
Content can be dynamically
generated
12. The trouble with sponsored search âĻ
īŽ
īŽ
It costs money. Whatâs the alternative?
Search Engine Optimization:
īŽ
īŽ
īŽ
īŽ
īŽ
âTuningâ your web page to rank highly in the
algorithmic search results for select keywords
Alternative to paying for placement
Thus, intrinsically a marketing function
Performed by companies, webmasters and
consultants (âSearch engine optimizersâ) for
their clients
Some perfectly legitimate, some very shady
13. Simplest forms
īŽ
First generation engines relied heavily on tf/idf
īŽ
īŽ
The top-ranked pages for the query maui resort were the
ones containing the most mauiâs and resortâs
SEOs responded with dense repetitions of chosen
terms
īŽ
īŽ
e.g., maui resort maui resort maui resort
Often, the repetitions would be in the same color as the
background of the web page
īŽ
īŽ
Repeated terms got indexed by crawlers
But not visible to humans on browsers
Pure word density cannot
be trusted as an IR signal
14. Variants of keyword stuffing
īŽ
īŽ
Misleading meta-tags, excessive repetition
Hidden text with colors, style sheet tricks,
etc.
Meta-Tags =
ââĻ London hotels, hotel, holiday inn, hilton, discount,
booking, reservation, sex, mp3, britney spears, viagra, âĻâ
15. Search engine optimization (Spam)
īŽ
Motives
īŽ
īŽ
īŽ
Operators
īŽ
īŽ
īŽ
īŽ
Commercial, political, religious, lobbies
Promotion funded by advertising budget
Contractors (Search Engine Optimizers) for lobbies, companies
Web masters
Hosting services
Forums
īŽ
E.g., Web master world ( www.webmasterworld.com )
īŽ
īŽ
Search engine specific tricks
Discussions about academic papers ī
17. Features identifying synthetic
content
īŽ
Average word length
īŽ
īŽ
Word frequency distribution
īŽ
īŽ
Certain words (âtheâ, âaâ, âĻ) appear more often
than others
N-gram frequency distribution
īŽ
īŽ
The mean word length for English prose is about 5
characters; but longer for some forms of keyword
stuffing
Some words are more likely to occur next to each
other than others
Grammatical well-formedness
īŽ
Natural-language parsing is expensive
18. Really good synthetic content
âNigritude Ultramarineâ:
An SEO competition
Links to keep
crawlers going
Grammatically
well-formed but
meaningless
sentences
19. Content ârepurposingâ
īŽ
Content repurposing: The practice of
incorporating all or portions of other (unaffiliated)
web pages
īŽ
īŽ
īŽ
A âconvenientâ way to machine generate pages
that contain human-authored content
Not even necessarily illegal âĻ
Two flavors:
īŽ
īŽ
Incorporate large portions of a single page
Incorporate snippets of multiple pages
22. Techniques for detecting content
repurposing
īŽ
Single-page flavor: Cluster pages into
equivalence classes of very similar pages
īŽ
īŽ
īŽ
If most pages on a site a very similar to pages on
other sites, raise a red flag
(There are legitimate replicated sites; e.g. mirrors
of Linux man pages)
Many-snippets flavor: Test if page consists
mostly of phrases that also occur somewhere
else
īŽ
īŽ
Computationally hard problem
Probabilistic technique that makes it tractable
(Fetterly et al SIGIR 2005 paper)
23. Cloaking
īŽ
īŽ
Serve fake content to search engine spider
DNS cloaking: Switch IP address. Impersonate
Y
SPAM
Is this a Search
Engine spider?
Cloaking
N
Real
Doc
24. More spam techniques
īŽ
Doorway pages
īŽ
īŽ
Link spamming
īŽ
īŽ
īŽ
īŽ
Pages optimized for a single keyword that re-direct to the real
target page
links between pages that are present for reasons other than
merit
Mutual admiration societies, hidden links, awards â more on
these later
Domain flooding: numerous domains that point or re-direct to a
target page
Robots
īŽ
Fake query stream â rank checking programs
īŽ
īŽ
âCurve-fitâ ranking programs of search engines
Millions of submissions via Add-Url
25. The war against spam
īŽ
Quality signals - Prefer
authoritative pages based
on:
īŽ
Votes from authors (linkage
signals)
Votes from users (usage
signals)
īŽ
īŽ
īŽ
īŽ
īŽ
īŽ
īŽ
Anti robot test , i.e. not
submitted by a robot
Limits on meta-keywords
Robust link analysis
īŽ
īŽ
Ignore statistically implausible
linkage (or text)
Use link analysis to detect
spammers (guilt by association)
īŽ
īŽ
Training set based on
known spam
Family friendly filters
īŽ
Policing of URL
submissions
īŽ
Spam recognition by
machine learning
Linguistic analysis, general
classification techniques,
etc.
For images: flesh tone
detectors, source text
analysis, etc.
Editorial intervention
īŽ
īŽ
īŽ
īŽ
Blacklists
Top queries audited
Complaints addressed
Suspect pattern detection
26. More on spam
īŽ
Web search engines have policies on SEO
practices they tolerate/block
īŽ
īŽ
īŽ
īŽ
http://help.yahoo.com/help/us/ysearch/index.html
http://www.google.com/intl/en/webmasters/
Adversarial IR: the unending (technical) battle
between SEOâs and web search engines
Research http://airweb.cse.lehigh.edu/
28. What is the size of the web ?
īŽ
Issues
īŽ
The web is really infinite
īŽ
īŽ
īŽ
īŽ
īŽ
Dynamic content, e.g., calendar
Soft 404: www.yahoo.com/<anything> is a valid page
Static web contains syntactic duplication, mostly
due to mirroring (~30%)
Some servers are seldom connected
Who cares?
īŽ
īŽ
īŽ
Media, and consequently the user
Engine design
Engine crawl policy. Impact on recall.
29. What can we attempt to measure?
The relative sizes of search engines
īŽ
īŽ
īŽ
The notion of a page being indexed is still reasonably
well defined.
Already there are problems
īŽ
īŽ
Document extension: e.g. engines index pages not yet
crawled, by indexing anchortext.
Document restriction: All engines restrict what is indexed
(first n words, only relevant words, etc.)
The coverage of a search engine relative to
another particular crawling process.
īŽ
31. Zipfâs Law on the Web
īŽ
Number of in-links/out-links to/from a page has a
Zipfian distribution.
īŽ
īŽ
Length of web pages has a Zipfian distribution.
īŽ
īŽ
A large number of docs have the same number of
in-links/out-links to/from a page
Certain page lengths are most common; i.e. a
huge number of docs with the same page length.
Number of hits to a web page has a Zipfian
distribution.
īŽ
A large number of pages will generate the same
number of hits; dramatic drop-off in number of
pages as the above frequency reduces
32. New definition?
īŽ
(IQ is whatever the IQ tests measure.)
īŽ
īŽ
Different engines have different preferences
īŽ
īŽ
The statically indexable web is whatever
search engines index.
max url depth, max count/host, anti-spam rules,
priority rules, etc.
Different engines index different things under the
same URL:
īŽ
frames, meta-keywords, document restrictions,
document extensions, ...
33. Relative Size from Overlap
Given two engines A and B
Sample URLs randomly from A
Check if contained in B and vice versa
A⊠B
A⊠B =
A⊠B =
(1/2) * Size A
(1/6) * Size B
(1/2)*Size A = (1/6)*Size B
â´
Size A / Size B =
(1/6)/(1/2) = 1/3
Each test involves: (i) Sampling (ii) Checking
34. Sampling URLs
īŽ
Ideal strategy: Generate a random URL and
check for containment in each index.
īŽ
Problem: Random URLs are hard to find!
Enough to generate a random URL contained in
a given Engine.
Approach 1: Generate a random URL contained
in a given engine
īŽ
īŽ
īŽ
īŽ
Pick a random query from search log; pick random page
returned as search result
Suffices for the estimation of relative size
Approach 2: Random walks / IP addresses
īŽ
In theory: might give us a true estimate of the size of the
web (as opposed to just relative sizes of indexes)
36. Random URLs from random queries
īŽ
Generate random query: how?
īŽ
īŽ
Not an English
Lexicon: 400,000+ words from a web crawl dictionary
Conjunctive Queries: w1 and w2
e.g., vocalists AND rsi
īŽ
īŽ
īŽ
īŽ
Get 100 result URLs from engine A
Choose a random URL as the candidate to check for
presence in engine B (how do you do this?)
This distribution induces a probability weight W(p) for each
page.
Conjecture: W(SEA) / W(SEB) ~ |SEA| / |SEB|
37. Query Based Checking
īŽ
Strong Query to check whether an engine B has a
document D (corresponding to random URL):
īŽ
īŽ
īŽ
īŽ
Download D. Get list of words.
Use 8 low frequency words as AND query to B
Check if D is present in result set.
Problems:
īŽ
īŽ
īŽ
īŽ
īŽ
Near duplicates (not D, but something identical to D)
Frames
Redirects
Engine time-outs
Is 8-word query good enough?
38. Advantages & disadvantages
īŽ
īŽ
Statistically sound under the induced weight.
Biases induced by random query
īŽ
Query Bias: Favors content-rich pages in the language(s) of the
lexicon
īŽ
īŽ
īŽ
Ranking Bias: Solution: Use conjunctive queries & fetch all
Checking Bias: Duplicates, impoverished pages omitted
Document or query restriction bias: engine might not deal
properly with 8 words conjunctive query
īŽ
īŽ
Malicious Bias: Sabotage by engine
Operational Problems: Time-outs, failures, engine
inconsistencies, index modification.
39. Alt 1: Random searches
īŽ
īŽ
These are real queries based on real users,
rather than ârandom queriesâ
Choose random searches extracted from a
local log [Lawrence & Giles 97] or build
ârandom searchesâ [Notess]
īŽ
īŽ
īŽ
Use only queries with small results sets.
Count normalized URLs in result sets.
Use ratio statistics
40. Advantages & disadvantages
īŽ
Advantage
īŽ
īŽ
Might be a better reflection of the human
perception of coverage
Issues
īŽ
īŽ
īŽ
Samples are correlated with source of log
Duplicates
Technical statistical problems (must have nonzero results, ratio average not statistically sound)
41. Random searches
īŽ
īŽ
īŽ
575 & 1050 queries from the NEC RI employee logs
6 Engines in 1998, 11 in 1999
Implementation:
īŽ Restricted to queries with < 600 results in total
īŽ Counted URLs from each engine after verifying query
match
īŽ Computed size ratio & overlap for individual queries
īŽ Estimated index size ratio & overlap by averaging
over all queries
42. Queries from Lawrence and Giles study
īŽ
īŽ
īŽ
īŽ
īŽ
īŽ
īŽ
īŽ
īŽ
īŽ
adaptive access control
neighborhood preservation
topographic
hamiltonian structures
right linear grammar
pulse width modulation
neural
unbalanced prior
probabilities
ranked assignment method
internet explorer favourites
importing
karvel thornber
zili liu
īŽ
īŽ
īŽ
īŽ
īŽ
īŽ
īŽ
īŽ
īŽ
īŽ
softmax activation function
bose multidimensional
system theory
gamma mlp
dvi2pdf
john oliensis
rieke spikes exploring neural
video watermarking
counterpropagation network
fat shattering dimension
abelson amorphous
computing
43. Alt 2: Random IP addresses
īŽ
īŽ
Generate random IP addresses
Find a web server at the given address
īŽ
īŽ
If thereâs one
Collect all pages from server
īŽ
From this, choose a page at random
44. Random IP addresses
īŽ
HTTP requests to random IP addresses
īŽ
īŽ
īŽ
Ignored: empty or authorization required or excluded
[Lawr99] Estimated 2.8 million IP addresses running
crawlable web servers (16 million total) from
observing 2500 servers.
OCLC using IP sampling found 8.7 M hosts in 2001
īŽ
īŽ
Netcraft [Netc02] accessed 37.2 million hosts in July 2002
[Lawr99] exhaustively crawled 2500 servers
and extrapolated
īŽ
īŽ
Estimated size of the web to be 800 million
Estimated use of metadata descriptors:
īŽ
Meta tags (keywords, description) in 34% of home pages,
Dublin core metadata in 0.3%
45. Advantages & disadvantages
īŽ
Advantages
īŽ
īŽ
īŽ
Clean statistics
Independent of crawling strategies
Disadvantages
īŽ
īŽ
īŽ
Doesnât deal with duplication
Many hosts might share one IP, or not accept requests
No guarantee all pages are linked to root page.
īŽ
īŽ
Power law for # pages/hosts generates bias towards
sites with few pages.
īŽ
īŽ
Eg: employee pages
But bias can be accurately quantified IF underlying distribution
understood
Potentially influenced by spamming (multiple IPâs for
same server to avoid IP block)
46. Alt 3: Random walks
īŽ
īŽ
View the Web as a directed graph
Build a random walk on this graph
īŽ
Includes various âjumpâ rules back to visited sites
īŽ
īŽ
īŽ
Converges to a stationary distribution
īŽ
īŽ
īŽ
īŽ
īŽ
Does not get stuck in spider traps!
Can follow all links!
Must assume graph is finite and independent of the walk.
Conditions are not satisfied (cookie crumbs, flooding)
Time to convergence not really known
Sample from stationary distribution of walk
Use the âstrong queryâ method to check coverage by SE
47. Advantages & disadvantages
īŽ
Advantages
īŽ
īŽ
īŽ
âStatistically cleanâ method at least in theory!
Could work even for infinite web (assuming
convergence) under certain metrics.
Disadvantages
īŽ
īŽ
īŽ
List of seeds is a problem.
Practical approximation might not be valid.
Non-uniform distribution
īŽ
Subject to link spamming
50. Duplicate documents
īŽ
īŽ
The web is full of duplicated content
Strict duplicate detection = exact match
īŽ
īŽ
Not as common
But many, many cases of near duplicates
īŽ
E.g., Last modified date the only difference
between two copies of a page
51. Duplicate/Near-Duplicate Detection
īŽ
īŽ
Duplication: Exact match can be detected with
fingerprints (64-bit), if fingerprints match, check
further
Near-Duplication: Approximate match
īŽ
Overview
īŽ
īŽ
Compute syntactic similarity with an edit-distance
measure
Use similarity threshold to detect near-duplicates
īŽ
īŽ
E.g., Similarity > 80% => Documents are ânear duplicatesâ
Not transitive though sometimes used transitively
52. Computing Similarity
īŽ
īŽ
Features:
īŽ Segments of a document (natural or artificial breakpoints)
īŽ Shingles (Word N-Grams)
īŽ a rose is a rose is a rose â
a_rose_is_a
rose_is_a_rose
is_a_rose_is
a_rose_is_a
Similarity Measure between two docs (= sets of shingles)
īŽ Set intersection
īŽ Specifically (Size_of_Intersection / Size_of_Union)
53. Shingles + Set Intersection
Computing exact set intersection of shingles
between all pairs of documents is
expensive/intractable
īŽ
īŽ
Approximate using a cleverly chosen subset of
shingles from each (a sketch)
Estimate (size_of_intersection / size_of_union)
based on a short sketch
īŽ
Doc
Doc
A
A
Shingle set A
Doc
Doc
B
B
Shingle set A
Sketch A
Jaccard
Sketch A
54. Sketch of a document
īŽ
Create a âsketch vectorâ (of size ~200) for
each document
īŽ
īŽ
Documents that share âĨ t (say 80%)
corresponding vector elements are near
duplicates
For doc D, sketchD[ i ] is as follows:
īŽ
īŽ
īŽ
Let f map all shingles in the universe to 0..2m
(e.g., f = fingerprinting)
Let Īi be a random permutation on 0..2m
Pick MIN {Īi(f(s))} over all shingles s in D
55. Computing Sketch[i] for Doc1
Document 1
264
Start with 64-bit f(shingles)
264
Permute on the number line
2
64
264
with
Īi
Pick the min value
56. Test if Doc1.Sketch[i] = Doc2.Sketch[i]
Document 2
Document 1
264
264
264
264
A
264
264
2
64
B
Are these equal?
Test for 200 random permutations: Ī1, Ī2,âĻ Ī200
264
58. Set Similarity of sets Ci , Cj
Jaccard(Ci , C j ) =
īŽ
īŽ
Ci ī C j
Ci ī C j
View sets as columns of a matrix A; one row for each
element in the universe. aij = 1 indicates presence of
item i in set j
C1 C2
Example
0
1
1
0
1
1
0
1
0
1
Jaccard(C 1 ,C 2 ) = 2/5 = 0.4
59. Key Observation
īŽ
For columns Ci, Cj, four types of rows
Ci
A
B
C
D
īŽ
īŽ
1
1
0
0
Cj
1
0
1
0
Overload notation: A = # of rows of type A
Claim
A
Jaccard(Ci , C j ) =
A+B+C
60. âMinâ Hashing
īŽ
īŽ
Randomly permute rows
Hash h(Ci) = index of first row with 1 in column Ci
īŽ
Surprising Property
īŽ
Why?
P [ h(Ci ) = h(C j ) ] = Jaccard ( Ci , C j )
īŽ
īŽ
īŽ
Both are A/(A+B+C)
Min: Look down columns Ci, Cj until first non-Type-D row
h(Ci) = h(Cj) īī type A row
īŽ
Because we chose a random permutation, prob of this occurring is
A/(A+B+C)
61. Min-Hash sketches
īŽ
īŽ
Pick P random row permutations
MinHash sketch
SketchD = list of P (usually, 200) indexes (i.e.
integers) of first rows with 1 in column C
īŽ
Similarity of signatures
īŽ
īŽ
Let sim[sketch(Ci),sketch(Cj)] = fraction of
permutations where MinHash values agree
Observe E[sim(sig(Ci),sig(Cj))] = Jaccard(Ci,Cj)
63. Implementation Trick
īŽ
īŽ
Permuting universe even once is prohibitive
Row Hashing
īŽ
īŽ
īŽ
Pick P hash functions hk: {1,âĻ,n}ī {1,âĻ,O(n)}
Ordering under hk gives random permutation of
rows
One-pass Implementation
īŽ
For each Ci and hk, keep âslotâ for min-hash value
īŽ
Initialize all slot(Ci,hk) to infinity
īŽ
Scan rows in arbitrary order looking for 1âs
īŽ
Suppose row Rj has 1 in column Ci
īŽ
For each hk,
65. Comparing Signatures
īŽ
īŽ
Signature Matrix S
īŽ Rows = Hash Functions
īŽ Columns = Columns
īŽ Entries = Signatures
Can compute â Pair-wise similarity of
any pair of signature columns
66. All signature pairs
īŽ
īŽ
Now we have an extremely efficient method for
estimating a Jaccard coefficient for a single pair
of documents.
But we still have to estimate N2 coefficients where
N is the number of web pages.
īŽ
īŽ
īŽ
Still slow
One solution: locality sensitive hashing (LSH)
Another solution: sorting (Henzinger 2006)
Wikipedia has a good description of the Nigritude Ultramarine contest, which ran from 5/7/2004 to 7/7/2004 and drew 200 contestants.
Unfortunately, I canât show you just how the first replicating site monetizes on the Paris Hilton sentences, but you might be able to figure it out yourselves. The second site is even more amazing: Not only does it try to sell vacations to Paris by invoking Paris Hiltonâs name, but it also manages to put Miss Hilton and Condoleezza Rice into the same sentence!
Union = 7-2 = 5. The number of unique set items in both sets