RE2 - Simple and Effective Text Matching with Richer Alignment Features

这篇论文来自阿里,19年的ACL论文。《Simple and Effective Text Matching with Richer Alignment Features》:https://arxiv.org/abs/1908.00300

Intro

很多深层网络只拥有一层alignment layer,导致模型需要很多额外的语义信息或手工特征或复杂alignment机制或后处理。

本文的创新点就在于用multiple alignment processes。

R - Residual vectors:previous aligned features

E - Embedding vectors:original point-wise features

E - Encoded vectors:contextual features

简称RE2

具体代表什么呢?让我们往下看。

Model

空白格子表示embedding vectors,斜线方格表示augmented residual connections,经过一个encoder生成的context vectors用黑色方格表示。如图所示,把这三个向量concat起来都放进alignment layer里,再用alignment layer的input和output都concat起来放入fusion layer中。一个block包含encoding、alignment和fusion三层,重复N次且每个block都是独立的参数。 fusion layer的output经过池化层,得到最后的固定长度向量。利用左右两侧的固定长度向量做预测,Loss采用交叉熵。

Augmented Residual Connections

为了给alignment layer(attention layer)提供更丰富的特征,RE2用了残差网络来连接连续的n个blocks。

The input of the nnn-th block x(n)x^{(n)}x(n)(nnn ≥ 2), is the concatenation of the input of the first block x(1)x^{(1)}x(1) and the summation of the output of previous two blocks (denoted by rectangles with diagonal stripes in Figure 1):

xi(n)=[xi(1);oi(n−1)+oi(n−2)]x^{(n)}_i=[x^{(1)}_i;o^{(n-1)}_i+o_i^{(n-2)}] xi(n)=[xi(1);oi(n1)+oi(n2)]

Alignment Layer

alignment的方法仍是采取点积(可指路上一篇【文本匹配】之 经典ESIM论文详读)。FFF指identity function或单层前向神经网络,这个作为超参数自行指定。

eij=F(ai)TF(bj)e_{ij}=F(a_i)^TF(b_j) eij=F(ai)TF(bj)

求得相似度e后,我们用同样的方法得到加权和。ai′a'_iai就是{bj}j=1lb\{b_j\}^{l_b}_{j=1}{bj}j=1lb中关于aia_iai的内容。

ai′=∑j=1lbexp(eij)∑k=1lbexp(eik)bj,∀i∈[1,...,la]bj′=∑i=1laexp(eij)∑k=1laexp(ekj)ai,∀j∈[1,...,lb]a'_i=\sum^{l_b}_{j=1}\frac{exp(e_{ij})}{\sum^{l_b}_{k=1}exp(e_{ik})} b_j, \forall i\in [1,...,l_a]\\b'_j=\sum^{l_a}_{i=1}\frac{exp(e_{ij})}{\sum^{l_a}_{k=1}exp(e_{kj})} a_i, \forall j\in [1,...,l_b] ai=j=1lbk=1lbexp(eik)exp(eij)bj,i[1,...,la]bj=i=1lak=1laexp(ekj)exp(eij)ai,j[1,...,lb]

Fusion Layer

