背景

前文已经介绍了【NLP】文本匹配——Enhanced LSTM for Natural Language Inference,其实2017年发表的,文中使用了两个LSTM进行特征提取,总的来说参数多,速度慢,还不能并行处理。今天我们再来看看阿里巴巴和南京大学发表的在2019年发表的一篇文本匹配论文:Simple and Effective Text Matching with Richer Alignment Features,没有使用LSTM进行特征提取,支持了并行化处理以及参数也少了很多。具体怎么做的,我们看看该论文的介绍。主要看模型的结构设计,模型相关实验可以看看原文。论文中将该算法简称为RE2.

RE2

首先说一下为什么叫做RE2吧。主要是该模型的结构包含三个重要的部分:Residual vectors、Embedding vectors、Encoded vectors。

该模型的结构如下:

由于我们的输入包含两个句子,即sentence1和sentence2。对于输入的两个句子的处理方式相同,故省略了另一半。论文中的核心内容在section2,模型的第一层是常规的Embedding层,第二层是中间处理层,里面有N个相同的block,每个block不共享,参数独立,第三层就是输出层。

下面我们来详细看看这几层是如何做的。

Augmented Residual Connections(增强的残差连接)

为了为对齐过程提供更丰富的特性,RE2采用了增强版的残差连接来连接连续的块。对于一个长度为lll的序列,对于第n个块的输入与输出做以下定义,输入:x(n)=(x1(n),x2(n),⋯,xl(n))x^{(n)}=(x_1^{(n)},x_2^{(n)},\cdots,x_l^{(n)})x(n)=(x1(n),x2(n),,xl(n)),输出o(n)=(o1(n),o2(n),⋯,ol(n))o^{(n)}=(o_1^{(n)},o_2^{(n)},\cdots,o_l^{(n)})o(n)=(o1(n),o2(n),,ol(n))o(0)o^{(0)}o(0)设置为0向量。x(1)x^{(1)}x(1)是Embedding层的输出结果。接下来的第n(n≥2)n(n\geq 2)n(n2)块的表示如下:
xi(n)=[xi(1);oi(n−1)+oi(n−2)]x_{i}^{(n)}=\left[x_{i}^{(1)} ; o_{i}^{(n-1)}+o_{i}^{(n-2)}\right] xi(n)=[xi(1);oi(n1)+oi(n2)]
其中[;][;][;]表示拼接。

对于增强的残差连接,对齐和融合层的输入有三个部分,即沿途保持不变的原始点向特征(嵌入向量),由以前的块(残差向量)处理和细化的先前对齐向量,以及来自编码器层的上下文特征(编码向量)。这三个部分在文本匹配过程中都起着互补的作用。

Alignment Layer 对齐层

对齐层将两个序列中的特征作为输入,并计算对齐的表示作为输出。从长度为lal_ala的第一个序列输入的输入表示为a=(a1,a2,⋯,ala)a=(a_1,a_2,\cdots,a_{l_a})a=(a1,a2,,ala),长度为lbl_blb的第二个序列表示为b=(b1,b2,⋯,blb)b=(b_1,b_2,\cdots,b_{l_b})b=(b1,b2,,blb)aia_iaibjb_jbj的相似度得分如下:
eij=F(ai)TF(bj)e_{i j}=F\left(a_{i}\right)^{T} F\left(b_{j}\right) eij=F(ai)TF(bj)
F是一个指定的函数或一个单层前馈网络。该选择被视为一个超参数。对齐结果a′a^{\prime}ab′b^{\prime}b计算如下:

ai′=∑j=1lbexp⁡(eij)∑k=1lbexp⁡(eik)bjbj′=∑i=1laexp⁡(eij)∑k=1laexp⁡(ekj)ai\begin{aligned} a_{i}^{\prime} &=\sum_{j=1}^{l_{b}} \frac{\exp \left(e_{i j}\right)}{\sum_{k=1}^{l_{b}} \exp \left(e_{i k}\right)} b_{j} \\ b_{j}^{\prime} &=\sum_{i=1}^{l_{a}} \frac{\exp \left(e_{i j}\right)}{\sum_{k=1}^{l_{a}} \exp \left(e_{k j}\right)} a_{i} \end{aligned} aibj=j=1lbk=1lbexp(eik)exp(eij)bj=i=1lak=1laexp(ekj)exp(eij)ai
求和通过当前位置和另一个序列中相应位置之间的相似性得分进行加权,还是一种attention。

Fusion Layer 融合层

融合层在三个角度中比较局部和对齐表示,然后将它们融合在一起。第一个序列a‾\overline aa的融合层的输出计算如下:
aˉi1=G1([ai;ai′]),aˉi2=G2([ai;ai−ai′]),aˉi3=G3([ai;ai∘ai′]),aˉi=G([aˉi1;aˉi2;aˉi3]),\begin{aligned} &\bar{a}_{i}^{1}=G_{1}\left(\left[a_{i} ; a_{i}^{\prime}\right]\right), \\ &\bar{a}_{i}^{2}=G_{2}\left(\left[a_{i} ; a_{i}-a_{i}^{\prime}\right]\right), \\ &\bar{a}_{i}^{3}=G_{3}\left(\left[a_{i} ; a_{i} \circ a_{i}^{\prime}\right]\right), \\ &\bar{a}_{i}=G\left(\left[\bar{a}_{i}^{1} ; \bar{a}_{i}^{2} ; \bar{a}_{i}^{3}\right]\right), \end{aligned} aˉi1=G1([ai;ai]),aˉi2=G2([ai;aiai]),aˉi3=G3([ai;aiai]),aˉi=G([aˉi1;aˉi2;aˉi3]),
其中G1、G2、G3、G为参数独立的单层前馈网络,∘\circ为元素级乘法。减法算符突出了两个向量之间的差异,而乘法突出了相似性。b‾\overline bb的公式类似,在这里省略了。

