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

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

3天内不再提示

入门自然语言处理的基本任务——文本匹配

深度学习自然语言处理 来源:NLP情报局 作者:Giant 2021-05-31 11:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

2020年初,新冠疫情席卷全球。除了“待在家,不乱跑”,我想还能从哪为抗击疫情出点微薄之力呢?

碰巧室友推送了一个天池公益赛“新冠疫情相似句对判定大赛”,秉持“重在参与”的心态参加了比赛。经过半个月的努力,最终结果勉强不错(第6),收割了一台Kindle。

2021年1月,疫情形势依然严峻,幸运的是国家不仅及时稳住了疫情,还研发出了有效的疫苗。借助疫情主题的比赛,我希望帮助更多读者,入门自然语言处理的基本任务——文本匹配。

开源代码:

https://github.com/yechens/COVID-19-sentence-pair

01 数据分析任务背景非常直观,主办方给定了“肺炎”、“支气管炎”、“上呼吸道感染”等医疗背景下的用户真实提问,要求选手通过算法识别任意2个问题,是否表达同一个意思。举例:

问题1:“轻微感冒需不需要吃药?”

问题2:“轻微感冒需要吃什么药?”

问题1关心“是否得吃药”,问题2关心“该吃什么药”,侧重点不同所以意思不同。

数据集样本都是三元组(query1, query2, label)。为了降低难度,每一个问题的长度被控制在20字以内。

比赛的训练集、验证集分别包含8746、2001条三元组。我们从dev中随机保留了800条样本作为最终dev,其余均加入训练。

数据增强拿到数据简单分析后,我发现数据集已经过清洗,竟然异常的干净整齐(没有杂乱的符号、不通顺的句子),label分布几乎也接近1:1。

再观察数据,相同的query1总是按顺序排列在一起,随后跟着不同的query2。这种分布很容易想到一种数据增强策略:相似传递性。

A 《-》 B 相似 and A 《-》 C 相似 =》 B 《-》 C 相似

最终我额外获得了5000条高质量的数据,比赛准确率因此提升了0.5%。

实体替换此外,我们也尝试了训练一个NER模型挖掘文本中的医疗实体,如“胸膜炎”、“肺气肿”,再通过word2vec查找最接近的实体进行替换。

但这种方式并没有提升最终结果。我觉得原因有2个:

1W条样本规模偏小,NER模型识别误差较大

词向量没有针对医疗场景训练,包含的医疗实体很少

02 匹配方法实现文本匹配有非常多简单又实用的方法,例如:

基于字符统计:字符串匹配、编辑距离、Jaccards距离

基于语言模型:word2vec/glove词向量、BERT

基于神经网络:孪生网络、TextCNN、DSSM、FastText等

由于比赛需要尽可能获得高分,这里主要介绍基于神经网络和BERT的文本匹配算法。

BERT[1]是一种预训练语言模型,通过海量文本、Transformer架构和MLM训练任务在众多NLP任务上取得了优异成果。对BERT不了解的读者,可以参考我之前的文章“从BERT、XLNet到MPNet,细看NLP预训练模型发展变迁史”[2]。

比赛中我们测试了5-6种不同的神经网络方法,并最终选择了3种在dev上表现最好的模型加权融合。具体可以参考 文件。

文本CNN(TextCNN)TextCNN是Yoon Kim[3]在2014年提出的用于句子分类的卷积神经网络。文本匹配任务本质上可以理解成二分类任务(0:不相似,1:相似),所以一般的分类模型也能满足匹配需求。

与图像中的二维卷积不同,TextCNN采用的是一维卷积,每个卷积核的大小为 (h为卷积核窗口,k为词向量维度)。文中采用了不同尺寸的卷积核,来提取不同文本长度的特征。

然后,作者对于卷积核的输出进行最大池化操作,只保留最重要的特征。各个卷积核输出经MaxPooling后拼接形成一个新向量,最后输出到全连接层分类器(Dropout + Linear + Softmax)实现分类。

我们知道,文本中的关键词对于判断2个句子是否相似有很大影响,而CNN局部卷积的特效能很好的捕捉这种关键特征。同时TextCNN还具有参数量小,训练稳定等优点。

