NLP语言模型详解

语言模型

1. 介绍

  • 语言模型刻画词序列概率大小。
  • 通常认为词序列概率更大的更符合语法的标准。所以经常用来判断一句话是否符合语法。
  • 例如
  • 我们就可以认为更符合语法

2. 链式法则

  • 把联合概率用条件概率表示

    • 链式法则:

    • 例如:计算句子 今天是春节我们都休息 的联合概率为


    • 每个词出现的概率计算过程:

    ​ 解释:表示子序列在训练集中出现的次数 。例如训练集中出现了以下几处话:

    ​ 今天是春节,我们都休息。
    ​ 今天是春节,我们都出去玩了。
    ​ 今天是工作日,我们都不休息。

    ​ 那么

  • 问题:事实上,如果条件过长,训练库中很少或者没有出现,计算每个词的出现的条件概率也是一种计算上的浪费。

  • 解决:所以我们引入马尔可夫假设(Markov assumption),即假设当前词出现的概率只依赖于前n-1个词。公式如下:

3. 马尔可夫假设

  • 作用:简化条件概率的计算,即当前词出现的概率只与前几个词有关。

  • 基于马尔可夫假设,定义n-gram语言模型如下:

    n的数值 公式 名称
    n=1 unigram
    n=2 bigram
    n=3 trigram
  • n=1时,即unigram模型。调整句子词的顺序,概率不变,这时可以认为词与词之间没有顺序关系。

  • n=2时,即bigram模型。当前词出现的概率只和前一个词出现的概率有关。

4. 使用语言模型过程

  1. 根据语料库(数据集)计算概率和条件概率
  2. 根据计算得到的概率,计算句子的联合概率
  3. 计算出的词语序列的联合概率更大的,我们更倾向于认为该词语序列符合语法。
  • 注意的点:
    1. 为了使句首词的条件概率有意义,需要给原序列加上一个或多个起始符。例如和的意义是完全不同的。
    2. 通常我们也会在序列末尾加一个结束符。当不加结束符时,n-gram语言模型只能分别对所有固定长度的序列进行概率分布建模,而不是任意长度的序列。

5. n-gram语言模型中的平滑技术(smoothing)

  • 问题:当测试集中出现了训练集中未出现过的词,导致语言模型计算出的联合概率为零,此时就可以认为该词语序列不符合语法。但这是不合理的。例如 今天是星期三,我们都工作

    • ** **
    • 星期三 这个词在训练集中没出现,导致,从而导致。但这并不代表这句话不符合语法。
  • 解决上述问题,我们需要平滑技术。有以下几种平滑技术:

      1. Add-one平滑
      • V是词典的大小。这样能满足的所有 求和是1。
      1. Add-K平滑
      • k的选择:用不同的k训练模型,在验证集上计算,
      1. interpolation平滑
      • 为什么要使用interpolation平滑?
        • 概率相同,不合理。(因为我们想知道c,d词后面更容易出现还是)
      • 核心思路:计算Trigram概率时,同时考虑Unigram,Bigram,Trigram出现的频次。
      • ,其中。
      1. 此外还有Laplace Smoothing,good-turning等平滑技术。

6. 神经网络语言模型NNLM

在神经网络(Neural Network, NN)被成功应用于语言建模之前,主流的语言模型为N-gram模型,采用计数统计的方式,在离散空间下表示语言的分布。由于缺乏对词的相似性的有效表示,N-gram语言模型存在严重的数据稀疏问题。虽然引入平滑技术,但数据稀疏问题仍不能得到有效的解决。神经网络语言模型则采用分布式的方式表示词,即通常所说的词向量,将词映射到连续的空间内,有效地解决了数据稀疏问题。并且神经网络具有很强的模式识别能力,神经网络语言模型的性能远优于N-gram模型。

前向神经网络是最早被引入到语言建模中的神经网络结构,随后是循环神经网络,包括标准循环神经网络、长短期记忆循环神经网络和门限循环单元神经网络,接着卷积神经网络也被引入语言建模中。

掌握NNLM对理解后续的ELMo,Transformer,BERT等NLP模型很有帮助。


神经网络语言模型.jpg

神经网络语言模型结构示意图如下图所示


神经网络语言模型结构示意图.png

添加LSTM网络的神经语言模型结构示意图如下图所示


循环神经网络语言模型.png

7. 评估语言模型-perplexity

  • 对于自然语言序列,可以推导出每个词的平均交叉熵为:

  • 定义困惑度(perplexity)

  • 困惑度在语言模型中的意义可以理解为 对于任意给定的序列,下一个候选词的可选范围大小。困惑度越小,说明所建模的语言模型越精确。

  • 扩展(与语言模型无关,可以跳过):

    • 信息论中常采用相对熵(relative entropy)来衡量两个分布之间的相近程度。
    • 对于离散随机变量X,熵、交叉熵以及相对熵的定义如下:
      • 熵:
      • 交叉熵:
      • 相对熵:
      • 其中 和都是对随机变量概率分布的建模。
      • 假定 是样本的真实分布,是对其的建模。因为真实分布的熵值是确定的,因此优化相对熵等价于优化交叉熵。
文档说明

读了一些文档,经过一段时间快忘了,才整理下来的。参考的文献和博客记不起来了,所以请原谅我不附参考链接了。文章用typora写的,自己码的字和公式,喜欢写作的伙伴,可以尝试一下。欢迎大家的评论与转发,转发时请附上文章出处。如果感觉文章对您有帮助,欢迎赞赏,您的支持是我及时记录的动力。

pdf文档链接:https://pan.baidu.com/s/10mfyX-A0S3Ji1-AOn6NTpA
提取码:kmmx

你可能感兴趣的:(NLP语言模型详解)