点击上方,选择星标或置顶,每天给你送干货!
阅读大概需要10分钟
跟随小博主,每天进步一丢丢
来自 | 知乎
地址 | https://zhuanlan.zhihu.com/p/111768258
作者 | 霸道学长炮兵兵
编辑 | 机器学习算法与自然语言处理公众号
本文仅作学术分享,若侵权,请联系后台删文处理
QA任务是指给定一个问题,自动在许多回复中寻找最相关的回复(Answer Selection),或者所有相关问题来重用它们的回答(Question Retrieval)。
Keyword-BERT: Keyword-Attentive Deep Semantic Matching [2020]
(1)计算每个单词的IDF值,引入diff-idf衡量领域单词的重要性,即
通过这种方法创建领域词典,最后合并领域词典,形成keyword词典。
(2)经过上述方法提取了query pair的keywords。假设输出的keyword-attentive为。通过控制self-attention的mask控制关键词的获取,分别提取两个句子中的关键词,通过max-pooling得到每个句子中的表征,同时建模这种关键词表征的差异,得到用于分类的表征向量。
(4)负例采样
将输入语句和关键词拼接进行搜索,如果搜索引擎判断相似度低于一个阈值,则选做负样本。同时,引入query和候选$Q$
的关键词重叠度。好的负样本,重叠部分和不重叠部分应该有一个平衡点。
其中是效果比较好;可以看做搜索引擎返回的最大相似度。
RE2: Simple and Effective Text Matching with Richer Alignment Features [2019]
(1)定义query长度为,answer长度为;将每个序列的tokens经过embedding之后,通过个相同结构的blocks处理,第个block的输出为。定义经过embedding的输入为,之后每一个block的输入为。
(2)模型结构
Embedding层:获取两个输入序列的Embedding;使用强化残差连接,第层除了是前两个block的输出之外,还会拼接原始的embedding向量。
Encoding层:通过CNN得到每个token的强化表征;
Alignment层:计算连个文本的CrossAttention,表示线性层。
Fusion层:得到每一个token的融合表征
Prediction层:将最后一个block两个text的输出,经过max-pooling得到text表征,并融合经过预测得到最终分数。
对于Paraphrase identification任务,为了表示两个文本的对称性,可以使用
HCAN: Bridging the Gap Between Relevance Matching and Semantic Matching for Short Text Similarity Modeling [2019]
(1)定义输入序列query的长度为,context的长度为
(2)模型结构
通过Embedding层将query和context转化为词向量矩阵,使用3种不同的编码器:
Deep Encoder:由多层CNN堆叠而成,来得到高级别的k-gram
特征,对于不同的CNN层,query和context参数是共享的;
Wide Encoder:并联的CNN组成,使用不同的窗口大小,得到不同的k-gram
信息;
Contextual Encoder:使用BiLSTM捕获长距离的上下文依赖。
相较而言,Deep Encoder更加节省参数。
Relevance Matching:基于编码器得到的query和context表征,计算相似度矩阵;基于列归一化得到相似度矩阵,分别进行最大池化和平均池化得到判别向量和;引入权重作为先验衡量不同query terms和phrases的重要性,这里使用IDF作为重要性的值;得到。
Semantic Matching:基于编码器得到的query和context表征,使用co-attention:
表示将输入向量转化为;在两个方向上使用co-attention,即query-to-context和context-to-query:
接着将两个矩阵拼接,并计算交叉特征,最后经过一个BiLSTM,提取最后一层的输出作为两个语句的语义匹配输出:
将每一个编码层得到的RM向量和SM向量进行拼接,经过两层全连接层,使用ReLU激活函数生成最终的预测结果。
HAR: A Hierarchical Attention Retrieval Model for Healthcare Question Answering[2018]
(1)基于传统模型并没有特别关注query和document文本长度在匹配过程中的问题,本文提出针对长文本的建模方法。使用表示query文本,使用表示document中的每一个句子。
(2)模型结构:
首先,使用Embedding层将输入query和document转化为词向量矩阵;
经过BiGRU分别对query和document进行加强编码,每个单词得到对应的上下文表征向量;
使用双向注意力机制,对document中的每一个sentence进行交叉特征编码;
对query进行自注意力编码,得到query的表征;
对第3步得到的每一个document的交叉注意力编码进行两层的self-attention,得到document的表征向量;
将document的表征向量经过FFN得到和query维度相同的向量;
将query和document向量按元素相乘,并将最终的结果经过MLP得到最后的匹配分数。
MIX: MIX: Multi-Channel Information Crossing for Text Matching [2018]
(1)模型结构
输入question和answer,转化成词向量,计算unigram的交互矩阵;
使用CNN分别得到question和answer的bigram向量和trigram向量,计算bigram和trigram的交互矩阵;
根据question和answer对应的每个词的IDF和POS得到IDF Attention矩阵和POS Attention矩阵,同时定义一个参数化矩阵表征位置的重要性Position Attention;
将3个Attention矩阵和上面得到的gram交互矩阵计算,得到27层矩阵并进行Stack;
经过多层的CNN矩阵,得到表征向量输入MLP中得到最终的匹配结果。
MCAN: Multi-Cast Attention Networks for Retrieval-based Question Answering and Response Prediction [2018]
(1)模型结构:
输入query和document,使用一层HighWay网络对单词进行强化编码;
使用4种不同的Attention策略,分别是基于query和document交互矩阵的max-pooling Attention,mean-pooling Attention,Alignment Attention以及基于词向量矩阵的Self Attention;对于每一个单词向量,分别得到4个不同的Attention向量;
将每种Attention得到的向量,和原始向量使用3种交互方式(concat,按元素乘积,按元素相减),得到3种向量;
使用向量到标量的映射函数,将每个向量映射成一个变量(Sum或NN或FM);
这样,针对每个单词得到12个标量,将这些标量进行拼接,再拼接到原始词向量的后面;
将上面得到的向量经过BiLSTM,query和document共享权重,使用MeanMax池化的策略,将得到每个序列对应的向量;
将query和document的向量经过(concat,按元素乘积,按元素相减)得到的向量,输出两层HighWay网络;
最后将HighWay网络的输出经过线性层,得到输出。
aNMM: aNMM: Ranking Short Answer Texts with Attention-Based Neural Matching Model [2016]
(1)aNMM-1模型结构
输入Question和Answer,将单词映射为词向量矩阵,根据词向量计算相似度匹配矩阵;
将匹配矩阵中元素的取值范围[-1, 1]
等间距的划分成多个bins;
对于Q中的每一个单词,计算位置每一个bin中的元素的和,通过乘以参数矩阵再经过函数激活,得到对应的节点;
对于每一个单词,基于单词词向量和参数向量得到每一个单词的Attention权重,基于窗口M计算加权大小;
得到向量经过MLP得到最终分数。
(2)aNMM-2模型结构
输入Question和Answer,将单词映射为词向量矩阵,根据词向量计算相似度匹配矩阵;
将匹配矩阵中元素的取值范围[-1, 1]
等间距的划分成多个bins;
对于Q中的每一个单词,计算位置每一个bin中的元素的和,通过乘以多个不同的参数矩阵,每一个单词得到多个不同的节点;
将每个单词得到的个不同节点,再乘以一个参数向量,经过激活函数,每个单词得到一个节点;
对于每一个单词,基于单词词向量和参数向量得到每一个单词的Attention权重,基于窗口M计算加权大小;
得到向量经过MLP得到最终分数。