返回
观点

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

2024-11-05 13:480

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

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

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

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

  我们从训练数据和测试数据集串起的多个问题对的边(edge)来构建图,进而构建密度特征。当切割主边时,我们会统计附件的问题 1、问题 2、最小、最大、交叉、联合、最短路径长度。

  我们进一步建立了密度特征,一次又一次计算邻问题的邻问题......(嵌套循环)。我们还计算了前面的问题,它也挨着后面的问题(循环)。

  我们尝试了不同的图结构:我们构建了无向图和有向图(边从问题 1 指向问题 2),我们也试图将问题 1 的密度特征从问题 2 的特征中分离出来,除了可交换的特征之外还产生了不可交换特征。

  我们还计算了问题对的链接子图中的相同特征,这些子图来自于出现超过一次的问题对。我们想要做的是通过改变结构来消除那些我们认为会破坏图特征的捏造问题。

  最后,和其它团队一样,我们使用一些初始模型对图进行加权。我们尝试了 logit ,重新调整了预测,但是原始预测效果最好。我们还使用相似特征之一对图进行加权。

  具有预训练 FastText 嵌入的可分解注意力机制(),这个模型在 cv 上取得了 ~0.3 。

  具有预训练 FastText 嵌入的 ESIM(),这是我们最好的纯深度学习的 NLP 模型,它在 cv 上取得了 ~0.27。但是这个模型运行时间太长,我们只在第一个堆叠层中使用过一次。

  我们注意到深度学习(DL) 在第一个堆叠层中具有很好的效果,但是在第二层上却不如简单的多层感知机(MLP)。

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

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

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

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

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

  以最小的 3 个 Spearman 相关性 L2 预测为基础进行岭回归(Ridge)(基于最大/最小值,创建了 3 个边界)

打赏
  • 0人打赏
    举报
关闭
同类新闻