孿生神經網絡(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領域中一個十分常見的問題,可以歸爲語義理解(理解兩句話的意思然後對比)或神經翻譯(從一種描述方式或者語言翻譯到另外一種描述方式或者語言)的範疇。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章