基于表示的匹配模型的基本结构包括:
(1)嵌入层,即文本细粒度的嵌入表示;
(2)编码层,在嵌入表示的基础上进一步编码;
(3)表示层:获取各文本的向量表征;
(4)预测层:对文本pair的向量组进行聚合,从而进行文本关系的预测
对于对称的文本匹配任务,采用共享的编码器和文本表示DNNs无疑是合理的选择,从而也可以获取各文本在统一语义空间的表示方法。
基于表示的匹配模型结构紧凑,可变的花样并不多,主要集中在:
(1)如何更好的获取文本表征,即图中编码器和DNNs如何构造;
(2)如何更好的比较文本表征间的相似度。
这也是各典型模型主要的差异点,下面依次介绍这些典型模型:
1 DSSM及其变种
1.1 DSSM
Deep Structured Semantic Models(DSSM)是一种基于网络检索点击数据来获取query和title间语义相关性的模型,也是表示型匹配模型的鼻祖,其架构基本定义了后续各表示型匹配模型的基本范式。
DSSM主要的结构模块和要点包括:
(1)word hash:原始输入层为50w词汇构成的one-hot编码向量,为了保证训练的可行,本文提出了一种word hashing算法,通过对英文词进行n-letters的切分(如将word改写为#word#,采用3-letters切分为#wo,wor,ord,rd#),从而实现了term-level维度的压缩。word hash,类似于BPE,是一种常见的英文单词编码方式,但这种做法无法直接移植到中文embedding中;
(2)多层的MLP:表示层通过全连接的方式独立的对qurey和doc进行信息压缩和特征提取,最终得到句子和文档的语义表征;
(3)softmax预测层:DSSM损失函数的构造采用了list-wise rank的做法,采样得到一个正例和若干负例作为sample,通过计算query与doc语义表征的夹角余弦作为相似度logits,然后通过softmax进行归一化,最后通过MLE进行参数的学习。
DSSM的模型简单高效,采用海量点击曝光日志数据的监督学习进行训练,能够快速获取IR结果,但其存在如下不足:
(1)点击曝光日志并不能意味着着q-t间语义的近似程度,因此用起作为语义相似模型训练的依据是值得推敲的;
(2)期嵌入层简单采用了one-hot编码型式,忽略了语法和意义层面的表征;
(3)多层MLP的方式参数众多、形式单一,影响模型训练的效率;
(4)预测层仅仅通过夹角余弦的方式判断相似性,其表达能力稍弱。
1.2 CDSSM
针对DSSM在网络架构方面的局限性,后续提出了各种变种,首先介绍采用CNN进行表示的CDSSM模型:
CDSSM主要的结构模块和要点包括:
(1)嵌入层:在text sequence的首、尾添加了特殊的<s> token,以补充句子的边界特征,各token仍采用word hashing策略进行编码;
(2)编码层:采用n-gram的滑动窗口选取local term特征(原文直接拼接3-gram的向量表征,3*30k=90k);
(3)表示层:卷积— >池化—>卷积的表示层编码器。具体而言:通过MLP将高维度的local term特征映射到低维特征,然后在sequence length维度进行max pooling,从而将变长的文本统一为相同长度的向量特征,借着再通过一个MLP进一步压缩特征维度,以此作为文本向量表征;
(4)预测层:与DSSM采取相同损失函数、相似度计算策略。
CDSSM在编码层采用n-gram获取滑动窗口内的上下文信息,在表示层采用全局最大池化获取全文的上下文信息,从而能更好的获取语义表征,但由于滑动窗口大小的限制,仍无法获得较长距离的上下文依赖关系。
1.3 LSTM-DSSM
LSTM-DSSM模型将DSSM中的MPL层替换为LSTM层,将最后一个token的隐藏层输出作为句子表征,模型其它的设定与DSSM和CDSSM类似,这里不加赘述。
1.4 MV-DSSM
Multi-View DSSM将DSSM推广到用户推荐领域,其保留了DSSM的模型架构,创新点在于将不同信息源在统一语义空间进行编码。
2. SiamCNN和SiamLSTM
前文提及对称的文本匹配任务中常采用共享的编码器和文本表示DNNs,SiamCNN和SiamLSTM就是针对QA问题分别采用CNN模块和LSTM模块的经典模型。
2.1 SiamCNN
SiamCNN的提出者针对表示型文本匹配模型的两个核心步骤,分别对比了大量的CNN双塔模型方案以及相似性计算的方法。
在CNN双塔模型方案中,共对比了如下6种方案:
(1)q-a分别采用单独的Hidden-Layer(MLP+tanh激活函数)+ 单独的CNN + 1-D最大池化
(2)q-a采用共享的Hidden-Layer(MLP+tanh激活函数)+ 共享的CNN + 1-D最大池化
(3)q-a采用共享的Hidden-Layer(MLP+tanh激活函数)+ 共享的CNN + 1-D最大池化 + 单独的Hidden-Layer
(4)q-a采用共享的Hidden-Layer(MLP+tanh激活函数)+ 共享的CNN + 1-D最大池化 + 共享的Hidden-Layer
(5)q-a采用共享的Hidden-Layer(MLP+tanh激活函数)+ 共享的CNN + 1-D最大池化 + 共享的CNN
(6)q-a采用共享的Hidden-Layer(MLP+tanh激活函数)+ 共享的CNN + 共享的CNN + Skip-Connection + 1-D最大池化 +
在文本向量相似度的计算中,共对比了如下9种方案:
(1)夹角余弦;(2)多项式核函数;(3)sigmoid核函数;(4)高斯核函数;(5)欧氏距离;(6)指数核函数;(7)曼哈顿距离;(8)GESD;(9)AESD
本文采用了pair-wise rank的损失计算方法,即一对正、负样本的Hinge Loss。在文章采用的数据集上,模型方案(2)取得最佳结果,而GESD和AESD的相似度计算方法表现更好。
2.2 SiamLSTM
SiamLSTM的提出者采用LSTM的文本表征,并直接以文本表示pair的
e
−
∣
x
1
−
x
2
∣
e^{-|x_1-x_2|}
e−∣x1−x2∣作为最终归一化的相似度结果。
3. ARC-I
ARC-I模型采用重复堆叠的"CNN+k-Pooling"获取相邻n-gram间的语义关系,最后通过MLP得到句子相似度。
4. Multi-view
Multi-view是一种适用于多轮对话匹配的表示型模型。
对于多轮对话文本,该模型采用了两种文本表示方案(因此被成为Multi View):
(1)word-level的文本表示:对上下文utterance进行拼接,中间以特殊的 token划分,然后采用GRU模型取最后一个token的隐藏层输出作为整个文本的语义表征;
(2)utterance-level的文本表示:采用类似HAN的层级架构,首先利用CNN+1D Max-Pooling获取每个utterance的向量表示,然后再利用GRU结构获得上下文各utterance序列的最终语义表征。
同样的对response文本也进行如上的计算。分别对两个层级的文本表示利用一个sigmoid函数表示其相似度,两者之和即为最终的相似度。
5. InferSent
本文探究在NLI语料上采用什么样的模型能够更好的实现文本pair在同一语义空间的映射,从而可以实现下游任务的迁移学习。文章总结了Siamese结构的统一架构:
模型在文本pair的文本向量基础上,进行了更细致的相似度计算,即将文本向量、文本向量的点乘结果、文本向量差的绝对值等进行拼接(该方案最早鉴于交互型文本匹配模型ESIM),再进行MLP+softmax分类。
同时给出可用做表示层的各种特征抽取器:
(1)LSTM and GRU:采用单向LSTM/GRU隐藏层在最后一个token位置的输出向量;
(2)BiLSTM :采用双向LSTM/GRU隐藏层在各自最后一个token位置的输出的拼接向量;
(3)BiLSTM with mean/max pooling:采用双向LSTM/GRU在各token位置隐藏层的输出拼接向量,然后取sequence length方向的max-pooling或者mean-pooling结果;
(4)Self-attentive network:定义若干组可学习的文本query向量参数(可视为multiple view),然后将BiLSTM在各token的隐藏层输出作为key和value向量,然后基于attention机制得到整个文本在各query作用下加权平均后的语义向量,最后进行拼接得到最终的语义向量;
(5)Hierarchical ConvNet:采用层次化的卷积层,即多层CNN+Max Pooling的迭加,每层中Max Pooling的输出作为文本语义向量的一种表征,最后将多层的向量进行拼接得到最终的语义向量;
本文横向对比了上述各种特征抽取器,结果显示在所采用的语料基础上采用BiLSTM with mean/max pooling的结果更适合迁移学习。
6. SSE
SSE采用Stacked BiLSTM + Max Pooling作为文本向量抽取器,预测层采用了和SentInfer一样的组合策略。
7. 总结
前文介绍了在IR、QA和NLI等领域提出的典型表示型文本匹配模型,其整体架构均满足Embedding->Encoding->Representation->Prediction的层级顺序,所做的工作集中在:
(1)改进Encoding和Representation层,增强模型对文本向量的表达能力,可采用CNNs、RNNs、Pooling、Attention等机制,并在网络的深度以及网络各层信息的利用等层面进行尝试;
(2)改进Prediction层对文本向量pair相似度的计算,比如可以选择简单的计算夹角余弦、欧式距离、核距离等,也可以对文本向量pair进行更花哨的向量和矩阵计算。
【Reference】
- DSSM: Learning Deep Structured Semantic Models for Web Search using Clickthrough Data
- CDSSM: A Latent Semantic Model with Convolutional-Pooling Structure for Information Retrieval
- LSTM-DSSM: Semantic Modelling with Long-Short-Term Memory for Information Retrieval
- MV-DSSM: A Multi-View Deep Learning Approach for Cross Domain
User Modeling in Recommendation Systems - ARC-1: Convolutional Neural Network Architectures for Matching Natural Language Sentences
- SiamCNN: Applying Deep Learning to Answer Selection: A Study and An Open Task
- SiamLSTM: Siamese Recurrent Architectures for Learning Sentence Similarity
- Multi-view: Multi-view Response Selection for Human-Computer Conversation
- InferSent: Supervised Learning of Universal Sentence Representations from Natural Language Inference Data
- SSE: Shortcut-Stacked Sentence Encoders for Multi-Domain Inference
- 文本匹配相关方向打卡点总结(数据,场景,论文,开源工具)
- 谈谈文本匹配和多轮检索
- 贝壳找房【深度语义匹配模型 】原理篇一:表示型