0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

数据之殇?我们究竟需要怎样的数据?

深度学习自然语言处理 来源:夕小瑶的卖萌屋 作者:Severus 2021-07-04 11:19 次阅读

小编注:前段时间,小屋介绍了吴恩达老师近期发起的以数据为中心AI 竞赛。吴恩达老师认为:工业界已经具备较为成熟的算法和代码体系,现在更加缺少的是一套成熟的构建工业化数据集的方法论。然而,正如图灵奖得主 Judea Pearl 教授所质疑的那样:“在不知道什么是质量更好的数据的基础上提升数据质量是不太现实的”。对于这个问题,本文作者由关系抽取任务说起,探讨了一些可能的答案——我们究竟需要怎样的数据?

前段时间,我的项目正在准备开源发布,补充项目在一些任务上的表现,以作为开源之后可以宣传的点。我们项目的一大特点是十分擅长应对挖掘任务,因而我们自然也就想蹭波热度,在某关系抽取评测任务上试了一下效果。

在此之前,我们的项目在一些其他挖掘任务上的表现一直是可以的,但是在那个关系抽取数据上,我们就翻车了,无论是我们的 baseline 还是增强模型,都无法打出来差异化的分数。其实简单来讲,就是:单纯使用标注方法,怎么样都无法提升了。

数据之殇

实际上,对于几乎所有的公开评测任务,我都会本能地怀疑它的数据是什么样子的,尤其在我看到了榜单之后。例如细粒度实体识别任务 CLUENER。它的 baseline 评测在某些类别上,连 BiLSTM+CRF 的结果都已经超过了人类(甚至可以说是远超)。当我看到了这个榜单,自然就会本能地怀疑这个数据是有问题的。CLUENER 数据集暂且按下不表,我们继续说关系抽取数据集。

对于让我的项目遭遇了滑铁卢的那个关系抽取数据集,它的主要的问题则是:无论我在模型上做什么样的改变,效果的差异都是不稳定的(更换了随机种子之后,不同模型结构的rank也会改变)。那我自然也要去看一看数据有什么问题了。

随机抽取了 train 和 dev 评估之后,果然印证了我的思想。在 train 和 dev 上,在单条数据粒度上,分别存在 42% 和 37% 的数据错误,其错误包括关系错误、关系不全,以及句子中不存在的关系被标注成了答案。而我无论怎么更换模型结构,方法也都是简简单单的标注算法,就必然会存在标签上的冲突。对于模型来讲,尤其是“学习了一些知识”的预训练语言模型来讲,自然就 confuse 了。

当然我也理解这种数据会出现,因为关系抽取数据在构造的时候,基本都是用已有的图谱 SPO 数据去反查文本,通常 S 和 O 在某一个句子里面共现了,就认为该句中存在这种关系了。

注:SPO 指 三元组,是知识图谱用于描述一条知识的基本形式。

这种数据构造方法当然一定是有问题的。这个数据的质量一看也自然是未经review的。甚至说,在学界,大家在打榜的绝大多数公开数据,可能都或多或少存在着不可忽视的噪音问题,例如最近在比的某领域比赛的某一个数据之中,就存在这种东西。这让我不禁有了一个疑问:当数据有不可忽视的噪音问题的时候,榜单上的高分导向的就是更好的模型吗?如果答案是否定的,那这些比赛的意义在哪里呢?只是在消耗多余的算力,挤占业务的用卡时间吗?

我们需要什么样的数据

关系抽取数据中存在这样一个例子:

汪涵曾多次在天天向上中展示自己高超的厨艺。

这句话,数据中标出来的答案是S:天天向上,P:主持人,O:汪涵。乍一看好像没有问题。但是我们仔细想一想:如果排除掉所有的背景知识,我们看这个句子会得到怎样的理解?是否真能推断出“主持人”这一关系?

排除背景知识,只看句子本身:汪涵貌似是一个人,天天向上似乎是一个节目——汪涵可能参加过天天向上。这个是我们通过中文的常识知识和句式知识能够推断出来的信息

