文章目录

  • 0.前言
  • 1. 模型结构
    • 1.1 input encoding
    • 1.2 local inference modeling
    • 1.3 inference composition
  • 2. 模型实现

0.前言

在Query 扩召回项目中,通过各种手段挖掘出一批同义词,想对其进行流程化,所以考虑加上语义推断,在同事的推荐下使用了 ESIM 模型,据了解这个模型在近两年横扫了好多比赛,算是 NLI (Natural Language Inference) 领域未来几年一个很难绕过的超强 baseline 了,单模型的效果可以达到 88.0% 的 Acc。

ESIM模型出自 Qian Chen 等人发表在 ACL2017 上的 Enhanced LSTM for Natural Language Inference

顾名思义,一种专为自然语言推断而生的加强版 LSTM,从文中得出主要改进在于

Unlike the previous top models that use very complicated network
architectures, we first demonstrate that carefully designing sequential inference
models based on chain LSTMs can outperform all previous models.
Based on this, we further show that by explicitly considering recursive
architectures in both local inference modeling and inference composition,
we achieve additional improvement.

总结一下主要是:

  1. 精细的设计序列式的推断结构。
  2. 考虑局部推断和全局推断。

接下来看看模型结构

1. 模型结构

文中给出的模型结构如下:

ESIM主要分为三部分:input encodinglocal inference modelinginference composition。如上图所示,ESIM 是左边一部分。

1.1 input encoding

Input Encoding 就是输入两句话分别接 embeding+ BiLSTM, 使用复用的 双向LSTM(biLSTM )单元分别对 p ( 前提 Premise)和 h (假设 Hypothesis)进行编码,得到 aˉ\bar{a}aˉ, bˉ\bar{b}bˉ

aˉi=BiLSTM(a,i),∀i∈[1,2,...,la]\bar{a}_i = BiLSTM(a, i), \forall i \in [1, 2, ..., l_a]aˉi=BiLSTM(a,i),i[1,2,...,la]

bˉj=BiLSTM(b,j),∀j∈[1,2,...,lb]\bar{b}_j = BiLSTM(b, j), \forall j \in [1, 2, ..., l_b]bˉj=BiLSTM(b,j),j[1,2,...,lb]
使用 BiLSTM 可以学习如何表示一句话中的 word 和它上下文的关系,我们也可以理解成这是 在 word embedding 之后,在当前的语境下重新编码,得到新的 embeding 向量。

1.2 local inference modeling

使用 Decomposable Attention 分别对 ph 做权重计算,得到 attention 权重 a^\hat{a}a^ ,b^\hat{b}b^

ai^=∑j=1lbexp⁡eij∑k=1lbexp⁡(eik)bˉ,∀i∈[1,2,...,la]\hat{a_i} = \sum_{j=1}^{l_b} \frac{\exp{e_{ij}}}{\sum_{k=1}^{l_b} \exp(e_{ik})} \bar{b}, \forall i \in [1, 2, ..., l_a]ai^=j=1lbk=1lbexp(eik)expeijbˉ,i[1,2,...,la]

bj^=∑i=1laexp⁡eij∑k=1laexp⁡(ekj)aˉ,∀j∈[1,2,...,lb]\hat{b_j} = \sum_{i=1}^{l_a} \frac{\exp{e_{ij}}}{\sum_{k=1}^{l_a} \exp(e_{kj})} \bar{a}, \forall j \in [1, 2, ..., l_b]bj^=i=1lak=1laexp(ekj)expeijaˉ,j[1,2,...,lb]

原文Decomposable Attention 在输入编码时候是直接用前馈神经网络对预训练的词向量做操作,这样会损失掉一些上下文信息,所以对其进行了改进。

1.3 inference composition

在 local inference 之后,进行 Enhancement of local inference information。这里的 enhancement 就是计算 a^\hat{a}a^aˉ\bar{a}aˉ乘积, 体现了一种差异性吧,更利用后面的学习, b^\hat{b}b^bˉ\bar{b}bˉ也做乘积操作。之后再将四个进行聚合拼接操作,
ma=[aˉ;a^;aˉ−a^;aˉ⊙a^]m_a = [\bar{a}; \hat{a}; \bar{a} - \hat{a}; \bar{a} \odot \hat{a}]ma=[aˉ;a^;aˉa^;aˉa^]

mb=[bˉ;b^;bˉ−b^;bˉ⊙b^]m_b = [\bar{b}; \hat{b}; \bar{b} - \hat{b}; \bar{b} \odot \hat{b}]mb=[bˉ;b^;bˉb^;bˉb^]

最后做一个求最大值和均值的操作再将 p,h 拼接起来,过一下biLSTMFFNsoftmax 得到最终结果。
va,i=BiLSTM(ma,i)v_{a,i} = BiLSTM(m_a, i)va,i=BiLSTM(ma,i)

vb,j=BiLSTM(mb,j)v_{b,j} = BiLSTM(m_b, j)vb,j=BiLSTM(mb,j)

