文本匹配、文本相似度模型之BIMPM

自然语言句子的多视角匹配

github: https://github.com/daiyizheng/shortTextMatch/blob/master/src/DL_model/classic_models/models/BIMPM.py

介绍

本文作者提出了一个双边多视角匹配(BiMPM)模型。给定两个句子P和Q,模型首先用BiLSTM编码器对它们进行编码。接下来,我们将两个编码后的句子在两个方向P对Q, Q对P进行匹配。在每个匹配的方向上,一个句子的每一个时间步都从多个角度匹配另一个句子的所有时间步。然后,利用另一个BiLSTM层将匹配结果聚合成固定长度的匹配向量。最后,基于匹配向量,通过全连通层进行决策。模型的结构如下:

自然语言句子匹配是比较两个句子并识别它们之间的关系。随着神经网络模型的复兴,有人提出了两种深度学习框架,第一个框架是基于“Siamese”架构,第二种框架“matching-aggregation”架构。但是这些框架仍然有一定的限制。本文作者就推出了BiMPM模型,用于NLSM任务。

方法

BiMPM模型来估计概率分布Pr(y|P,Q), 属于“匹配-聚合”框架。与之前的“匹配-聚合”方法相反,我们的模型在两个方向上匹配P和Q (P->Q和P<-Q)。

Word Representation Layer

这一层的目标是用一个D维向量来表示P和Q中的每个词,包含两个分量的D维向量:一个词嵌入和一个字符组合嵌入。

Context Representation Layer

该层的目的是将上下文信息纳入P和Q的每个时间步长的表示中。使用双向LSTM做上下文嵌入,公式如下:

Matching Layer

这是我们的模型中的核心层。该层的目标是将一个句子的每个上下文嵌入(时间步)与另一个句子的所有上下文嵌入(时间步)进行比较。两个句子P和Q进行两个方向的匹配:将P的每个时间步与Q的所有时间步进行匹配,将Q的每个时间步与P的所有时间步进行匹配。如下图所示:

Aggregation Layer

该层用于将两个匹配向量序列聚合成一个固定长度的匹配向量。利用另一个BiLSTM模型,分别将其应用于两个匹配向量序列。然后,通过将BiLSTM模型最后一个时间步长的四个绿色向量串联起来,构造定长匹配向量。

Prediction Layer

这一层的目的是计算概率分布Pr(y|P,Q)。为此,我们采用了两层前馈神经网络来计算定长匹配向量,并在输出层应用了softmax函数。

Multi-perspective Matching Operation

这里定义了一个多角度余弦匹配函数fm来比较两个向量:如下

其中 v 1 v_1 v1 v 2 v_2 v2是两个d维的向量, W W W是具有 l x d l x d lxd 维的可训练参数, l l l 为perspective的数量,返回值 m m m是一个 l l l 维度的向量 m = m [ m 1 , … , m l ] m=m[m_1,…,m_l] m=m[m1,,ml]。每个元素 m k m_k mk从第 k k k个角度得到一个匹配值,并由两个加权向量之间的余弦相似度计算得到。

其中, o o o表示向量乘法, W k W_k Wk代表 W W W的第 k k k行,它控制第 k k k个角度,并为 d d d维空间的不同维度分配不同的权重。

基于 f m f_m fm定义了四种匹配策略来比较一个句子的每个时间步和另一个句子的所有时间步。为了避免重复,我们只定义了一个匹配方向P->Q的匹配策略。

Full-Matching

每个向前(向后)上下文嵌入 h → i p o r ( h ← i p ) \overrightarrow{h}^p_i or( \overleftarrow{h}^p_i) h ipor(h ip)与其他句子 h → N q o r ( h ← 1 q ) \overrightarrow{h}^q_N or( \overleftarrow{h}^q_1) h Nqor(h 1q)最后的时间步相比。

Maxpooling-Matching

每个向前(向后)上下文嵌入 h → i p o r ( h ← i p ) \overrightarrow{h}^p_i or( \overleftarrow{h}^p_i) h ipor(h ip)与每一个其他句子的前向(后向)上下文嵌入 h → j q o r ( h ← j q ) j ∈ ( 1... N ) \overrightarrow{h}^q_j or( \overleftarrow{h}^q_j) j \in (1...N) h jqor(h jq)j(1...N)比较,而只保留每个维度的最大价值。

Attentive-Matching

首先计算每个前向(后向)上下文嵌入之间的余弦相似性 h → i p o r ( h ← i p ) \overrightarrow{h}^p_i or( \overleftarrow{h}^p_i) h ipor(h ip)和每一个其他句子的前向(后向)上下文嵌入 h → j q o r ( h ← j q ) j ∈ ( 1... N ) \overrightarrow{h}^q_j or( \overleftarrow{h}^q_j) j \in (1...N) h jqor(h jq)j(1...N)

然后计算 α → i , j o r ( α ← i , j ) \overrightarrow{\alpha}_{i,j} or ( \overleftarrow{\alpha}_{i,j}) α i,jor(α i,j)作为 h → j q o r ( h ← j q ) \overrightarrow{h}^q_j or( \overleftarrow{h}^q_j) h jqor(h jq)的权重,并且为整个句子 Q Q Q计算一个attentive vector并对 Q Q Q所有上下文嵌入项进行加权求和。

h → i p o r ( h ← i p ) \overrightarrow{h}^p_i or( \overleftarrow{h}^p_i) h ipor(h ip)的每一个前向(或后向)上下文嵌入与其对应的attentive向量进行匹配。

Max-Attentive-Matching

策略类似于注意力匹配策略。 然而,我们没有将所有上下文嵌入的加权和作为注意力向量,而是选择余弦相似度最高的上下文嵌入作为注意力向量。 然后,我们将句子 P 的每个上下文嵌入与其新的注意力向量相匹配。

实验设置

word_embedding: 300(freeze)
OOV: initialize randomly
character-composed embedding: 初始化为20维向量, 然后将每个词输入到50维的lstm
BiLSTM hidden layer: 100
dropout: 0.1
损失函数: cross entropy
optimizer: ADAM
learning rate: 0.001

结论

在“匹配聚合”框架下提出双边多视角匹配(BiMPM)模型。 与之前的“匹配聚合”方法不同,模型在两个方向(P → Q 和 P ← Q)匹配句子 P 和 Q。 在标准基准数据集上的实验结果表明,模型在所有任务上都达到了最先进的性能。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发呆的比目鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值