更进一步,即使我们给出一些特化信息,即“汪涵是著名主持人”,天天向上是综艺节目”。在带有这样的先验下,我们又能推断出来什么信息呢?汪涵是一个主持人,但主持人参加综艺节目未必就是主持综艺节目。比如主持人马东参加过脱口秀大会,但他只是嘉宾。所以,对于“汪涵”和“天天向上”这两个个体,我们从这句话中还是只能推断出参加关系。

那模型怎样才能知道这个关系?看上去只有通过这个训练样本,让模型自己强行记住这个关系了。(当然还有一种可能是:模型从别的句子里面学到了“汪涵主持天天向上”的知识,然后在这个句子里面应用到了。但如果是这样,那这个训练样本的用处是什么呢?)

或许有的朋友会反驳说:在训练关系抽取任务的时候,就是想让模型去过拟合一些东西的。也就是说,直接将汪涵和天天向上两个实体完全绑定起来,形成主持关系,这样在榜单上就可以打高分了。然而,如果以这样的方式去拟合S和O的名字,就要保证测试集和真实使用场景中一定会出现类似的情况。

如果过拟合这个句式里面出现的S和O一定是主持,一定会在其他场景中遇到问题。比如下面这个例子:

张杰也多次在快乐大本营上表现了对谢娜的爱意。

这句话和“汪涵曾多次在天天向上中展示自己高超的厨艺”的句式十分相像。那张杰和快乐大本营又是什么关系呢?实际上,数据中甚至可能会标注出张杰和谢娜的夫妻关系,以及谢娜是快乐大本营的主持人。但这两条关系在这句话中都没有直接的体现。

我们再看CLUENER中的一个例子:

去年我们凭借《现代战争1》大获成功,其辉煌业绩让众多业界老手大跌眼镜。

其中,现代战争1被标注成为了游戏。

这个例子,我想我没有必要做过多的解释了。人没打过这游戏的,确实标不出来。同理,没了解过赛博朋克2077的人,可能也不太会知道波兰蠢驴这个名字。

(实际上这个问题也有提到issue里面,但是权威大佬们也没有理会我......)

另外,还有在研究中文分词的时候经常会举的一个所谓疑难杂症般的例子:

南京市长江大桥

实际上,这句话两种切分方式都是合理的,都符合我们的常识认知,只不过可能有一个不是事实。那么其实我认为,对于模型来讲,就不必过分纠结于这条数据会被切分成哪一个。

模型真正要去区分的,其实是下面两个句子:

南京长江大桥位于南京市鼓楼区下关浦口区北之间

南京市长江大桥因严重违纪违法问题被立案检查

举了那么多例子,其实是想说:我们在衡量一个数据好坏时,似乎应该遵循这样一个逻辑——如果仅利用任务规则中允许我们用到的知识,人类能否有能力得到该样本中给出的答案?如果能,则这条数据是一个好的数据;如果不能,则一定会对模型形成误导。所以在判定一条数据的时候,我们应该去回顾这几乎本能做出判断背后的思考过程。如果我们不知道答案,通过思考也得不到这个答案,为什么要让模型去得到这个答案呢?

我们在用数据和任务的形式去建模这个世界,并基于此去指导模型去学习。这一过程其实与我们教育人类幼崽的方式、或者我们自己去理解新知识的方式,是类似的。毕竟,我们现在还不具备凭空描述知识的能力,只能把人类一直在经历的学习过程加诸到模型身上。

在预训练的阶段,我们貌似让模型学到了部分语法知识,以及通过大量的事实知识让模型部分学到了常识知识,但远远没做到让模型去记忆事实,实际上也记忆不过来,又怎么指望模型在任务中直接就能搞定那些仅仅包含事实的判定呢?

