综述:深度学习算法在FAQ中的应用(二)

2018-12-15  本文已影响512人  lirainbow0

compare_aggregate_network

本文介绍论文《A COMPARE-AGGREGATE MODEL FOR MATCHING TEXT SEQUENCES》的相关工作,从之前我的博客也可以了解到深度学习算法在QA match的任务上大行其道,本文属于compare aggregate框架:在compare层从多个角度比较question和answer的相似性,然后在aggregate层对compare之后的结果进行融合。本文的主要贡献在于设计了多种类型的compare函数,然后在多个数据集上进行了效果验证。
算法流程
1:对question和answer进行embedding编码。
2:将获得的embedding通过一个简化版的LSTM/GRU门函数,用于对embedding进行非线性编码。

3:一个通用的思想就是通过attention对编码feature进行加权。本文的attention计算采用了symmetric attention。对question和answer进行加权处理。

4:为了对question和answer进行全方位的比较,作者在compare层采用了多种compare函数:NeuralNet(NN)、NeuralTensorNet(NTN)、Euclidean+Cosine(EucCos)、Subtraction(SUB)、Multiplication(MULT)、SubMult+NN。

5:本文通过一层的CNN网络对compare之后的特征进行融合,抽取最后用于classification的特征。

decomposable attention model

本文介绍论文《A Decomposable Attention Model for Natural Language Inference》的相关工作,本文仍然属于compare aggregate框架:在compare层从多个角度比较question和answer的相似性,然后在aggregate层对compare之后的结果进行融合。本文的亮点在于对输入embedding计算intra-sentence增广特征,在compare和aggregate层都是采用最简单的方式进行计算,整个模型结构较为清晰,并且计算速度非常快。

Input representation

通常模型输入表征都是embedding向量,但是本文作者为了加强输入文本序列上的关系通过一个intra-sentence对输入特征进行增广。

Attend

获得representation向量之后,通过attention对question和answer向量进行对齐。

Compare

compare层相对较为简单,将input representation和对齐向量进行拼接。

Aggregate

对compare之后的向量进行融合,这里用了最简单的求和,符合谷歌论文一向的风格,大道至简。然后对question和answer的feature进行拼接通过一个feedforward network。

BiMPM

本文介绍论文《Bilateral Multi-Perspective Matching for Natural Language Sentences》的相关工作,之前的论文更多的是设计一个角度的matching function用于精确的捕获question和answer之间的相似度,本文作者则觉得每个matching function都能捕获不同角度的相似度,如果把各个角度计算得到的相似度融合即可获得一个合理的matching result,最后作者通过实验在各个数据集上对该思想进行了验证。

Word Representation Layer

本文用word和character表示input representation。通过将每个word的character通过LSTM模型计算representation。

Context Representation Layer

将question和answer embedding向量通过时序模型LSTM,用于获得每个时间状态的特征表示。后续matching layer需要对每个时间状态的特征进行处理。

Matching Layer

作者通过cosine函数计算两个向量之间的相似度。注意稍有不同在于上式通过一个可学习参数W来统计不同维度的相似度。
下面介绍四种不同的matching function

  1. 首先介绍full-matching,时序模型最后一个时刻的状态输出保持了整个序列的信息,通过该状态对另一个时序模型状态计算相似度。
  1. 下面介绍maxpooling-matching,通过一个时序模型的所有状态输出对另一个时序模型的所有状态输出进行计算,然后抽取每个词相对于另一个文本中最大相似度的词对应的相似度。
  1. 接下来介绍attentive-matching,一个很自然的想法就是通过attentive的方式对match-function进行表示。首先计算question和answer之间的相似矩阵,然后通过相似矩阵对answer进行加权作为question align向量,最后通过该向量和question计算attentive-matching相似度。
  1. 最后介绍Max-Attentive-Matching。首先计算相似度向量,然后计算最大相似度值对应的位置(每行的最大值为当前word对应另一个文本中相似度最大的word)。

Aggregation Layer

在获得了question和answer各自多个角度的representation之后,本文通过一个共享参数的LSTM模型对上述特征进行融合,分别抽取前向和后向最后一个状态的输出。

Prediction Layer

最后通过一个2层的feedforward函数对融合特征进行投影,用于获得classification的特征。

LDC

