Keras版Sequence2Sequence對對聯實戰——自然語言處理技術

文宇肅然發表於2020-09-29

今天我們來做NLP(自然語言處理)中Sequence2Sequence的任務。其中Sequence2Sequence任務在生活中最常見的應用場景就是機器翻譯。除了機器翻譯之外,現在很流行的對話機器人任務,摘要生成任務都是典型的Sequence2Sequence。Sequence2Sequence的難點在於模型需要幹兩件比較難的事情:

  • 語義理解(NLU:Natural Language Understanding):模型必須理解輸入的句子。
  • 句子生成(NLG:Natural Language Generation):模型生成的句子需符合句法,不能是人類覺得不通順的句子。

想想看,讓模型理解輸入句子的語義已經很困難了,還得需要它返回一個符合人類造句句法的序列。不過還是那句話,沒有什麼是深度學習不能解決的,如果有,當我沒說上句話。

Sequence2Sequence任務簡介

Sequence2Sequence是一個給模型輸入一串序列,模型輸出同樣是一串序列的任務和序列標註有些類似。但是序列標註的的輸出是定長的,標籤於輸入一一對應,而且其標籤類別也很少。Sequence2Sequence則不同,它不需要輸入與輸出等長。

Sequence2Sequence演算法簡介

Sequence2Sequence是2014年由Google 和 Yoshua Bengio提出的,這裡分別是Google論文Yoshua Bengio論文的下載地址。從此之後seq2seq演算法就開始不斷演化發展出不同的版本

相關文章