目录
论文阅读准备
前期知识储备
简单讲,比较就是交互匹配,聚合就是特征压缩。
学习目标
论文导读
论文研究背景、成果及意义
研究背景
相关工作
Siamese architecture
- 孪生神经网络将两句输入分别输送进同一个神经网络(CNN或RNN),使得两句话被编码至同一向量空间。后使用一个matching decision判断匹配程度。
- 优点:参数共享,模型小、训练速度快,句向量可用于可视化。
- 缺点:两句话在整个编码过程中(matching decision之前)没有交互。
Matching-aggregative
- 匹配(比较)—聚合模型中,两句话单词级别的特征(例如:词向量或词向量经过双向LSTM网络后的特征向量)先进行匹配(matching),匹配后的结果在经过聚合后参与最终结果的预测。
- 优点:捕获众多句子间的交互性特征。(不同比较函数可能术业有专攻,能够捕获到不同角度的交互性信息。)
- 限制:①仅探究词级别的交互特征(即匹配的最小单位为词,而不是比词更小的单位,也不是短语或句子);②匹配操作是单向的,是一句话去匹配另一句话,没有反向操作。
研究成果
提出了BiMPM模型:
- 基于匹配-聚合模型框架;
- 运用双向匹配提取交互特征;
- 设计四种特征匹配方法;
- 提出“多视角”的匹配操作;
- 在Quora、WikiQA等数据集上表现优异。
研究意义
- 将各种数据集榜单进一步刷新
- 拓展了匹配-聚合模型,在两个方向上进行匹配
- 使用多视角匹配,获取到了更细粒度的匹配特征
论文泛读
论文结构
针对引言以及相关工作,首先要读,其次不要细扣每一个细节,看不懂不强求。
摘要
Natural language sentence matching is a fundamental technology for a variety of tasks.Previous approaches either match sentences from a single direction or only apply single granular(wordby-word or sentence-by-sentence) matching.
之前的工作要么单方向匹配或要么单一粒度(词粒度或句子粒度)的匹配。
阅读理解式问答:开门见山,点出前人工作的不足,为下文搬出作者自己的模型做铺垫,为后文BIMPM两大特征埋下伏笔。
In this work, we propose a bilateral multi-perspective matching(BiMPM) model. Given two sentences P and Q, our model first encodes them with a BiLSTM encoder. Next, we match the two encoded sentences in two directions P against Q and Q against P.
模型步骤:
- ①送入双向LSTM网络进行特征编码
- ②获取P到Q的匹配特征和Q到P的匹配特征。
In each matching direction, each time step of one sentence is matched against all time steps of the other sentence from multiple perspectives. Then, another BiLSTM layer is utilized to aggregate the matching results into a fixed-length matching vector.
模型步骤:
- ③双向、多视角匹配
- ④双向LSTM网络聚合匹配结果
Finally, based on the matching vector, a decision is made through a fully connected layer. We evaluate out model on three tasks: paraphrase identification, natural language inference and answer sentence selection. Experimental results on standard benchmark datasets show that our model achieve the state-of-the-art performance on all tasks.
模型步骤:
- ⑤使用全连接网络作为预测结果
模型成果:多个task取得SOTA表现。
论文精读
【回顾】
**问题背景:**句子匹配是一系列其他任务的基础技术,实用性广泛
两点可突破之处:
- SiameseNet中两句话的特征编码在编码过程中没有交互。
- Matching-aggregate中仅仅探究词级别的交互特征以及匹配操作是单方向的
模型特点: - 使用双向匹配
- 使用”多视角“,多种特征匹配方法,细粒度的捕获句子间的交互特征
BIMPM整体结构
(猜测)
- 词嵌入层:word embedding (×)
- 上下文表示层:双向LSTM
- 匹配层:注意力机制 (×)
- 聚合层:双向LSTM
- 预测层:全连接+softmax
词嵌入层
**核心:**为了增加不同粒度的信息,在word embedding的基础上添加了字符级特征
Word : Glove预训练词向量
Character :
- 随机初始化(简单任务)
- 在其他数据集上预训练得到一份字嵌入,再回到当前数据集上进行fine-tune(复杂任务需具体问题具体分析)
上下文表示层
核心:双向LSTM
句子P:
句子Q:
匹配层
正向LSTM与另外一句话的全部正向的LSTM向量进行四次匹配,反向LSTM与另外一句话的全部反向的LSTM向量进行四次匹配。这样对于句子P的一个位置,可以生成8个向量,将这8个向量进行拼接,得到上下文特征向量h,结果匹配后的向量。
聚合层+预测层
聚合层:双向LSTM
预测层:全连接+softmax
参与全连接层预测的向量为:两句话,四个LSTM网络的最终输出向量
多视角匹配
综上所述,匹配策略与fm构成的复合函数,即为叉乘。
全匹配
最大池化匹配
注意力匹配
最大注意力匹配
模型整体结构
- 1.词嵌入层:word + character
- 2.上下文表示层:双向LSTM
- 3.匹配层:(1)全匹配 (2)最大池化匹配 (3)注意力匹配 (4)最大注意力匹配
- 4.聚合层:双向LSTM
- 5.预测层:全连接 + softmax
实验设置及结果分析
【说明】设计实验远比做实验难,看别人论文中的实验,这些实验设置能不能用到自己的课题中呢?
参数设置
- 1.word embedding : 300-d Glove 840B
- 2.character embedding : 随机初始化为20维度的向量,经过LSTM网络输出50维度向量
- 3.OOV单词采用随机初始化
- 4.双向LSTM网络隐藏单元为100
- 5.视角数 l = 20
- 6.dropout = 0.1 ;lr = 0.001
- 7.采用Adam优化算法
实验分析
视角数探究:
l越大,视角数越多,模型精确率越高
作者没有找到视角数达到最高的点。肯定不会一直往上长的,当视角数过大时,模型效率必然会下降。如果在做最佳超参数的实验时,一定要在结果图中凸显出最值。
消融实验:
Quora实验:
SNLI实验 & QA实验:
论文总结
创新点/启发点:
- 运用双向匹配提取交互特征。
如果想在自己的模型里面加入注意力机制,那么不妨加一个双向注意力机制试试,万一效果有所提升呢! - 设计四种特征匹配方法;
实际上是一种特征构造的方法,机器学习需要人为构造特征,深度学习当然也可以,特征构造的好,能够帮助我们将现有的模型突破瓶颈。BiMPM中四种匹配的方法,完全可以拿来用于其他的NLP任务中。 - 提出”多视角“的匹配操作。
这个可以作为一个技巧,但不能保证一定好用。在深度学习里面,降维、压缩特征是很常见的事情,但”多视角“是一种特征升维,能够用到的地方可能不多。例如,基于知识图谱做过推荐系统模型,思路是借用知识表示的概念,希望能够刻画出(用户,喜欢,物品)这样的三元组,其中喜欢是我要的目的,因为用户和物品都可以通过向量化表示,但喜欢这个概念不太好向量化表示,不同人喜欢的理由不同,喜欢本身也是一个特别抽象的概念,想到特征升维,效果还不错,升维从多个视角来看特征,或许很难说出这些视角有什么物理意义,但至少是一种策略。