Home

Awesome

简介

第二届搜狐内容识别大赛冠军LuckyRabbit团队的解决方案,关于参赛细节和详解,请参阅说明文档

代码流程

整个代码分为数据预处理、特征提取、单模型、stacking模型融合、trick部分 img

Input

输入数据是HTML格式的新闻和附带的图片

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

Preprocessing

Feature Extraction

单模型

这里拿一个经典的模型来做一个例子, 我们把ocr提取出来的文本和新闻文本分别输入到同一个embedding层,随后再连接做分类 img 各种模型的得分如下

模型或方法得分F1-measure
catboost0.611
xgboost0.621
lightgbm0.625
dnn0.621
textCNN0.617
capsule0.625
covlstm0.630
dpcnn0.626
lstm+gru0.635
lstm+gru+attention0.640
(ps 由于大赛评分系统关闭了,个别模型得分可能不太准确)

模型融合

Stacking

关于stacking这里有一篇很好的模型融合方法的介绍 我们比赛中使用的stacking模型结构如下图所示 img

Snapshot Emsemble

在stacking第二层模型中我们还加入了深度融合的方法,论文地址

Pesudo Labeling

我们使用的另外一个trick就是pesudo-labeling 方法,它适用于所有给定测试集的比赛 教程

方法效果如下

模型或方法得分F1-measure
单一模型0.642
stacking0.647
stacking+trick0.652

代码结构

|- SOHU_competition<br/> |  |- data          <br/> |  |  |-result  模型输出结果 <br/> |  |  |- ···          <br/> |  |- ckpt           # 保存模型<br/> |  |- img       # 说明图片<br/> |  |- src          # 模型代码<br/> |  |  |- model     # 模型<br/> |  |  |  |- model_basic    # 定义模型训练方法等  <br/> |  |  |  |- attention_model    # 模型定义  <br/> |  |  |  |- ···   <br/> |  |  |- preprocess <br/> |  |  |  |- EDA&Extract.ipynb  # 特征处理和提取流程 <br/> |  |  |  |- ···   <br/> |  |  |- ocr <br/> |  |  |- train&predict.ipynb # 单模型的训练和测试 <br/> |  |  |- stacking.ipynb # 模型融合 <br/>

使用方式:

感谢

感谢两位帅气的队友HiYellowCyupeihua

这里还有我们的答辩PPT,如果需要的话自行下载