Language Models
给定前t个单词预测下一个单词的可能性
给定文本包含T个单词,可以说这个文本的概率如下
n-gram Language Models
通过计数得到n-gram的概率和(n-1)-gram的概率
稀疏问题 the sparsity problem
1.上面的分式,对于某些单词count为0,概率论中的平滑度(?)
2.分母为0,无法计算,语料库中没有students opened their,应该back off,只看opened their,从4-gram back off to 3-gram
注意:N越大,稀疏问题会更坏
A neural Language Model
3-gram得到的文本是无意义的,我们想要一次考虑更多的单词
回顾语言模型的任务:
固定窗口的神经语言模型,由下到上
优点:
1.没有稀疏问题
2.不需要存储所有观测的n-grams
缺点:
1.固定窗口太小
2.扩大窗口会使权重矩阵W增大
所以窗口不可能足够大,会丢失一些信息
3.x1,x2对应的权重是不同的,所以在某一部分学到的知识并没有与其他部分结合
所以我们需要一个能够处理任意长度的输入的神经架构~
Recurrent Neural Networks(RNN)
1.任意长度的输入
2.一系列隐藏状态,区别于之前的模型只有一个隐藏状态,每一个隐藏状态都基于前一步的隐藏状态和当前的输入,可以认为这一系列的隐藏状态,都是随着时间变化的单一状态,就像是同一事物的不同版本,所以也叫time-steps.
核心理念就是,把相同的权重矩阵,应用到每一个time-step.
这样,每一个x就不是上一个模型中不同的权重
3.可选择的输出,输出可不计算,也可只计算一部分,取决于你的目标
RNN语言模型,注意隐藏状态的计算方法
RNN优点:
1.处理任意长度的输入
2.step t 利用了之前几步输入的信息,理论上
3.模型规模没有因为更长的输入而更大
4.相同的权重,更有效率
缺点:
1.计算需要很长时间,隐藏状态的计算每一状态都需要上一状态,所以每个状态不能并行计算
2.在实践中,很难获取之前steps的信息,尽管记住了the proctor and the clock(不知道是什么qwq),用它们去预测下一个单词,所以这里介绍的这个RNN事实上没有达到预期
接下来会介绍更多关于这些缺点的详细知识,以及如何解决。