Prediction Layer 预测层

预测层从池化层中获取两个序列v1v_1v1v2v_2v2的向量表示作为输入,并预测接下来的最终目标,如下:
y^=H([v1;v2;v1−v2;v1∘v2])\hat{\mathbf{y}}=H\left(\left[v_{1} ; v_{2} ; v_{1}-v_{2} ; v_{1} \circ v_{2}\right]\right) y^=H([v1;v2;v1v2;v1v2])
H是一个多层前馈神经网络。

总结

从公式来看,了解ESIM的会发现,该模型与ESIM还是比较相似,最大的不同点在于使用残差网络进行信息增强。除此之外,由于没有使用LSTM进行特征提取,其速度也会比ESIM快。

【NLP】文本匹配——Simple and Effective Text Matching with Richer Alignment Features阅读与总结(RE2)相关推荐

  1. RE2:Simple and Effective Text Matching with Richer Alignment Features

    原文链接:https://aclanthology.org/P19-1465.pdf 2019 ACL 介绍 问题 作者认为之前文本匹配模型中序列对齐部分,过于复杂.只有单个inter-sequenc ...

  2. 文本匹配开山之作-DSSM论文笔记及源码阅读(类似于sampled softmax训练方式思考)

    文章目录 前言 DSSM框架简要介绍 模型结构 输入 Encoder层 相似度Score计算 训练方式解读 训练数据 训练目标 训练方式总结 DSSM源码阅读 训练数据中输入有负样本的情况 输入数据 ...

  3. nmt模型源文本词项序列_「自然语言处理(NLP)」阿里团队--文本匹配模型(含源码)...

    来源:AINLPer微信公众号 编辑: ShuYini 校稿: ShuYini 时间: 2019-8-14 引言 两篇文章与大家分享,第一篇作者对通用文本匹配模型进行探索,研究了构建一个快速优良的文本 ...

  4. antd 文本域超长问题_「自然语言处理(NLP)」阿里团队--文本匹配模型(含源码)...

    来源:AINLPer微信公众号 编辑: ShuYini 校稿: ShuYini 时间: 2019-8-14 引言     两篇文章与大家分享,第一篇作者对通用文本匹配模型进行探索,研究了构建一个快速优 ...

  5. 【文本匹配】之 RE2论文详解

    RE2 - Simple and Effective Text Matching with Richer Alignment Features 这篇论文来自阿里,19年的ACL论文.<Simpl ...

  6. Text to image论文精读 NAAF:基于负感知注意力的图像-文本匹配框架 Negative-Aware Attention Framework for Image-Text Matching

    NAAF:Negative-Aware Attention Framework for Image-Text Matching是基于负感知注意力的图文匹配,其利用匹配片段的积极影响和不匹配片段的消极影 ...

  7. 【NLP】文本匹配相关方向打卡点总结

    点击上方,选择星标或置顶,每天给你送干货! 阅读大概需要27分钟 跟随小博主,每天进步一丢丢 来自:夕小瑶的卖萌屋 Motivation 前不久小夕在知乎上写了一个回答<NLP有哪些独立研究方向 ...

  8. 【NLP】对比学习——文本匹配(二)

    文章目录 d. SimCSE:2021.04 Unsupervised Supervised e. R-Drop(Supervised):2021.06 f. ESimCSE(Unsupervised ...

  9. 【NLP】深度文本匹配综述

    目  录 1.研究背景与意义  2.深度学习在自然语言处理的应用  3.深度文本匹配与传统文本匹配  4.深度文本匹配国内外研究现状  4.1基于单语义表达的文本匹配 4.2基于多语义表达的文本匹配 ...

最新文章

  1. 业界干货 | 图解自监督学习,从入门到专家必读的九篇论文
  2. 使用OC语言批量修改文件名称
  3. C++/C--set常见用法详解【转载】
  4. Android studio 升级指定dradle
  5. 如何构建NLP Pipeline,各模块代码实现细节全在这里!
  6. 算法学习之路|反转链表
  7. 如何在Word中打开公式编辑器
  8. 深度linux系统硬件要求,国产操作系统Deepin Linux(深度系统)安装体验
  9. java 字符串长度截取_java中截取指定字符串长度函数
  10. 微信支付商户号商家转账到零钱现金红包如何开通
  11. sd卡无法读取怎么办?内存卡数据恢复,4个好用方法
  12. android 垃圾清理 文件清理
  13. 制作Win10系统安装U盘,安装纯净版Win10的通用教程
  14. 基于Java+Swing实现餐厅点餐系统
  15. Uni-App开发框架介绍
  16. 总线Bus是什么意思
  17. maxcompute-入门-环境安装
  18. NOI-1.2(01) 整型数据类型存储空间大小
  19. 常见复杂网络分析方法
  20. python爬虫爬汽车图片_python爬虫爬取汽车网站外型图片

热门文章

  1. Linux驱动学习12(初步认识内存管理)
  2. 1-2 移动均线交叉策略1
  3. 在Groovy中使用字符串
  4. L. Lifeguards(排序)
  5. C语言编程>第二十二周 ⑥ 请补充fun函数,该函数的功能是:把字符下标能被2和3同时整除的字符从字符串s中删除,把剩余的字符重新保存在字符串s中。
  6. jQuery AJAX回调函数this指向问题
  7. vuetify 学习第一天之v-data-table_表格组件
  8. 影视后期制作中AEnbsp;抠像技术浅…
  9. BCS演讲实录 | 未来智安CTO陈毓端精讲《XDR扩展威胁检测响应探索与实践》
  10. SQL语句查询表的最后一条数据