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

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

3天内不再提示

文本匹配任务中常用的孪生网络

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

扫码添加小助手

加入工程师交流群

文本匹配是自然语言处理领域一个基础且重要的方向,一般研究两段文本之间的关系。文本相似度、自然语言推理、问答系统、信息检索都可以看作针对不同数据和场景的文本匹配应用。

本文总结了文本匹配任务中的经典网络Siamse Network,它和近期预训练语言模型的组合,一些调优技巧以及在线下数据集上的效果检验。

Siamese 孪生网络

在正式介绍前,我们先来看一个有趣的故事。

孪生网络的由来

“Siamese”中的“Siam”是古时泰国的称呼,中文译作暹罗,所以“Siamese”就是指“暹罗”人或“泰国”人。“Siamese”在英语中同时表示“孪生”,这又是为什么呢?

十九世纪,泰国出生了一对连体婴儿“恩”和“昌”,当时的医学技术无法使他们分离出来,于是两人顽强地生活了一生。

1829年他们被英国商人发现,进入马戏团,在全世界各地演出。1839年他们访问美国北卡罗莱那州成为“玲玲马戏团” 的台柱,最后成为美国公民。1843年4月13日跟英国一对姐妹结婚,恩生了10个小孩,昌生了12个。1874年,两人因病均于63岁离开了人间。他们的肝至今仍保存在费城的马特博物馆内。

从此之后,“暹罗双胞胎”(Siamese twins)就成了连体人的代名词,也因为这对双胞胎全世界开始重视这项特殊疾病。

孪生网络

由于结构具有鲜明的对称性,就像两个孪生兄弟,所以下图这种神经网络结构被研究人员称作“Siamese Network”,即孪生网络。

其中最能体现“孪生”的地方,在于网络具有相同的编码器(sentence encoder),即将文本转换为高维向量的部分。网络随后对两段文本的特征进行交互,最后完成分类/相似预测。“孪生网络”结构简单,训练稳定,是很多文本任务不错的baseline模型。

孪生网络的具体用途是衡量两个输入文本的相似程度。

例如,现在我们有文本1和2,首先把它们分别输入 sentence encoder 进行特征提取和编码,将输入映射到新的空间得到特征向量u和v;最终通过u、v的拼接组合,经过下游网络来计算文本1和2的相似性。

整个过程有2个值得关注的点:

在训练和测试中,模型的编码器是权重共享的(“孪生”);编码器的选择非常广泛,传统的CNN、RNN和Attention、Transformer都可以

得到特征u、v后,可以直接使用cosine距离、欧式距离得到两个文本的相似度;不过更通用的做法是,基于u和v构建用于匹配两者关系的特征向量,然后用额外的模型学习通用的文本关系映射;毕竟我们的场景不一定只是衡量相似度,可能还有问答、蕴含等复杂任务

‍‍‍‍‍‍‍‍三连体网络‍‍‍‍‍‍‍‍

基于孪生网络,还有人提出了 Triplet network 三连体网络。顾名思义,输入由三部分组成,文本1,和1相似的文本2,和1不相似的文本3。

训练的目标非常朴素,期望让相同类别间的距离尽可能的小,让不同类别间的距离尽可能的大,即减小类内距,增大类间距。

3205d0b2-7c22-11eb-8b86-12bb97331649.jpg

Sentence-BERT

自从2018年底Bert等预训练语言模型横空出世,NLP届的游戏规则某种程度上被大幅更改了。在计算资源允许的条件下,Bert成为解决很多问题的首选。甚至有时候拿Bert跑一跑baseline,发现问题已经解决了十之八九。

但是Bert的缺点也很明显,1.1亿参数量使得推理速度明显比CNN等传统网络慢了不止一个量级,对资源要求更高,也不适合处理某些任务。

例如,从10,000条句子中找到最相似的一对句子,由于可能的组合众多,需要完成49,995,000次推理;在一块现代V100GPU上使用Bert计算,将消耗65小时。

考虑到孪生网络的简洁有效,有没有可能将它和Bert强强联合呢?

当然可以,这正是论文《Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks》的工作,首次提出了Sentence-Bert模型(以下简称SBert)。

SBert在众多文本匹配工作中(包括语义相似性、推理等)都取得了最优结果。更让人惊讶的是,前文所述的从10,000条句子寻找最相似pair任务,SBert仅需5秒就能完成!

基于BERT的文本匹配

让我们简短回顾此前Bert是怎么处理文本匹配任务的。

常规做法是将匹配转换成二分类任务。输入的两个文本拼接成一个序列(中间用特殊符号“SEP”分割),经过12层或24层Transformer模块编码后,将输出层的字向量取平均或者取“CLS”位置的特征作为句向量,经softmax完成最终分类。

