1. 程式人生 > >用深度學習解決自然語言處理中的7大問題,文字分類、語言建模、機器翻譯

用深度學習解決自然語言處理中的7大問題,文字分類、語言建模、機器翻譯

摘要: 本文講的是用深度學習解決自然語言處理中的7大問題,文字分類、語言建模、機器翻譯等,自然語言處理領域正在從統計學方法轉向神經網路方法。在自然語言中,仍然存在許多具有挑戰性的問題。但是,深度學習方法在某些特定的語言問題上取得了state-of-the-art的結果。

本文講的是用深度學習解決自然語言處理中的7大問題,文字分類、語言建模、機器翻譯等,自然語言處理領域正在從統計學方法轉向神經網路方法。在自然語言中,仍然存在許多具有挑戰性的問題。但是,深度學習方法在某些特定的語言問題上取得了state-of-the-art的結果。不僅僅是在一些benchmark問題上深度學習模型取得的表現,這是最有趣的;事實上,單個模型可以學習單詞的含義和執行語言任務,從而避免需要一套專門的、人工的方法。

這篇文章將介紹深度學習方法正在取得進展的7類有趣的自然語言處理任務。

  • 文字分類
  • 語言建模
  • 語音識別
  • 字幕生成
  • 機器翻譯
  • 文件摘要
  • 問題回答

