导言

本论文的工作主要是在 'matching-aggregation'的sentence matching的框架下,通过增加模型的特征(实现P与Q的双向匹配和多视角匹配),来增加NLSM(Natural language sentence matching)的accuracy

Relation work

在NLSM中,主要有两个DL的框架:

  • Siamese框架:

    介绍:在该框架中,相同的神经网络编码器(例如,CNN或RNN)被单独地应用于两个输入句子,使得P和Q两个句子中的两个被编码到同一嵌入空间中的句子向量中。 然后,仅基于两个句子向量做出匹配决策。

    优点: a、共享参数使模型更小更容易训练,b、句子矢量可用于可视化,也可以用到句子聚类和其他目的

    缺点:两个句子之间没交互,可能丢失重要信息

  • matching-aggregation 框架

    介绍:先对P和Q两个句子进行跟小粒度的匹配(word or contextual vectors),再对他们匹配的结果进行聚集,最后做出决策。

    优点:抽取更多的两个句子交互性的特征

    缺点:a、仅有word-by-word的匹配,粒度单一 b、P和Q匹配方向单一,只有P←Q的匹配;

  • BiMPM创新点:

    在matching-aggregation基础上,a、增加P→Q和P←Q连个方向的匹配 b、在每个方向增加不同视角的匹配;

模型介绍

Overview

BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

BiMPM模型的目标是学习条件概率分布:

\[Pr(y|P,Q)
\]

模型一共5个部分组合而成:

  • Word Representation Layer: 输入的vectorword vectorcharacter vector 拼接成

  • Context Representation Layer: 使用Bi-LSTM对P或Q的每个time-step进行上下文词嵌入(contextual embedding)进行编码。

  • Matching Layer: 使用cosine相似度函数,对经Context Representation层后,P中每个time-stepcontextual embedding与Q的所有(all)time-step进行多个(4个)视角的相似度计算(即P←Q相似度匹配),输出 matching vector。反之,反方向P→Q的相似度匹配亦然。

  • Aggregation Layer: 针对Matching Layer输出P或Q每个 time-stepmatching vector,用Bi-LSTM进行相似度的聚集成固定长度(fixed-matching)的matching vector,并仅仅将Bi-LSTM两个方向最后一个(last) time-stepfixed-matching matching vector 作为该层输出,P与Q分别各输出两个fixed-matching matching vector

  • Prediction Layer: 两层全连接层对4个fixed-matching matching vector 进行总结‘consume’,并用Softmax函数作为输出。

Word Representation Layer

为了增加更多的特征信息,该层输入的词向量采用word +character的形式,增加输入不同粒度的信息。

  • word vector

    维度:300-d

    来源:GloVe 预训练的词向量 or word2vec

  • character vector

    维度:50-d

    来源:用LSTM在其他NLSM任务中训练,初始化为20-d,经过LSTM后输出50-d

  • 输出:将word vector 连接 character vector 句子,该层的输出为 P:\(p_i\) 和 句子 Q:\(q_i\)

    BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

        #https://github.com/pengshuang/Text-Similarity/blob/master/models/BiMPM.py
if self.args.use_char_emb:
# (batch, seq_len, max_word_len) -> (batch * seq_len, max_word_len)
seq_len_p = kwargs['char_p'].size(1)
seq_len_h = kwargs['char_h'].size(1) char_p = kwargs['char_p'].view(-1, self.args.max_word_len)
char_h = kwargs['char_h'].view(-1, self.args.max_word_len) # 用LSTM 将(max_word_len, char_dim)维输出为 (char_hidden_size)维vector
# (batch * seq_len, max_word_len, char_dim)-> (1, batch * seq_len, char_hidden_size)
_, (char_p, _) = self.char_LSTM(self.char_emb(char_p))
_, (char_h, _) = self.char_LSTM(self.char_emb(char_h))
#
# (batch, seq_len, char_hidden_size)
char_p = char_p.view(-1, seq_len_p, self.args.char_hidden_size)
char_h = char_h.view(-1, seq_len_h, self.args.char_hidden_size) # (batch, seq_len, word_dim + char_hidden_size)
# torch.cat是将两个张量(tensor)拼接在一起,cat是concatnate的意思,即拼接,联系在一起。
# 若矩阵为2维矩阵,按维数0(行)拼接,#按维数1(列)拼接
p = torch.cat([p, char_p], dim=-1)
h = torch.cat([h, char_h], dim=-1)

Context Representation Layer

用Bi-LSTM对 P 或 Q 对输入每个time-step(\(p_i\) 和 \(q_i\) )的进行上下文词嵌入编码(contexture embedding coding),即抽出上下文特征信息。

输入:每个time-step ( \(p_i\) 和 \(q_i\) )

