为什么引入剪枝
传统的N-gram backoff模型,提升性能的两条主要路径是增加阶数和增加语料,两者带来的共同副作用是增加了模型的大小,进而增加了语音识别解码器的内存占用。为了减少模型的大小,同时保证性能最大化,引入了prune。
为了实现剪枝选取的准则需要满足以下三个条件:
soundness
The criterion should optimize some wellunderstood information-theoretic measure of language
model quality.efficiency
高效、快速self-containedness
从实用性角度考虑,只有当前的语言模型可用,没有其他多余的信息可用
srilm采用了基于相对熵的剪枝方法(N-gram pruning based on relative entropy)。
基于相对熵的剪枝
剪枝的主要目的是为了删除已有ngram,同时保证未删除的ngram不变,还需要重新计算回退概率。
那么怎么样衡量剪枝以后语言模型性能的改变呢?
一个想法就是去最小化剪枝前后两个模型之间概率分布的距离。自然的,我们会选择相对熵或者KL距离,定义参考链接:
D(p