文本匹配-bimpm

论文链接地址

Bilateral Multi-Perspective Matching for Natural Language Sentences

github

https://github.com/KATEhuang920909/deep_text_match

前言

\quad 本文将介绍文本匹配算法Bi-MPM,由IBM的 zhiguo wang 等人提出,对于两个句子P和Q,该模型首先利用BiLSTM encoder将两个句子进行编码,然后从两个方向对以及编码的句子进行匹配,P到Q和Q到P,在每个方向上,例如从P到Q,P的每一个step和Q的step进行匹配,Q可以选择last step、Maxpooling、Attentive等方式参与匹配,这样可以获得与P的维度相同的输出匹配向量,最后送入全连接神经网络,并最终输出匹配值。该模型在释义识别、自然语言推理、问答系统达到了SOTA。

任务

该任务是文本匹配任务NLSM(natural language similarity matching),我们将任务的输入看作一个三元组(P,Q,y),其中 P = ( p 1 , p 2 , . . . , p M ) , Q = ( q 1 , q 2 , . . . , q N ) P=(p_1,p_2,...,p_M),Q =(q_1,q_2,...,q_N) P=(p1,p2,...,pM)Q=(q1,q2,...,qN) y 是 p i 和 q i y是p_i和q_i ypiqi的匹配标签, y ∈ { 0 , 1 } y \in \{0,1\} y{0,1}

BiMPM模型结构

\quad 整体结构如下图所示:
BiMPM模型结构

\quad 模型由 词语表示层、文本表示层、匹配层、聚合层和输出层组成, ⨂ \bigotimes 为多角度的匹配操作。

词语表示层(Word Representation Layer)

\quad 该层的主要目的是表征P和Q中的每一个词语到d维空间中,该d维向量主要由两部分组成:词向量和字符级向量,词向量可以由于训练好的向量模型获取,如word2vec、glove、emlo、bert等,字符级向量采用随机初始化方式送入到LSTM当中参与训练,然后与词向量拼接,这样就可以获得P和Q的词向量序列 P : [ p 1 , . . . , p M ] , Q : [ q 1 , . . . , q N ] P:[p_1,...,p_M],Q:[q_1,...,q_N] P:[p1,...,pM]Q:[q1,...,qN]

文本表示层(Context Representation Layer)

该层的主要目的是将上下文信息整合到P和Q的每一个时间步长当中,这里使用BiLSTM去编码来获得文本的embedding,对于P,有:

h i p ⇀ = L S T M ⇀ ( h i − 1 p ⇀ , p i ) i = 1 , . . . , M \overrightharpoon{h_i^p} = \overrightharpoon{LSTM}(\overrightharpoon{h_{i-1}^p},p_i) \quad i =1,...,M hip =LSTM (hi1p ,pi)i=1,...,M
h i p ⇀ = L S T M ↼ ( h i + 1 p ↼ , p i ) i = M , . . . , 1 \overrightharpoon{h_i^p} = \overleftharpoon{LSTM}(\overleftharpoon{h_{i+1}^p},p_i) \quad i=M,...,1 hip =LSTM (hi+1p ,pi)i=M,...,1
对于Q,有:
h j q ⇀ = L S T M ⇀ ( h j − 1 q ⇀ , q i ) j = 1 , . . . , N \overrightharpoon{h_j^q} = \overrightharpoon{LSTM}(\overrightharpoon{h_{j-1}^q},q_i) \quad j =1,...,N hjq =LSTM (hj1q ,qi)j=1,...,N
h j q ⇀ = L S T M ↼ ( h j + 1 q ↼ , q i ) j = N , . . . , 1 \overrightharpoon{h_j^q} = \overleftharpoon{LSTM}(\overleftharpoon{h_{j+1}^q},q_i) \quad j=N,...,1 hjq =LSTM (hj+1q ,qi)j=N,...,1

匹配层(matching layer)

该层是怎个算法模型的核心,目的是比较其中一个句子的每一步文本特征和另一个句子的所有时间步的文本特征。即 P → Q 和 Q → P P \to Q 和Q \to P PQQP,这里我们设计了多种匹配操作 ⨂ \bigotimes ,通过该操作以后输出两个文本每一个时间不长的输出向量

⨂ \bigotimes 操作(Multi-perspective Matching Operation)

多角度的匹配操作 ⨂ \bigotimes 由以下两步组成:
首先,我们选取余弦函数作为匹配函数 f m f_m fm来比较两个向量,
m = f m ( v 1 , v 2 ; W ) m=f_m(v_1,v_2;W) m=fm(v1,v2;W)

\quad 其中, v 1 和 v 2 v_1和v_2 v1v2是两个d维向量,W是一个可以训练的参数,维度为 l × d l \times d l×d ,l和d分别为query和document的时间步长, m 是 l 维 度 的 向 量 m = [ m 1 , m 2 , . . . , m l ] m是l维度的向量m =[m_1,m_2,...,m_l] mlm=[m1,m2,...,ml].计算公式为:
m k = c o s i n e ( W k ⋅ v 1 , W k ⋅ v 2 ) m_k = cosine(W_k \sdot v_1,W_k \sdot v_2) mk=cosine(Wkv1Wkv2)

