模型融合方式综述

目录

1.投票法 Voting

2.平均法 Avaging

3.排序法

4.堆叠法 Stacking

5.混合法 Blending

6.Bagging

7.Boosting

8.瀑布融合法

9.特征融合法

10.预测融合法

11.embedding融合:


1.投票法 Voting

基本思想:假设对于一个二分类问题,有3个基础模型,现在我们可以在这些基学习器的基础上得到一个投票的分类器,把票数最多的类作为我们要预测的类别。投票需要3个及3个以上的模型,同时建议要保证模型的多样性,有时候对同质模型们使用投票法并不能取得较好的表现,这是因为同质模型得到的结果之间可能具有较强的相关性,从而会导致多数人把少数人的好想法给压下去了。在2014年KDD Cup上,Marios Michailid对所有结果文件计算Pearson系数,最后选取其中相关性小的模型结果进行投票,分数获得提升。

绝对多数投票法:最终结果必须在投票中占一半以上。

相对多数投票法:最终结果在投票中票数最多。

加权投票法:加权的权重可以人工主观设置或者根据模型评估分数来设置权重。

硬投票:对多个模型直接进行投票,不区分模型结果的相对重要度,最终投票数最多的类为最终被预测的类。

软投票:增加了设置权重的功能,可以为不同模型设置不同权重,进而区别模型不同的重要度。

2.平均法 Avaging

基本思想:对于回归问题,一个简单直接的思路是取平均。稍稍改进的方法是进行加权平均。权值可以用排序的方法确定,举个例子,比如A、B、C三种基本模型,模型效果进行排名,假设排名分别是1,2,3,那么给这三个模型赋予的权值分别是3/6、2/6、1/6。平均法适用于回归分类 (针对概率) 任务,对多个学习器的预测结果进行平均。平均法的好处在于平滑结果,从而减少过拟合。

平均法或加权平均法看似简单,其实后面的高级算法也可以说是基于此而产生的,Bagging或者Boosting都是一种把许多弱分类器这样融合成强分类器的思想。

简单算术平均法:Averaging方法就多个模型预测的结果进行平均。这种方法既可以用于回归问题,也可以用于对分类问题的概率进行平均。

                                            

 加权算术平均法:这种方法是平均法的扩展。考虑不同模型的能力不同,对最终结果的贡献也有差异,需要用权重来表征不同模型的重要性importance。

                                             

 几何平均法:受极端值的影响较算术平均法小。

                                            

3.排序法

问题:一些波动小的模型,如果用平均法进行融合,会对最终结果的影响很小,无法体现作用。

实现步骤:

(1) 对预测结果进行排序

(2) 对排序序号进行平均

(3) 对平均排序序号进行归一化

对于新样本的更新方式:

(1)重新排序:将新样本放入原测试集中,重新排序,一旦数据量大,时间复杂度会增加。

(2)参考历史排序:先将历史测试集的预测结果和排序结果保存,新样本进来后,在历史测试集中找到与新样本预测值相近的值,然后取其排序号赋予新样本。之后平均排序,使用历史最大最小值进行归一化操作即可。

4.堆叠法 Stacking

基本思想:基于原始数据,训练出多个基学习器,然后将基学习器的预测结果组合成新的训练集,去训练一个新的学习器。

分类:

  • 单层Stacking
  • 多层Stacking
  • 其它技术与Stacking的结合

问题:

如果训练集和测试集分布不那么一致,那么用初始模型训练的标签 再利用真实标签进行再训练,毫无疑问会导致一定的模型过拟合训练集,这样或许模型在测试集上的泛化能力或者说效果会有一定的下降。因此为解决如何降低再训练的过拟合性的问题,我们一般采用以下两种方法:

(1)次级模型尽量选择简单的线性模型

(2)利用K折交叉验证

5.混合法 Blending

问题:对于stacking,基学习器和元学习器本质上都是用同一训练集训练的 (虽然输入的x不一样,但标签y一样),这就会造成信息泄露,从而导致元学习器过拟合我们的数据集。

实现步骤:对原始数据集先划分出一个较小的留出集,比如10%训练集被当做留出集,那么Blending用90%的数据做基学习器的训练,而10%留出集用作训练元学习器,这样基学习器和元学习是用不同数据集来训练的。

Stacking与Blending的对比:

优点在于:

  • blending比stacking简单,因为不用进行k次的交叉验证来获得stacker feature
  • blending避开了一个信息泄露问题:generlizers和stacker使用了不一样的数据集

缺点在于:

  • blending使用了很少的数据(第二阶段的blender只使用training set10%的量)
  • blender可能会过拟合
  • stacking使用多次的交叉验证会比较稳健

6.Bagging

基本思想:Bagging基于bootstrap(自采样),也就是有放回的采样。训练子集的大小和原始数据集的大小相同。Bagging的技术使用子集来了解整个样本集的分布,通过bagging采样的子集的大小要小于原始集合。

  • 采用bootstrap的方法基于原始数据集产生大量的子集
  • 基于这些子集训练弱模型base model
  • 模型是并行训练并且相互独立的
  • 最终的预测结果取决于多个模型的预测结果

