第八届“泰迪杯”数据挖掘挑战赛的一点心得

第八届“泰迪杯”数据挖掘挑战赛的一点心得

前言

  大三下学期,我和我的两位队友一起参加了第八届“泰迪杯”数据挖掘挑战赛,我们选择了C题——“智慧政务”中的文本挖掘应用”,最后获得了一等奖,也算一个比较满意的成绩吧。今天获奖证书到了手上,也该对其做一个总结,然后继续前进。

小目录

本文接下来将由以下几个模块进行展开

  1. 团队分工
  2. 赛题解析与建模
  3. 困难
  4. github地址

part1 团队分工

  我们团队一共有三名队员(我,队员A,队员B),均来自山东大学17级计算机科学与技术学院。我和队员A负责赛题分析,建模,与编程实现,队员B负责论文的论文查找、写作数据、结果的可视化,论文的润色由我们三人共同负责。
  我和队员A都在山大的信息检索实验室,主要研究NLP方向。在实验室的两年,一定量的ML、DL的文献阅读,多个项目的复现,让我们对各个模型的功能,优缺点有一定的了解,并让我们能够独立使用tensorflow、pytorch等工具完成模型的搭建。所以在本次比赛中,C题也正是NLP方向的问题,可以说是运气不错正中下怀,所以我们快速确定题目(对于A、B还是需要各自独立阅读一遍),避免花费大量的时间在选题上。
  由于我和A同学都能够独立的建模与编程,如果同时做相同小题目比较浪费时间与精力,并且最重要的,当两个人的观点出现不同的时候会影响进度。所以我主要负责第一小题与第三小题的可解释性指标,A同学负责第二小题与第三小题1,2问。在各自完成各自的任务的时候,会去查看、询问对方的部分(有助于加深对题目的了解,对答辩的时候有一定的帮助)。

part2 赛题解析与建模

  首先给出本次比赛的赛题地址,感兴趣的可以去看一下赛题地址。由于我负责第一题与第三题的可解释性指标,我以下只对该部分进行讲解。
  第一题——多标签文本分类问题
  解析之前,先得说一句,一定要仔细读题。里面有很重要的信息。其中写道——“参考附件 1 提
供的内容分类三级标签体系”
、“请根据附件 2 给出的数据,建立关于留言内容的一级标签分类模型”。这两句话至少包含以下几个信息:

  1. 附件的三级标签体系仅供参考
  2. 我们需要构建的是一级标签分类模型
  3. 构建模型的标签需根据附件2数据(最后数据的一级标签只是附件1一级标签的子集)。

  然后就是建模的问题,对于多标签文本分类的问题,我们选择使用了TextCNN模型,其为CNN模型的一种变种。我们知道平常的CNN模型能够很好的运用在CV上,一个很明显的特征就是二维的卷积核。对于一维的文本,TextCNN就是将各个字进行编码,比如one-hot、word2vec等手段,转化成形如[0,1,0…],然后将各个字的一维数组合并得到二维的矩阵,便能使用CNN进行卷积扩大获取局部特征。

  代码层面的话,我主要参考的是:[代码链接]
(https://github.com/gaussic/text-classification-cnn-rnn)

TextCNN实验结果:
第八届“泰迪杯”数据挖掘挑战赛的一点心得
  为了进一步提升模型的效果,我们后来又使用了bert,可以达到大概可以达到94%的正确率。

  对于第三题的可解释性,我们在这个地方卡了很久,后来才慢慢有了建模的思路。
  我个人认为这一题还是比较开放,需要言之有理,逻辑自洽,基本上应该都OK。我们组对于可解释性的理解是:答复是否有依据,是否有因果关系。主要从一下四个点进行建模评分

  1. 留言与答复的相关性
  2. 回复文本长度
  3. 信息量H
  4. 因果关系
      其中信息量H我们主要用的是信息熵去表示。
    第八届“泰迪杯”数据挖掘挑战赛的一点心得

  对于因果关系,我们讨论会类、法律类、实地调研类、无可解释性类。这也可以看成一种多标签文本分类问题,可以直接使用第一题的模型,我们用的是tf-idf与svm的手段来解决该问题。
  最后我们获得四个点的评分,进行加权求和作为答复的评分。
  为了评价我们可解释性的模型,我们通过手动标注的300条数据完成了对模型的训练及测试,模型在测试集上达到了88%的准确率。说实话,这个地方我们做的挺无奈的,感觉效果也不是特别好。

part3 困难

  在建模的过程中会遇到不少的困难,比如第一问的textcnn最后的效果并不是特别好,为了进一步提升引入了bert。再引入bert的过程中,卡了不少的bug。
  第三问的评价体系,验证准确性的数据集需要手动标注,这其实很难保证验证集的准确性。
  本次比赛其实给出的数据量并不是特别的大,感觉更偏向于NLP问题建模。同时一开始给出的样本数据很小,很难保证训练出来的模型效果比较好。
  还有一点是答辩的过程,其实过程还是比较顺的,基本上都能够答上来。最后评委给出的一个问题是冗余图表过多,这点我也是赞同的,我们在这个方面做的确实不够。有一些图表可有可无,我们为了论文有更多的图标都放上去反而适得其反,放上关键的图表,讲解图表表现的重要的内容其实就够了。


part4 github地址

本文最后给出相关的代码,希望能够帮助你们。
代码地址

结束语

  泰迪杯对我个人能力的锻炼还是很大,对ML、DL等模型有了更加深入的了解。希望大家有问题有什么疑问或者有什么建议,希望大家能在评论区积极讨论,谢谢大家。