题外话,由于我是做解析的,所以实际上我是没有那么支持领域预训练的。因为具体领域和所谓通用域的区别,更多是在于专名(命名实体、术语等)的区别,但表达是相对固定的。还是类比人类,哪怕一个人不是医生,他看到自己的病历的时候,除了可能看不懂疾病、临床表现、药物,医疗程序等等的专业术语,也能大概能看懂这个病历的一些意思。无论领域专业性多强,它也是“人话”。在做解析挖掘的时候,我们也应让模型着重去看懂人话的部分,而不是依赖那些专业的部分。是否不需要让模型见过那些专业的东西,也能做到效果不错?当然这个思路比单纯去做模型繁琐得多,产出也慢得多。

任务回归应用

回归到更本源的问题,关系抽取任务是为了做什么的?

其实最初关系抽取任务是为了辅助构造结构化知识。随着知识图谱越来越多,关系抽取模型已然可以基于已有数据知道一些知识了。此时,我们的需求可能就变成了“通过新的事实描述文本去挖掘补充新的知识”。更准确地说,我们希望:模型能够基于已有知识图谱中的信息,从新的文本中挖掘出新的关系,从而与时俱进地补充和更新现有知识图谱。

当然这种“新的关系”不是类似于“爸爸的爸爸是爷爷”的关系。工业应用已经证明了,这种关系写规则更香。需要补充的是真正的新关系,比如新婚,比如新参演电影,比如新主持节目等。

所以其实在定义任务的时候,应该询问这样几个问题:

这个任务想要导向什么样的模型?

这个任务做好了之后能干什么?

这个任务能不能做?

而不是直接拍脑门想出来了这么个任务,然后就随手弄一波数据发出来了。这样只会让学界与工业界越来越剥离,只会让研究越来越没有用,只会让顶会做的这种种事情越来越变成消耗多余的电力。

同时在数据上,也应该有上面所提到的思考。给出的数据,也应该符合实际会应用到的需求。现在看来,部分领域任务或许能做到这个。

否则,最终也只会导向越来越无意义的卷。

所幸,或许,业界有去重新思考数据的趋势,例如Ng老师的新比赛。但,前路茫茫,不知这束光,是否长久。

责任编辑:lq6

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6774

    浏览量

    88665
  • 模型
    +关注

    关注

    1

    文章

    3084

    浏览量

    48605