本文介绍论文《Sentence Similarity Learning by Lexical Decomposition and Composition》的相关工作,判断两个文本是否相似最简单的方式就是,一个文本中的word是否在另一个文本中存在。基于这个思想,本文将representation分解为相似部分和不相似部分,最直观的方式就是抛弃不相似部分,只采用相似部分作为特征表示,但是实验发现这样效果并不好,而不相似部分和相似部分组合会带来一些相互区分的信息。因此本文会在分解得到相似部分和不相似部分之后通过cnn进行最终的特征抽取。

Word Representation

首先对数据采用word2vec进行预训练,然后通过预训练之后的词向量对question和answer进行representation。

Semantic Matching

作者这里尝试了三种不同的语意匹配函数,global、local-w、max。顾名思义,global会考虑另一个文本中的所有词;而max则相对极端,只是考虑最为相似的词;local-w则会考虑窗口w内词(即最相似的w个词)。

Decomposition

针对相似矩阵分解,作者同样采用了三种方式:rigid decomposition, linear decomposition, orthogonal decomposition。

  1. rigid decomposition相对较为简单粗暴。如果在另一个文本中发现存在精确匹配的词,则该向量存在于相似部分,并对不相似部分进行补零,反之亦然。
  1. linear decomposition通过cosine函数衡量两个向量之间的相似度,然后通过该相似度与向量相乘用于获得相似部分。
  1. orthogonal decomposition将一个向量分解到几何空间:parallel和perpendicular。其中parallel为相似部分,perpendicular为不相似部分。

Composition

在composition层,我们将相似部分和不相似部分做为cnn矩阵的双通道输入,进行特征抽取。

Similarity assessing

最后我们拼接composition的输出,经过一个线性函数累加所有特征,然后经过sigmoid将特征投影到0到1之间。

ESIM

本文介绍论文《Enhanced LSTM for Natural Language Inference》的相关工作,整个算法框架相对较为简单(采用attention计算align向量,然后采用subtract、multiply进行特征加强)。

Input Encoding

首先通过时序模型LSTM对输入question和answer进行编码。

Local Inference Modeling

soft alignment layer

align向量这里采用attention进行计算,计算公式如下:

Enhancement of local inference information

在得到align向量之后,采用concatenate、subtract、multiply进行特征加强。从上面描述可以看出,这里的特征加强方式已经被广泛的采用。

Inference Composition

最后用enhancement之后的特征经过时序模型LSTM进行特征抽取,然后经过pooling层得到最终的组合representation。

IWAN

本文介绍论文《Inter-Weighted Alignment Network for Sentence Pair Modeling》的相关工作,文章公式较多,但是结构还是比较清晰的。首先将word representation通过一个时序模型进行编码,用于获得上下文信心,然后通过编码后的question和answer计算alignment representation;下一步就是怎么利用representation了,本文用了direct strategy和orthogonal decomposition strategy两种compare策略。最后通过一个2层的feedforward network计算classification representation。

BiLSTM Layer

首先通过时序模型对embedding向量进行编码用于获取上下文特征。

Word Level Similarity Matrix

通过question representation和answer representation计算相似矩阵。

Alignment Layer

得到相似矩阵之后,通过softmax计算权重向量,最后通过加权answer representation向量做为question的align向量。

Inter-Weighted Layer

论文这里设计了两种compare策略,分别为直接计算gap和通过相似分解间接计算。

direct strategy

我们可以通过上式对原始representation和alignment representation之间的gap进行测量,然后拼接做为最后的compare representation。

orthogonal decomposition strategy

同样我们也可以通过alignment representation将原始representation分解为相似部分和不相似部分,然后分别对其进行加权求和得到最终的compare representation。

Inter-Attention Layer

作者自己设计了一种inter-attention计算,通过另一个向量的平均与当前文本各个时序状态进行比较,类似于additive attention。

Inter-Skip Layer

inter-skip设计流程图如上,其设计思想为后一个时序状态减去前一个时序状态即为当前word的贡献。

Output Layer

最后将compare得到的所有representation作为input,然后经过2层的feedforward获得最后用于classification的representation。

CAFE

本文介绍论文《Compare, Compress and Propagate: Enhancing Neural Architectures with Alignment Factorization for Natural Language Inference》的相关工作,分别以co-attention和self-attention两个方向进行feature augment,然后在compare层引入factorization layer分别处理compare函数输出向量,最后通过一个时序模型对feature进行编码。

Input Encoding Layer

与上文类似,本文同样采用了word embedding、character embedding和pos,然后进行concatenate输入highway network进行投影。