Bagging是一种并行式的集成学习方法,即基学习器的训练之间没有前后顺序可以同时进行,Bagging使用“有放回”采样的方式选取训练集,对于包含m个样本的训练集,进行m次有放回的随机采样操作,从而得到m个样本的采样集,这样训练集中有接近36.8%的样本没有被采到。按照相同的方式重复进行,我们就可以采集到T个包含m个样本的数据集,从而训练出T个基学习器,最终对这T个基学习器的输出进行结合。

7.Boosting

基础思想:Boosting是一种串行的工作机制,即个体学习器的训练存在依赖关系,必须一步一步序列化进行。Boosting是一个序列化的过程,后续模型会矫正之前模型的预测结果。也就是说,之后的模型依赖于之前的模型。

其基本思想是:增加前一个基学习器在训练训练过程中预测错误样本的权重,使得后续基学习器更加关注这些打标错误的训练样本,尽可能纠正这些错误,一直向下串行直至产生需要的T个基学习器,Boosting最终对这T个学习器进行加权结合,产生学习器委员会。

训练过程:

  • 基于原始数据集构造子集
  • 初始的时候,所有的数据点都给相同的权重
  • 基于这个子集创建一个基模型
  • 使用这个模型在整个数据集上进行预测
  • 基于真实值和预测值计算误差
  • 被预测错的观测值会赋予更大的权重
  • 再构造一个模型基于之前预测的误差进行预测,这个模型会尝试矫正之前的模型
  • 类似地,构造多个模型,每一个都会矫正之前的误差
  • 最终的模型(strong learner)是所有弱学习器的加权融合

8.瀑布融合法

瀑布型(Waterfall Model)融合方法采用了将多个模型串联的方法。每个推荐算法被视为一个过滤器,通过将不同粒度的过滤器前后衔接的方法来进行:

在瀑布型混合技术中,前一个推荐方法过滤的结果,将作为后一个推荐方法的候选集合输入,层层递进,候选结果在此过程中会被逐步遴选,最终得到一个量少质高的结果集合。这样设计通常用于存在大量候选集合的推荐场景上。

设计瀑布型混合系统中,通常会将运算速度快、区分度低的算法排在前列,逐步过渡为重量级的算法,让宝贵的运算资源集中在少量较高候选结果的运算上。在面对候选推荐对象(Item)数量庞大,而可曝光的推荐结果较少,要求精度较高、且运算时间有限的场景下,往往非常适用。

9.特征融合法

不同的原始数据质量,对推荐计算的结果有很大的影响。以用户兴趣模型为例,我们既可以从用户的实际购买行为中,挖掘出用户的 “显式” 兴趣,又可以用用户的点击行为中,挖掘用户 “隐式” 兴趣;另外从用户分类、人口统计学分析中,也可以推测用户偏好;如果有用户的社交网络,那么也可以了解周围用户对该用户兴趣的影响。

所以通过使用不同的数据来源,抽取不同的特征,输入到推荐模型中进行训练,然后将结果合并。这种思路能解决现实中经常遇到的数据缺失的问题,因为并非所有用户都有齐全的各类数据,例如有些用户就缺少交易信息,有些则没有社交关系数据等。通过特征融合的方法能确保模型不挑食,扩大适用面。

10.预测融合法

推荐算法也可以被视为一种 “预测算法”,即我们为每个用户来预测他接下来最有可能喜欢的商品。而预测融合法的思想是,我们可以对每个预测算法再进行一次预测,即不同的算法的预测结果,我们可以训练第二层的预测算法去再次进行预测,并生成最终的预测结果。

第二层预测模型可以使用常用的分类算法,如 SVM、随机森林、较大熵等,但达观实践中,融合效果较好的是 GBDT(Gradient Boosting Decision Tree) 方法。

11.embedding融合:

  • 向量拼接、元素级相乘、做out product得到矩阵、求和。缺点是缺乏表达能力
  • Multimodal Compact Bilinear pooling (MCB)[1],首先把两个模态的特征向量独自和未来需要组合的内容共同映射到一个低维空间中,两个低维向量再做out product得到矩阵(作者使用FFT在频域上进行out product以降低计算复杂度,再将结果转换回来)。随后还有Multimodal Low-rank Bilinear pooling (MLB)[2]、Multimodal Factorized Bilinear pooling (MFB)[3]原理都较为类似。
  • Multimodal Residual Networks (MRN)[4]受到深度残差结构的启发,利用神经网络去学习联合embedding并在其中加入shortcuts使其两个模态可以互相影响共同学习映射。

参考:

【1】https://zhuanlan.zhihu.com/p/352455052

【2】https://cloud.tencent.com/developer/article/1614539

【3】https://blog.csdn.net/weixin_43265122/article/details/103363033

【4】https://blog.csdn.net/dong52130/article/details/101300107

你可能感兴趣的:(模型融合方式综述)