输出:每个time-step( \(\overrightarrow{h^p_i}\) 、 \(\overleftarrow{h^p_i}\) 和 \(\overrightarrow{h^q_i}\) 、 \(\overleftarrow{h^q_i}\))

  • 句子 P 的\(p_i\)上下文词嵌入编码:

    BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

  • 句子 Q 的\(q_i\)上下文词嵌入编码:

    BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

  • 示意图:

BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP


Matching Layer (创新点)

Matching Layer 中主要负责 P 与 Q 之间 cosine 相似度的匹配计算。其中,主要创新点有两个(BiMPM:bilateral multi-perspective matching):

0、consine相似度匹配函数

在此,对Matching Layer 中,定义了cosine相似度匹配函数 \(f_m\) ,计算两个向量的相似度,公式如下:

\[m=f_m (v_1,v_2 ;W)
\]

其中\(f_m\)为\(cosine\) 函数,\(W\)为可训练参数,\(W\in R^{l\times d}\)(\(W\)的维度是\(l\times d\),\(l\)为视角数,\(d\)为输入向量的维度)。\(m \in [m_1,...,m_k,...,m_l]\),并且 \(m_k\)表示第\(k\)个视角的相似度值,具体为:

\[m_k=cosine(W_k\circ v_1,W_k\circ v_2)
\]

1、bilateral
  • 双向相似度匹配。除了之前相关工作,只有 P 每个 time-step 与 Q 中所有 time-step 的,P←Q的单向相似度匹配外,增加了只有 Q 每个 time-step 与 P 中所有 time-step 的相似度匹配。即增加了P→Q方向的双向相似度匹配,即双向的相似度匹配。增加了P与Q的相似度的特征信息。

    BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP
2、multi-perspective
  • 多视角相似度匹配。即在P←Q和P→Q中,有单一的每个 time-step 与另一个句子所有(all) time-step相似度匹配,变成每个 time-step 与另一个句子的Full-Matching(所有 time-step 总体相似度)/ Maxpooling-Matching(每个time-step 相似度中最大值) /Attentive-Matching(加权平均 time-step的相似度)/Max-Attentive-Matching 等四个不同视角相似度的匹配。(ps:括号里面为个人理解,不是直译,仅供参考。)

在此,以 \(P ← Q\) 的 foward 方向 \(\overrightarrow{P}\) ← \(\overrightarrow{Q}\) 和 backward 方向 \(\overleftarrow{P}\) ← \(\overleftarrow{Q}\) 为例,分别对Full-Matching、Maxpooling-Matching、Attensive-Matching、Max-Attensive-Matching作简要说明。\(P → Q\) 的 \(\overrightarrow{P}\) → \(\overrightarrow{Q}\) 和 \(\overleftarrow{P}\) → \(\overleftarrow{Q}\) 两个方向上的同理可得。(ps: \(\overrightarrow{P}\) 指 P 在Bi-LSTM的foward放向的 time-step,\(\overleftarrow{P}\) 指 P 在Bi-LSTM 二点backward放向的 time-step .)

  • Full-Matching: 句子P中,每一个time-step \({\overrightarrow h}_i^p\) 都与 句子Q中,foward方向最后一个time-step 输出\({\overrightarrow h}_N^q\),进行相似度匹配计算,公式表示为:

    BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

并且,\(\overrightarrow{P}\) ← \(\overrightarrow{Q}\) 的 Full-Matching 的图示为:

BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

另外, \(\overrightarrow{P}\) ← \(\overrightarrow{Q}\) 的 Full-Matching 公式,则表示为:

BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

  • Maxpooling-Matching: 句子P中,每一个 time-step \({\overrightarrow h}_i^p\) 都与 句子Q中,foward方向每一个time-step \({\overrightarrow h}_i^q\),进行相似度计算$ {\overrightarrow m}_i$,并且经过Max-pooling 选取所有 time-step 相似度最大值 \({\overleftarrow m}_i^{max}\),公式表示为:

BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

并且,\(\overrightarrow{P}\) ← \(\overrightarrow{Q}\) 的 Max-Matching 的图示为:

BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

另外, \(\overrightarrow{P}\) ← \(\overrightarrow{Q}\) 的 Max-Matching 公式,则表示为:

BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

  • Attentive-Matching: 句子P中,每一个 time-step \({\overrightarrow h}_i^p\) 都与句子Q中,foward方向所有time-step的加权平均(attentive) \({\overrightarrow h}_i^{mean}\)(权重为cosine距离),进行相似度计算 \({\overrightarrow m}_i^{att}\) 。其中,

    \({\overrightarrow h}_i^{mean}\) 的计算公式为:

    \(.\)

BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

因此,\({\overrightarrow m}_i^{att}\)的相似度计算则为:

BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

并且,\(\overrightarrow{P}\) ← \(\overrightarrow{Q}\) 的 Attentive-Matching 的图示为:

BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

另外, \(\overrightarrow{P}\) ← \(\overrightarrow{Q}\) 的 Attentive-Matching 公式,则表示为:

BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

  • Max-Attensive-Matching: 句子P中,每一个 time-step \({\overrightarrow h}_i^p\) 都与句子Q中,foward方向所有time-step的最大attentive的 \({\overrightarrow h}_i^{max}\),进行相似度计算\({\overrightarrow m}_i^{max-att}\)。(ps:与Max-pooling有点区别,Max-pooling选择所有经\(f_m\)计算后\({\overrightarrow m}_i\)中的最大值,其cosine相似度有可训练参数W参与计算。而这里,是纯粹\({\overrightarrow h}_i^q\) 与\({\overrightarrow h}_i^q\) 的cosine距离\({\overrightarrow m}_{i,j}\)(其cosine相似度没W参与计算),选择\({\overrightarrow m}_{i,j}\)对应最大的\({\overrightarrow h}_i^q\),再计算出其相似度\({\overrightarrow m}_i^{max-att}\))。另外,Max-Attensive-Matching 的公式与Attensive-Matching 极为相近,区别是\({\overrightarrow h}_i^{mean}\) 变成 \({\overrightarrow h}_i^{max}\) ,而\({\overrightarrow h}_i^{max}\)计算公式为:

\[{\overrightarrow h}_i^{max} ← map(
\underset{j \in (1...N)}{\max}({\overrightarrow \alpha}_{i,j})) \]

而\(\overrightarrow{P}\) ← \(\overrightarrow{Q}\) 的 Max-Attentive-Matching 的图示为:

BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

3、BiMPM与之前Matching-Aggregation之间Matching Layerde的对比

总来的说,BiMPM的Matching Layer与之前的Matching-Aggregation匹配框架相比较:

  • 匹配方向的创新

    之前:单向匹配:\(P ← Q\)(\(\overrightarrow{P}\) ← \(\overrightarrow{Q}\) 和 \(\overleftarrow{P}\) ← \(\overleftarrow{Q}\) )

    BiMPM:双向匹配: \(P ← Q\)(\(\overrightarrow{P}\) ← \(\overrightarrow{Q}\) 和 \(\overleftarrow{P}\) ← \(\overleftarrow{Q}\) )和 \(P→Q\)(\(\overrightarrow{P}\) → \(\overrightarrow{Q}\) 和 \(\overleftarrow{P}\) → \(\overleftarrow{Q}\) )!

  • 匹配视觉的创新

    之前:单一视觉: Full-Matching

    BiMPM:多种视觉: Full-Matching/ Maxpooling-Matching /Attentive-Matching/Max-Attentive-Matching

  • 每个time-step输出的matching vector形式

    之前:2个matching-vector concatenate。\(\overrightarrow{P}\) ← \(\overrightarrow{Q}\) 和 \(\overleftarrow{P}\) ← \(\overleftarrow{Q}\) 各单个视角的 matching vector 作 concatenate。

    BiMPM:8个matching-vector concatenate。\(\overrightarrow{P}\) ← \(\overrightarrow{Q}\) 和 \(\overleftarrow{P}\) ← \(\overleftarrow{Q}\) (或\(\overrightarrow{P}\) → \(\overrightarrow{Q}\) 和 \(\overleftarrow{P}\) → \(\overleftarrow{Q}\) )各4个视角的 matching vector 作 concatenate。


Aggregation Layer & Prediction Layer

该层将上层输出相似度向量matching-vector \(m_i\),按Bi-LSTMde foward 和backward作信息聚合/特征提取,并将foward 和backward的最后time-step 的 fixed-length matching-vector 输出至2层全连接层的 Prediction Layer 中,最后采用 softmax 作分类。如图示,其中,图中4个绿色的vector为 fixed-length matching-vector:

BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP


实验与总结

  • Paraphrase Identification实验

    BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

1、BiMPM在NLSM中有效:在Paraphrase Identification实验中,BiMPM的Acc能高于之前state-of-art 2.6%。但对于实际应用,要考虑即训练难度和inference速率。

2、双向和四种视角都对BiMPM有部分促进作用。

  • Naural Language实验

    BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

1、BiMPM在inference任务中效果一般,甚至在相对与state-of-art还有差距。

2、虽然BiMPM在Ensemble情况下Acc最高,但也只搞0.5%,个人认为有待商榷。

  • Answer Sentence Selection实验

    BiMPM:Bilateral Multi-Perspctive Matching for Natural Language Sentences-LMLPHP

1、BiMPM在针对不同些数据集效果不同。


  • 总体收获:

1、该模型给我最大的思路是,针对提升NLP任务的性能提升,可以从增加正向逆向与增视角信息的方面考虑(但还是有点炼丹学)。 2、cosine函数作为Matching Layer的输出,可以将其与sigmoid和tanh激活函数作简单比较,这里包含可训练参数W的cosine函数已经可以看作相似度的激活函数。它将P与Q信息投影至一个相似度空间,然后经过Aggregation Layer作相似度的信息聚合,经全连接层分类。

05-16 23:35