1、语言模型的定义

    符号含义:

        V-->语言中所有单词的集合,且为有限集;

        

深度学习在词语推荐中用到的语言模型 常见语言模型_深度学习在词语推荐中用到的语言模型

-->语言中的句子,且n>=1,

深度学习在词语推荐中用到的语言模型 常见语言模型_nlp_02


深度学习在词语推荐中用到的语言模型 常见语言模型_nlp_03

为特殊符号STOP(假设STOP不在V中);        

深度学习在词语推荐中用到的语言模型 常见语言模型_nlp_04

-->有限集V上的所有句子的集合,为无限集,包含只有一个特殊符号STOP的句子。

    正式定义:

        语言模型由有限集V和概率函数

深度学习在词语推荐中用到的语言模型 常见语言模型_语言模型_05

组成,且满足

深度学习在词语推荐中用到的语言模型 常见语言模型_平滑技术_06


                      同时

                           

深度学习在词语推荐中用到的语言模型 常见语言模型_语言模型_07

,                      即

深度学习在词语推荐中用到的语言模型 常见语言模型_语言模型_05

是句子集

深度学习在词语推荐中用到的语言模型 常见语言模型_nlp_04

上的概率分布

特殊说明:为什么需要STOP,因为不是所有的单词都可以作为句子的结尾;事实上还有一个特殊的起始符*,因为不是所有的单词都可以作为句子的开头;在马尔科夫模型中我们会看到*和STOP的作用。

2、语言模型的作用

    可用于语音识别,机器翻译;简而言之,一切需要判断句子的合理性的NLP任务都可能需要语言模型。

3、马尔科夫模型(Markov Models):


    为了构建语言模型我们需要了解马尔科夫模型;假设读者了解了马尔科夫模型,这里只做简要介绍。

     一阶马尔科夫过程(first-order Markov process): 

  

深度学习在词语推荐中用到的语言模型 常见语言模型_平滑技术_10

深度学习在词语推荐中用到的语言模型 常见语言模型_语言模型_11

     二阶马尔科夫过程(second-order Markov process)即三元模型(trigram model):

   

深度学习在词语推荐中用到的语言模型 常见语言模型_nlp_12

4、三元语言模型(Trigram Language Models):

     定义:三元语言模型由V和参数

深度学习在词语推荐中用到的语言模型 常见语言模型_语言模型_13

组成,其中

深度学习在词语推荐中用到的语言模型 常见语言模型_深度学习在词语推荐中用到的语言模型_14


深度学习在词语推荐中用到的语言模型 常见语言模型_nlp_15


深度学习在词语推荐中用到的语言模型 常见语言模型_语言模型_13

的含义是句子中前两个单词是

深度学习在词语推荐中用到的语言模型 常见语言模型_平滑技术_17

的情况下,

深度学习在词语推荐中用到的语言模型 常见语言模型_nlp_18

为下一个单词的概率。     一个句子

深度学习在词语推荐中用到的语言模型 常见语言模型_深度学习在词语推荐中用到的语言模型_19

在三元语言模型下的概率是   

深度学习在词语推荐中用到的语言模型 常见语言模型_语言模型_20

三元模型存在稀疏问题:

        

深度学习在词语推荐中用到的语言模型 常见语言模型_MM_21

,有时候会出现

深度学习在词语推荐中用到的语言模型 常见语言模型_nlp_22

等于0的情况,即

深度学习在词语推荐中用到的语言模型 常见语言模型_MM_23

等于0

5、平滑处理:

    为了解决三元模型中的稀疏问题,需要做平滑处理,这里介绍两种平滑技术:Linear InterpolationDiscounting Methods

    5.1、线性插值(Linear Interpolation):

       

深度学习在词语推荐中用到的语言模型 常见语言模型_平滑技术_24

深度学习在词语推荐中用到的语言模型 常见语言模型_MM_25

深度学习在词语推荐中用到的语言模型 常见语言模型_平滑技术_26

         线性插值平滑之后

             

深度学习在词语推荐中用到的语言模型 常见语言模型_语言模型_27

              其中,

深度学习在词语推荐中用到的语言模型 常见语言模型_平滑技术_28


深度学习在词语推荐中用到的语言模型 常见语言模型_深度学习在词语推荐中用到的语言模型_29


平滑之后依然满足概率之和为1

        如何确定

深度学习在词语推荐中用到的语言模型 常见语言模型_语言模型_30

的值,一种方法是选取一个开发集,在开发集上最大化对数似然估计(log-likelihood)

深度学习在词语推荐中用到的语言模型 常见语言模型_深度学习在词语推荐中用到的语言模型_31

                                                       

深度学习在词语推荐中用到的语言模型 常见语言模型_MM_32

三元组

深度学习在词语推荐中用到的语言模型 常见语言模型_平滑技术_33

在开发集中的出现次数        最大化

深度学习在词语推荐中用到的语言模型 常见语言模型_平滑技术_34

也就最小化了困惑度perplexiy

    5.2、折扣方法(Discounting Methods):

        

深度学习在词语推荐中用到的语言模型 常见语言模型_MM_35

即训练语料中u,v所有的后接词;        

深度学习在词语推荐中用到的语言模型 常见语言模型_语言模型_36

即训练语料中非u,v后接词。        

深度学习在词语推荐中用到的语言模型 常见语言模型_平滑技术_37

        Discounting之后的概率:

                                           

深度学习在词语推荐中用到的语言模型 常见语言模型_nlp_38

                                             其中 

深度学习在词语推荐中用到的语言模型 常见语言模型_nlp_39

PS:英文翻译不当的地方欢迎指出!!!