Rescore、Rescoring
任务:训好的中英混(中文为主)的声学模型,出来n-best路径,用训好的语言模型,对每条路径(文本序列)得到其语言模型分数,查看每条路径的分数,与之前的n-best每条路径声学模型分数,加权求和,从而选出一条文本序列,作为最终的文本序列;
注意,这里并不是语言模型参与ctc解码过程(lattice过程中加入语言模型分数),而是出来的n-best进行rescoing;
其中,这里的语言模型,可以是:
- 预训练好的中英混模型,但是这个不太可能;
- 预训练的中文模型(因为任务以中文为主),用现有中英混数据进行finetune(迁移学习);
注意,n-best出来最好有标点,给语言模型比较好?没有标点给语言模型,是不是不太好?
用来rescore的pretrain LM的词典和声学模型的词典可以不同!!
模型
finetune NN LM,字建模(词建模 词数太多,分类数太多)
做法
- 首先用开源的预训练模型LM,对10best进行rescore,选取困惑度最小的路径最为最终结果
- 好未来开源模型:效果变差:wer:4% —> 5%
- hugging face开源中文模型Albert:wer:TODO
- 开源的预训练LM作为基础模型,用7G数据作为训练集,1.4w条中的部分作为验证集,fine-tune pretrain LM,得到新的LM,对10best进行rescore,选取困惑度最小的路径,
- 基于好未来开源预训练模型进行LM fine-tune,效果 TODO
- 基于hugging face开源中文模型Albert,效果 TODO
- 开源的预训练纯中文模型,增加一些和声学模型的词典的英文bpe建模单元相同的英文字,修改模型,部分初始化置零,fine-tune pretrain LM
step 1)中文NN LM,这个可以是开源的pretrain model
step 2)固定一些参数,用其他领域中英数据 finetune
step 3)基于步骤2,再固定一些参数,用垂直领域7G中英文本,finetune