我们定义了四种策略将P的每一个时间步长去匹配Q的所有时间步长,具体如下:
1.全匹配(Full-Matching)(a):
在这个匹配策略中,每一个时间步长 h i p ⇀ ( h i p ↼ ) \overrightharpoon{h_i^p}(\overleftharpoon{h_i^p}) hip (hip )和Q的最后一步进行匹配 h N q ⇀ ( h 1 q ↼ ) \overrightharpoon{h_N^q}(\overleftharpoon{h_1^q}) hNq (h1q )
m i f u l l ⇀ = f m ( h i p ⇀ , h N q ⇀ ; W 1 ) \overrightharpoon{m_i^{full}}=f_m(\overrightharpoon{h_i^p},\overrightharpoon{h_N^q};W^1) mifull =fm(hip ,hNq ;W1)
m i f u l l ↼ = f m ( h i p ↼ , h 1 q ⇀ ; W 2 ) \overleftharpoon{m_i^{full}}=f_m(\overleftharpoon{h_i^p},\overrightharpoon{h_1^q};W^2) mifull =fm(hip ,h1q ;W2)

2.最大池化匹配(maxpooling-Matching)(b):
在这个策略中,每一个时间步长 h i p ⇀ ( h i p ↼ ) \overrightharpoon{h_i^p}(\overleftharpoon{h_i^p}) hip (hip )和另一个文本中的每一个时间步长做匹配 h j q ⇀ ( h j q ↼ ) \overrightharpoon{h_j^q}(\overleftharpoon{h_j^q}) hjq (hjq ),然后返回匹配值最大的元素。公式如下:

m i m a x ⇀ = m a x j ∈ ( 1 , . . . , N ) f m ( h i p ⇀ , h j q ⇀ ; W 3 ) \overrightharpoon{m_i^{max}}=max_{j \in (1,...,N)}f_m(\overrightharpoon{h_i^p},\overrightharpoon{h_j^q};W^3) mimax =maxj(1,...,N)fm(hip ,hjq ;W3)
m i m a x ↼ = m a x j ∈ ( 1 , . . . , N ) f m ( h i p ↼ , h j q ↼ ; W 4 ) \overleftharpoon{m_i^{max}}=max_{j \in (1,...,N)}f_m(\overleftharpoon{h_i^p},\overleftharpoon{h_j^q};W^4) mimax =maxj(1,...,N)fm(hip ,hjq ;W4)

3.注意力匹配(attentive-Matching)(c)
首先,我们计算出每一个时间步长 h i p ⇀ ( h i p ↼ ) \overrightharpoon{h_i^p}(\overleftharpoon{h_i^p}) hip (hip )和另一个文本中的每一个时间步长 h j q ⇀ ( h j q ↼ ) 的 匹 配 值 \overrightharpoon{h_j^q}(\overleftharpoon{h_j^q})的匹配值 hjq (hjq ),:
α i , j ⇀ = c o s i n e ( h i p ⇀ , h j q ⇀ ) \overrightharpoon{\alpha_{i,j}} = cosine(\overrightharpoon{h_i^p},\overrightharpoon{h_j^q}) αi,j =cosine(hip ,hjq )
α i , j ↼ = c o s i n e ( h i p ↼ , h j q ↼ ) \overleftharpoon{\alpha_{i,j}} = cosine(\overleftharpoon{h_i^p},\overleftharpoon{h_j^q}) αi,j =cosine(hip ,hjq )
然后将 α i , j ⇀ ( α i , j ↼ ) 作 为 h j q ⇀ ( h j q ↼ ) \overrightharpoon{\alpha_{i,j}}(\overleftharpoon{\alpha_{i,j}})作为\overrightharpoon{h_j^q}(\overleftharpoon{h_j^q}) αi,j (αi,j )hjq (hjq )的权重值,然后进行加权相加,公式如下:
h i m e a n ⇀ = ∑ j = 1 N α i , j ⇀ . h j q ⇀ ∑ j = 1 N α i , j ⇀ \overrightharpoon{h_i^{mean}} = \frac{\sum_{j=1}^N\overrightharpoon{\alpha_{i,j}}.\overrightharpoon{h_j^q}}{\sum_{j=1}^N\overrightharpoon{\alpha_{i,j}}} himean =j=1Nαi,j j=1Nαi,j .hjq
h i m e a n ↼ = ∑ j = 1 N α i , j ↼ . h j q ↼ ∑ j = 1 N α i , j ↼ \overleftharpoon{h_i^{mean}} = \frac{\sum_{j=1}^N\overleftharpoon{\alpha_{i,j}}.\overleftharpoon{h_j^q}}{\sum_{j=1}^N\overleftharpoon{\alpha_{i,j}}} himean =j=1Nαi,j j=1Nαi,j .hjq
最后将每个时间步长 h i p ⇀ ( h i p ↼ ) \overrightharpoon{h_i^p}(\overleftharpoon{h_i^p}) hip (hip )和对应的加权向量进行匹配
4.最大注意力匹配(Max-Attentive-Matching)(d):
这种策略与第三种类似,区别是不用加权相加,而是取匹配值的最大值对应的向量进行匹配。

然后,我们使用了该四种策略,共八种输出结果,然后进行拼接,获得最终的向量表示。

在这里插入图片描述

聚合层

采用双向LSTM,分别将匹配曾获得的输出向量送入,得到双向的结果,然后进行拼接。

预测层

该层我们采用两层全连接神经网络,然后采用softmax函数获得输出值。

实验参数

1.预向量模型Glove获取静态词向量:
维度:300
OOV词:随机初始化
2.字向量:初始化向量长度为20
3.LSTM hidden_size:50
4.BiLSTM hidden_size:100
5.drop out 比例:0.1
6.优化器:ADAM
7.学习率:0.001

欢迎指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值