初赛阶段思路及算法模型
在初赛阶段,团队成员在对比赛数据集进行分析之后,考虑到测试集为单轮问答回复的形式,我们准备采用检索式多轮对话的方式,构建了一套检索+匹配的系统,针对测试集中给出的上下文信息,去候选池中检索相似度最高的问题,并将问题对应的答案重新组成成更加细致的候选池。而后,构建特征工程,从词向量训练,语义匹配,深度匹配等多个角度进行特征融合,这里融合先归一化,然后加权融合分数,输出最佳回复。
![](https://img.haomeiwen.com/i36215/38326794aff9c66e.png)
初赛阶段的比赛主要包括前期的数据处理,检索模型算法的构建,匹配模型的算法搭
建三个主要模块,下面将对每一个模块进行详细的介绍和说明。
2.1 数据处理
数据处理是初赛阶段的关键,几次大幅度的提分都和数据处理有着密不可分的关系,数据处理的好坏直接决定了比赛成绩的高低。在初赛阶段,我们发现同往常认知的“数据驱动的模型需要更大的数据集”的常识不同,数据集的扩充并没有提升模型的性能,相反却降低了测试集评测的分数。观察测试集案例给出的参考答案,我们发现:得分较高的参考答案普遍具有更长的句子长度,信息量也包含的更加丰富。由此,我们决定大胆地对初赛训练集进行删减,在按照QAQAQA 三对QA pair 的原始语料切分之后,我们删除了最后一个答案A 对应的句子长度小于六个词的语料对。这样的数据处理方式将原始切分的十三万对数据缩减到七万对。测试集评测结果印证了我们的方法的正确性,最终通过进一步的精简,初赛训练集的数据被缩减到五万对,线上评测分数有了不错的提升。
2.2 检索模型
检索模型顾名思义,就是从全体语料的候选池当中挑选出来。在检索模块中,我们首先利用tf-idf 值对前面已经分开好的context 文本和answer 文本进行表示,回顾一下,context 也就是三对QA 对话中的前五句Q1A1Q2A2Q3,answer 就是最后一句的回复A3。然后我们将测试的样例同context 文本中的上下文信息进行了相似度计算,并将最相似的十个上下文在answer 中对应的回复A3 返回。
![](https://img.haomeiwen.com/i36215/5aa2b0a03bb5fa76.png)
2.3 匹配模型
在匹配模型版块,我们融合了多种语义匹配的特征工程,并且引入深度学习匹配模型,利用深度学习方法挖掘检索回复中的语义关联度。
-
WMD 模型
WMD(word mover’s distance),一种文本距离计算方法,用于表征文本语义上的相似度。这幅图中,两个待比较的文本中的所有非停用词,也就是加粗的词汇被嵌入到了word2vec 的表示空间。 两个文本的相似度,用一个累加距离来表示,这个累加距离就是文本1 中的词到文本2 中的词的最小移动距离,图中用蓝色箭头表示。
图2. Word mover’s distance 原理图
-
BM25 模型
BM2.5 模型也是一种文本相似度度量的方法,在检索领域有着非常广泛的应用,其主要思想是根据两个句子中每个词语的相似度,然后给与每个词对的权重,最后加权得出的得分,从而计算两个句子的相似度,具体的计算公式如下:
image.png
其中的Q 代表一个句子,d 代表要搜索的句子,而句子Q 中的每一个词q 与待搜索的句子d 之间的相似度再给予对应的权重即为该句子同被搜索句子的相似度得分。而每一个词的权重W 则是根据逆文档频率(IDF)计算得出。
-
SMN
Sequential Matching Network 是微软亚洲研究院在2017 年提出来的一个检索式多轮对话网络。该网络综合利用了RNN 在时间序列上的信息提取以及CNN 在语言细节上的提取能力,将候选的回复同多轮对话中上下文信息中的每一句话进行语义匹配,最终给出相应的匹配得分。这种方式很大程度上挖掘了上下文的语义信息,使得最终得到的答案更加可靠。这里简要介绍一下该神经网络的网络结构,我们首先会对每一个句子进行分词操作,并利用训练好的word2vec 模型来得到表示每一个词的词向量。这样一个句子中所有词的词向量拼接起来就可以构成一个词向量矩阵,来代表该句子。然后将候选的回复句子同上下文context 中的每一个句子进行匹配。这里的匹配是在两个不同粒度上的,第一个粒度是将两个句子的词向量矩阵直接转置相乘,用来计算词级别的相似度;另外一个粒度,是句子片段级的相似度计算。具体是将每个句子输入到GRU 网络中,GRU 网络会得到一个对应的隐藏向量矩阵,然后做矩阵的乘法运算。这样做的好处,是通过GRU 网络挖掘了候选回复和上下文句子中不同长度片段的相似程度。接下来,将代表了两个不同粒度语义相似度的矩阵送入到CNN 网络当中,CNN 会输出一个2D 的feature map 特征图,该特征图被降维拼接成一维向量之后送入GRU,这个GRU 网络的每个time step 对应对话产生的时间,相当于考虑了整体对话的时间问题。最终softmax 归一化会计算得到一个相似度分数。
![](https://img.haomeiwen.com/i36215/32aaf1dfb3890e1d.png)
以上是初赛中,我们团队的算法模型介绍,下面给出初赛阶段的几次关键性提分,
这也体现了我们在算法模型上探究的过程和结果。
模型 得分
tf-idf 0.189
Tfidf+wmd 0.205
Tfidf+wmd+bm25 0.216
Tfidf+wmd+bm25+smn 0.278
Tfidf+wmd+bm25+smn+data mine 0.330
网友评论