文本RNN(TextRCNN)相比TextCNN,TextRCNN的模型结构看起来复杂一些。

简单浏览论文后,会发现它的思路其实简单,粗暴。

首先通过词向量获得字符编码 ,随后将其通过双向RNN学习上下文特征,编码得到两个方向的特征。

再将词向量 和 、 拼接得到新向量,输入经tanh函数激活的全连接网络。最后,将网络的输出最大池化,并输入另一个全连接分类器完成分类。

RNN模型对于长文本有较好的上下文“记忆”能力,更适合处理文本这种包含时间序列的信息。

BERT+MLP(fine-tune)最后一种方法,直接用语言模型BERT最后一层Transformer的输出,接一层Dense实现文本匹配。

实验中我们发现,对最终输出的每个token特征取平均(MeanPooling)效果好于直接使用首字符“[CLS]”的特征。

模型权重上,崔一鸣等人[5]发布的中文roberta_wwm_ext_large模型效果要好于BERT_large。

最后,我们根据这三种模型在dev上的准确率设置了不同比重,通过自动搜索找到最优权重组合,在线上测试集取得了96.26%的准确率。

读者可以在“NLP情报局”后台回复“文本匹配”直接下载模型论文。

03 涨分trick做一个深度学习主导的算法比赛,除了分析数据与模型,一些trick也是获得高分的重要因素。这里罗列了一些常用策略。

数据增强[6]

标签平滑

自蒸馏

文本对抗训练[7]

模型融合

特征筛选

使用多个学习率[8]

针对这次文本匹配任务,数据增强、标签平滑、模型融合、多学习率都被证明是有效的。

04 总结过去将近1年的天池“新冠疫情相似句对判定大赛”,任务并不复杂,是入门NLP项目实战,提升编程能力的很好锻炼机会。

比赛虽然结束了,疫情犹在。大家一定要保护好自己哦!

编辑:jq

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

    关注

    42

    文章

    4842

    浏览量

    108180
  • 数据集
    +关注

    关注

    4

    文章

    1240

    浏览量

    26261
  • nlp
    nlp
    +关注

    关注

    1

    文章

    491

    浏览量

    23345

