Bootstrapping 简介,应用,利弊分析

 我之前一直以为Bootstrap 和Bootstrapping 是一样的,但事实上并非如此。Bootstrap 其实是一个前端开发框架,而Bootstrapping 则是一种算法,两者差别还是挺大的。

1. 简介

Bootstrapping 也被称为自举法 或者自助法。Bootstrapping的是通过随机重采样,利用小样本来推测总体的统计量;当样本规模足够大时,基于样本的统计结果即可代表总体的水平。

Bootstrapping方法的实现很简单,假设抽取的样本大小为n:

在原样本中有放回的抽样,抽取n次。每抽一次形成一个新的样本,重复操作,形成很多新样本,通过这些样本就可以计算出样本的一个分布。新样本的数量通常是1000-10000。如果计算成本很小,或者对精度要求比较高,就增加新样本的数量

2. 应用

Bootstrapping 是一种再抽样的统计方法。在标注样本较少非标注样本较多时,通过反复抽样迭代扩充标注样本,数据分布会不断接近真实分布,从而可以解决标注样本过少的问题。

Bootstrapping主要应用在三方面:

① 命名实体抽取

它从一定数量的种子标签数据起始,通过不断的迭代学习过程逐步选出增量样本,并将这些样本扩充到下一轮的训练数据中。通过该过程,Bootstrapping 算法可以逐步学习到数据中的特征直至全局数据的特征。通常而言,在其迭代学习过程中,会配合设定的评分函数每次选取置信度较高的新标注数据加入到训练集中,训练集再逐步扩大的同时将更能代表全局的特征信息,因此,如果能
有效的控制增了样本的置信度,通过 Bootstrapping 算法最终训练得到的模型可以很好的学习到全局数据的特效。

通常,在 Bootstrapping 算法起始前,会将数据分为两部分,一部分是带标注的数据集 L,通常只含有少量,另外一部分是数据集 U 代表大量的未标注数据。之后选择一个特征学习模型 M 与结果评价函数 F。第一步,先用数据集 L 初步训练模型 M,有了该模型后,采用该模型对数据集 U 进行筛选,结合评价函数 F,可以有效的筛选出置信度较高的数据,该部分数据代表模型 M 能够较为确定的增量样本,之后将该部分数据加入到 L 中,同时从 U 中移除该部分数据。如此,该轮的迭代学习即算完成。不断重复该过程直到全部标注完 U 中的数据,最终训练得到的模型 M 将学习到全局特征信息。

② 关系抽取

Bootstrapping学习方法给予的假设是正确的关系实例可以抽取出正确的关系模式,正确的关系模式又可以找到正确的关系实例,从而形成一个完整的迭代。它使用较小数量的标注数据作为种子,反复迭代,最终达到需要的信息规模。

具体的,在关系抽取中,一个种子实例为拥有某种关系的两个实体。首先,对每种关系通过人工标注的方法获得一部分实体对作为种子集,对文档集合进行扫描,收集包含种子实例的文本;然后,分析收集到的文本并提取其中的关系模式;接着,再次使用提取的模板对文档集合进行扫描,找到新的符合关系模式的文本实例;最后,根据扩展的文本实例集合和模板集合获取新的种子实例;重复之前的步骤,直至达到需要的信息规模。

③ 抽取样本(logic forms)。 

在知识库问答中,由于GPU内存有限,不能抽取所有的负样本。如果使用传统的随机取样方法,在取样的数量有限的情况下,可能没法覆盖所有的负样本。此时可以考虑使用Bootstrapping。先使用随机取样 warm start it,然后选择能使模型混淆的负样本以进一步训练模型。

这种使用方法来自论文:

RNG-KBQA: Generation Augmented Iterative Ranking for Knowledge Base Question Answering

3. 评价

使用Bootstrapping的一个原因是,有时不能依赖参数化假设,在某些情况下,bootstrapping比其他非参数方法工作得更好。它可以应用于各种各样的问题,包括非线性回归,分类,置信区间估计,偏差估计,p值调整和时间序列分析等等。接下来我们对Bootstrapping的利与弊进行分析一下。

 

优点:

① 不需要大样本量。它可以用于小型数据集。

② 处理异常值很好。根据乌德米科技博客外部链接:open_in_new在 Medium 上,bootstrapping允许我们在没有任意截止的情况下处理异常值。我们可以依靠被采样的异常值的不太可能性,或者我们可以使用贝叶斯自举来加权异常值,使其低于其他值,而不完全排除它。

缺点:

① 可能需要很长的计算时间。

② 它提供的结果不能被理解为100%确定的正确。会有一定的误差幅度。

③ 当分布不是有限的时,可能会失败。

 

你可能感兴趣的:(KBQA,python,知识图谱,机器学习)