Bilateral Multi-Perspective Matching for Natural Language Sentences 阅读笔记

Natural language sentence matching领域在2017年的一篇文章

NLSM 一般有两种架构来解决:

  1. "Siamese" architecture(单一架构)

    训练一个网络,将两个句子编码到同一个向量空间中,根据句向量相似度判断句子是否匹配。

    这种方法的优点是模型一般比较简单轻量,得到的向量可以用于可视化或者聚类等任务,其缺点是在编码阶段,两个句子没有显式地交互,这可能会丢失掉一些重要的信息。

  2. matching aggregation(匹配聚合)

    在这个框架下,首先匹配两个句子中较小的单位(如单词或上下文向量),然后(通过CNN或LSTM)将匹配结果聚合到一个向量中,做出最后的判断。新的框架捕获了两句话之间更多的交互特性,因此它获得了显著的改进。

以前的匹配聚合框架只考虑了单粒度的匹配,比如word to word,没有考虑phrase或sentence级别。

并且只有单向的匹配,没有反向匹配。

本文在匹配聚合框架上提出了一些改进,解决了上述两个问题

  • 加入multi-perspective matching(多视角匹配)

  • 使用BiLSTM引入双向匹配

BiMPM模型:

Bilateral Multi-Perspective Matching for Natural Language Sentences 阅读笔记_第1张图片
1578906269378.png

Word Representation Layer

没什么好说的,贴个别人写的

这一层的目标是用d维向量表示P和Q中的每个单词。我们构造了包含两个分量的d维向量:一个词嵌入一个字符组合嵌入单词嵌入是每个单独单词的固定向量,使用GloVe [Pennington et al., 2014]或word2vec [Mikolov et al., 2013]对其进行预处理。字符组合嵌入是通过将单词内的每个字符(表示为字符嵌入)输入长短时记忆网络(LSTM)来计算的,其中字符嵌入是随机初始化的,并与NLSM任务中的其他网络参数共同学习。该层的输出是两个字向量序列P和Q。

Context Representation Layer

使用BiLSTM对句子做双向编码

Matching Layer

核心部分,​的每一个节点​与​做匹配

分别使用四种匹配方式,将结果拼接起来,实现multi-perspective matching的效果

Aggregation Layer

过一遍BiLSTM,将正向和反向最后的​拿出来

Prediction Layer

将上一步得到的四个向量拼接到一起,做softmax,算出​和​的相似度

multi-perspective matching

有时间再详写,大致如图

Bilateral Multi-Perspective Matching for Natural Language Sentences 阅读笔记_第2张图片
1578906346954.png

原文链接 arxiv

Github实现 BIMPM-pytorch

参考文章

[1] 文本相似度:Bilateral Multi-Perspective Matching for Natural Language Sentences

你可能感兴趣的:(Bilateral Multi-Perspective Matching for Natural Language Sentences 阅读笔记)