# 7 Distances

```7 Distances
We have mainly been focusing on similarities so far, since it is easiest to explain locality sensitive hashing
that way, and in particular the Jaccard similarity is easy to define in regards to the k-shingles of text documents. In this lecture we will define a metric and then enumerate several important distances and their
properties.
In general, choosing which distance to use is an important, but often ignored modeling problem. The L2
distance is often a default. This is likely because in many situations (but not all) it is very easy to use, and
has some nice properties. Yet in many situations the L1 distance is more robust and makes more sense.
7.1
Metrics
So what makes a good distance? There are two aspects to the answer to this question. The first is that it
captures the “right” properties of the data, but this is a sometimes ambiguous modeling problem. The second
is more well-defined; it is the properties which makes a distance a metric.
A distance d : X × X → R+ is a bivariate operator (it takes in two arguments, say a ∈ X and b ∈ X) that
maps to R+ = [0, ∞). It is a metric if
(M1)
(M2)
(M3)
(M4)
d(a, b) ≥ 0
d(a, b) = 0 if and only if a = b
d(a, b) = d(b, a)
d(a, b) ≤ d(a, c) + d(c, b)
(non-negativity)
(identity)
(symmetry)
(triangle inequality)
A distance that satisfies (M1), (M3), and (M4) (but not necessarily (M2)) is called a pseudometric.
A distance that satisfies (M1), (M2), and (M4) (but not necessarily (M3)) is called a quasimetric.
7.2
Distances
We now enumerate a series of common distances.
7.2.1 Lp Distances
Consider two vectors a = (a1 , a2 , . . . , ad ) and b = (b1 , b2 , . . . , bd ) in Rd . Now an Lp distances is defined
as
!1/p
d
X
dp (a, b) = ka − bkp =
(|ai − bi |)p
.
i=1
1. The most common is the L2 distance
v
u d
uX
d2 (a, b) = ka − bk = ka − bk2 = t (ai − bi )2 .
i=1
It easy interpreted as the Euclidean or “straight-line” distance between two points or vectors, since if
you draw a line between two points, its length measures the Euclidean distance.
It is also the only Lp distance that is invariant to the rotation of the coordinate system (which will be
often be useful, but sometimes restrictive).
1
L1
L2
L1
Figure 7.1: Unit balls in R2 for the L1 , L2 , and L∞ distance.
2. Another common distance is the L1 distance
d1 (a, b) = ka − bk1 =
X
|ai − bi |.
i=1
This is also known as the “Manhattan” distance since it is the sum of lengths on each coordinate axis;
the distance you would need to walk in a city like Manhattan since must stay on the streets and can’t
cut through buildings. (Or in this class the “SLC distance.”)
1
It is also amenable to LSH through 1-stable distributions (using Cauchy distribution π1 1+x
2 in place
of the Gaussian distribution).
3. A common modeling goal is the L0 distance
d0 (a, b) = ka − bk0 = d −
d
X
1(a = b),
i=1
(
1 if a = b
where 1(a = b) =
Unfortunately, d0 is not convex.
0 if a 6= b.
When each coordinate ai is either 0 or 1, then this is known as the Hamming distance.
There is no associated p-stable distribution, but can be approximated by a 0.001-stable distribution
(but this is quite inefficient).
4. Finally, another useful variation is the L∞ distance
d
d∞ (a, b) = ka − bk∞ = max |ai − bi |.
i=1
It is the maximum deviation along any one coordinate. Geometrically, it is a rotation of the L1
distance, so many algorithms designed for L1 can be adapted to L∞ .
All of these distances are metrics, and in general for Lp for p ∈ [1, ∞). (M1) and (M2) hold since the
distances are basically a sum of non-negative terms, and are only all 0 if all coordinates are identical. (M3)
holds since |ai − bi | = |bi − ai |. (M4) is a bit trickier to show, but follows by drawing a picture ^.
¨
Figure 7.2.1 illustrates the unit balls for L1 , L2 , and L∞ . Note that the smaller the p value, the smaller
the unit ball, and all touch the points a distance 1 from the origin along each axis. The L0 ball is inside the
L1 ball, and in particular, for any p < 1, the Lp ball is not convex.
CS 6140 Data Mining;
Spring 2015
Instructor: Jeff M. Phillips, University of Utah
Warning about Lp distance. These should not be used when the units on each coordinate are not the
same. For instance, consider representing two people p1 and p2 as points in R3 where the x-coordinate
represents height in inches, the y-coordinate represents weight in pounds, and the z-coordinate represents
income in dollars per year. Then most likely this distance is dominated by the z-coordinate income which
might vary on the order of 10,000 while the others vary on the order of 10.
Also, for the same data we could change the units, so the x-coordinate represents height in meters, the ycoordinate represents weight in centigrams, and the z-coordinate represents income in dollars per hour. The
information may be exactly the same, only the unit changed. Its now likely dominated by the y-coordinate
representing weight.
These sorts of issues can hold for distance other than Lp as well. A safe way is to avoid these issues
is to use the L0 metric – however this one can be crude and insensitive to small variations in data. Some
heuristics to overcome this is: set hand-tuned scaling of each coordinate, ”normalize” the distance so they
all have the same min and max value (e.g., all in the range [0, 1]), or ”normalize” the distance so they all have
the same mean and variance. All of these are hacks and may have unintended consequences. For instance
the [0, 1] normalization is at the mercy of outliers, and mean-variance normalization can have strange effects
in multi-modal distributions. These are not solutions, they are hacks!
With some additional information about which points are “close” or “far” one may be able to use the field
of distance metric learning to address some of these problems. But without this information, there is no
one right answer. If you axes are the numbers of apples (x-axis) and number of oranges (y-axis), then its
literally comparing apples to oranges.
7.2.2
Jaccard Distance
The Jaccard distance between two sets A and B is defined
dJ (A, B) = 1 − JS(A, B) = 1 −
|A ∩ B|
.
|A ∪ B|
We can see it is a metric. (M1) holds since the intersection size cannot exceed the union size. (M2) holds
since A ∩ A = A ∪ A = A, and if A 6= B, then A ∩ B ⊂ A ∪ B. (M3) since ∩ and ∪ operations are
symmetric. (M4) requires a bit more effort to show dJ (A, C) + dJ (C, B) ≥ dJ (A, B).
Proof. We will use the notion that
dJ (A, B) = 1 − JS(A, B) = 1 −
|A ∩ B|
|A4B|
=
.
|A ∪ B|
|A ∪ B|
Next we assume that C ⊆ A and C ⊆ B since any elements in C but not in A or B will only increase the
left-hand-side, but not the right-hand-side. If C = A = B then 0 + 0 ≥ 0, otherwise we have
|A \ C| |B \ C|
+
|A|
|B|
|A \ C| + |B \ C|
≥
|A ∪ B|
|A4B|
≥
= dJ (A, B).
|A ∪ B|
dJ (A, C) + dJ (C, B) =
The first inequality follows since |A|, |B| ≤ |A ∪ B|. The second inequality holds since anything taken
out from A or B would be in A ∪ B and thus would not affect A4B; it is only equal if C = A ∪ B, and
A4B = ∅.
CS 6140 Data Mining;
Spring 2015
Instructor: Jeff M. Phillips, University of Utah
7.2.3
Cosine Distance
This measures the cosine of the “angle” between vectors a = (a1 , a2 , . . . , ad ) and b = (b1 , b2 , . . . , bd ) in Rd
Pd
ai bi
ha, bi
= 1 − i=1
.
dcos (a, b) = 1 −
kakkbk
kakkbk
Note that d(A, B) ∈ [0, π] and it does not depend on the magnitude kak of the vectors since this is normalized out. It only cares about their directions. This is useful when a vector of objects represent data
sets of different sizes and we want to compare how similar are those distributions, but not their size. This
makes it a psuedometric since for two vectors a and a0 = (2a1 , 2a2 , . . . , 2ad ) where ka0 k = 2kak have
dcos (a, a0 ) = 0, but they are not equal.
(M1) and (M3) holds by definition. (M4) can be seen by considering the mapping of any vector a ∈ Rd
to the (d − 1)-dimensional sphere Sd−1 as a/kak. Then the cos distance describes the shortest geodesic
distance on this sphere (or the shortest rotation from one to the other).
We can also develop an LSH function h for dcos as follows. Choose a random vector v ∈ Rd . Then let
(
+1 if hv, ai > 0
hv (a) =
.
−1 otherwise
Is sufficient to make v ∈ {−1, +1}d . The analysis is similar to for JS but in [0, π] instead of [0, 1]. It is
(γ, φ, (π − γ)/π, φ/π)-sensitive, for any γ < φ ∈ [0, π].
7.2.4
KL Divergence
The Kullback-Liebler Divergence (or KL Divergence) is a distance that is not a metric. Somewhat similar to
the Cosine distance, it considers as input discrete
distributions P and Q. The variable P = (p1 , p2 , . . . , pd )
P
is a set of non-negative values pi such that di=1 pi = 1. That is, it describes a probability distribution over
d possible values.
Then we can define (often written dKL (P kQ))
dKL (P, Q) =
d
X
pi ln(pi /qi ).
i=1
It is reminiscent of entropy, and can be written as H(P, Q) − H(P ) where H(P ) is the entropy of P , and
H(P, Q) is the cross entropy. It roughly describes the extra bits needed to express a distribution P , given
the knowledge of distribution Q.
Note that dKL is not symmetric, violating (M3). It also violates the triangle inequality (M4).
7.2.5
Edit Distance
The edit distance considers two strings a, b ∈ Σd , and
ded (a, b) = # operations to make a = b,
where an operation can delete a letter or insert a letter. Often Σ is the alphabet = {a, b, . . . , z}.
Lets see an example with a = mines and b = smiles. Here ded (a, b) = 3.
mines
1 : smines insert s
2 : smies delete n
3 : smiles insert l
CS 6140 Data Mining;
Spring 2015
Instructor: Jeff M. Phillips, University of Utah
There are many alternative variations of operations. insert may cost more than delete. Or we could have
a replace operation.
It is a metric. (M1) holds since the number of edits is always non-negative. (M2) There are no edits only
if they are the same. (M3) the operations can be reversed. (M4) If c is an intermediate “word” then the
ded (a, c) + ded (c, b) = ded (a, b), otherwise it requires more edits.
Is this good for large text documents? Not really. It is slow. And removing one sentence can cause a
large edit distance without changing meaning. But this is good for small strings. Some version used in most
spelling recommendation systems (e.g. Google’s auto-correct). Its a good guide that usually ded (a, b) > 3
is pretty large since, e.g., ded (cart, score) = 4.
There is a lot of work to approximate ded by some sort of L1 distance so that it can be used in an LSH
scheme. But as of now, there is not a good approximation, and this is hard to use with LSH (so its hard to
find all close pairs quickly).
7.2.6
Graph Distance
Another important type of distance is the hop distance on a graph. A graph is a structure we will visit
in more detail later on. Consider a series of vertices V = {v1 , v2 , . . . , vn } and a series of edges E =
{e1 , e2 , . . . , em }. Each edge e = {vi , vi } is a pair of vertices. Here consider only unordered pairs (so the
graph is not directed). The set G = (V, E) defines a graph.
Now the distance dG between two vertices vi , vj ∈ V in a graph G, is the fewest number of edges needed
so there is a path hvi , v1 , v2 , . . . , vk−1 , vj i so every consecutive pair {v` , v`+1 } ∈ E, where vi corresponds
with v` with ` = 0 and vj corresponds with v` where ` = k. So here the length of the path is k, and if this
is the shortest such path, then the length dG (vi , vj ) = k.
The hop distance in a graph is a metric. Its clearly non-negative (M1), is only 0 if vi = vj (M2), and
can be reversed (M3). To see the triangle inequality, assume that otherwise there is a node c ∈ V such that
dG (vi , c) + dG (c, vj ) < dG (vi , vj ), then we could instead create a path from vi to vj that went though c,
and by transitivity, in the above equation the left-hand-side must be at least as large as the right-hand-side.
CS 6140 Data Mining;
Spring 2015
Instructor: Jeff M. Phillips, University of Utah
```

20 cards

30 cards

27 cards

79 cards

17 cards
{"found_math": false, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 0, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0, "katex": 0, "math-container": 0, "wp-katex-eq": 0, "align": 0, "equation": 0, "x-ck12": 0, "texerror": 0}