目前常用于语言模型的是 N-gram 模型和神经语言模型
N-gram 语言模型
-
马尔可夫(Markov)假设——未来的事件,只取决于有限的历史
-
基于马尔可夫假设,N-gram 语言模型认为一个词出现的概率只与它前面的 n-1 个词相关
神经概率语言模型 (NPLM)
-
神经概率语言模型依然是一个概率语言模型,它通过神经网络来计算概率语言模型中每个参数<div align="center">
N-gram 神经语言模型的网络结构
-
【输入层】首先,将
context(w)
中的每个词映射为一个长为m
的词向量,词向量在训练开始时是随机的,并参与训练; -
【投影层】将所有上下文词向量拼接为一个长向量,作为
w
的特征向量,该向量的维度为m(n-1)
-
【隐藏层】拼接后的向量会经过一个规模为
h
隐藏层,该隐层使用的激活函数为tanh
-
【输出层】最后会经过一个规模为
N
的 Softmax 输出层,从而得到词表中每个词作为下一个词的概率分布
其中
m, n, h
为超参数,N
为词表大小,视训练集规模而定,也可以人为设置阈值
-
训练时,使用交叉熵作为损失函数
-
当训练完成时,就得到了 N-gram 神经语言模型,以及副产品词向量