ESIM:Enhanced LSTM for Natural Language Inference

news2024/12/26 12:24:27

原文链接:https://aclanthology.org/P17-1152.pdf

概述

        对于自然语言推理任务,Bowman等人在2015年提出了一个大数据集,大多数工作就开始使用神经网络来对该任务进行训练。但作者认为序列模型的潜力还没有完全被挖掘,因此提出了一个基于chain LSTMs的序列模型,该模型比先前的模型效果都要好,另外融合循环结构后,性能得到进一步提升,特别是在纳入语法信息后达到了最好的结果。

介绍

        自然语言推理(NLI)中一个任务是RTE(recognize textual entailment),就是判断两个句子之间的关系,存在三种情况:矛盾、无关以及蕴含。实际就是看在给定前提p的情况下,能不能推出假说h。例如以下例子:

        前提p中表示部分航空公司发现即使调整了通货膨胀后成本增长仍高于预期,从中是可以推测出h这个假说的。

        另外,作者认为语法和语义是密切相关的,所以在本文中作者也探究了语法信息对NLP任务的作用,讲语法信息进行编码融入到模型中。

方法

        作者提出的模型结构主要包括:input encoding、local inference modeling和inference composition。如下图所示,左部分就是前面提到的序列模型ESIM(主要是使用语义信息来进行训练),右部分是在tree LSTMs中融合了语法信息的结构(主要是用语法信息来进行训练)。(可以只使用ESIM,也可以达到很好的效果,在加入了右边语法信息的结果后,结果会更好。如果两个模型都使用,作者称为HIM)

         premise a=(a1,,,ala),hypothesis b=(b1,,,blb),通过预训练的模型对其embedding进行初始化,最后得到两个句子逻辑关系之间的label y。

Input Encoding

        作者将双向LSTM(BiLSTM)和Tree-LSTM作为两个模型的基本结构块,但在input encoding部分和inference information部分中有着不同的作用。

        在ESIM中,使用BiLSTM来对输入的句子premise和hypothesis进行编码,文中对BiLSTM的具体结构没有进行具体介绍,实际就是将两个不同方向LSTM的隐状态进行concat作为最终的隐状态,另外作者提到这里使用其他循环记忆块(例如GRUs)进行代替的话,效果没有LSTMs好。

        如下所示,使用\bar{a}_{i}表示BiLSTM对输入句子a在时间步i的隐藏状态,对b也同理。

        对于语法信息,使用树状的LSTM来对节点进行更新。在每个节点中,将向量Xt以及其左右子节点的隐状态作为输入计算该节点的隐向量ht,对于没有叶子的节点,使用{x}'_{t}(类似于unknown word)作为输入。具体结构以及计算公式如下图所示:

 

         其中\sigma表示sigmoid函数,W,U都是可学习的权重矩阵。

 Local Inference Modeling

        感觉这部分就是得到词与词之间的soft attention,ESIM得到词与词之间语义信息的权重,而另一个使用语法信息的模型得到词与词之间语法关系的权重。

        在本文中,计算premise和hypothesis之间的相似度:

         在ESIM中,将上诉相似度eij用于premise中单词的隐状态\bar{a}_{i}和hypothesis中相关的语义信息计算,即使用\bar{b}_{j}中相关的向量来表示\tilde{a}_{i}

         在语法树中,是对PCFG语法分析器(相关链接:使用Stanford Parser的PDFG算法进行句法分析 - 灰信网(软件开发博客聚合))得到局部短语以及从句的关系进行注意力分数计算。与ESIM中差不多,只是将\bar{a}_{i}\bar{b}_{j}(前提和假说中的embedding)替换成tree-LSTM中对应叶节点的隐状态(由公式3计算得到)。

         为了使得元祖中元素之间关系(标签中的三种,矛盾、无关、蕴含)更加明显,作者将\tilde{a}_{i}\tilde{b}_{j}的差值和点积进行与其自身进行concat,对得到的local inference 信息进行增强:

        作者认为这是一种高层次的信息交互,另外,作者也将该元祖作为输入,传入一个前馈神经网络中,将最后一层的隐状态添加到上诉concatenation中,但实验结果表明这并没什么用。

 Inference Composition

        在ESIM中依旧使用BiLSTM对ma和mb的上下文信息进行捕获,计算与前面的公式1和公式2类似。另一个模型中,使用以下公式进行树节点的更新:

        为了减少计算量,这里的F是只有一层带有ReLu激活函数的前馈神经网络。

        最后通过一个pooling层后传入到分类器中对最终结果进行推测,本文中作者使用了avg和max两种pooling方式,如下所示(对于树结构的模型,在公式20中使用根结点的隐状态进行计算):

        整个模型使用多分类的交叉墒损失来进行训练。可以只使用ESIM模型的结果,也可以对两个模型最后的预测结果进行赋权来得到最后的结果。

