专栏首页机器学习AI算法工程幽默度识别第一名解决方案代码及说明

幽默度识别第一名解决方案代码及说明

幽默是一种特殊的语言表达方式,在日常生活中扮演着化解尴尬、活跃气氛、促进交流的重要角色。

而幽默计算是近年来自然语言处理领域的新兴热点之一,其主要研究如何基于计算机技术对幽默进行识别、分类与生成,具有重要的理论和应用价值。

子任务一:生成幽默识别 **F1**

该子任务是二分类任务,标签有:生成幽默(label=0)、非生成幽默(label=1)。任务采用F1值进行评价

子任务二:中文幽默等级划分 **MacroF**

该子任务是三分类任务,标签有:弱幽默(label=1)、普通幽默(label=3)、强幽默(label=5)。任务采用宏平均(Macro-Average)进行评价。宏平均首先对每一个类统计评价指标值

队伍最终的得分由两个子任务的得分综合决定,即:

Score=0.6*子任务一得分+0.4*子任务二得分

划分内容的幽默程度,不仅可以帮助我们判定聊天机器人是不是真的幽默,还可以帮助聊天机器人,对与之聊天的人进行情绪强度的划分,有的人只是想简单幽默一下,而有的人则隐含较强的幽默意味,掌握这些,聊天机器人就能因人而异选择更适宜的方式服务人类。

两个子任务均是分类任务,按照传统的思想,按照以下步骤进行

1.预训练

2.传统模型/BERT等模型训练与调试

3.local CV 验证

4.模型向下接网络层

5.模型融合

6.其他trick

*对于本题,task1区分度较task2大,任务得分权重较大0.6,task2*0.4,针对任务,应该优先优化task1

*本团队在任务进行当中,发现两个任务存在上下游的关系,尝试使用多任务联合学习,并使用任务二的数据对任务一进行数据扩充,取得了明显的效果。

视频讲解

https://www.bilibili.com/video/av415140402

项目 代码 和 数据集 获取方式:

搜索公众号关注: datanlp

further pre-train BERT or other models on within-task training data and in-domain data

在pretrain下生成预训练模型

1.通过datapro.py对数据进行处理,每段话从中间断开分成两句话,每段话之间用空白行隔开,针对ccl2019幽默度比赛task1和task2,生成了

cclhumortask12_bert.txt,以及加上去年ccl幽默度得比赛数据和我们自行对task1数据翻译生成得到得数据,生成了cclhumortaskalldata_bert.txt

2.通过运行prepocess.py对cclhumortask12_bert.txt和cclhumortaskalldata_bert.txt这两份数据分别在chinese_L-12_H-768_A-12、bert_wwm、bert_wwm_ex

、roberta四个中文预训练模型处理得到了8个文件夹

pytorchmodeltask12_bert_1005

pytorchmodeltask12_roerta_1005

pytorchmodeltask12_wwm_1005

pytorchmodeltask12_wwm_ex_1005

pytorchmodeltaskalldata_bert_1005

pytorchmodeltaskalldata_roerta_1006

pytorchmodeltaskalldata_wwm_1005

pytorchmodeltaskalldata_wwm_ex_1005

3.运行finetune_on_pretrain.py针对上述生成得8个文件夹分别进行预训练,为了不产生太多的文件夹最终生成的pytorch预训练模型

fine-tune

用bert等事先训练好的预训练模型,采用输出的[CLS]token的向量作为特征,向下接线性分类层。

融合策略

对于cv内的每个模型,分别在其预留验证集上对结果进行微调,找到最佳的分类阈值,并用在测试集的预测结果。综合所有模型的微调结果

Multi-task learning(实验中)

为什么多任务学习有效

定义两个任务A和B, 两者的共享隐藏层用F表示。

隐式数据增加机制. 多任务学习有效的增加了训练实例的数目. 由于所有任务都或多或少存在一些噪音, 同时学习到两个任务可以得到一个更为泛化的表示. 如果只学习任务A要承担对任务A过拟合的风险, 然而同时学习任务A与任务B对噪音模式进行平均, 可以使得模型获得更好表示F;

注意力集中机制. 若任务噪音严重, 数据量小, 数据维度高, 则对于模型来说区分相关与不相关特征变得困难. 多任务有助于将模型注意力集中在确实有影响的那些特征上, 是因为其他任务可以为特征的相关与不相关性提供额外的证据;

窃听机制. 对于任务B来说很容易学习到某些特征G, 而这些特征对于任务A来说很难学到. 这可能是因为任务A与特征G的交互方式更复杂, 或者因为其他特征阻碍了特征G的学习. 通过多任务学习, 我们允许模型窃听, 即任务A使用任务B来学习特征G;

表示偏置机制. 多任务学习更倾向于学习到一类模型, 这类模型更强调与其他任务也强调的那部分表示. 由于一个对足够多的训练任务都表现很好的假设空间, 对来自于同一环境的新任务也会表现很好, 所以这样有助于模型展示出对新任务的泛化能力;

正则化机制. 多任务学习通过引入归纳偏置起到与正则化相同的作用, 它减小了模型过拟合的风险, 降低了拟合随机噪声的能力。

提升细节:

task1:

加入任务二数据 +0.04

调整各类损失权重 +0.02

融合模型时学习最佳分类阈值 +0.02

task2:

调整各类损失权重 +0.01

