点击上方,选择星标或置顶,每天给你送干货!
阅读大概需要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
比赛主打疫情相关的呼吸领域的真实数据积累,数据粒度更加细化,判定难度相比多科室文本相似度匹配更高,同时问答数据也更具时效性。本着宁缺毋滥的原则,问题的场地限制在20字以内,形成相对规范的句对。要求选手通过自然语义算法和医学知识识别相似问答和无关的问题。评估指标:准确率
文本匹配是自然语言处理中一个重要的基础问题,自然语言处理中的许多任务都可以转为文本匹配任务。如网页搜索可抽象为网页同用户搜索 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)的网络结构。
当然我们也可以在网络输入层通过tfidf加权词向量,加权逻辑如下图所示:
n*d 的 embedding 矩阵 通过长度为 n 的 tfidf 向量来修正,修正后的 embedding 矩阵获取了全局的信息,让网络更加注重关键的单词,有助于对文本相似度的识别。即:sentence1 = [w11,w12,...,w1n] sentence1_new=[w11×tfidf11,w12×tfidf12,..]
这个加权词向量根据我们实验的结果在拍拍贷的语义相似度的比赛和2018CIKM的跨语言文本语义相似度比赛中都是有非常明显的提升。对于机器有限的同学可以在此类任务中尝试这些方法。
目前由于bert的强大超乎我们的想象,所以这次比赛中我们也没有过多的思考,直接bert一把梭,基本没有什么数据分析。只是根据赛题给的原始数据进行了简单的数据构造和各种开源的预训练模型的对比。
数据增强 根据数据传递性数据增强
具体模型结果如图:
预训练模型尝试&各个模型的线上分数
模型优化
最终本次比赛采用UER-py + NEZHA各5折共10个模型进行模型融合
线上成绩:准确率 96.26
总结:这次的开源基本只是一个base方案,还有很多细致的可以优化的东西,大家可以把这次比赛的代码在后续的语义相似度计算的比赛中当作是baseline,在这个的基础上进行优化。
https://god.yanxishe.com/53这是最近一个新的文本语义相似度计算的比赛。大家可以去试试这个base方案,希望可以取得好的成绩。