原文标题:天池NLP赛道top指南

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    智能机器人从0到1系统入门课程 带源码课件 百度网盘下载

    历着从“指令式”向“对话式”的转变。 未来的机器人将具备更强的抗噪能力和语义理解能力。通过集成先进的语音识别引擎,机器人能够在高噪环境下准确分离人声与背景音。更重要的是,结合自然语言处理技术,机器人
    发表于 04-11 16:41

    工作流大模型节点说明

    总结、文章扩写等。 大模型节点依赖大语言模型的语言理解和生成能力,可以处理复杂的自然语言处理任务
    发表于 03-19 14:56

    Linux Shell文本处理神器合集:15个工具+实战例子,效率直接翻倍

    在 Linux 系统中,文本是数据交互的 “通用语言”—— 日志文件、配置文件、数据报表、程序输出几乎都以文本形式存在。手动编辑文本不仅繁琐,还容易出错,而掌握 Shell
    的头像 发表于 02-03 15:42 2763次阅读
    Linux Shell<b class='flag-5'>文本处理</b>神器合集:15个工具+实战例子,效率直接翻倍

    自然语言处理NLP的概念和工作原理

    自然语言处理 (NLP) 是人工智能 (AI) 的一个分支,它会教计算机如何理解口头和书面形式的人类语言自然语言处理将计算
    的头像 发表于 01-29 14:01 600次阅读
    <b class='flag-5'>自然语言</b><b class='flag-5'>处理</b>NLP的概念和工作原理

    汇编语言的起源

    也不再直接引用,而是用标签表示。 这样的话,就多出一个步骤,要把这些文字指令翻译成二进制,这个步骤就称为 assembling,完成这个步骤的程序就叫做 assembler。它处理文本自然就叫
    发表于 11-20 07:19

    ElfBoard技术贴|如何在【RK3588】ELF 2开发板上完成PPOC本地化部署

    PPOCR是由百度开发的一款开源深度学习OCR(光学字符识别)模型,专注于文本检测、识别与理解任务,具备多场景、多语言的字符识别能力。该模型基于大规模多样化的文本图像数据训练而成,能够
    的头像 发表于 11-14 10:54 7446次阅读
    ElfBoard技术贴|如何在【RK3588】ELF 2开发板上完成PPOC本地化部署

    云知声论文入选自然语言处理顶会EMNLP 2025

    近日,自然语言处理(NLP)领域国际权威会议 ——2025 年计算语言学与自然语言处理国际会议(EMNLP 2025)公布论文录用结果,云知
    的头像 发表于 11-10 17:30 904次阅读
    云知声论文入选<b class='flag-5'>自然语言</b><b class='flag-5'>处理</b>顶会EMNLP 2025

    格灵深瞳突破文本人物检索技术难题

    格灵深瞳参与研究的GA-DMS框架,为攻破上述技术难题提供了全新解决方案。研究团队通过数据构建和模型架构的协同改进,推动CLIP在人物表征学习中的应用,显著提升了基于文本的人物检索效果。该成果已入选EMNLP 2025 主会(自然语言
    的头像 发表于 09-28 09:42 753次阅读
    格灵深瞳突破<b class='flag-5'>文本</b>人物检索技术难题

    HarmonyOSAI编程自然语言代码生成

    安装CodeGenie后,在下方对话框内,输入代码需求描述,将根据描述智能生成代码,生成内容可一键复制或一键插入至编辑区当前光标位置。 提问示例 使用ArkTs语言写一段代码,在页面中间部分
    发表于 09-05 16:58

    【HZ-T536开发板免费体验】5- 无需死记 Linux 命令!用 CangjieMagic 在 HZ-T536 开发板上搭建 MCP 服务器,自然语言轻松控板

    GPIO 等),并返回结果。 Cangjie Magic 角色 :构建MCP服务器,同时提供自然语言理解能力,将用户输入的文本(如 “查看开发板 IP 地址”“点亮 LED1”)转换为机器可识别的指令(如
    发表于 08-23 13:10

    速看!EASY-EAI教你离线部署Deepseek R1大模型

    自然语言推理等复杂任务。作为国产AI大数据模型的代表,凭借其卓越的推理能力和高效的文本生成技术,在全球人工智能领域引发广泛关注。本文主要说明DeepSeek-R1
    的头像 发表于 07-25 15:22 1579次阅读
    速看!EASY-EAI教你离线部署Deepseek R1大模型

    高德与阿里云一起,开启智慧出行新范式

    ,加速智能化场景落地。 技术融合:大模型赋能地图交互升级 基于阿里云通义千问系列大模型领先的自然语言处理与多模态交互能力,MCP Server实现从文本指令到可视化地图的精准转化。用户可通过
    的头像 发表于 07-18 10:29 669次阅读

    人工智能技术的现状与未来发展趋势

    人工智能技术的现状与未来发展趋势     近年来,人工智能(AI)技术迅猛发展,深刻影响着各行各业。从计算机视觉到自然语言处理,从自动驾驶到医疗诊断,AI的应用场景不断扩展,推动社会向智能化方向迈进
    的头像 发表于 07-16 15:01 2313次阅读

    云知声四篇论文入选自然语言处理顶会ACL 2025

    近日,第63届国际计算语言学年会ACL 2025(Annual Meeting of the Association for Computational Linguistics,简称ACL)论文接收
    的头像 发表于 05-26 14:15 1457次阅读
    云知声四篇论文入选<b class='flag-5'>自然语言</b><b class='flag-5'>处理</b>顶会ACL 2025

    小白学大模型:从零实现 LLM语言模型

    在当今人工智能领域,大型语言模型(LLM)的开发已经成为一个热门话题。这些模型通过学习大量的文本数据,能够生成自然语言文本,完成各种复杂的任务
    的头像 发表于 04-30 18:34 1449次阅读
    小白学大模型:从零实现 LLM<b class='flag-5'>语言</b>模型