600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 文本匹配-bimpm

文本匹配-bimpm

时间:2022-08-26 01:28:01

相关推荐

文本匹配-bimpm

文章目录

论文链接地址github前言任务BiMPM模型结构词语表示层(Word Representation Layer)文本表示层(Context Representation Layer)匹配层(matching layer)⨂\bigotimes⨂操作(Multi-perspective Matching Operation)聚合层预测层实验参数欢迎指正

论文链接地址

Bilateral Multi-Perspective Matching for Natural Language Sentences

github

/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=(p1,p2,...,pM),Q=(q1,q2,...,qN)P=(p_1,p_2,...,p_M),Q =(q_1,q_2,...,q_N)P=(p1​,p2​,...,pM​),Q=(q1​,q2​,...,qN​),y是pi和qiy是p_i和q_iy是pi​和qi​的匹配标签,y∈{0,1}y \in \{0,1\}y∈{0,1}。

BiMPM模型结构

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

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

词语表示层(Word Representation Layer)

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

文本表示层(Context Representation Layer)

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

hip⇀=LSTM⇀(hi−1p⇀,pi)i=1,...,M\overrightharpoon{h_i^p} = \overrightharpoon{LSTM}(\overrightharpoon{h_{i-1}^p},p_i) \quad i =1,...,Mhip​​=LSTM(hi−1p​​,pi​)i=1,...,M

hip⇀=LSTM↼(hi+1p↼,pi)i=M,...,1\overrightharpoon{h_i^p} = \overleftharpoon{LSTM}(\overleftharpoon{h_{i+1}^p},p_i) \quad i=M,...,1hip​​=LSTM(hi+1p​​,pi​)i=M,...,1

对于Q,有:

hjq⇀=LSTM⇀(hj−1q⇀,qi)j=1,...,N\overrightharpoon{h_j^q} = \overrightharpoon{LSTM}(\overrightharpoon{h_{j-1}^q},q_i) \quad j =1,...,Nhjq​​=LSTM(hj−1q​​,qi​)j=1,...,N

hjq⇀=LSTM↼(hj+1q↼,qi)j=N,...,1\overrightharpoon{h_j^q} = \overleftharpoon{LSTM}(\overleftharpoon{h_{j+1}^q},q_i) \quad j=N,...,1hjq​​=LSTM(hj+1q​​,qi​)j=N,...,1

匹配层(matching layer)

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

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

多角度的匹配操作⨂\bigotimes⨂由以下两步组成:

首先,我们选取余弦函数作为匹配函数fmf_mfm​来比较两个向量,

m=fm(v1,v2;W)m=f_m(v_1,v_2;W)m=fm​(v1​,v2​;W)

\quad其中,v1和v2v_1和v_2v1​和v2​是两个d维向量,W是一个可以训练的参数,维度为l×dl \times dl×d ,l和d分别为query和document的时间步长,m是l维度的向量m=[m1,m2,...,ml]m是l维度的向量m =[m_1,m_2,...,m_l]m是l维度的向量m=[m1​,m2​,...,ml​].计算公式为:

mk=cosine(Wk⋅v1,Wk⋅v2)m_k = cosine(W_k \sdot v_1,W_k \sdot v_2)mk​=cosine(Wk​⋅v1​,Wk​⋅v2​)

我们定义了四种策略将P的每一个时间步长去匹配Q的所有时间步长,具体如下:

1.全匹配(Full-Matching)(a):

在这个匹配策略中,每一个时间步长hip⇀(hip↼)\overrightharpoon{h_i^p}(\overleftharpoon{h_i^p})hip​​(hip​​)和Q的最后一步进行匹配hNq⇀(h1q↼)\overrightharpoon{h_N^q}(\overleftharpoon{h_1^q})hNq​​(h1q​​)

mifull⇀=fm(hip⇀,hNq⇀;W1)\overrightharpoon{m_i^{full}}=f_m(\overrightharpoon{h_i^p},\overrightharpoon{h_N^q};W^1)mifull​​=fm​(hip​​,hNq​​;W1)

mifull↼=fm(hip↼,h1q⇀;W2)\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):

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

mimax⇀=maxj∈(1,...,N)fm(hip⇀,hjq⇀;W3)\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)

mimax↼=maxj∈(1,...,N)fm(hip↼,hjq↼;W4)\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)

首先,我们计算出每一个时间步长hip⇀(hip↼)\overrightharpoon{h_i^p}(\overleftharpoon{h_i^p})hip​​(hip​​)和另一个文本中的每一个时间步长hjq⇀(hjq↼)的匹配值\overrightharpoon{h_j^q}(\overleftharpoon{h_j^q})的匹配值hjq​​(hjq​​)的匹配值,:

αi,j⇀=cosine(hip⇀,hjq⇀)\overrightharpoon{\alpha_{i,j}} = cosine(\overrightharpoon{h_i^p},\overrightharpoon{h_j^q})αi,j​​=cosine(hip​​,hjq​​)

αi,j↼=cosine(hip↼,hjq↼)\overleftharpoon{\alpha_{i,j}} = cosine(\overleftharpoon{h_i^p},\overleftharpoon{h_j^q})αi,j​​=cosine(hip​​,hjq​​)

然后将αi,j⇀(αi,j↼)作为hjq⇀(hjq↼)\overrightharpoon{\alpha_{i,j}}(\overleftharpoon{\alpha_{i,j}})作为\overrightharpoon{h_j^q}(\overleftharpoon{h_j^q})αi,j​​(αi,j​​)作为hjq​​(hjq​​)的权重值,然后进行加权相加,公式如下:

himean⇀=∑j=1Nαi,j⇀.hjq⇀∑j=1Nα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​​​

himean↼=∑j=1Nαi,j↼.hjq↼∑j=1Nα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​​​

最后将每个时间步长hip⇀(hip↼)\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

欢迎指正

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。