持续更新中…
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.csdn.net/huanghaocs/article/details/77935556
https://zhuanlan.zhihu.com/p/52061158