如何又好又快的做文本匹配

BERT推理速度慢,导致落地困难;找到效果不错,推理速度快的模型是一个方向,ESIM是一个很好的选择;

ESIM[1] 推理速度快,效果不错,堪称文本匹配的利器;

对于ESIM,重点掌握就一点:是两个句子之间究竟是如何交互的.

0 整体架构

先来看整体结构是什么样子:

ESIM整体架构

对于这个架构,我们主要是看左边这个就可以;

可以看到,从架构上来看,这个模型大概可以范围四层:最底层是一个双向LSTM,作为句子的的编码器,随后是一个交互层,然后又是一个双向LSTM,最后是一个输出层。

原论文中,也是将ESIM分为四个部分,Input Encoding,Local Inference Modeling, Inference Composition和Prediction,我们一个个说。

1. Input Encoding

先假设,我现在有两个句子:

和;

我要判断它是否表达同样的意思:0或者1;

首先第一步是Input Encoding ,这是一个常规操作,就是tokens的embeddings接BiLSTM;注意,我们是两个句子都进入到这同一个BiLSTM中,而不是进入到两个;

公式如下:

Input Encoding

作者同时也测试了使用GRU对句子进行编码,但是结果在NLI任务上效果并不好;不过我认为,在实际工作中,两者都可尝试,毕竟玄学。

2. Local Inference Modeling

首先这里回顾一下符号:是句子a在i时刻的是输出,是句子b在j时刻的输出;

那么我们使用如下公式计算两个单词输出之间的交互:

两个单词之间的交互

举个很简单的例子,比如说隐层维度为256,那么,

那么相乘之后,就是维度[1,1]的值;

这只是两个单词输出之间的交互,我们知道a和b句子长度是不一样的(当然也可能一样);

这里我们假设a长度为10,b长度为20;

那么经过(11)的计算,我们会得到一个[10,20]的矩阵,用来描述两个句子之间不同单词之间的交互。

核心点就是在于对于这个[10,20]的矩阵,如何对它进行操作,公式如下:

句子交互

一定要注意看这里的,我们得到的是[10,20]的矩阵,然后对每一行做softmax操作,得到相似度,然后乘以。

(12)和(13)本质上是对这个[10,20]的矩阵分别做了按照行的相似度和按照列的相似度;

有点难理解,还是举个例子(这里的例子就不举长度为10和20了,简单点)。

a:【我今天去吃饭了】

b:【他为什么还在学习】

a中的【我】依次对【他为什么还在学习】中的每个单词做乘法,就是得到了;然后softmax之后,每个相似度对应乘以【他为什么还在学习】的每个单词输出encoding从而得到加权和,作为

之后就是对特征进行拼接,分为两种,对位相减和对位相乘:

对位相减和对位相乘

3. inference composition和Prediction

这一步也是常规操作,就是把输入到第二层的BiLSTM,并把输出做最大池化和平均池化,然后拼接特征,然后输出到全连接,得到结果:

第二层LSTM

4. 总结

最核心的点还是在于理解如从两个句子单词之间的交互矩阵获得两个句子之间的交互结果;

也就是需要对单词之间的交互矩阵,比如[10,20],分别按照行做softmax和列做softmax;

这个思想其实在后期很多模型中都有用到,值得思考。

参考资料

[1]

Enhanced LSTM for Natural Language Inference: https://arxiv.org/pdf/1609.06038.pdf,

(0)

相关推荐

  • 直观比较四种NLP模型 - 神经网络,RNN,CNN,LSTM

    文/ 阿里淘系 F(x) Team - 紫矜 NLP中使用的每种模型的差异有时令人难以把握,因为它们具有相似之处,并且通常设想使用新模型来克服以前模型的缺点.因此,本文将深入探讨每种模型的本质,并了解 ...

  • Github13K!相似搜索百宝箱,文本匹配入门必备!

    每个人都有网购的经历,当你打开淘宝.京东app进入店铺,是怎样找到自己心仪商品的呢? 最直白的方法,拉到"全部商品"页,从头一件件看.但这样做明显效率不高,如果有上千件商品,可能想 ...

  • 领英创始人里德·霍夫曼:如何又好又快地做决策?

    神译局  · 4小时前 关注 决策是创业的核心竞争力之一,但做决策的方法却常常被忽视. 神译局是36氪旗下编译团队,关注科技.商业.职场.生活等领域,重点介绍国外的新技术.新观点.新风向. 编者按:大 ...

  • 基于表征(Representation)的文本匹配、信息检索、向量召回的方法总结

    NewBeeNLP 永远有料,永远有趣 188篇原创内容 公众号 最近系统性的看了一些有关于信息检索.文本匹配方向的论文,先贴下三篇主角论文: 「(ColBERT)」 Khattab, O., &am ...

  • 用gensim库做文本相似性分析

    之前我们讲到的文本分析包括情绪分析.共线性,也制作了词云图.今天我们在学习点关于文本相似性的知识,说好了大邓只是在此抛砖引玉,具体想学想深入的可以去看文档. gensim简介 gensim是一个主题模 ...

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

    大家好,我是Giant,这是我的第4篇文章. 文本匹配是自然语言处理领域一个基础且重要的方向,一般研究两段文本之间的关系.文本相似度.自然语言推理.问答系统.信息检索都可以看作针对不同数据和场景的文本 ...

  • 文本匹配开山之作--双塔模型及实战

    NewBeeNLP 永远有料,永远有趣 199篇原创内容 公众号 在前面一篇文章中,总结了Representation-Based文本匹配模型的改进方法, 基于表征(Representation)的文 ...

  • 谈谈文本匹配和多轮检索

    作者:朱帅 学校:华中科技大学 研究方向:文本匹配,对话系统 1. 关于文本匹配 文本匹配是NLP的基础任务之一,按照论文中的实验对传统的文本匹配任务进行分类,大致可以分为文本检索(ad-hoc),释 ...

  • 神奇!只用标签名称就可以做文本分类

    来自:NLP从入门到放弃 对于实际的文本分类需求,没有标注数据是一件很常见的事情. 针对这种情况,有一个最朴素的思路可以做: 首先,根据对应的标签名称,使用W2C找到对应的相近词 通过相近词,对文本数 ...

  • 不看后悔!2011年别克更换完变速箱电脑后,要如何做设定匹配

    案例背景 一辆2011年的别克GL8波箱电脑损坏,更换全新电脑板后,并成功执行了编程配置功能,但依旧不能正常挂挡,无法启动车辆,,读取到故障码"P287C 变速箱自适应值未读入" ...