Soft-Attention Alignment Layer

然后是计算alignment representation。本文从两个角度分别计算alignment representation,然后进行concatenate作为最终的alignment representation。

Inter-Attention Alignment Layer

首先介绍inter-attention alignment layer,在之前的论文中,该attention已经被大量的应用。该attention主要计算两个文本词之间权重特征,通过另一个文本词向量加权来表示当前文本。

Intra-Attention Alignment Layer

intra-attention又叫self-attention,计算词与当前句子的相似度,捕获了序列、全局的特征信息。

Alignment Factorization Layer

从之前的论文分析,feature compare常用的方式为subtract、multiply、concatenate。本文仍然采用这三种方式,但是会对compare函数处理之后的结果进行因子分解运算。

Factorization Operation

我们知道对于低秩矩阵,因子分解运算能够自动交叉二维特征。本文采用因子分解运算针对compare函数的结果抽取更高级的特征。

Inter-Alignment Factorization
Intra-Alignment Factorization

Propagation and Augmentation

最后对经过因子运算之后的alignment representation进行concatenate。

Sequential Encoder Layer

在得到augment feature之后,通过一个时序模型LSTM进行编码,并在pooling层抽取max和mean feature。

Prediction Layer

算法最后通过一个2层的highway network进行特征投影,然后经过一层线性层抽取用于classification的representation。

DIIN

本文介绍论文《NATURAL LANGUAGE INFERENCE OVER INTERACTION SPACE》的相关工作,本文的结构相对较为简单了,主要在于input representation更为丰富,除了word embedding之外,还加入了character embedding和pos。然后中间计算alignment representation都是常用的操作,但是论文最后采用dense net抽取深层次的feature,随着大量的实验证明深层的网络能抽取到更多的高级特征,随后的另一篇论文也介绍了如何通过深层次的网络抽取高级的特征。

Embedding Layer

本文采用多种表示向量:word representation、character representation、part of speech。word embedding通过word2vec进行预训练,然后在训练时进行动态更新;character embedding则通过cnn进行特征抽取减少oov的问题;pos则是one-hot特征。最后拼接word embedding、character embedding和pos特征作为最终的input representation。

Encoding Layer

在得到input representation之后通过2层的highway network,然后通过self-attention计算alignment representation。这里作者没有采用常用的subtract或者multiply直接compare highway representation和alignment representation,而是采用一个fuse-gate对两个representation进行融合。

Interaction Layer

这里作者采用点乘的方式进行特征interact。

Feature Extraction Layer

常用的深度网络有highway、residual net和dense net。本文在采用dense net block进行深层次的特征抽取。

Output Layer

最后采用一个线性层处理最终用于分类的representation。

MCAN

本文介绍论文《Multi-Cast Attention Networks for Retrieval-based Question Answering and Response Prediction》的相关工作,本文立意比较清晰了,就是充分利用各种不同attention的优点,然后对不同attention的结果进行融合。感觉论文思路与Bimpm的思路类似,只是网络设计的细节方面有差异。

Input Encoder

首先,每个词经过highway network进行非线性投影,highway network是一个能够控制信息传递的非线性门函数。

Co-Attention

本文介绍四种attention机制:max-pooling、mean-pooling、alignment-pooling和intra-attention。Co-Attention首先计算文本序列中每个词的相似矩阵

Extractive Pooling
每种pooling都有不同的意义,max-pooling选择另一个文本中最重要的词;mean-pooling则是考虑当前词相对于另一个文本的重要性。

Alignment-Pooling
Alignment-Pooling稍有不同,它是选择另一个文本中重要的词去代表当前词。

Intra-Attention
Intra-Attention,又叫self-Attention。它是计算词与当前句子的相似度,捕获了序列、全局的特征信息。

Multi-Cast Attention

Casted Attention
Compression Function

SUM(SM)是一个非参数函数,对所有向量求和,然后输出一个标量

Neural Network(NN)是一个全连接函数

Factorization Machines(FM)通过因子参数计算交叉特征

Long Short-Term Memory Encoder

对于augment feature,本文采用时序模型进行特征编码,然后通过MeanMax对时序特征输出进行抽取

Prediction Layer and Optimization

首先将特征通过2层的highway network,然后通过linear softmax layer,损失函数采用带l2约束的对数损失函数。

参考文献

上一篇下一篇

猜你喜欢

热点阅读