实验

        本文实验使用Bowman等人在2015年提出的SNLI(Stanford Natural Language Inference)数据集,移除了其中一些无法确定的数据。与之前提出的模型进行对比,实验结果如下:

        作者对模型中的主要部分进行了消融实验,结果如下:

 

        作者对Tree-LSTM和BiLSTM中各个词之间的注意力分数进行了可视化和分析:

  

总结

        本文提出了一个序列模型,在SNLI数据集上达到了目前最好的效果,在结合语法信息后达到效果会更好。作者认为序列模型的潜力害没有完全被发掘出来,未来将进一步探索使用额外信息(例如Word-Net和contrasting-meaning embedding)来帮助词级别的推理关系。

        (不知道为啥,这篇论文看完后花了接近一天的时间来写这篇博客,其实模型也不是很难,可能是我表述能力的问题吧!就是我能大概知道这个模型是怎么训练的,但是跟着论文来写一遍的时候还是会很慢很慢🥹)

参考文献

         论文阅读笔记:文本蕴含之ESIM - 知乎

【文本匹配】之 经典ESIM论文详读_尽量不躺平的kayla的博客-CSDN博客_文本匹配论文     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/46339.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自建网上商城平台该如何做好运营?

现在很多企业都在自建网上商城系统,但很多都以为建好商城上线就万事大吉了。其实,自建网上商城系统只是一个开始,后期的运营才最重要。如果经营不好,这个商城就白做了,今天小编给大家整理了几个网上商城平台运营方向&a…

[附源码]计算机毕业设计springboot港口集团仓库管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【python】list 删除列表中某个元素的3种方法;附加删除numpy数组中的指定索引元素的方法

方法 python中关于删除list中的某个元素,一般有三种方法: remove、pop、del实例 1.remove: 删除单个元素,删除首个符合条件的元素,按值删除 2.pop: 删除单个或多个元素,按位删除(根据索引删除) 3.del:它是根据索…

校内评奖评优|基于Springboot+Vue实现高校评优管理系统

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

[附源码]计算机毕业设计SpringBoot海南与东北的美食文化差异及做法的研究展示平台

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

新型超导Fluxonium量子比特正加速量子计算机的创建

量子处理器的一部分(图片来源:网络) 来自国立科技大学MISIS和鲍曼莫斯科国立技术大学的俄罗斯科学家是世界上最早使用超导Fluxonium量子比特实现双量子比特操作的科学家之一。Fluxonium具有更长的生命周期和更高的操作精度,因此它…

预约陪诊系统开发,跨省就医也能省时省力

就医陪护服务这几年一直受到人们的好评,有了预约陪诊系统开发之后一些无法居家照顾老人的子女可以通过就医陪护为老人预约服务,预约陪诊平台的出现还让陪诊员有了正规的接单平台,不仅方便了人们下单找就医陪诊员还可以对陪诊人员实行正规的管…

树状数组模板2【区间修改,单点询问】(线段树)

题目描述: 已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数数加上x 2.求出该数列某个数的值 输入格式: 第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。 第二行包含N个用空格分隔的整数,其中第…

功率放大器可靠性怎么设计的好

