自然语言处理中的词序列分析与应用
1. 交叉熵与困惑度
1.1 交叉熵
交叉熵是衡量两个概率分布之间差异的一种指标。对于分布 $P$ 和模型 $M$,其交叉熵 $H(P, M)$ 的定义为:
[H(P, M) = -\frac{1}{n} \sum_{w_1, \ldots, w_n \in L} P(w_1, \ldots, w_n) \log_2 M(w_1, \ldots, w_n)]
在某些条件下,交叉熵还可以表示为:
[H(P, M) = \lim_{n \to \infty} -\frac{1}{n} \sum_{w_1, \ldots, w_n \in L} P(w_1, \ldots, w_n) \log_2 M(w_1, \ldots, w_n) = \lim_{n \to \infty} -\frac{1}{n} \log_2 M(w_1, \ldots, w_n)]
在实际应用中,我们通常使用从训练集得到的二元或三元模型 $M$,来计算测试集上完整词序列(由 $P$ 控制)的交叉熵。同时,存在不等式 $H(P) \leq H(P, M)$,这意味着交叉熵总是 $H(P)$ 的上界。语言模型的目标是尽可能接近 $P$,因此最佳模型是能产生尽可能低交叉熵值的模型。
1.2 困惑度
困惑度是语言模型的另一个重要指标,它定义为:
[PP(P, M) = 2^{H(P, M)}]
困惑度可以解释为一个词的平均分支因子,即给定一个词后,后续可能跟随的词的统计加权数量。它与熵等价,但困惑度的数值更易于人类理解,因此在衡量语言模型质量时更为常用。和熵一样,我们的目标是最小化困惑度,即语言
超级会员免费看
订阅专栏 解锁全文
32

被折叠的 条评论
为什么被折叠?