va,ave=∑i=1lava,ilav_{a,ave} = \sum_{i=1}^{l_a} \frac{v_{a,i}}{l_a}va,ave=i=1lalava,i

va,max=max⁡i=1lava,iv_{a,max} = \max_{i=1}^{l_a} v_{a,i}va,max=i=1maxlava,i

vb,ave=∑j=1lbvb,jlbv_{b,ave} = \sum_{j=1}^{l_b} \frac{v_{b,j}}{l_b}vb,ave=j=1lblbvb,j

vb,max=max⁡j=1lbvb,jv_{b,max} = \max_{j=1}^{l_b} v_{b,j}vb,max=j=1maxlbvb,j

v=[va,ave;va,max;vb,ave;vb,max]v = [v_{a,ave}; v_{a,max}; v_{b,ave}; v_{b,max} ]v=[va,ave;va,max;vb,ave;vb,max]

2. 模型实现

模型核心代码见Python实战——ESIM 模型搭建(keras版)

论文笔记翻译——Enhanced LSTM for Natural Language Inference(ESIM)相关推荐

  1. ESIM:Enhanced LSTM for Natural Language Inference

    原文链接:https://aclanthology.org/P17-1152.pdf ACL 2017 概述 对于自然语言推理任务,Bowman等人在2015年提出了一个大数据集,大多数工作就开始使用 ...

  2. ESIM (Enhanced LSTM for Natural Language Inference)

    ESIM历史意义: 1. 深层次的挖掘文本间的语义关系特征 2.加入文本语法结构信息 本文主要结构如下: 一.Abstract 1.推理是人工智能的关键体现 2.SNLI为推理模型提供数据支撑 3.文 ...

  3. Enhanced LSTM for Natural Language Inference-学习笔记

    Enhanced LSTM for Natural Language Inference 自然语言推理(NLI: natural language inference)问题:即判断能否从一个前提p中推 ...

  4. 【论文笔记】Program synthesis using natural language

    摘要 随着计算机进入千家万户,人机交互变成了一项极其普遍的活动.一些重复性或专业性任务通常需要创建小型的.一次性的程序.为了实现这些一次性程序,终端用户(End-User)可能需要花费大量时间和精力去 ...

  5. 论文解读: Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

    前言:在自然语言研究领域,某些自然语言处理任务可以利用"预训练模型+任务描述"方式的无监督学习来解决.然而,已有的"预训练模型+任务描述"的无监督学习方法不如有 ...

  6. 论文解读:Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

    论文解读:Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference   随着 ...

  7. EMNLP2020 | 近期必读Natural Language Inference精选论文

    **AMiner平台**由清华大学计算机系研发,拥有我国完全自主知识产权.平台包含了超过2.3亿学术论文/专利和1.36亿学者的科技图谱,提供学者评价.专家发现.智能指派.学术地图等科技情报专业化服务 ...

  8. Natural Language Inference Over Interaction Space(DIIN)阅读笔记

    文章目录 Introduction Model Interactive Inference Network(IIN) Densely Interactive Inference Network(DII ...

  9. 【提示学习】Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

    论文信息 名称 内容 论文标题 Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inf ...

最新文章

  1. uikit框架开发前期配置及定制主题方法。
  2. 论坛服务软件Discux_X3.4的部署
  3. 408. Valid Word Abbreviation有效的单词缩写
  4. 操作篇 ospf认识和应用
  5. 3D游戏的照明设计理论,第3部分:三点照明法的异端与误区
  6. 国外网站评出对程序员最具影响的书籍清单
  7. svm核函数gamma参数_非线性SVM与核函数
  8. kotlin中既继承又实现_Kotlin程序| 解决继承中的主要冲突的示例
  9. win10 使用点滴
  10. 内网分享文件html源码,vue项目分享html页面(服务器只能内网访问)
  11. IT战略规划之流程再造
  12. 【题解】10-19秀秀的森林(forest)
  13. ERP中英文缩写汇总
  14. iMazing2.16最新苹果手机备份同步工具
  15. Unity教程 | 手把手教你拼一个3D“魔方”
  16. python需要电脑多大内存合适_编程用surface怎么样发(学python要多大内存)
  17. 2019计算机电源海关征税,回国华人注意!2019中国海关严打:这些东西千万别带了!...
  18. python获取内存地址上存储的值
  19. Netty应用实战:客户端重连
  20. SharePoint 创建页面布局

热门文章

  1. 二维码如何制作?三个二维码在线制作教程
  2. Leetcode 174. Dungeon Game 地下城游戏
  3. superIO在Linux下的设备,X86 Linux ITE SuperIO GPIO Control
  4. 在进行USB CDC类开发时,无法发送64整数倍的数据
  5. CVBS/AHD 转USB
  6. 10本好书,助企业赢在数字化转型起跑线
  7. python扇贝单词书,学习猿地-python 爬虫,爬取扇贝单词网单词
  8. 土地利用总体规划数据库问题
  9. CSS样式背景色打印的时候消失的问题
  10. 百度地图API详解之地图标注