References

  • Lecture: CS224N.

1. Introduction

直观上的理解, language model 是一个用来预测下一个词的模型. 形式上, 若给定一个句子 , 则 language model 的目标是预测下一个词 应该是 中的哪一个. 这种选择可以建模为:

更广义地讲, language model 的目标是从 开始预测整个句子的概率分布, 即尝试预测整个序列 的联合概率分布:

Language model 的研究就在于如何精准地估计这些概率分布.

2. N-Gram Language Model

2.1 Theory

在深度学习方法流行之前, 一种常见的方法是使用 n-gram 模型来估计这个概率分布:

对于 n-gram 模型, 一个重要假设是 Markov 假设, 即假设当前词的预测只依赖于前面最接近的 个词, 而不是需要依赖整个历史. 这样, 上述概率分布可以近似为:

注意, n-gram 本身指的是长度为 个词的语段. 在 Markov 条件下, 我们实际上是用前 个词来预测第 个词:

对右侧概率分布的一种常见估计就是用频率代替概率:

其本质上就是在统计语料库中某种语段出现的频率, 用最频繁出现的语段来作为预测依据.

当然在求出其概率分布后, 我们既可以固定选择最大概率的词, 也可以以这个概率作为权重来进行随机抽样, 增加模型的多样性.

2.2 Practical Tradeoffs

实践中, 我们经常会遇到一个 选择的权衡问题. 例如考虑句子: As the proctor started the clock, the students opened their ( ). 若 长度不足, 则很有可能忽略掉关键信息 proctor. 但是另一方面, 若 太长, 则很有可能会遇到数据稀疏的问题, 例如很难在语料库中找到连续 个词都相同的语段.

因此 n-gram 模型经常会面临两个问题:

  • Sparsity problem: 数据稀疏问题, 即很多语段在语料库中没有出现过, 从而导致概率分布估计不准确. 通常这种问题是由于 过大造成的. 经验而言, 适宜范围为 .
    • 若 从未一起在语料库中出现过, 则 , 从而导致概率估计为 . 一种直接的解决方法是使用 Laplace smoothing, 即在分子分母上都加上一个小量 .
    • 若 组合都没有在语料库中出现过, 则 , 从而导致概率估计的分母为 . 一种解决方法是使用 back-off, 降低 的长度.
  • Storage problem: n-gram 模型需要存储语料库中的所有 n-gram 语段, 因此当 较大或语料库较大时, 会导致存储空间问题.