搜狐情感分析×推荐排序算法赛最强baseline

机器学习初学者

共 1636字,需浏览 4分钟

 · 2022-04-18

赛题名称: 搜狐校园"情感分析×推荐排序"算法大赛

赛题链接: 

https://www.biendata.xyz/competition/sohu_2022/

比赛任务:

task1: 面向实体对象的文本描述情感极性及强度分析。

task2: 利用用户文章点击序列及用户相关特征, 结合task1做出的情感分析结果, 预测用户是否会对文章进行点击。

评价指标:

task1: macro-F1

task2: gAUC

数据说明:

task1: 

每条样本包含一个文本编号、一条文本内容、文本中需要分析的实体对象,以及每个对象的情感极性(标签,测试集需要预测)。

task2:

每条样本包含pvId,用户id,点击序列,用户特征,待预测文章id和当前时间戳,以及用户是否点击(标签列,测试集需要预测)。

样本中的文章会以附件文件给出具体内容,选手需要将task1做出的情感极性预测结果,运用到task2的点击预测中来。

赛题解析:

task1:

这里提供一个解题思路, 将每一条文本和对应的n个实体对象分别编码作为输入,传递给BERT、DeBERTa等开源预训练模型进行特征提取,最后使用自定义分类器进行分类.

实践经验:

1、划分训练集和验证集时,要考虑到同一条文本不能出现在不同的fold里,以及不同fold里5种类别的分布比例保持一致;

2、使用预训练模型提取的特征形状是 batch大小 × 文本编码长度 × 隐含层维度, 可以在文本编码长度的维度取平均将输出压缩到 batch大小 × 隐含层维度, 再传递给一层 nn.Linear进行进一步分类,得到形如 batch大小 × 类别数量的输出,代表的意义是每个输入在每个可能的类别上的得分,得分越高可能性越大;

3、在预训练特征和分类器之间加入multi-sample dropout可以加速模型收敛;

4、在Tesla V100 32G的环境下,使用deberta-v3-base模型作为特征提取器,取最大长度为512,训练一个epoch大约需要1小时,5个epoch可以收敛,并且单模在推理阶段速度为60条/s, 在满足比赛规则(单条小于500ms)的条件下,可以融合的base单模数量在25个左右。

5、后续优化: 多种预训练模型微调后融合(huggingface开源的DeBERTa-v3-large在GLUE上效果最佳)、分层学习率、梯度裁剪、动态校验区间、自定义分类器、使用Dice Loss针对比例不均衡的类别设置动态损失权重、在算力足够的情况下也可以使用FGM或者AWP进行对抗训练等。

task2:

这个一个二分类任务;

特征方面: 数据中类别型变量比较多, 用NN模型可能效果较好, 也可以尝试使用target encoding技术, 值得深入挖掘的是点击序列相关的特征;

待选模型包括: lightgbm, NN

baseline代码

我们的开源项目AutoX仓库中提供了本赛题的baseline代码, task1中可以达到0.659的效果, baseline地址: 


https://github.com/4paradigm/AutoX/blob/master/competition_baseline/biendata_sohu_2022/task1_baseline.ipynb


训练好的模型的权重文件以及train log链接:


https://pan.baidu.com/s/1f6JLTKzhcT9x9PzUKbcc0w 

提取码: nw3n

开源项目地址

https://github.com/4paradigm/AutoX


点击阅读原文参加比赛。

往期精彩回顾





浏览 53
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报