问句相似度检测 CIKM2018 第8名解决方案

摘要

短文本匹配是聊天机器人设计开发中最常见和最重要的任务之一,在天池举办的CIKM2018竞赛中,举办方要求参赛队伍判断一个问句对是否表达的是同一个意思。我们团队的结果采用了多个模型的stacking,在最终获得了8/1027的成绩。代码地址:https://github.com/zhangzhen8230/comepetion2/tree/master/CIKM/

任务特点

举办方提供的语料由三部分组成:

20,000个标注好的英语问句对作为源数据

1,400个标注好的西班牙语问句对

55,669个未标注的西班牙语问句。

所有的标注结果都由语言和领域专家人工标注,并且提供这三部分的翻译结果。评测集的语言为西班牙语,该任务的难点有几个:

1、标注好的西班牙语问句对只有1400个,数量较少。

2、虽然有20000个标注好的英语问句对,并且提供了翻译为西班牙语的结果,但是评测集合为真实的西班牙语。

3、有大量的未标注的西班牙语问句对,如何利用。

4、针对于该任务任何建模。

方法总结

针对于以上任务,我们的解决方案由四部分组成:数据预处理,特征提取,模型搭建,模型融合。方法流程图如下所示


问句相似度检测 CIKM2018 第8名解决方案_第1张图片

数据预处理

文本清理:将大写字母变成小写,清洗一些特殊的符号。

停用词处理:使用了CNTK的停用词表。

问句生成:假设{q1,q2}的值为1,{q2,q3}的值为1,可以推断出{q1,q3}的标签也为1,通过此方法可以生成一批问句对,除此之外,还可以生成unigram,bigram的格式。

调整正负比例:通过提交一个均值,可以测试出线上测试集中正负样本的比例约为7:3,调整训练集的比例也为7:3.

特征工程

统计特征:

1.字符,词汇长度,标点符号,数字,相同词的数量,最小,最大,平均计数。

2.N-gram的tf-idf以及距离,tfidf of cooccurence of (distinct) words,tf-idf相似度

4.原数据与清洗后的数据中获得

5.Powerful word

6.FuzzWuzzy

图特征:

1.入度,极大团,连通图数量,Page Rank,hits

2.最小、最大、交叉、联合、最短路径长度

NLP特征:

1. w2c,glove,自己训练与原有的模型。

2.Sentence embedding: doc2vec

3.字向量

模型搭建

特征工程的特征经过特征选择,使用几个boosting模型和几个线性模型提取特征。

NLP特征使用深度学习模型来提取特征,这边的模型有esim,可分解attention,孪生lstm,matchzoo中的模型。

针对20000个标注好的训练语句不是原生西班牙问句对问题,采用autoencoder进行无监督训练5万条西班牙语问句对,然后将翻译完的西班牙问句输入到autoencoder中,形成最后的问句表示,我们认为这样能在一定程度上消除翻译的影响。

模型融合:

采用stacking将上述模型融合,融合的结果再与最好的2个单模型做blending。最终我们获得了初赛第5,复赛第8的成绩。

你可能感兴趣的:(问句相似度检测 CIKM2018 第8名解决方案)