融合模型时学习最佳分类阈值 +0.01

不同batch_size训练模型融合 +0.02

结果对比

本文分享自微信公众号 - 机器学习AI算法工程(datayx)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-07-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 直击 SMP 2018 六大特邀报告,看社会媒体处理的多领域应用

    AI 科技评论按:由中国中文信息学会社会媒体处理专委会主办、哈尔滨工业大学承办的第七届全国社会媒体处理大会(SMP 2018)于 2018 年 8 月 2 日-...

    AI科技评论
  • AI造福人类的关键:打造机器的同理心 | 冯雁教授讲座笔记

    但知名AI学者冯雁有自己的思考。她既有科技的一面,也站在人文的立场,不止于思,也用实际研究成果不断探索。

    量子位
  • 灵异留白事件——图片下方无故留白

    本人在实践过程中偶尔遇见此等不解的状况,但往往睁一只眼闭一只眼,采取另外的方式了,而今看到原博主的一篇文章,大受启发,希望对各位博友也有所帮助~

    超然
  • 有效陈述

    在我的时代,在古罗马,数据科学家被称为 动物内脏占卜的僧人(haruspexes) 。 他们用来表示数据并根据它做出决定的最先进技术是将鸟的内脏传播到神圣的桌...

    iOSDevLog
  • 深度学习能学会幽默吗?TED视频可能有点难

    论文标题:UR-FUNNY: A Multimodal Language Dataset forUnderstanding Humor

    AI科技评论
  • 特斯拉大半夜「见鬼」!空无一人的路上,它却看见「幽灵」秒刹车

    但实际上,其实特斯拉看到的并非是「不干净的东西」,而是被称作「幽灵」(Phantom)的一种攻击自动驾驶辅助系统(ADAS)的图像——掺杂在路边广告牌视频中。

    量子位
  • CSS中的vertical-align跟line-height相互作用

    其中,有个属性值暴露了vertical-align和line-height之间的基友关系,大家猜猜看是哪个属性值?

    javascript.shop
  • 程序员LIYI:如何做好一场演讲?

    这是我在充电平台学习《如何做好一场技术演讲》专栏的笔记。这个专栏是免费的,作者不是一个人,是许多富有演讲经验的大伽集体撰写的。我读了以后,对技术演讲这个事不再怵...

    程序员LIYI
  • 世界首个无监督幽默生成系统诞生,深度学习下一个大战场:讲段子!

    【新智元导读】作者研发了第一个完全无人监督的笑话生成系统,使用的只是大量未标注的数据。这表明生成笑话并不像一般认为的那样,总是需要深度的语义理解。 摘要 幽默的...

    新智元
  • 漫威之父斯坦•李辞世,AI超级英雄为他送行

    当地时间12日,美国传奇漫画家斯坦·李(Stan Lee)在好莱坞一家医疗中心去世,享年95岁。

    加米谷大数据
  • 漫威之父斯坦•李辞世,AI超级英雄为他送行

    当地时间12日,美国传奇漫画家斯坦·李(Stan Lee)在好莱坞一家医疗中心去世,享年95岁。

    加米谷大数据
  • 知识图谱研讨实录07丨肖仰华教授带你读懂知识图谱的众包构建

    众包(Crowd-sourcing)是一种新型的外包模式,它将一群松散的任务发包方(Requester)和任务完成者(简称工人,Worker)联系起来,实现任务...

    博文视点Broadview
  • 高级Python工程师教你如何正确写代码

    我接手的第一样东西就是React UI。我们有一个主要组件,它容纳了其他所有组件。我喜欢在代码中加入一点幽默感,我想把它命名为GodComponent。在cod...

    小小科
  • 使用Taiko + Gauge进行自动化测试(一)

    先来了解一下什么是Taiko:“Taiko是一个免费的开源浏览器自动化工具,由ThoughtWorks开发。它是一个node的库,Taiko使用Chrome D...

    句幽
  • 微软研究院主管Eric Horvitz:我们决定让AI理解幽默

    幽默是人类独有的特质,在日常生活中扮演着至关重要的作用。心理学家指出幽默在人类认知中发挥重要作用,包括它与学习、解决问题过程的惊人联系,以及幽默在社会参与中的重...

    机器之心
  • SAP UI的加载动画效果和幽灵设计(Ghost Design)

    这是Jerry 2021年的第 14 篇文章,也是汪子熙公众号总共第 285 篇原创文章。

    Jerry Wang
  • 风雨20年:我所积累的20条编程经验

     原文作者乔纳森·丹尼可(Jonathan Danylko)是一位自由职业的web架构师和程序员,编程经验已超过20年,涉足领域有电子商务、生物技术、房地产、医...

    用户1289394
  • 【观点】风雨20年:我所积累的20条编程经验

    从11岁时,我就一直在编程,并且一直都很喜欢技术和编程。这些年来,我积累了一些艰难又容易的经验。作为一名程序员,你或许还没这些经验,但我会把它们献给那些想从中学...

    王亚昌
  • 中国香港科技大学教授冯雁:How to Build Empathetic Machines

    主讲人:冯雁 | 香港科技大学 屈鑫 整理编辑 量子位 出品 | 公众号 QbitAI 本文为冯雁教授8月18日于北京创新工场的分享实录整理,分享主题为《How...

    量子位

扫码关注云+社区

领取腾讯云代金券