1. 摘要

  这个比赛的任务是根据题目的文本内容,预测题目的知识点及难度标签,其中知识点包括五个类型,我们需要预测出对应类型的知识点标签。
  在本次比赛中,我们构造了六个独立的模型,模型结构相似,每个模型负责预测不同的目标。我们将题目类型,内容,分析,选项等信息进行拼接后作为输入,模型部分我们使用roberta[3]作为baseline模型,同时使用对抗训练的方法提高模型的鲁棒性。为了解决数据存在不平衡及多个类别样本量太少的问题,我们使用了EDA, AEDA等多种数据增强方法。同时,我们通过知识点近邻匹配方法来提升知识点预测效果,对难度标签进行筛选以及引入伪标签数据进行训练等方法来提升难度预测效果。
  代码已开源,欢迎star:xf-knowledgeClassify2021-top2
  比赛链接:试题标签预测挑战赛
  决赛答辩:答辩视频

关键词

  Roberta 对抗训练 数据增强 近邻匹配 伪标签训练

2. 引言

  随着新一代人工智能技术的快速发展,知识点的更新速度越来越快。目前的现状是知识点命名方式多种多样;同一类知识点命名以及试题难度很难统一等。试题的知识点、难度标签预测的准确与否直接决定了个性化学习的成败。因此,试题标签预测的准确率一直是相关领域研究人员研究的热点。
  本赛事任务旨在为高教领域题库试题预测对应的关键标签,这是一种基于复杂文本数据的NLP任务。本次比赛数据为高等教育体系中的试题数据,包含多种类型(单选、多选、编程等)、多个字段(题干、选项、答案、解析等)以及高教领域多个方向(软件工程、人工智能、计算机汇编语言等)。同时由于高教领域试题本身的特殊性,数据中还包含着大量待处理噪声数据以及编程语句、英文等特殊语句。
  基于数据的复杂性,我们首先对数据进行清洗,采用了多种数据增强方法来丰富数据和处理数据不平衡问题。基于复赛数据,我们将知识点标签预测和试题难度预测分成六个子分类任务,每个任务都基于对抗训练的roberta模型进行训练和预测。 通过数据分析,我们发现该任务的一个难点是类别数多且样本量少,因此我们考虑引入第一阶段的数据做数据补充,同时采用了近邻匹配和伪标签训练等方法来提升预测效果。

3. 方案介绍

3.1 任务介绍

图1:数据集介绍

  这个比赛的任务是根据题目的题目,类型,解析,选项等文本内容,预测题目的知识点及难度标签,其中知识点包括五个类型,我们需要预测出对应类型的知识点标签。

3.2 数据清洗

  首先,我们进行数据清洗。这一部分主要是对一个样本存在多个标签的数据进行清洗。
  1.清洗同一题目同一知识点层级下存在多个知识点标签的数据
  2.清洗同一题目存在多个难度标签的数据

图2:多个知识点标签样例(左图);多个难度标签样例(右图)

3.3 数据分析

  我们分析了知识点和难度下的数据分布情况,发现整体数据存在数据不平衡的问题。通过对图3.2进行分析,我们发现难度标签有两个类别明显异常,后续需要做进一步处理。另外,图3.3表示知识点KL类型的样本分布情况,横坐标是样本数,纵坐标是类别数,比如第一个柱子表示样本数为1的类别有100多个,大部分类别的样本数少于五个,所以KL类型的数据不仅存在数据不平衡的问题,而且各类别的样本数极少。

4. 基准模型


  模型部分,在本次比赛中,我们构造了六个独立的模型,模型结构相似,每个模型负责预测不同的目标。我们将题目类型,题目内容,题目分析,选项等信息进行拼接后作为输入,模型部分尝试了roberta, bert, roberta-large等模型,另外,我们知道,BERT的每一层能够捕捉到不同的特征,因此我们探索了不同层输出的结果,包括只取最后一层CLS token,取首尾两层CLS token做mean pooling,取最后四层CLS token做max pooling等方法,最终,在精度和效率两方面做了权衡,取了roberta接最后一层CLS token的方法作为我们的baseline模型。
  另外,为了提高模型的鲁棒性,我们还使用了对抗训练的方法。具体为在模型的embedding层添加了FGM方法,通过对抗的思想,往增大损失的方向增加扰动,同时模型在参数上进行梯度下降,以此达到对参数进行正则化的作用,提升模型鲁棒性和泛化能力。

5. 优化方案

5.1 数据增强

  通过前面的数据分析,我们知道数据存在不平衡及多个类别样本量太少的问题。因此,我们认为数据增强会是一个非常有效的提分手段。首先,我们做了EDA增强[],包括同义词替换,随机插入,随机交换,随机删除等;除此之外,我们还做了AEDA增强[],也就是在句子的不同位置添加标点符号,AEDA方法增加了噪声,但不改变原始文本的序列信息,是一个有效的文本增强手段。另外,我们还采用动态增强的技术,针对以上五个增强方法,我们在每个epoch上都进行随机采样,最大化模型对新数据的接纳数量,提高模型泛化能力;最后,我们对增强数量也进行了超参数的调整。图5.1是我们的方法在线上的结果,可以看到,相对baseline模型,我们的数据增强方法有接近5个百分点的提升,而且每个子模块都能带来一定的提升效果。

  另外,我们还使用上述数据增强方法在每个类型下进行实验并做对应的结果分析,具体分析如下图所示,得到的结论是:数据增强不一定在每个类型下都有效果,需要根据数据的具体情况具体分析。