但是论文作者 Nils Reimers 在实验中指出,这样的做法产生的结果并不理想(至少在处理语义检索和聚类问题时是如此),甚至比Glove词向量取平均的效果还差。

基于S-BERT的文本匹配

为了让Bert更好地利用文本信息,作者们在论文中提出了如下的SBert模型。是不是非常眼熟?对,这不就是之前见过的孪生网络嘛!

SBert沿用了孪生网络的结构,文本Encoder部分用同一个Bert来处理。之后,作者分别实验了CLS-token和2种池化策略(Avg-Pooling、Mean-Pooling),对Bert输出的字向量进一步特征提取、压缩,得到u、v。关于u、v整合,作者提供了3种策略:

针对分类任务,将u、v拼接,接入全连接网络,经softmax分类输出;损失函数用交叉熵

直接计算、输出余弦相似度;训练损失函数采用均方根误差

如果输入的是三元组,论文种也给出了相应的损失函数

总的来说,SBert直接用Bert的原始权重初始化,在具体数据集上微调,训练过程和传统Siamse Network差异不大。

但是这种训练方式能让Bert更好的捕捉句子之间的关系,生成更优质的句向量。在测试阶段,SBert直接使用余弦相似度来衡量两个句向量之间的相似度,极大提升了推理速度。

实验为证

作者在7个文本匹配相关的任务中做了对比实验,结果在其中5个任务上,SBert都有更优表现。

337dcd46-7c22-11eb-8b86-12bb97331649.png

作者还做了一些有趣的消融实验。

使用NLI和STS为代表的匹配数据集,在分类目标函数训练时,作者测试了不同的整合策略,结果显示“(u, v, |u-v|)”的组合效果最好。这里面最重要的部分是元素差:(|u - v|)。句向量之间的差异度量了两个句子嵌入维度间的距离,确保相似的pair更近,不同的pair更远。

3407bb96-7c22-11eb-8b86-12bb97331649.png

文章最后,作者将SBert和传统方‍‍‍‍法做了对比。

343b97fe-7c22-11eb-8b86-12bb97331649.jpg

SBert的计算效率要更高。其中的smart-batching是一个小技巧。先将输入的文本按长度排序,这样同一个mini-batch的文本长度更加统一,padding时能显著减少填充的token。

线下实测

我们将SBert模型在天池—新冠疫情相似句对判定比赛数据集上做了测试。经数据增强后,线下训练集和验证集分别是13,500和800条句子组合。预训练模型权重选择BERT_large。

最终SBert单模型在验证集上的准确率是95.7%。直接使用Bert微调准确率为95.2%。

小结

本文介绍了文本匹配任务中常用的孪生网络,和在此基础上改进而来的Sentence-BERT模型。

Siamse Network 简洁的设计和平稳高效训练非常适合作为文本匹配任务的baseline模型。SBert则充分利用了孪生网络的优点和预训练模型的特征抽取优势,在众多匹配任务上取得了最优结果。

抛开具体任务,SBert 可以帮助我们生成更好的句向量,在一些任务上可能产生更优结果。在推理阶段,SBert直接计算余弦相似度的方式,大大缩短了预测时间,在语义检索、信息搜索等任务中预计会有不错表现。同时,得益于生成的高质量句嵌入特征,SBert也非常适合做文本聚类、新FAQ发现等工作。

责任编辑:lq

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

    关注

    1

    文章

    3648

    浏览量

    51712
  • 数据集
    +关注

    关注

    4

    文章

    1230

    浏览量

    26046
  • 文本
    +关注

    关注

    0

    文章

    119

    浏览量

    17742

