发布网友 发布时间:2022-04-23 07:43
共1个回答
热心网友 时间:2022-06-17 20:59
数据稀疏与平滑技术
大规模数据统计方法与有限的训练语料之间必然产生数据稀疏问题,导致零概率问题,符合经典的zip'f定律。如IBM, Brown:366M英语语料训练trigram,在测试语料中,有14.7%的trigram和2.2%的bigram在训练语料中未出现。
数据稀疏问题定义:“The problem of data sparseness, alsoknown as the zero-frequency problem ariseswhen analyses contain configurations thatnever occurred in the training corpus. Then it isnot possible to estimate probabilities from observedfrequencies, and some other estimation schemethat can generalize (that configurations) from thetraining data has to be used. —— Dagan”。
人们为理论模型实用化而进行了众多尝试与努力,诞生了一系列经典的平滑技术,它们的基本思想是“降低已出现n-gram条件概率分布,以使未出现的n-gram条件概率分布非零”,且经数据平滑后一定保证概率和为1,详细如下: Add-one(Laplace) Smoothing 加一平滑法,又称拉普拉斯定律,其保证每个n-gram在训练语料中至少出现1次,以bigram为例,公式如图:
其中,V是所有bigram的个数。 Good-Turing Smoothing 其基本思想是利用频率的类别信息对频率进行平滑。调整出现频率为c的n-gram频率为c*:
直接的改进策略就是“对出现次数超过某个阈值的gram,不进行平滑,阈值一般取8~10”,其他方法请参见“Simple Good-Turing”。 InterpolationSmoothing 不管是Add-one,还是Good Turing平滑技术,对于未出现的n-gram都一视同仁,难免存在不合理(事件发生概率存在差别),所以这里再介绍一种线性插值平滑技术,其基本思想是将高阶模型和低阶模型作线性组合,利用低元n-gram模型对高元n-gram模型进行线性插值。因为在没有足够的数据对高元n-gram模型进行概率估计时,低元n-gram模型通常可以提供有用的信息。公式如下如右图1:
扩展方式(上下文相关)为如右图2:
λs可以通过EM算法来估计,具体步骤如下: 首先,确定三种数据:Training data、Held-out data和Test data; 然后,根据Training data构造初始的语言模型,并确定初始的λs(如均为1); 最后,基于EM算法迭代地优化λs,使得Held-out data概率(如下式)最大化。