每個任務都提供了對問題的描述,一個例子,以及有關演示方法和結果的論文的引用。大多數參考資料來自Goldberg的A Primer on Neural Network Models for Natural Language Processing(https://arxiv.org/abs/1510.00726)。

1. 文字分類

給定一個文字的例子,預測一個預定義的類標籤。

文字分類的目的是對文件的話題或主題進行分類。 ——統計自然語言處理基礎(Foundations of Statistical Natural Language Processing,1999)

流行的分類示例是情緒分析,其中類標籤表示源文字的情緒基調,例如“積極”或“消極”。

以下是另外3個例子:

  • 垃圾郵件過濾,將電子郵件文字分類為垃圾郵件。
  • 語言識別,對源文字的語言進行分類。
  • 流派分類,對虛構故事的流派進行分類。

此外,這個問題也可能是一個文字被分為多個類的方式,即所謂的多標籤分類。例如,預測源推文的多個標籤。

更多閱讀:

  • 文字分類-學術百科 www.scholarpedia.org/article/Text_categorization
  • 文件分類-維基百科 https://en.wikipedia.org/wiki/Document_classification

下面是有關文字分類的一些深度學習論文:

  • 對爛番茄影評的情感分析

Deep Unordered Composition Rivals Syntactic Methods for Text Classification, 2015. https://cs.umd.edu/~miyyer/pubs/2015_acl_dan.pdf

  • 對amazon產品評論、IMDB電影評論和分類主題新聞文章情緒分析

Effective Use of Word Order for Text Categorization with Convolutional Neural Networks, 2015. https://arxiv.org/abs/1412.1058

  • 對電影評論的情緒分析,將句子歸類為主觀或客觀,對問題型別進行分類,對產品評論的情感進行分類,等等。

Convolutional Neural Networks for Sentence Classification, 2014. https://arxiv.org/abs/1408.5882

2. 語言建模

語言建模實際上是一個更有趣的自然語言問題的子任務,特別是那些在其他輸入條件下調節語言模型的問題。

這個問題是根據前面的單詞預測下一個單詞。該任務是語音識別或光學字元識別(OCR)的基礎,也用於拼寫校正、手寫識別和統計機器翻譯。 ——Foundations of Statistical Natural Language Processing (page 191), by Christopher D. Manning & Hinrich Schütze

除了語言建模的學術興趣,它是許多深度學習自然語言處理架構的關鍵組成部分。語言模型學習詞彙之間的概率關係,生成在統計上與源文字一致的新的詞彙序列。

單獨來說,語言模型可以用於文字或語音生成;例如:

  • 生成新的文章標題
  • 生成新的句子、段落或文件
  • 生成一個句子的後續句子

有關語言建模的更多內容,參閱:

  • 語言建模-維基百科 https://en.wikipedia.org/wiki/Language_model
  • 迴圈神經網路的不合理有效性(The Unreasonable Effectiveness of Recurrent Neural Networks)2015
  • 基於生成模型的文字到語音合成 https://github.com/oxford-cs-deepnlp-2017/lectures/blob/master/Lecture 10 - Text to Speech.pdf

下面是一個關於語言建模深度學習例子:

  • 英語文字、書籍和新聞文章的語言模型
  • 一種神經概率語言模型(A Neural Probabilistic Language Model)www.jmlr.org/papers/v3/bengio03a.html

3.語音識別

語音識別是指理解所說的問題。語音識別的任務是將一個包含自然語言話語的聲音訊號對映到說話者預期的相應序列。 ——深度學習(page 458)

給定話語的音訊資料,語音識別模型需要生成人類可讀的文字。考慮到這個過程的自動性質,這個問題也可以被稱為自動語音識別(ASR)。使用語言模型來建立文字輸出,該輸出基於音訊資料。

一些例子包括:

  • 轉錄講話
  • 為電影或電視節目製作文字說明
  • 開車時用語音發出指令

有關語音識別的更多資訊,請參閱:

  • 語音識別-維基百科 https://en.wikipedia.org/wiki/Speech_recognition

下面是三個用於語音識別的深度學習方法的例子:

英語語音轉文字 Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Networks,2006 www.cs.toronto.edu/~graves/icml_2006.pdf Speech Recognition with Deep Recurrent Neural Networks, 2013. https://arxiv.org/abs/1303.5778 Exploring convolutional neural network structures and optimization techniques for speech recognition, 2014. https://www.microsoft.com/en-us/research/publication/exploring-convolutional-neural-network-structures-and-optimization-techniques-for-speech-recognition/

4. 字幕生成

字幕生成是有關描述影象內容的問題。給定例如照片等數字影象,生成影象內容的文字描述。語言模型用於建立以影象為條件的描述。

一些例子包括:

  • 描述場景內容
  • 建立照片標題
  • 描述視訊

這不僅僅是為聽力障礙者的應用,而且還可以生成可用於搜尋影象和視訊的具有可讀性的文字,例如在網路上。

以下是3個字幕生成深入學習方法的例子: 生成照片標題 Show, Attend and Tell: Neural Image Caption Generation with Visual Attention, 2016. https://arxiv.org/abs/1502.03044 Show and tell: A neural image caption generator, 2015. https://arxiv.org/abs/1411.4555 生成視訊字幕 Sequence to Sequence – Video to Text, 2015. https://arxiv.org/abs/1505.00487

5. 機器翻譯

機器翻譯是將一種語言的源文字轉換為另一種語言的問題。

機器翻譯,將文字或語音從一種語言自動翻譯成另一種語言,是NLP最重要的應用之一。 ——統計自然語言處理基礎,463頁,1999。

考慮到神經網路的使用,這一領域也被稱為神經機器翻譯。

在機器翻譯任務中,輸入已經由某種語言的符號序列組成,並且計算機程式必須將其轉換成其他語言的符號序列。這通常適用於自然語言,例如從英語翻譯成法語。深度學習最近開始在這類任務上有重要影響。 ——深度學習,98頁,2016

語言模型用於以另一種語言輸出目標文字,以源文字為條件。

一些例子包括:

  • 將文字檔案從法語翻譯成英語
  • 將西班牙語音訊轉換為德語文字
  • 將英語文字翻譯成義大利語音訊

有關神經機器翻譯的更多資訊,參閱: 神經機器翻譯-維基百科 https://en.wikipedia.org/wiki/Neural_machine_translation

以下是機器翻譯深度學習方法的3個例子:

將英語翻譯成法語 Sequence to Sequence Learning with Neural Networks, 2014. https://arxiv.org/abs/1409.3215 Neural Machine Translation by Jointly Learning to Align and Translate, 2014. https://arxiv.org/abs/1409.0473 Joint Language and Translation Modeling with Recurrent Neural Networks, 2013. https://www.microsoft.com/en-us/research/publication/joint-language-and-translation-modeling-with-recurrent-neural-networks/

6. 文件摘要

文件摘要是建立文字文件的簡短描述的任務。即,使用語言模型來輸出基於完整文件的總結性摘要。

檔案摘要的一些例子包括:

  • 建立文件的標題
  • 建立文件的概要

有關該主題的更多資訊,請參閱:

  • Automatic summarization-維基百科 https://en.wikipedia.org/wiki/
  • 深度學習是否(成功地)被應用於自動文字摘要?https://www.quora.com/Has-Deep-Learning-been-applied-to-automatic-text-summarization-successfully

以下是關於文件摘要深度學習方法的3個例子:

新聞文章中的句子概要: A Neural Attention Model for Abstractive Summarization, 2015. https://arxiv.org/abs/1509.00685 Abstractive Text Summarization Using Sequence-to-Sequence RNNs and Beyond, 2016. https://arxiv.org/abs/1602.06023 Neural Summarization by Extracting Sentences and Word, 2016. https://arxiv.org/abs/1603.07252

7. 問題回答

問題回答是給出一個主題(例如文字文件)回答有關該主題的具體問題的任務。

一些例子:

  • 回答有關維基百科頁面的問題
  • 回答有關新聞文章的問題
  • 回答有關病例的問題

參閱: Question answering - 維基百科 https://en.wikipedia.org/wiki/Question_answering 回答有關新聞文章的問題 Teaching Machines to Read and Comprehend, 2015. papers.nips.cc/paper/5945-teaching-machines-to-read-and-comprehend 回答一般知識問題 Question Answering over Freebase with Multi-Column Convolutional Neural Networks, 2015. www.aclweb.org/anthology/P15-1026 回答基於特定檔案的實質性問題 Deep Learning for Answer Sentence Selection, 2015. https://arxiv.org/abs/1412.1632