第二届搜狐内容识别大赛第一名分享

2018-07-11  本文已影响100人  詹泽诚

第二届搜狐内容识别大赛冠军LuckyRabbit团队的解决方案

本文主要是向大家介绍一下团队的解决方案,具体代码和答辩PPT可以上 github

任务说明

比赛的网站是这里,比赛时长是两个半月、也算是时间很长的一个比赛了

任务要求

比赛的目的是给我们一篇新闻,希望我们给出:

数据格式

数据给出来的是原生的HTML格式,如下:

<title>惠尔新品 | 冷色系实木多层地板系列</title> <p>  </p> <br/><p>  <span style="font-size: 16px;">冷色系实木多层系列全新上市</span></p> P0000001.JPEG;P0000002.JPEG; 

我们要先把HTML解析成可训练的文本和图片

评分标准

官方使用的是F1-measure来进行得分评判
[图片上传失败...(image-de9fe1-1531274249256)]

代码流程

模型融合是打比赛的大杀器,我们团队也是采用了这种方案,下面就来介绍一下我们团队的代码流程。

流程框图

流程框图

流程说明

模型融合部分采用的是stacking策略,并且在第二层接了两个trick。模型最后输出的是分类的结果,在后面会接上规则来提取文本片段,图像部分我们采用的ResNet来进行分类。下面来详细说明各个模块

数据预处理

我们还尝试过文本的其他数据增强手段如Drop和random但是对于这个任务效果并不是很好

特征提取

单模型

深度学习模型

我们联合了新闻文本和图片上的文本信息来构建模型,基本框架如下图所示


模型基本框架

有几点需要注意

机器学习模型

训练方式

模型比较

各种模型的得分如下

模型或方法 得分F1-measure
catboost 0.611
xgboost 0.621
lightgbm 0.625
dnn 0.621
textCNN 0.617
capsule 0.625
covlstm 0.630
dpcnn 0.626
lstm+gru 0.635
lstm+gru+attention 0.640

(ps 由于大赛评分系统关闭了,个别模型得分可能不太准确)

模型融合

我们这里采用的是stacking策略,关于模型融合有一篇很好的文章,在这里分享给大家点击链接

Stacking

我们这里采用的stacking总共是两层,如下图


stacking策略

Pesudo labeling

下面来介绍一个实战利器,看起来没啥用但是跑出来的结果非常好,这里是一篇教程
简单来说,它就是把模型预测出来的测试集的结果,与训练集联合起来,再重新训练模型然后再预测。这样的好处是可以平滑训练集和测试集数据分布的差异。

Snapshot Ensemble

在stacking第二层模型中我们还加入了深度融合的方法,论文地址
它的好处是在一个训练周期里面可以得到多个具有局部最优解的模型、我们可以用这些模型来做融合。
方法效果如下

模型或方法 得分F1-measure
单一模型 0.642
stacking 0.647
stacking+trick 0.652

总结

感谢搜狐能为我们提供这么好的平台和训练数据、奖品真的超级丰富 ,确实是很用心的在办这个比赛。组团打比赛的感觉真的是非常好,希望下次还能有参加的机会。

上一篇 下一篇

猜你喜欢

热点阅读