资讯 人工智能开发者
此为临时链接,仅用于文章预览,将在时失效

Quora Question Pairs 竞赛冠军经验分享:采用 4 层堆叠,经典模型比较给力

作者:隔壁王大喵 编辑:汪思颖
2018/02/24 10:16

雷锋网 AI 研习社按:今天要介绍的比赛是 Quora Question Pairs,该比赛的目的是将具有相同意图的问题正确配对。最近本次竞赛的冠军在 Kaggle 社区分享了竞赛经验,雷锋网 AI 研习社进行了编译。

Quora 是一个获取和分享知识的问答平台,它能够促进人们互相学习,以更好地认识这个世界。每个月有超过 1 亿的人访问 Quora,所以有许多人可能提出相似的问题。然而这些具有相似意图的问题可能会使得寻求者需要花费更多的时间,才能找到所需的最佳答案,而答题者可能也会觉得很多问题存在重复。

为了更好地发掘那些具有相似意图的问题,以帮助用户更快地找到问题的高质量答案,提高用户使用体验,Quora 在 Kaggle 上举办了本次竞赛: Quora Question Pairs。下文是比赛冠军的经验分享,正文如下。

1、特征

我们将特征区分为三种:嵌入特征(Embedding features)、经典文本挖掘特征(Classical text mining features)和结构化特征(Structural features)

嵌入特征

备注:与 Word2Vec 相比,句子嵌入的挑战更为艰巨,因为它拥有更少的有效信息。

经典文本挖掘特征

我们还使用斯坦福大学的 corenlp 来标记词汇,利用 postagger 和 ner 来预处理一些深度学习模型的文本输入。

结构化特征

2、模型

我们的 NNets 主要在两个架构上进行工作:孪生神经网络(Siamese neural networks)和注意力神经网络(Attention neural networks)

其中一个关键问题是选择我们的一些传统特征并将其纳入这些网络。我们使用预训练的 FastText 和 Glove 嵌入,并设置 trainable=False,因为我们曾经尝试过微调模型参数,但并没有获得任何性能提高。

最终,我们证明了在文本序列和我们的图/文本挖掘特征上训练的神经网络是性能最好的单一模型。我们还尝试在字符层级上训练孪生模型,以进一步提高堆叠的多样性,但是很难判断它是否真的有用。

然后我们尝试了更多的经典算法以利用图结构特征,比如像常用算法 XGB/LGBM。

3、再缩放(Rescaling)

为了平衡训练和测试数据之间目标分布(Target distribution)的差异,我们在 sweezyjeezy 分析(再次感谢他的贡献,它几乎帮助了所有的参赛者)的基础上做了更细致的研究,链接是:

https://www.kaggle.com/c/quora-question-pairs/discussion/31179

我们意识到可以通过优化再缩放来减少 Log loss。虽然我们没有找到一个更好的假设来模拟测试数据集中数据的分布,但是通过在数据的本地子样本上使用该方案,成功增加了算法的准确性。

我们发现训练/测试数据偏差在三个方面非常不同:

  1. qid1_count = qid2_count = 1

  2. min_qid_count = 1 & max_qid_count > 1

  3. min_qid_count > 1

我们尝试了公共缩放(Public rescale)和外围缩放(Perimeter rescale)。对于第一层模型来说两者的效果都非常好,但是随着堆叠的深入,我们发现公共缩放不够强大,而外围缩放却有点过头。我们优化了缩放,使它的效果在这两种方法之间,与公共缩放相比,最终提高了 ~0.001。

4、堆叠(Stacking)

我们采用了四层的堆叠:

Via Quora Question Pairs,由雷锋网 AI 研习社进行编译。

长按图片保存图片,分享给好友或朋友圈

Quora Question Pairs 竞赛冠军经验分享:采用 4 层堆叠,经典模型比较给力

扫码查看文章

正在生成分享图...

取消
相关文章