孪生神经网络(Siamese)比较两个句子语义相似性

深度学习在自然语言处理(NLP)领域已经被广泛应用,在传统领域过去看似复杂的挑战,也都已经取得了非常显著的进步。本文主要从一道Kaggle实战题目说起,并借此为例,展现深度学习在NLP上的一个应用。该实际问题可以被认为是语义理解或神经翻译的一个典型例子,在解决这个问题的过程中,我们将具体用到包括LSTM【5】、Word Embedding【4】、Siamese网络【6】等诸多技术,如果读者对其中的某个技术不甚了解可以查阅文末参考文献中给出的我之前所编写的几个入门博文。本文所使用的框架仍然是十分简明的Keras(当然,如果你更熟悉TensorFlow或者PyTorch,基于本文的简单改写也是非常简单的)。

一、问题介绍

首先来看一下我们要解决的问题。这个问题源自于Kaggle网站曾经举行过的一次竞赛【1】,如下图所示。众所周知,Quora是一个类似于英文版“知乎”的网站。每天会有很多人在Quora上提问,其中的很多问题虽然问法不完全一样,但本质上其实是一个问题。例如:

  • How can I see all my Youtube comments? 
  • How do I read and find my Youtube comments? 

以及

  • How can I be a good geologist?
  • What should I do to be a great geologist?

现在这是NLP领域中一个十分常见的问题,可以归为语义理解(理解两句话的意思然后对比)或神经翻译(从一种描述方式或者语言翻译到另外一种描述方式或者语言)的范畴。

猜你喜欢

转载自blog.csdn.net/baimafujinji/article/details/50537944
今日推荐