语言模型
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. 使用语言模型过程
- 根据语料库(数据集)计算概率和条件概率
- 根据计算得到的概率,计算句子的联合概率
- 计算出的词语序列的联合概率更大的,我们更倾向于认为该词语序列符合语法。
- 注意的点:
- 为了使句首词的条件概率有意义,需要给原序列加上一个或多个起始符。例如和的意义是完全不同的。
- 通常我们也会在序列末尾加一个结束符。当不加结束符时,n-gram语言模型只能分别对所有固定长度的序列进行概率分布建模,而不是任意长度的序列。
5. n-gram语言模型中的平滑技术(smoothing)
-
问题:当测试集中出现了训练集中未出现过的词,导致语言模型计算出的联合概率为零,此时就可以认为该词语序列不符合语法。但这是不合理的。例如 今天是星期三,我们都工作 。
- ** **
- 星期三 这个词在训练集中没出现,导致,从而导致。但这并不代表这句话不符合语法。
- ** **
-
解决上述问题,我们需要平滑技术。有以下几种平滑技术:
-
- Add-one平滑
- V是词典的大小。这样能满足的所有 求和是1。
-
- Add-K平滑
- k的选择:用不同的k训练模型,在验证集上计算,
-
- interpolation平滑
- 为什么要使用interpolation平滑?
- 若
- 则
- 则
- 概率相同,不合理。(因为我们想知道c,d词后面更容易出现还是)
- 核心思路:计算Trigram概率时,同时考虑Unigram,Bigram,Trigram出现的频次。
- ,其中。
- 此外还有Laplace Smoothing,good-turning等平滑技术。
-
6. 神经网络语言模型NNLM
在神经网络(Neural Network, NN)被成功应用于语言建模之前,主流的语言模型为N-gram模型,采用计数统计的方式,在离散空间下表示语言的分布。由于缺乏对词的相似性的有效表示,N-gram语言模型存在严重的数据稀疏问题。虽然引入平滑技术,但数据稀疏问题仍不能得到有效的解决。神经网络语言模型则采用分布式的方式表示词,即通常所说的词向量,将词映射到连续的空间内,有效地解决了数据稀疏问题。并且神经网络具有很强的模式识别能力,神经网络语言模型的性能远优于N-gram模型。
前向神经网络是最早被引入到语言建模中的神经网络结构,随后是循环神经网络,包括标准循环神经网络、长短期记忆循环神经网络和门限循环单元神经网络,接着卷积神经网络也被引入语言建模中。
掌握NNLM对理解后续的ELMo,Transformer,BERT等NLP模型很有帮助。
神经网络语言模型结构示意图如下图所示
添加LSTM网络的神经语言模型结构示意图如下图所示
7. 评估语言模型-perplexity
-
对于自然语言序列,可以推导出每个词的平均交叉熵为:
-
定义困惑度(perplexity):
困惑度在语言模型中的意义可以理解为 对于任意给定的序列,下一个候选词的可选范围大小。困惑度越小,说明所建模的语言模型越精确。
-
扩展(与语言模型无关,可以跳过):
- 信息论中常采用相对熵(relative entropy)来衡量两个分布之间的相近程度。
- 对于离散随机变量X,熵、交叉熵以及相对熵的定义如下:
- 熵:
- 交叉熵:
- 相对熵:
- 其中 和都是对随机变量概率分布的建模。
- 假定 是样本的真实分布,是对其的建模。因为真实分布的熵值是确定的,因此优化相对熵等价于优化交叉熵。
文档说明
读了一些文档,经过一段时间快忘了,才整理下来的。参考的文献和博客记不起来了,所以请原谅我不附参考链接了。文章用typora写的,自己码的字和公式,喜欢写作的伙伴,可以尝试一下。欢迎大家的评论与转发,转发时请附上文章出处。如果感觉文章对您有帮助,欢迎赞赏,您的支持是我及时记录的动力。
pdf文档链接:https://pan.baidu.com/s/10mfyX-A0S3Ji1-AOn6NTpA
提取码:kmmx