上式 tri-gram 模型的关系主要是基于一个固定的上下文窗口(即
前 n 个单词)预测下一个单词。一般 n 的取值为多大才好呢?在
某些情况下,前面的连续的 n 个单词的窗口可能不足以捕获足
够的上下文信息。例如,考虑句子(类似完形填空,预测下一个
最可能的单词)
“Asthe proctor started the clock, the students opened
their ”。 如 果 窗 口 只 是 基于前面 的 三 个 单 词 “the students
opened their”,那么急于这些语料计算的下划线中最有可能出
现的单词就是为“books”——但是如果 n 足够大,能包括全部
的上下文,那么下划线中最优可能出现的单词会是“exam”。
这就引出了 n-gram 语言模型的两个主要问题:稀疏性和存
储。
1) Sparsity problems with n-gram Language models
n-gram 语言模型的问题源于两个问题。
首先,注意公式中的分子。如果
1
,
2
.
3
在语料中从未出现
过,那么
3
的概率就是 0。为了解决这个问题,在每个单词计
数后面加上一个很小的 ,这就是平滑操作。
然后,考虑公式中的分母。 如果
1
,
2
在语料中从未出现过,
那么
3
的概率将会无法计算。为了解决这个问题,这里可以只
是单独考虑
2
,这就是“backoff”操作。
增加 n 会让稀疏问题更加严重,所以一般 ≤5。
2) Storage problems with n-gram Language models
我们知道需要存储在语料库中看到的所有 n-gram 的统计数。
随着 n 的增加(或语料库大小的增加),模型的大小也会增加。
1.3 Window-based Neural Language Model
Bengio 的论文《A Neural Probabilistic Language Model》中
首次解决了上面所说的“维度灾难”,这篇论文提出一个自然语
言处理的大规模的深度学习模型,这个模型能够通过学习单词的
分布式表示,以及用这些表示来表示单词的概率函数。右图展示
了对应的神经网络结构,在这个模型中,输入向量在隐藏层和输
出层中都被使用。
❐ Figure 1: The first deep neural
network architecture model for NLP
presented by Bengio et al. 【 图
1:Bengio 等人提出的 NLP 的第一
个深层神经网络结构模型。】
❐ ↑ Figure 2: A simplified
representation of ↑ Figure 1. 【 图
2:图 1 的简化表示。】