5.2 知识点近邻匹配

  通过前面的数据分析,我们知道该任务的一个难点是类别数多且样本量少,因此我们考虑引入第一阶段的数据做数据补充。但引入阶段一数据需要解决的一个问题是两个阶段的知识点类型是不一样的,没办法直接使用。因此,我们联合阶段一数据和阶段二的训练集,通过最近邻阈值约束的方法来进行知识点映射。
  具体映射方法如图5.3所示,针对阶段一的每一条数据,我们取阶段二中同个类型下的样本进行相似度计算,取出相似度大于阈值的topk个样本,对k个样本的知识点进行投票,从而得到阶段一知识点所映射到的阶段二知识点标签。

  得到知识点映射表之后,我们将阶段一数据添加到阶段二的训练集中,一起放进roberta模型中进行训练。整体流程如图5.4所示:

  在测试阶段,我们将测试集与训练集计算相似度找到最相似的样本,如果相似度大于阈值,则将相似样本对应的知识点作为标签,否则通过Roberta模型进行预测,得到最终的知识点结果。
最终,通过模型预测和相似题匹配相结合的方法,比只使用模型预测的效果提升了3.5个百分点左右。

5.3 难度类别优化

  同时,我们还对难度类别进行了优化。
  第一个优化点是对难度标签类别进行筛选。原始的难度类别总共有7个:-1-5,从前面的数据分析,我们知道0类别只有一个样本,-1类别样本数接近总样本数的70%,这会严重干扰其他5个类别的学习,同时测试集中存在部分-1类别的数据,基于以上情况,我们舍弃了0类别和-1类别,只选取了1-5类别进行训练和预测,最终,该方法能够带来1个多点的提升。

  另一方面,我们同样在难度标签预测部分引入了阶段1的数据,但因为两个阶段的数据在分布上存在较大差别,直接使用全量数据会带来较大的噪声,因此我们构造了一套方法来进行数据筛选。首先,对阶段1的训练数据与阶段2的测试数据进行编辑距离的计算,取出编辑距离小于0.1的样本作为补充样本,另外,得益于第一步对难度标签的筛选,阶段1和阶段2的难度标签都是1-5,所以我们直接做点对点的映射,使用映射后的标签作为伪标签,以此将对应数据添加了训练集中,最后使用roberta模型进行训练和预测。

4. 总结

  在本次试题标签预测比赛中,我们使用了roberta-base模型作为基准模型,构建了六个子模型预测不同的任务,使用多种数据增强方法缓解数据量不足及数据不平衡问题,针对知识点预测任务,我们引入阶段一数据并使用模型预测和相似题匹配相结合的方法进行优化,针对难度标签预测任务,我们通过难度标签类别筛选以及引入阶段一伪标签数据进行联合训练两个方面进行优化。
  当然,我们的方案还有进一步优化空间。针对试题数据,可考虑使用实体增强方法提升效果,使用R_drop[]方法进行正则优化,除此之外,也可以使用对比学习以及模型融合等方法来提升模型整体性能。
  最后,感谢科大讯飞提供的AI开发者平台和相关的比赛支持,感谢CVTE研究院提供的GPU计算资源,感谢队友的无私奉献。

References
[1] Huang, S., Wang, J., Xu, J., Cao, D., & Yang, M. (2021, November). Recall and Learn: A Memory-augmented Solver for Math Word Problems. In Findings of the Association for Computational Linguistics: EMNLP 2021 (pp. 786-796).
[2] Wang, J., Fang, J., Xu, J., Huang, S., Cao, D., & Yang, M. (2019, October). MOC: Measuring the Originality of Courseware in Online Education Systems. In Proceedings of the 27th ACM International Conference on Multimedia (pp. 1952-1960).
[3] Liu, Y., Ott, M., Goyal, N., Du, J., Joshi, M., Chen, D., … & Stoyanov, V. (2019). Roberta: A robustly optimized bert pretraining approach. arXiv preprint arXiv:1907.11692.
[4] Wei, J., & Zou, K. (2019, November). EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks. In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP) (pp. 6382-6388).
[5] Karimi, A., Rossi, L., & Prati, A. (2021, November). AEDA: An Easier Data Augmentation Technique for Text Classification. In Findings of the Association for Computational Linguistics: EMNLP 2021 (pp. 2748-2754).
[6] Liang, X., Wu, L., Li, J., Wang, Y., Meng, Q., Qin, T., … & Liu, T. Y. (2021). R-Drop: Regularized Dropout for Neural Networks. arXiv preprint arXiv:2106.14448.
[7] 比赛官方地址:http://challenge.xfyun.cn/topic/info?type=test-questions

