NLP各种语言模型的优缺点比较

持续更新中…

1.n-gram

n-gram语言模型引入马尔科夫假设,假设当前单词出现的概率只与前n-1个单词有关。常见的unigram、bigram、trigram公式如下:

    优点:(1) 采用极大似然估计,参数易训练;(2) 完全包含了前 n-1 个词的全部信息;(3) 可解释性强,直观易理解。 缺点 :(1) 缺乏长期依赖,只能建模到前 n-1 个词;(2) 随着 n 的增大,参数空间呈指数增长;(3) 数据稀疏,难免会出现OOV的问题;(4) 单纯的基于统计频次,泛化能力差。

2.神经网络语言模型

神经语言模型使用连续表示或词汇Embedding来进行预测。

2.1 前馈神经网络语言模型(NNLM)

网络包含输入层、投影层、隐藏层和输出层。输入为前n-1个单词,然后将每个单词映射成为多维向量,再通过隐层去学习更深层次的表征,最后输出层通过softmax输出词表中每个单词出现的概率。 网络的第一层:将前n-1个单词的向量 C ( w t − n + 1 ) , . . . , C ( w t − 2 ) , C ( w t − 1 ) C(w_{t-n+1}), ..., C(w_{t-2}),C(w_{t-1}) C(wt−n+1),...,C(wt−2),C(wt−1) 进行拼接成为 ( n − 1 ) ∗ m (n-1)*m (n−1)∗m 维的向量,记为输出 x x x。 网络第二层:通过全连接的隐层进行训练 H x + d Hx+d Hx+d,其中 H H H 为权重矩阵, d d d 为偏置项,最后通过一个 t a n h tanh tanh 激活函数。 网络的第三层:输出层的节点个数为词表的大小 ∣ V ∣ |V| ∣V∣, 每个节点 y i y_i yi 表示单词 w i w_i wi 预测为下个单词的概率。最终通过softmax进行归一化输出。 y = b + W x + U t a n h ( d + H x ) p = s o f t m a x ( y ) y=b+Wx+Utanh(d+Hx) \ p=softmax(y) y=b+Wx+Utanh(d+Hx)p=softmax(y)

    优点:利用神经网络去建模当前词出现的概率与其前 n-1 个词之间的约束关系,相比 n-gram 具有更好的泛化能力。 缺点:同样仅包含了有限的前文信息

2.2 循环神经网络语言模型(RNNLM)

https://blog..net/huanghaocs/article/details/77935556 https://zhuanlan.zhihu.com/p/52061158
经验分享 程序员 微信小程序 职场和发展