天池-新冠疫情相似句对判定大赛top6方案及源码
点击上方,选择星标或置顶,每天给你送干货!
阅读大概需要7分钟
跟随小博主,每天进步一丢丢
转载:AILIGHT
整理:AI算法之心公众号
Hi,大家好!这里是AILIGHT!AI light the world!这次给大家带来的是天池-新冠疫情相似句对判定大赛top6(并列)的代码开源。
比赛传送门:https://tianchi.aliyun.com/competition/entrance/231776/introduction
这次是常规的NLP赛题-语义相似度匹配。在之前的也有很多同类型的比赛,大家有兴趣的都可以了解了解。链接:https://ai.ppdai.com/mirror/goToMirrorDetail?mirrorId=1 https://tianchi.aliyun.com/competition/entrance/231661/introduction
Part 1 任务描述
比赛主打疫情相关的呼吸领域的真实数据积累,数据粒度更加细化,判定难度相比多科室文本相似度匹配更高,同时问答数据也更具时效性。本着宁缺毋滥的原则,问题的场地限制在20字以内,形成相对规范的句对。要求选手通过自然语义算法和医学知识识别相似问答和无关的问题。评估指标:准确率
Part 2 语义匹配算法简要介绍
文本匹配是自然语言处理中一个重要的基础问题,自然语言处理中的许多任务都可以转为文本匹配任务。如网页搜索可抽象为网页同用户搜索 Query 的一个相关性匹配问题,自动问答可抽象为候选答案与问题的满足度匹配问题,文本去重可以抽象为文本与文本的相似度匹配问题。
这次的比赛是一个语义相似度计算的任务,不能只停留在字面匹配层面,更需要语义层面的匹配,不仅是相似度匹配,还包括更广泛意义上的匹配。
随着深度学习技术的逐渐兴起,基于神经网络训练出的 Word Embedding 来进行文本相似度计算的实践越来越多。Word Embedding 的训练方式更加简洁,而且所得的词语向量表示的语义可计算性进一步加强。
从最开始的DSSM, Match-LSRM, MatchSRNN到后面的ESIM,BIMPM,DIIN再到现在的bert。由于bert的显卡要求相对高一些,所以我们先简单介绍一下简单的语义匹配算法,例如上面提到的很多基于Siamese 网络的经典算法ESIM以及后续ESIM的变体,提取文本整体语义再进行匹配。如下就是ESIM(https://arxiv.org/pdf/1609.06038.pdf)的网络结构。
Input Encoding
输入两句话分别接 embeding 加一个双向LSTM
Local Inference Modeling
这里的目的是把第一层拿到的特征做差异性计算和信息交互。作者采用了soft_align_attention机制,进行交互。
Inference Composition
在这一层中,再通过BILSTM捕获局部推理信息特征及其上下文信息特征,下面是分别最大池化与平均池化,然后concat输入MLP,得到最终结果。
当然我们也可以在网络输入层通过tfidf加权词向量,加权逻辑如下图所示:
n*d 的 embedding 矩阵 通过长度为 n 的 tfidf 向量来修正,修正后的 embedding 矩阵获取了全局的信息,让网络更加注重关键的单词,有助于对文本相似度的识别。即:sentence1 = [w11,w12,...,w1n] sentence1_new=[w11×tfidf11,w12×tfidf12,..]
这个加权词向量根据我们实验的结果在拍拍贷的语义相似度的比赛和2018CIKM的跨语言文本语义相似度比赛中都是有非常明显的提升。对于机器有限的同学可以在此类任务中尝试这些方法。
Part 3 数据处理&模型尝试
目前由于bert的强大超乎我们的想象,所以这次比赛中我们也没有过多的思考,直接bert一把梭,基本没有什么数据分析。只是根据赛题给的原始数据进行了简单的数据构造和各种开源的预训练模型的对比。
数据增强 根据数据传递性数据增强
原始数据:句子A和句子B相似, 句子A和句子C相似, 句子A和句子D不相似
增强后数据:句子A和句子B相似, 句子A和句子C相似, 句子B和句子C相似, 句子A和句子D不相似,句子B和句子D不相似,句子C和句子D不相似
具体模型结果如图:
预训练模型尝试&各个模型的线上分数
roberta-wwm-large~95.4
https://github.com/ymcui/Chinese-BERT-wwm
roberta-wwm-large+fgm(5 ensemble) ~95.6
roberta_large_clue/roberta_large_pair+ fgm ~95.8
https://github.com/CLUEbenchmark/CLUECorpus2020
NEZHA/NEZHA-wwm(5 ensemble) + fgm ~95.9
https://github.com/huawei-noah/Pretrained-Language-Model/tree/master/NEZHA
UER-py+ fgm ~96.00
https://github.com/dbiir/UER-py
融合(UER-py + NEZHA)(10 model) 96.26
模型优化
特征融合(预训练模型 + 腾讯词向量 + fasttext词向量)
腾讯词向量(https://ai.tencent.com/ailab/nlp/embedding.html)
fasttext词向量(https://fasttext.cc/)
对抗学习/FGM
https://kexue.fm/archives/7234
Part 4 final模型
最终本次比赛采用UER-py + NEZHA各5折共10个模型进行模型融合
线上成绩:准确率 96.26
总结:这次的开源基本只是一个base方案,还有很多细致的可以优化的东西,大家可以把这次比赛的代码在后续的语义相似度计算的比赛中当作是baseline,在这个的基础上进行优化。
https://god.yanxishe.com/53这是最近一个新的文本语义相似度计算的比赛。大家可以去试试这个base方案,希望可以取得好的成绩。
添加个人微信,备注:昵称-学校(公司)-方向,即可获得
1. 快速学习深度学习五件套资料
2. 进入高手如云DL&NLP交流群
记得备注呦
天池-新冠疫情相似句对判定大赛top6方案及源码相关推荐
- 新冠疫情相似句对判定,快速匹配准确答案
向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程 公众号:datayx 面对疫情抗击,疫情知识问答应用得到普遍推广.如何通过自然语言技术将问答进行相似分类仍然是一个有 ...
- 【2023年第十一届泰迪杯数据挖掘挑战赛】A题:新冠疫情防控数据的分析 建模方案及python代码详解
更新时间:2023-3-30 1 题目 一.背景 自2019年底至今,全国各地陆续出现不同程度的新冠病毒感染疫情,如何控制疫情蔓 延.维持社会生活及经济秩序的正常运行是疫情防控的重要课题.大数据分析为 ...
- 基于改进SEIR模型的病毒传播动力学建模与疫情预测分析(以COVID-19新冠病毒为例,超详细,带matlab源码)
文章目录 前言 一.数学基础知识 符号定义 二.传统SEIR模型的建立与求解 1.经典的SEIR传播动力学模型建立 2.根据经典的SEIR模型列出微分方程并求解 三.SEIR模型第一次修正 1.模型建 ...
- 战疫互动|宅家防疫,“消灭新冠病毒”小游戏火爆上线啦~(附完整源码)
前言 哈喽哈喽!又到了今日更新啦
- 【2023年第十一届泰迪杯数据挖掘挑战赛】A题:新冠疫情防控数据的分析 32页和40页论文及实现代码
[2023年第十一届泰迪杯数据挖掘挑战赛]A题:新冠疫情防控数据的分析 32页和40页论文及实现代码 相关链接 (1)建模方案 [2023年第十一届泰迪杯数据挖掘挑战赛]A题:新冠疫情防控数据的分析 ...
- 新冠疫情对AI技术发展的影响
1.疫情的现况 随着新冠病毒在2020年初被发现,迄今为止,新冠病毒遍布全球,国内已经基本控制,但是国外的形势依旧很严峻,特别是欧美地区.如今,新冠病毒产生了变异,形势变得愈发紧张,又让人们产生了未有 ...
- Yolov5:强大到你难以想象──新冠疫情下的口罩检测
初识Yolov5是看到一个视频可以检测街道上所有的行人,并实时框选出来.之后学习了CNN卷积神经网络,在完成一个项目需求时,发现卷积神经网络在切割图像方面仍然不太好用.于是我想到了之前看到的Yolov ...
- 2021年暑假数学建模第一次模拟赛:新冠疫情预测(插值,时间序列,微分方程建模)
本系列赛题.数据获取: 2021年暑假数学建模模拟赛(赛题+数据+分析) 不直接提供论文等资料,分析已经很详细了 整理不易,欢迎点赞+关注+收藏 2021年暑假数学建模第一次模拟赛:新冠疫情预测(插值 ...
- 7天搞定图神经网络,实战助力新冠疫情防控!
要问这几年一直在逆势而上的技术有哪些?你一定不会忽略它--图神经网络. 相比传统神经网络,图神经网络的优势非常明显: 1.非顺序排序的特征学习:GNN的输出不以节点的输入顺序为转移的. 2.两个节点之 ...
- 智源研究院发布“知识疫图-全球新冠疫情智能驾驶舱”,一键预测、跟踪和决策辅助...
近日,北京智源人工智能研究院数据开放研究中心联合清华大学.中国工程科技知识中心.清华大学附属北京长庚医院.阿里巴巴智能计算实验室.搜狗搜索.智谱.AI等单位,正式发布"知识疫图-全球新冠疫情 ...
最新文章
- 原型的指向是否可以改变 原型最终指向了哪里 原型指向改变如何添加方法和访问
- [转]I,P,B帧和PTS,DTS的关系
- 房奴房贷断供,房子真的会被收走吗?
- 商品进销差价_商品进销差价概述
- mydate97设置时间
- Spring MVC核心知识
- PyTorch——深度神经网络的写作笔记
- 如何迁移 Spring Boot 到函数计算
- mysql在缺省状态下_MYSQL面试题
- chromium中的性能优化工具syzyProf
- python之类之多继承
- VMware16安装Redhat7 图文教程
- 算法学习第一天-搭建能运行算法第四版的代码
- php while循环 selecrt下拉框 option默认选中
- 关于百度地图(二):只需要定位,不需要地图(什么?回调混乱?一招解决!)
- UI设计师必备技能——点击进入的网页设计全攻略
- STM32开发板搭建开发环境之安装篇
- 2021年中国集成电路市场现状及封测行业重点企业对比分析:通富微电vs华天科技vs长电科技
- Underlying cause: java.io.IOException : Schema script failed, errorcode 2
- 为什么懂得很多道理,却依然过不好这一生