今天发烧睡了⼀天T^T,睡醒后突然想起这个都快凉透的订阅号,刷了刷知乎,刷到了这个问题
知乎:如何打造⾼质量的机器学习数据集?
https://www.zhihu.com/question/333074061/answer/773825458
于是就有了暖暖卖萌屋的冲动( ̄∇ ̄)
⽆论是做研究还是解决业务问题,做数据集都是绕不开的问题。很多刚⼊⾏的同学觉得发布⼀个数据集是最容易灌⽔的了,
燃鹅如果你真的做过就会发现,随意产⽣⼀个数据集很容易,但是若以解决实际问题或让⼤家能在上⾯磕盐玩耍为⽬的,来
产⽣⼀个能⽤的、质量⾼的、难度适中的数据集⼀点都不容易,超级费时费脑⼦甚⾄费钱好不好(╯°□°)╯︵┻━┻
虽然并没有刻意的研究数据集该怎么做,不过因为项⽬或研究需要,已经被赶鸭⼦上架的做了近10个数据集了,不过只是
在问答、对话和⼀些分类问题上做过,所以像私信箱⾥“如何构建知识图谱”这类问题就请放过⼩⼣吧╮( ̄▽ ̄””)╭
由于没有很刻意的研究过这个问题,所以就分享⼏个个⼈觉得⽐较重要的点吧,分别是
1. 什么是⾼质量
2. 基本⼯具
3. 数据与标签来源
4. 适可⽽⽌的预处理
5. 验证可⽤性,尽早构造数据集迭代闭环
6. 关于复杂NLP任务
什么是⾼质量
刚⼊坑的⼀些⼩伙伴可能会以为“⾼质量”=“超级⼲净”,于是为了追求“⾼质量”⽽疯狂的预处理,最后哭了╮(╯▽╰)╭。
做数据集⼀般有两种动机。⼀种是为了research,也就是为了造福⼴⼤研究⼈员以及推动领域的进步;
不得不说SQuAD的发布对NLP这⼀波研究热潮的推动作⽤还是蛮⼤的
另⼀种,就是为了使⽤数据驱动的⽅法来优化业务指标,或解决项⽬中实实在在存在的问题。
这两个看似不太相关的⽬的背后对“⾼质量”的定义确是⾮常相近的,那就是:解决问题!
只不过,对后⼀种⽬的来说,问题⼀般来源于线上系统
⼀般来说,在做数据集之前⼀般已经存在⼀套系统了(为了让系统冷启动,⼀般先开发⼀套规则驱动的系统),系统
上线后⾃然会产⽣⽇志,分析其中的badcase便可以知道哪些问题是现有系统搞不定的,这些问题就可以考虑使⽤数据
驱动的⽅法来解决,于是需要做数据集了。⽽解决这些问题就是你做数据集的第⼀⽬标啦。
⽽对于前⼀种⽬的来说,问题⼀般来源于学术界的研究现状
现阶段的NLP研究多为数据驱动的,甚⾄说数据集驱动的。虽然这不是⼀个好现象,不过也不得不承认很⼤程度上推
动了NLP的发展和研究热潮。当现有的数据集⽆法cover领域痛点,或⽆法发挥数学⼯具潜⼒,或已经被解决掉的时
候,就需要⼀个新的数据集,更确切的说是新的benchmark了。