Professional Documents
Culture Documents
Pawan Goyal
CSE, IITKGP
August 8, 2016
c(wi−1 , wi ) + k
PAdd−k (wi |wi−1 ) =
c(wi−1 ) + kV
c(wi−1 , wi ) + k
PAdd−k (wi |wi−1 ) =
c(wi−1 ) + kV
c(wi−1 , wi ) + m( V1 )
PAdd−k (wi |wi−1 ) =
c(wi−1 ) + m
c(wi−1 , wi ) + k
PAdd−k (wi |wi−1 ) =
c(wi−1 ) + kV
c(wi−1 , wi ) + m( V1 )
PAdd−k (wi |wi−1 ) =
c(wi−1 ) + m
Unigram prior smoothing:
c(wi−1 , wi ) + mP(wi )
PUnigramPrior (wi |wi−1 ) =
c(wi−1 ) + m
c(wi−1 , wi ) + k
PAdd−k (wi |wi−1 ) =
c(wi−1 ) + kV
c(wi−1 , wi ) + m( V1 )
PAdd−k (wi |wi−1 ) =
c(wi−1 ) + m
Unigram prior smoothing:
c(wi−1 , wi ) + mP(wi )
PUnigramPrior (wi |wi−1 ) =
c(wi−1 ) + m
A good value of k or m?
Can be optimized on held-out set
Smoothing algorithms
Good-Turing
Kneser-Ney
Smoothing algorithms
Good-Turing
Kneser-Ney
Example Sentences
<s>I am here </s>
<s>who am I </s>
<s>I would like </s>
Example Sentences
<s>I am here </s>
<s>who am I </s>
<s>I would like </s>
Computing Nc
I 3
am 2
here 1 N1 = 4
who 1 N2 = 1
would 1 N3 = 1
like 1
Idea
Reallocate the probability mass of n−grams that occur r + 1 times in the
training data to the n−grams that occur r times
Idea
Reallocate the probability mass of n−grams that occur r + 1 times in the
training data to the n−grams that occur r times
In particular, reallocate the probability mass of n−grams that were seen
once to the n−grams that were never seen
Idea
Reallocate the probability mass of n−grams that occur r + 1 times in the
training data to the n−grams that occur r times
In particular, reallocate the probability mass of n−grams that were seen
once to the n−grams that were never seen
Adjusted count
For each count c, an adjusted count c∗ is computed as:
(c + 1)Nc+1
c∗ =
Nc
where Nc is the number of n−grams seen exactly c times
(c + 1)Nc+1
c∗ =
Nc
(c + 1)Nc+1
c∗ =
Nc
What if c = 0
N1
P∗GT (things with frequency c = 0) = N where N denotes the total number of
n-grams that actually occur in training
Simple Good-Turing
Replace empirical Nk with a best-fit power law once counts get unreliable
(c + 1)Nc+1
c∗ =
Nc
(c + 1)Nc+1
c∗ =
Nc
It looks like c∗ = c − 0.75
c(wi−1 , wi ) − d
PAbsoluteDiscounting (wi |wi−1 ) = + λ(wi−1 )P(wi )
c(wi−1 )
c(wi−1 , wi ) − d
PAbsoluteDiscounting (wi |wi−1 ) = + λ(wi−1 )P(wi )
c(wi−1 )
c(wi−1 , wi ) − d
PAbsoluteDiscounting (wi |wi−1 ) = + λ(wi−1 )P(wi )
c(wi−1 )
Intuition
Shannon game: I can’t see without my reading ...: glasses/Francisco?
Intuition
Shannon game: I can’t see without my reading ...: glasses/Francisco?
“Francisco” more common that “glasses”
Intuition
Shannon game: I can’t see without my reading ...: glasses/Francisco?
“Francisco” more common that “glasses”
But “Francisco” mostly follows “San”
Intuition
Shannon game: I can’t see without my reading ...: glasses/Francisco?
“Francisco” more common that “glasses”
But “Francisco” mostly follows “San”
Intuition
Shannon game: I can’t see without my reading ...: glasses/Francisco?
“Francisco” more common that “glasses”
But “Francisco” mostly follows “San”
Intuition
Shannon game: I can’t see without my reading ...: glasses/Francisco?
“Francisco” more common that “glasses”
But “Francisco” mostly follows “San”
A frequent word (Francisco) occurring in only one context (San) will have a low
continuation probability
max(c(wi−1 , wi ) − d, 0)
PKN (wi |wi−1 ) = + λ(wi−1 )Pcontinuation (wi )
c(wi−1 )
max(c(wi−1 , wi ) − d, 0)
PKN (wi |wi−1 ) = + λ(wi−1 )Pcontinuation (wi )
c(wi−1 )
λ is a normalizing constant
d
λ(wi−1 ) = |{w : c(wi−1 , w) > 0}|
c(wi−1 )
As N increases
The power (expressiveness) of an N-gram model increases
As N increases
The power (expressiveness) of an N-gram model increases
But the ability to estimate accurate parameters from sparse data
decreases (i.e. the smoothing problem gets worse).
As N increases
The power (expressiveness) of an N-gram model increases
But the ability to estimate accurate parameters from sparse data
decreases (i.e. the smoothing problem gets worse).
Backoff
use trigram if you have good evidence
otherwise bigram, otherwise unigram
Backoff
use trigram if you have good evidence
otherwise bigram, otherwise unigram
Interpolation
mix unigram, bigram, trigram
Simple Interpolation
Simple Interpolation
∑ λi = 1
i
Simple Interpolation
∑ λi = 1
i