本文介绍了一种用于自然语言语句匹配的模型:BiMPM
Reference:arXiv:1702.03814v3 [cs.AI] 14 Jul 2017
在三种任务上达到了sota
- paraphrase identification 释义识别
- natural language inference 自然语言推断
- answer sentence select 答案语句选择
模型
从图上可以看到整个模型分为5层,中间有交互,并且都是使用的双向LSTM,定义了一个特殊的
操作,文中会给出解释
Word Representation Layer
word representation层有两个词嵌入操作,一个是直接使用pre-trained的GloVe词向量,然后还使用了character-composed embedding,具体的来说,通过将单词中的每个字符(表示为字符嵌入)输入一个LSTM网络,计算字符的组合embedding,字符嵌入将使用随机初始化生成,并与NLSM任务中的其他网络参数一起学习。
Context Representation Layer
这一层非常简单,就是把前一层的词嵌入丢到双向LSTM里面
Matching Layer
该层的目标是将一个句子的每个上下文嵌入(time step)与另一个句子的所有上下文嵌入(time step)进行比较
这个跟卷积(或者说互相关)同一个符号的操作,是由以下四种操作构成的
Full-Matching
Maxpooling-Matching
Attentive-Matching
Max-Attentive-Matching
Aggregation Layer
该层用于将两个匹配向量序列聚合为一个固定长度的匹配向量。
Prediction Layer
该层的目的是评估概率分布
P
r
(
y
∣
P
,
Q
)
Pr(y\mid{P,Q})
Pr(y∣P,Q)
实验
评价
总体读下来感觉首先是表示层word embedding和char embedding一起使用,在这里相对于只用一种增强了特征表达能力,然后进入BiLSTM层进一步编码
可能是matching layer的四个猛如虎操作增强了表达能力?(反正也是很玄学)
能一次性在三种任务上达到sota,说明这个model确实是work的,根据free launch定理,说明这个model的语言理解能力确实超越了之前的模型