3. 概率模型函数化
机器学习领域存在一种较为通用的做法:
对所考虑的问题建模后,先为其构造一个目标函数,通过优化求得一组最优参数,然后利用最优参数对应的模型来进行预测。
因此,对于N-gram模型,并不需要存储所有可能的概率参数,而是求解对问题建模后得到的目标函数的最优参数(通常好的建模可以使得最优参数的个数远小于所有概率参数的个数),然后计算时对概率进行连乘即可。
对于统计语言模型,通常使用的目标函数为「最大似然函数」:
∏ w ∈ C p ( w ∣ C o n t e x t ( w ) ) \prod_{w\in C}p(w|Context(w)) w∈C∏p(w∣Context(w))
即,上下文为
C
o
n
t
e
x
t
(
w
)
Context(w)
Context(w)时,该词为
w
w
w的概率。
其中,
C
C
C为语料库(Corpus);
C
o
n
t
e
x
t
(
w
)
Context(w)
Context(w)为词
w
w
w的上下文(Context)。对于N-gram模型,
C
o
n
t
e
x
t
(
w
i
)
=
w
i
−
n
+
1
i
−
1
Context(w_i)=w_{i-n+1}^{i-1}
Context(wi)=wi−n+1i−1。
实际上,连乘可能导致概率值极小,因此,常采用「最大对数似然」,即目标函数为:
L = ∑ w ∈ C l o g p ( w ∣ C o n t e x t ( w ) ) 将 条 件 概 率 p ( w ∣ C o n t e x t ( w ) ) 视 为 关 于 w 和 C o n t e x t ( w ) 的 函 数 = ∑ w ∈ C l o g F ( w , C o n t e x t ( w ) , θ ) L=\sum_{w \in C}log \space p(w|Context(w)) \\ 将条件概率p(w|Context(w))视为关于w和Context(w)的函数 \\ =\sum_{w \in C}log \space F(w, Context(w), \theta) L=w∈C∑log p(w∣Context(w))将条件概率p(w∣Context(w))视为关于w和Context(w)的函数=w∈C∑log F(w,Context(w),θ)
其中, θ \theta θ为待定参数集。因此,一旦对上式进行优化得到最优参数集 θ ∗ \theta^* θ∗后, F F F也就唯一确定。
因此,只需要存储最优参数集,而不需要事先计算并保存所有的概率值。若选取合适的方法来构造函数,可以使得 θ \theta θ中参数的个数远小于N-gram模型中参数的个数。