原文标题:文本匹配利器:从孪生网络到Sentence-BERT综述

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    声表面波滤波器的使用和匹配

    射频中常用的声表面滤波器该如何匹配应用?
    的头像 发表于 11-21 15:37 1812次阅读
    声表面波滤波器的使用和<b class='flag-5'>匹配</b>

    科普:无源晶振的电容匹配与问题

    匹配电容并不是绝对的或者固定值,无源晶振的匹配电容一般最好选择两个一样电容,在很多的方案设计中一般常用的电容有12pF、15pF、22pPF、33pF等,大致都是一个20pF量级。
    的头像 发表于 08-29 11:27 1792次阅读
    科普:无源晶振的电容<b class='flag-5'>匹配</b>与问题

    信而泰×DeepSeek:AI推理引擎驱动网络智能诊断迈向 “自愈”时代

    学习、大规模数据分析等前沿技术。DeepSeek-R1具备卓越的逻辑推理、多模态分析(文本/图像/语音)和实时交互能力,能够高效处理代码生成、复杂问题求解、跨模态学习等高阶任务。凭借其开源、高效、多
    发表于 07-16 15:29

    Linux常用命令大全

    Linux常用命令是指在Linux操作系统中广泛使用的命令工具,这些命令工具可以完成各种不同的任务,如管理文件和目录、操作进程、网络通信、软件安装等。
    的头像 发表于 05-03 18:08 1612次阅读

    电子电路设计中常用的接地方式详解

    在电子电路设计中,接地方式的选择至关重要,它直接影响到电路的稳定性、抗干扰能力和安全性。以下是电子电路设计中常用的几种接地方式的详解: 一、浮地 1. 定义:浮地是指电路或设备与公共地线可能引起环流
    的头像 发表于 04-17 16:24 1347次阅读
    电子电路设计<b class='flag-5'>中常用</b>的接地方式详解

    把树莓派打造成识别文本的“神器”!

    在许多项目中,RaspberryPi被用作监控摄像头或执行机器学习任务。在这些场景中,图像中经常包含应用程序感兴趣的文本信息。我们希望提取这些信息并将其转换,以便通过程序分析文本
    的头像 发表于 03-25 09:30 754次阅读
    把树莓派打造成识别<b class='flag-5'>文本</b>的“神器”!

    数据采集平台与数字孪生的关系

    数据采集平台和数字孪生之间存在着紧密且相互依存的关系,数据采集平台是实现数字孪生的基础和关键支撑,而数字孪生则为数据采集平台所采集的数据赋予了更高层次的价值和应用意义,具体体现在以下几个方面。
    的头像 发表于 03-01 09:07 696次阅读
    数据采集平台与数字<b class='flag-5'>孪生</b>的关系

    PC5400四匹配电阻器网络器英文手册

    PC5400是一个具有出色匹配的四电阻网络在整个温度范围内的规格。匹配是当PC5400配置不同时也会指定放大器。这种增强的匹配规范保证了CMRR性能比独立运行高出2倍
    发表于 02-26 17:36 0次下载

    替代LT5400四组匹配电阻器网络

    概述: PC5400是一个具有出色匹配的四电阻网络在整个温度范围内的规格。匹配是当PC5400配置不同时也会指定放大器。这种增强的匹配规范保证了CMRR性能比独立运行高出2倍
    的头像 发表于 02-26 15:39 411次阅读
    替代LT5400四组<b class='flag-5'>匹配</b>电阻器<b class='flag-5'>网络</b>

    电源滤波器的阻抗匹配问题:源阻抗和负载阻抗不匹配时的优化策略

    在电子设备中,电源滤波器的性能受到源阻抗和负载阻抗不匹配的影响。谐振现象可能导致电感和电容元件形成共振回路,影响滤波器的滤波效果和电路元件的稳定性。优化滤波器设计采用 L 型匹配网络,T 型和 Π 型
    的头像 发表于 02-10 11:02 1219次阅读
    电源滤波器的阻抗<b class='flag-5'>匹配</b>问题:源阻抗和负载阻抗不<b class='flag-5'>匹配</b>时的优化策略

    模拟电路中常用元件解析

    ,其主要功能是限制电流流动并降低电压。电阻器的阻值通常以欧姆(Ω)为单位,其大小决定了通过电阻器的电流大小。电阻器的工作原理基于欧姆定律,即电流(I)与电压(V)成正比,与电阻(R)成反比(I = V/R)。 应用: 电压分压 电流限制 负载匹配
    的头像 发表于 01-24 09:30 1580次阅读

    数字孪生系统

    传统港口存在痛点,数字孪生系统通过在虚拟空间中建立与物理港口一一对应的模型,并接入实时生产运营数据,实现对码头的生产作业进行多角度、全方位的实时监控,推动码头作业及管理工作的数字化转型同时提高
    的头像 发表于 01-10 10:05 1141次阅读
    数字<b class='flag-5'>孪生</b>系统

    DIY项目中常用的端子类型

    在DIY项目中,选择合适的端子类型对于确保电气连接的可靠性和安全性至关重要。以下是一些常用的端子类型,以及它们的特点和应用场景: 1. 针式端子(Pin Terminals) 特点 :针式端子通常用
    的头像 发表于 12-29 10:45 2295次阅读

    低压配电柜中常用的电表有哪些?

    一、 低压配电柜中常用的电表类型包括: 1. 电压表 电压表主要用于测量电压,广泛应用于电力系统中。在低压配电柜中,电压表被用于测量电源电压,其显示范围一般为0-1000V。电压表可以分为直流电
    的头像 发表于 12-25 10:50 3536次阅读
    低压配电柜<b class='flag-5'>中常用</b>的电表有哪些?

    盘点环境电器中常用的传感器

    数字化处理和分析。本文将深入探讨环境电器中常用的传感器,包括二氧化碳传感器、甲醛传感器、粉尘传感器和温湿度传感器,并揭示它们在提升产品智能化水平和提供健康舒适居住环境方面的重要作用。 二氧化碳传感器 二氧化碳传
    的头像 发表于 12-20 09:21 1083次阅读