2021科大讯飞试题标签预测挑战赛亚军方案总结相关推荐

  1. 科大讯飞2019机械核心部件寿命预测,亚军方案

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 一.背景 预测性维护是工业互联网应用"皇冠上的明珠",实现预测性维护的关键 ...

  2. 2022科大讯飞-房屋租聘价格预测挑战赛 Top2方案

    1:引言 Hello,大家好,我是小k,一名即将大三的大数据专业的学生.接触机器学习的这一年,参加陪跑的比赛数不胜数.也从之前抱着学习的态度参赛慢慢过渡到想当前排拿证书拿奖金. 本次比赛是我参加比赛以 ...

  3. 科大讯飞:电信客户流失预测挑战赛baseline

    文章目录 一.查看各字段中分布情况 1.2 使用pandas_profiling自动分析数据 二. 使用baseline参数训练 三.Null Importances进行特征选择 3.2 计算Scor ...

  4. 对“科大讯飞2021丨广告点击率预估挑战赛 Top1方案(附完整代码)_Jack_Yang的博客-CSDN博客”的补充。

    这篇文章的初衷是针对科大讯飞2021丨广告点击率预估挑战赛 Top1方案(附完整代码)_Jack_Yang的博客-CSDN博客进行补充. 博客的信息量很少,对任务背景的介绍也不太对,说实话令人费解.我 ...

  5. 2022科大讯飞商品销量智能预测挑战赛—参赛总结

    2022科大讯飞商品销量智能预测挑战赛-参赛总结 目录 2022科大讯飞商品销量智能预测挑战赛-参赛总结 摘要 赛题任务 特征构建 训练方案 模型融合 赛题得分 写在最后 摘要 比赛网址:https: ...

  6. 2021科大讯飞-X光安检图像识别赛Top1方案!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:宋志龙.王威,啄云智能GOAT战队 大家好,我们是来自浙江啄云智能 ...

  7. 百度吃鸡排名预测挑战赛第六名方案(基于PyCaret)

    序言 笔者参加百度吃鸡排名预测挑战赛位列第六名,现将方案给出,欢迎批评指正,如有想上车参赛的同学请私信联系,另外提供代码和模型预测文件. 比赛介绍 <绝地求生>(PUBG) 是一款战术竞技 ...

  8. 7月17日上午,阿里AE技术团队直播专场,分享CVPR挑战赛冠军、亚军方案!

    ⚡既6月份火热举办的将门TechBeat人工智能社区CVPR 2022 云际会之后,⏰北京时间7月17日(本周日)上午10点,我们很开心迎来AliExpress技术团队的潘攀.邢政.徐道奇三位技术专家 ...

  9. 车辆贷款违约预测挑战赛

    2021科大讯飞-车辆贷款违约预测挑战赛--方案 简介 车贷违约预测问题,目的是建立风险识别模型来预测可能违约的借款人.预测结果为借款人是否可能违约,属于二分类问题. 偏数据挖掘的比赛,关键点是如何基 ...

最新文章

  1. 微信小程序填坑之路(三):布局适配方案(rpx、px、vw、vh)
  2. GCB | 南土所冯有智组揭示了温度非线性的控制了全球土壤腐生真菌地理学分布...
  3. 程序员客栈携手野狗 体验国内领先的实时后端云协作
  4. 《拆弹专家2》观后感
  5. Python os和os.path的基础知识与常用操作
  6. graalvm_GraalVM上的Picocli:极快的命令行应用程序
  7. react-native页面间传递数据的几种方式
  8. 进程与服务的签名_服务器被黑客攻击后如何查找溯源攻击
  9. 计算机的新应用论文,计算机教学应用的新创新模式论文原稿
  10. int 为什么是2147483647_「2147483647」当int类型超出了[-2147483648,2147483647]会发生什么? - seo实验室...
  11. GIT学习笔记——1.2 起步 - Git 简史
  12. 基于Web的在线教师备课系统
  13. 1.0 信息化与信息系统
  14. JavaScript - 自定义鼠标右键菜单
  15. activiti实现的请假流程
  16. 敏捷开发之XP极限编程
  17. kmeans初始中心不同结果可能不同 (举例)
  18. JS调用新旧windowsMedia的方法
  19. JavaScript-空位补零
  20. zabbix添加邮件报警机制

热门文章

  1. oracle php一键安装,Oracle8.1.6i+ Apache1.3.14+PHP4.0.3完全安装实例
  2. 习题8-6 删除字符(多种方法详解)
  3. 博士 关于如何做科研?如何阅读文章?如何写综述?等问题……
  4. Win11网络适配器错误代码(10)WLAN消失
  5. 全球安全资讯精选 2017年 第七期: Equifax 泄漏 1.43 亿用户数据
  6. c语言食堂菜谱管理系统,基于C语言的食堂菜谱管理系统
  7. Java中原生(native)函数的用法
  8. 高通平台蓝牙--清除alarm issue
  9. 验证千字文中有没有重复的字。
  10. mysql建表时插入中文_Mysql新建表,插入中文时报错“Incorrect string value: '\xE4\xBD\xA0\xE5\xA5\xBD' for column”问题...