[SRILM User List] Inconsistency between mix-lm and compute-best-mix ?

Andreas Stolcke stolcke at icsi.berkeley.edu
Fri Apr 29 23:28:21 PDT 2011

Anoop Deoras wrote:
> Hello,
>   I am trying to interpolate two LMs and I see inconsistency in the 
> outputs when 2 different methods are used
> for interpolation.
> I will explain my setup :
> I have two LMs: LM1 and LM2 and I have a text corpus TEXT
> Step 1: produce debug file using ngram tool with debug=2 option using 
> LM1 and LM2.
> Lets call them DEBUG1 and DEBUG2
>     ngram -lm LM1 -order 4 -unk -vocab VOCAB -ppl TEXT -debug 2 > DEBUG1
>     ngram -lm LM2 -order 4 -unk -vocab VOCAB -ppl TEXT -debug 2 > DEBUG2
> Step 2: Get the optimal weights using the command:
>     compute-best-mix DEBUG1 DEBUG2
>     Let the final best perplexity obtained be denoted as PPL_Step2
>     Let the weights be LAMBDA, 1-LAMBDA
>     Thus LAMBDA corresponds to LM1.
> Step3 : Combine LM1 and LM2 linearly with the weights found above and 
> compute the PPL
>     ngram -lm LM1 -order 4 -unk -vocab VOCAB -ppl TEXT -mix-lm LM2 
> -lambda LAMBDA
>     Let the perplexity obtained be denoted as PPL_Step3
> For my setup, PPL_Step3 turns out to be greater than PPL_Step2 and I 
> don't understand why ?
> Am I missing something while combining the models ?
> Any pointers would be useful.
To implement the standard type of linear interpolation that is optimized 
for by compute-best-mix use

    ngram -mix-lm  ....  -bayes 0

Without -bayes 0 you are actually merging the ngrams of the two models, 
and then compute the perplexity.
The difference between two kinds of interpolation is explained in the 
Interspeech '02 paper.


> Thanks and Regards
> Anoop
> _______________________________________________
> SRILM-User site list
> SRILM-User at speech.sri.com
> http://www.speech.sri.com/mailman/listinfo/srilm-user

More information about the SRILM-User mailing list