对输入sequence aˉ\bar{a}aˉ进行以下三个计算,并进行concat。这里的GGG是单层前向神经网络,因为参数不共享所以用不同角标进行区别。

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])\bar{a}_i^1=G_1([a_i;a_i'])\\\bar{a}_i^2=G_2([a_i;a_i-a_i'])\\\bar{a}_i^3=G_3([a_i;a_i \odot a_i'])\\\bar{a}_i=G([\bar{a}_i^1;\bar{a}_i^2;\bar{a}_i^3])\\ aˉi1=G1([ai;ai])aˉi2=G2([ai;aiai])aˉi3=G3([ai;aiai])aˉi=G([aˉi1;aˉi2;aˉi3])

相减主要是为了提取difference,相乘是为了提取similarity。

Prediction Layer

输入v1,v2v_1,v_2v1,v2两个vector,输出的值为:

y^=H([v1;v2;v1−v2;v1⊙v2])\hat{y}=H([v1;v2;v1-v2;v1\odot v2]) y^=H([v1;v2;v1v2;v1v2])

其中H为多层前向神经网络。

简化版,这个也作为超参数调试:

y^=H([v1;v2])\hat{y}=H([v1;v2]) y^=H([v1;v2])

Difference with ESIM

从公式来看,和ESIM还是比较相似,最大的不同点在于使用残差网络进行信息增强。由于每个block都含有alignment层,从单一的alignment process变成了multiple alignment processes。这个方法放弃了复杂的计算alignment方式(complicated multi-way alignment mechanisms, heavy distillations of alignment results, external syntactic features, or dense connections to connect stacked blocks when the model is going deep),所以在保证性能的基础上尽可能地快。

作者给出了github地址:

tf1.x:alibaba-edu/simple-effective-text-matching

pytorch:alibaba-edu/simple-effective-text-matching-pytorch

【文本匹配】之 RE2论文详解相关推荐

  1. 文本匹配与ESIM模型详解

    ESIM(Enhanced Sequential Inference Model)是一个综合应用了BiLSTM和注意力机制的模型,在文本匹配中效果十分强大,也是目前为止我见过结构最复杂的模型,下面将会 ...

  2. 智能城市dqn算法交通信号灯调度_博客 | 滴滴 KDD 2018 论文详解:基于强化学习技术的智能派单模型...

    原标题:博客 | 滴滴 KDD 2018 论文详解:基于强化学习技术的智能派单模型 国际数据挖掘领域的顶级会议 KDD 2018 在伦敦举行,今年 KDD 吸引了全球范围内共 1480 篇论文投递,共 ...

  3. transfromer-XL论文详解

    transfromer-XL论文详解 – 潘登同学的NLP笔记 文章目录 transfromer-XL论文详解 -- 潘登同学的NLP笔记 Vanilla Transformer Segment-Le ...

  4. 【论文精读3】MVSNet系列论文详解-P-MVSNet

    P-MVSNet全名为"P-MVSNet: Learning Patch-wise Matching Confidence Aggregation for Multi-View Stereo ...

  5. Spark RDD 论文详解(七)讨论

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  6. 文本相似性计算之编辑距离详解

    文本相似性计算之编辑距离详解 概述: 编辑距离(Edit Distance):是一个度量两个字符序列之间差异的字符串度量标准,两个单词之间的编辑距离是将一个单词转换为另一个单词所需的单字符编辑(插入. ...

  7. Linux——文本编辑器(Vi)详解介绍

    Linux--文本编辑器(Vi)详解介绍 1.Vi的简介 Vi是Visual interface的简称,可以执行输出.删除.查找.替换.块操作等众多文本操作,而且用户根据自己的需要对其进行制定,这是v ...

  8. Spark 3.2.0 版本新特性 push-based shuffle 论文详解(二)背景和动机

    前言 本文隶属于专栏<大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 目录 Spark 3.2.0 ...

  9. pix2pix论文详解

    pix2pix论文详解 – 潘登同学的对抗神经网络笔记 文章目录 pix2pix论文详解 -- 潘登同学的对抗神经网络笔记 pix2pix简介 模型输入 与GAN的区别 Loss函数的选取 condi ...

最新文章

  1. 17.2?Replication Implementation 复制实施:
  2. UA MATH523A 实分析1 集合论基础7 一些度量空间基本概念
  3. [深度学习]自然语言处理 --- ELMo
  4. Android之使用PopupWindow使用和总结
  5. php 数字加逗号,php数字满三位添加一逗号
  6. 《Python Cookbook 3rd》笔记(1.3):保留最近N个元素
  7. 1900-01-01t00:00:00+08:00 java_日期格式转换 java 2016-09-03T00:00:00.000+08:00
  8. logstash 启动方式
  9. 961计算机组成原理,2017年华中科技大学附属协和医院961计算机组成原理考研强化模拟题...
  10. kali linux无法启动服务,不好了!出问题了!在安装Kali Linux之后启动系统时
  11. 用命令行批处理bat,设置代理服务器、DNS、网关、WINS等
  12. python数独游戏源代码_Python数独游戏源代码
  13. SPSS 检验后显著性识别
  14. (ZT)中国姓氏韦氏拼音拼法
  15. 教程 | win7环境下MySQL详细安装过程
  16. android 铃声播放器,Muziko - 想截取音乐片段当铃声?这款漂亮的播放器能帮你 - Android 应用 - 【最美应用】...
  17. 德语语法笔记——名词的变格
  18. 视频图像传输与显示(3)——复合视频信号CVBS解析
  19. JTAG (一)杂谈
  20. amule与firefox4的关联

热门文章

  1. Abnova ABCB10(人)重组蛋白说明书
  2. 新学期如何克服“社恐”,猿辅导老师给高中生三条建议
  3. SpringMVC学习-IDEA创建maven项目添加webapp怎么配置
  4. python3 value counts函数_一键提升数据挖掘姿势水平,5种高效利用value-counts函数的方法...
  5. Photoshop图片局部马赛克
  6. 宁波网站排名优化,如何做营销型的网站?
  7. 这些年正Android - 大学
  8. impdp 并行_Oracle expdp/impdp常用性能优化方法
  9. 基于Django的图书推荐系统和论坛
  10. 大连计算机学院体育馆,【大科·数院】青春就要“赛”一场——大连科技学院“DK”战队荣获大连赛区冠军、全国八强...