原文标题:在错误的数据上,刷到 SOTA 又有什么意义?

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AI时代,我们需要怎样数据中心?AI重新定义数据中心

    超过60%的中国企业计划在未来12至24个月内部署生成式人工智能。AI、模型的构建,将颠覆数据中心基础设施的建设、运维和运营。一个全新的数据中心智能化时代已经拉开序幕。
    发表于 07-16 11:33 549次阅读
    AI时代,<b class='flag-5'>我们</b><b class='flag-5'>需要</b><b class='flag-5'>怎样</b>的<b class='flag-5'>数据</b>中心?AI重新定义<b class='flag-5'>数据</b>中心

    AI智能眼镜都需要什么芯片

    国内的厂家又该如何跟上这一潮流趋势?那咱们国内厂商的AI智能眼镜究竟需要什么样的芯片来支撑它的运行呢?如果你对以上问题感兴趣的话就来听我唠唠吧。接下来介绍设计AI智
    的头像 发表于 07-11 08:17 725次阅读
    AI智能眼镜都<b class='flag-5'>需要</b>什么芯片

    数据起步之前我们需要注意些什么?

    超级传感器的企业就意味着其掌握了对大数据应用至关重要的用户信息数据。那么,在真正开始其大数据应用之前,我们需要在起步时注意些什么? 创意比
    的头像 发表于 07-10 14:51 268次阅读

    我们需要怎样的大模型?

    AI时代,我们需要怎样的大模型?这个问题尽管我们无法给出一个确定的答案,但显而易见的是,用户的选择正逐渐汇聚成一股趋势。6月28日,在WAVESUMMIT深度学习开发者大会上,百度公布
    的头像 发表于 07-03 08:05 112次阅读
    <b class='flag-5'>我们</b><b class='flag-5'>需要</b><b class='flag-5'>怎样</b>的大模型?

    揭秘自动驾驶:未来汽车的感官革命,究竟需要哪些超级传感器?

    ,激光雷达技术受到极大关注,被誉为“激光雷达元年”,凸显了传感器在自动驾驶中的重要性。那么,自动驾驶汽车究竟需要哪些传感器呢? 自动驾驶汽车所需的传感器 要了解自动驾驶汽车所需的传感器类型,首先需要明确这些传感器的功能。自动驾
    的头像 发表于 05-31 09:14 461次阅读

    STemwin究竟需要多大的内存?

    大家有没有对STemwin特别了解的,STemwin究竟需要多大的内存?就拿例程
    发表于 05-13 06:37

    在STM32F407官方LWIP例程中,怎样修改把需要发送的数据直接由应用层映射到数据链路层?

    STM32F407官方LWIP例程中,怎样修改把需要发送的数据直接由应用层映射到数据链路层,但又不会影响到LWIP堆栈的接收发送。
    发表于 04-29 06:21

    STM32擦除后数据究竟是0x00还是0xff ?

    STM32擦除后数据究竟是0x00还是0xff ,百度查了许多发现大多数都是0xff的多,都说SD卡(TF)储存介质是Flash 所以擦除后为0xff,但是我遇到了读出来的数据是0x00的情况,为什么呢
    发表于 04-18 07:59

    AI加持下的数据中心,需要怎样的高速接口技术?

    、人工智能的发展,必须要解决如何增强算力、存力和运力的问题。那么高速的数据传输是不可缺少的核心环节。在此背景下,我们需要前瞻布局哪些数据传输的接口技术来适应发展呢?最近,Rambus
    的头像 发表于 01-08 09:15 1677次阅读
    AI加持下的<b class='flag-5'>数据</b>中心,<b class='flag-5'>需要</b><b class='flag-5'>怎样</b>的高速接口技术?

    ad7779数据输出接口和单片机该怎样连接?采用哪种通信协议来接收数据

    AD7779有两种不同接口:SPI和数据输出接口。问题1:数据输出接口和单片机该怎样连接,到底采用哪种通信协议来接收数据?I/O口?USART?SPI?或者说是并口协议。还是说主控芯片
    发表于 12-07 07:42

    现代设计,需要怎样的 PMIC?

    现代设计,需要怎样的 PMIC?
    的头像 发表于 12-05 17:42 469次阅读
    现代设计,<b class='flag-5'>需要</b><b class='flag-5'>怎样</b>的 PMIC?

    weblogic修改数据需要重启吗

    需要根据不同的情况来决定。 首先,我会介绍WebLogic数据源的基本概念和作用,然后会解释在不同的情况下修改数据源是否需要重启,最后进一步讨论
    的头像 发表于 12-05 16:09 1205次阅读

    LTC2668接收来自FPGA的数据后,经过转换需要数据经所有通道口同时输出,输出时有没有相位差?

    LTC2668接收来自FPGA的数据后,经过转换需要数据经所有通道口同时输出,输出时有没有相位差?如果有要怎样解决
    发表于 12-01 07:04

    工程监测数据采集需要哪些技术

    工程监测数据采集需要哪些技术 振弦式传感器 工程监测 工程监测数据采集需要以下技术 传感器技术:通过安装传感器来收集工程监测数据,例如温度、
    的头像 发表于 11-24 10:43 586次阅读
    工程监测<b class='flag-5'>数据</b>采集<b class='flag-5'>需要</b>哪些技术

    什么是SerDes呢?为什么我们需要此项技术呢?有哪些设计要求和技巧?

    什么是SerDes呢?为什么我们需要此项技术呢?有哪些设计要求和技巧? SerDes(Serializer/Deserializer)是一种用于将串行数据转换为并行数据(seriali
    的头像 发表于 11-07 10:26 1732次阅读