功率放大器可靠性怎么设计怎么做,是很多工程师们心里一直存在的疑惑,像功率放大器这些有源放大电路,工作的可靠性在某些情况下比性能指标更重要。下面就来为大家介绍功率放大器可靠性怎么设计的好。 功率放大器电路设计过程中其可靠性主要分为…

hive报错 Too many bytes before newline: 2147483648

报错 Caused by: java.lang.RuntimeException: java.io.IOException: java.io.IOException: Too many bytes before newline: 2147483648at org.apache.hadoop.mapred.split.TezGroupedSplitsInputFormat$TezGroupedSplitsRecordReader.initNextRecordReader(TezGroupedSplits…

flex布局

flex是flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为flex布局。 当我们为父盒子设为flex布局以后,子元素的float、clear和vertical-align属性将失效。 伸缩布局弹性布局伸缩盒布…

【微信小程序】一文带你读懂云开发

前言 云开发(CloudBase)是一个已经存在了很多年的概念,但在过去未能真正成为主流。然而,由于云和软件即服务的宏观趋势的结合,以及技术的进步,如容器技术 Docker 和 Kubernetes,云开发现在有机会成为基于云的应用程序的…

【Java】 java | sonar | sonar生成扫描token | 扫描示例 | 常见问题处理

一、说明 1、sonar已经安装OK 2、springboot项目 3、maven项目 二、生成token 1、登录到sonar 2、生成token 说明1: token仅生成一次,需保留 说明2: token忘记后,需要回收重新生成 3、执行命令 mvn sonar:sonar -Dsonar.projectK…

重新认识box-sizing

重新认识box-sizing 之前只是知道box-sizing设置成border-box,那么布局的时候,元素的宽高就是我们设置的宽高,省心方便。 今天仔细看了下 box-sizing的定义,有了新的认识 The box-sizing CSS property sets how the total width and height of an elem…

后端学习 -gRPC

gRPC 何为 RPC RPC 和 HTTP 的关系 基于 HTTP 的远程调用方案(包含了接口规范、序列化反序列化等)和 RPC 是并列的单从 HTTP 协议来看,RPC 可以使用 HTTP 作为通信协议 基于 HTTP 的远程调用方案和 RPC 的相同点、不同点 相同点 都可以实现…

RabbitMQ 快速入门 7 种简单模式

RabbitMQ 快速入门 7 种简单模式起步七种模式项目依赖1、"Hello World!"(1) Connection 方式(2) RabbitTemplate 方式2、Work Queues生产者消费者3、Publish/Subscribe关系绑定生产者消费者4、Routing消费者生产者5. Topics消费者生产者起步 七种模式 这七种模型其…

ch1_系统启动_bootsect.s

这里介绍, 操作系统启动中的 bootsect.S 文件 1. bootsect.s的作用概览 bootsect.s代码是磁盘引导块程序,驻留在磁盘的第一个扇区中(引导扇区,0磁道(柱面),0磁头,第一个扇区, 如图中的黄色区域) 图一&…

springboot+jsp学生心理健康测评网

基于JSP技术设计并实现了学生心理健康网。该系统基于B/S即所谓浏览器/服务器模式,应用SSM框架,选择MySQL作为后台数据库。系统主要包括个人中心、用户管理、知识分类管理、知识信息管理、心理测试管理、交流论坛、试卷管理、系统管理、考试管理等功能模块…

Redis实战——优惠券秒杀(超卖问题)

1 实现优惠券秒杀功能 下单时需要判断两点:1.秒杀是否开始或者结束2.库存是否充足 所以,我们的业务逻辑如下 1. 通过优惠券id获取优惠券信息 2.判断秒杀是否开始,如果未返回错误信息 3.判断秒杀是否结束,如果已经结束返回错误…

第十三章《集合》第2节:List集合

List这个单词意为“列表”,List类型的集合的特点是:元素呈线性排列,致密且有序。下面的图13-3展示了List类型集合的特点。 图13-3 List类型集合 图13-3中的每一个小圆形代表一个元素,可以看到,这些元素被放到List集合中后被排成一列,这就是“线性排列”。List集合中的元…