深度學習在NLP中的運用?從分詞、詞性到機器翻譯、對話系統

2020-12-04 機器之心Pro

本文由機器之心編輯,「機器之心」專注生產人工智慧專業性內容,適合開發者和從業者閱讀參考。點擊右上角即刻關注。

自然語言是人類知識的抽象濃縮表示,而自然語言理解是人工智慧研究領域中極具挑戰的一個分支。上次,《自然語言處理在 2017 年有哪些值得期待的發展?》中,我們已經講到,2016 年是深度學習大潮衝擊 NLP 的一年,通過去年一年的努力,深度學習在 NLP 領域已經站穩了腳跟。其中,對話交互系統已經成為一個重要的應用研究領域,2017 年的自然語言對話系統,將開創一個新的人機互動時代。通過深度學習和其他機器學習技術的模型組合,竹間智能也已初步實現了自然語言對話中的意圖識別、上下文理解和多輪對話。本文將基於竹間智能的一些經驗和探索,從分詞、詞性等基礎模塊,到機器翻譯、知識問答等領域,列舉並分析一些深度學習在 NLP 領域的具體運用,希望對大家研究深度學習和 NLP 有所幫助。

事實上,從分詞、詞性、語法解析、信息抽取等基礎模塊,到自然語言生成、機器翻譯、對話管理、知識問答等高層的 NLP 領域,幾乎都可以應用以 CNN、RNN 為代表的深度學習模型,且確實能夠取得不錯的效果。深度學習模型有效降低了語言模型輸入特徵的維度,降低了輸入層的複雜性。另外,深度學習模型具有其他淺層模型不能比擬的靈活性。深度學習模型更複雜,能夠對數據進行更精準的建模,從而增強實驗效果。

深度學習模型可以將文本中的詞高效地表示為分布式連續向量(word2vec),將詞語、文本由詞空間映射到語義空間,這樣的語義表示可以捕獲重要的句法和語義信息,一定程度上緩解了詞面不匹配、數據稀疏、語義鴻溝等問題。Word2vec 的應用可以使許多自然語言處理任務取得突出的表現。Word2vec 雖然可以通過神經網絡訓練大規模的語料實現,但仍面臨著 out of vocabulary 的現實。Bahdanau 等人利用 LSTM 模型結合定義知識語料,解決傳統 word embedding 模型中的 out of vocabulary 問題。(框架流程見圖 1,具體見 https://arxiv.org/abs/1706.00286)

圖 1:利用 RNN 解決 Word2Vec 中 out of vocabulary 問題實例

中文不同於英文自然分詞,中文分詞是文本處理的一個基礎步驟,也是自然語言處理的基礎模塊。分詞性能的好壞直接影響比如詞性、句法樹等其他模塊的性能。利用深度學習實現的字嵌入+Bi-LSTM+CRF 中文分詞器,不需要構造額外手工特徵。使用人民日報的 80 萬語料訓練實現,按照字符正確率評估標準能達到 98% 的準確率。其本質上是一個序列標註模型,模型參考的論文是:http://www.aclweb.org/anthology/N16-1030,整個神經網絡的主要框架如圖 2 所示。有感興趣的朋友可以去看看,具體實現已在 github 開源 https://github.com/koth/kcws。

圖 2:Word Embedding+Bi-LSTM+CRF 主要框架示意圖

語法解析可以獲得句子的語法結構,例如,哪些單詞組合在一起(形成「短語」),哪些單詞是動詞的主題或對象。Syntactic Parsing 明確標出了詞與詞之間的短語結構,隱含了詞與詞之間的關係。而 Dependency Parser 則明確表示出了詞與詞之間的關係。利用神經網絡模型解析句子的語法結構的實現可以參考 http://www.petrovi.de/data/acl15.pdf 以及斯坦福的 http://cs.stanford.edu/~danqi/papers/emnlp2014.pdf。除解析文本之外,Richard Socher 等人利用 CNN 模型實現了解析圖片的功能(Parsing Natural Scenes and Natural Language with Recursive Neural Networks)。

文本分類是各種場景在自然語言處理領域中經常使用到的技術,例如判斷文本內容的情感分類(即對文本表達的情感進行分析,如正面、負面的情感,開心、憤怒等情緒等)。深度學習在文本分類中的表現優於其他一些傳統線性模型,例如 https://arxiv.org/abs/1508.04112。Github 上的 https://github.com/harvardnlp/sent-conv-torch 是用於文本分類的 CNN,這個代碼用 GPU 在 Torch 中實現了 Kim(2014)的句子卷積代碼。它複製了現有資料庫中的結果,並允許在任意其它的文本資料庫上訓練模型。

信息抽取,從句子中抽取特定的片段(比如命名實體識別、摘要總結等)。Abstractive Summarization 摘要總結 https://github.com/harvardnlp/NAMAS,該項目包含了來自論文 A Neural Attention Model for Abstractive Summarization(Alexander M. Rush, Sumit Chopra, Jason Weston. https://arxiv.org/pdf/1509.00685.pdf)的摘要抽象總結系統。該項目裡發布的代碼可以:提取摘要數據、訓練摘要神經網絡模型、用 ROUGE 構建評估集、調試提取的特徵等。

神經指代消解(Neural Coref Models),在論文 Learning Global Features for Coreference Resolution(Sam Wiseman, Alexander M. Rush, and Stuart M. Shieber, NAACL 2015)和 Learning Anaphoricity and Antecedent Ranking Features for Coreference Resolution(Sam Wiseman, Alexander M. Rush, Stuart M. Shieber, and Jason Weston. ACL 2015)中有所描述。Github 中開源的指代消解項目有 https://github.com/swiseman/nn_coref。

自然語言生成,能夠根據一些關鍵信息及其在機器內部的表達形式,經過一個規划過程,來自動生成一段高質量的自然語言文本。目前關於自然語言生成有一些比較有趣的研究,比如 https://github.com/karpathy/char-rnn 是一個基於 RNN 的文本生成器,可以自動生成莎士比亞的劇本或者 shell 代碼;https://link.zhihu.com/?target=https%3A//github.com/phunterlau/wangfeng-rnn 基於 char-rnn 的汪峰歌詞生成器等。

知識問答,可以用深度學習模型,從語料中學習獲得一些問題的答案,比如 https://github.com/facebook/MemNN,是 memmnn 的一個官方實現,可以從諸如「小明在操場;小王在辦公室;小明撿起了足球;小王走進了廚房」的語境中,獲得問題「小王在去廚房前在哪裡?」這樣涉及推理和理解的問題;例如斯坦福的 http://cs.stanford.edu/~danqi/papers/nips2013.pdf 利用深度學習實現的知識問答系統。

神經機器翻譯(NMT)在翻譯中提供了統計方式之外的另一種方式,同時也更加簡便。Github 上基於 Sequence-to-Sequence Learning with Attentional Neural Networks 的開源項目: http://github.com/harvardnlp/seq2seq-attn,以及基於上述項目和 http://www.people.fas.harvard.edu/~yoonkim/data/emnlp_2016.pdf 的安卓系統中的神經機器翻譯。該項目考慮了將知識提煉(knowledge distillation)方式加入機器神經翻譯中,以解決其體量問題,這種方式已在其他領域中被證明能夠成功減小神經模型的尺寸。

在 Github 上還有一些有趣的關於深度學習與自然語言處理的項目。比如:Google Brain 團隊的一組研究人員發布了一個項目 Project Magenta,其主要目標是利用機器學習創作藝術和譜寫曲子 https://github.com/tensorflow/magenta;https://github.com/ryankiros/neural-storyteller 是一個自然語言生成項目,實現了看圖講故事的功能。

以上是對深度學習在 NLP 領域運用的一些總結和說明。最後,再講回竹間全力打造的自然語言對話系統。之前提到 2017 年的對話系統一定是在限定的場景下發揮作用的,而竹間智能基於深度學習打造的人機互動系統,在金融、電商及 IoT 等限定領域中已經實現了比較好的可控人機對話。未來,竹間希望在更多垂直領域形成突破。

相關焦點

  • 實踐入門NLP:基於深度學習的自然語言處理
    特別是最近兩年,基於深度學習的自然語言處理逐漸取得了一定進展,在人機對話、問答系統、語言翻譯等方向的應用也一直是自然語言處理中的熱門話題,而這些應用的實現,基本依賴於底層技術和模型的進步,再加上自然語言處理領域也算是一個多學科交叉的行業,自然語言處理的未來發展對於很多相關學科和方向都具有深遠的影響力。
  • 從語言學到深度學習NLP,一文概述自然語言處理
    第二部分描述的是基於深度學習的 NLP,該論文首先描述了深度學習中的詞表徵,即從 one-hot 編碼、詞袋模型到詞嵌入和 word2vec 等,我們首先需要數字表徵詞彙才能進一步做自然語言處理。隨後,本論文介紹了各種應用於 NLP 的模型,包括卷積神經網絡、循環神經網絡、長短期記憶和門控循環神經網絡等,這一些模型加上其它如注意力機制那樣的技巧就能實現十分強大的能力,如機器翻譯、問答系統和情感分析等。
  • 機器之心獨家對話百度 NLP:先解決語義理解,再談機器翻譯取代人類
    第一是為百度的眾多產品提供最基礎的、NLP 模型算法,包括百度所有產品都在用的分詞算法、專名識別、詞性分析、語義理解、篇章理解等等一些基礎的一些工具。目前 NLP 部門為整個公司提供一個大型平臺 NLP 雲,未來這個平臺也會對公司外有所開放,目前(這個平臺)每天都有千億量級的調動量。還有貼近應用的一些大型的應用系統,比如說深度問答系統。
  • 推薦算法系統/人臉識別/深度學習對話機器人高級實戰課
    推薦效果最終要應用到線上平臺去,在App或網站上毫秒級別的快速展示推薦結果,這就需要推薦的在線Web引擎服務來保證高性能的並發訪問。這麼來說,雖然算法是核心,但離不開每個子系統的配合,另外就是不同算法可以嵌入到各個子系統中,算法可以貫穿到每個子系統。從開發人員角色上來講,推薦系統不僅僅只有算法工程師角色的人就能完成整個系統,需要各個角色的工程師相配合才行。
  • 科學網—幫機器學會中文分詞和詞性標註
    ■本報記者 鄭金武 「部分居民生活水平」這樣的中文短語,人們理解起來沒有太大困難。
  • 中文分詞和詞性標註:為拓展工業場景應用夯基—新聞—科學網
    「中文的分詞和詞性標註是自然語言處理的基本任務,對於後續的應用和任務處理非常重要。」兩篇論文的作者之一、創新工場大灣區人工智慧研究院執行院長宋彥告訴《中國科學報》,對於文本分類、情感分析、文本摘要、機器翻譯等,分詞和詞性標註是不可或缺的基本「元件」。
  • 一文概述 2018 年深度學習 NLP 十大創新思路
    1)無監督的機器翻譯翻譯(Unsupervised MT)ICLR 2018 收錄的兩篇關於無監督機器翻譯翻譯的論文(https://arxiv.org/abs/1710.11041)中,無監督機器翻譯的整個過程的表現好得讓人感到驚訝,但結果卻不如監督系統。
  • 創新工場提出中文分詞和詞性標註模型,性能分別刷新五大數據集
    基於此,創新工場近日公布的兩篇論文各自提出了「鍵-值記憶神經網絡的中文分詞模型」和「基於雙通道注意力機制的分詞及詞性標註模型」,將外部知識(信息)創造性融入分詞及詞性標註模型,有效剔除了分詞「噪音」誤導,大幅度提升了分詞及詞性標註效果。
  • 從星際2深度學習環境到神經機器翻譯,上手機器學習這些開源項目必...
    算法:如何處理和分析數據機器學習算法可利用數據執行特定的任務,最常見的機器學習算法有如下幾種:1.監督學習。監督學習使用以及標註過的和結構化的數據,通過制定一組輸入數據集合所需的輸出,機器可以學習如何識別目標並且映射到其他的學習任務上。
  • 創新工場兩篇論文入選ACL2020 中文分詞和詞性標註新模型性能創新高
    例如,在「部分居民生活水平」這句話中,到底有多少可能成為詞的組塊?單字可成詞,如「民」;每兩個字的組合可能成詞,如「居民」;甚至四個字的組合也可能成詞,例如「居民生活」。把這些可能成詞的組合全部找到以後,加入到該分詞模型中。通過神經網絡,學習哪些詞對於最後完整表達句意的幫助更大,進而分配不同的權重。
  • 人工智慧難點之——自然語言處理(NLP)
    自然語言處理如何工作目前NLP的方法是基於深度學習,這是一種AI,它檢查和使用數據中的模式來改善程序的理解。深度學習模型需要大量的標記數據來訓練和識別相關的相關性,匯集這種大數據集是當前NLP的主要障礙之一。
  • 中文分詞最佳紀錄刷新,兩大模型分別解決中文分詞及詞性標註問題
    另外,在詞性標註方面,TwASP模型同樣刷新了成績。中文分詞的SOTA中文分詞目的是在中文的字序列中插入分隔符,將其切分為詞。例如,「我喜歡音樂」將被切分為「我/喜歡/音樂」(「/」表示分隔符)。「民」 → 單字詞「居民」 → 詞尾「民生」→ 詞首「居民生活」 → 詞中把這些可能成詞的組合全部找到以後,加入到該分詞模型中。通過神經網絡,學習哪些詞對於最後完整表達句意的幫助更大,進而分配不同的權重。
  • 史上最強NLP知識集合:知識結構、發展歷程、導師名單
    新的結構主要都從機器翻譯的工作中誕生,它已經成了序列到序列模型的培養基。近期提出的模型有深度長短期記憶網絡、卷積編碼器、Transformer(一個基於自注意力機制的全新神經網絡架構)以及長短期記憶依賴網絡和的 Transformer 結合體等。
  • 深度學習在統計機器翻譯和會話中的應用 |微軟IJCAI2016演講PPT
    l  針對詞彙可能性   語言模型   LM/w 來源l  基於短語的機器翻譯  翻譯/錄製可能性   翻譯   錄製l  基於二元的機器翻譯l  ITG模型神經機器翻譯,建立一個單獨的,大型的NN,閱讀句子並輸入翻譯。不像基於短語的系統需要很多零件模型組成。
  • 獨家對話百度副總裁王海峰:NLP 的路還很長
    Query 理解分很多層,比如最基礎的中文 query 理解,要做分詞、命名實體識別、短語結構分析等等。在應用深度學習之前百度就達到了很好的效果,在這過程中也積累了非常豐富的用戶數據。這些數據的積累又為後來應用深度學習提供了基礎。百度是世界上最早將深度學習技術應用在搜尋引擎中的公司。
  • 自然語言處理(NLP)中的深度學習發展史和待解難題
    我們可以使用一些很簡單且容易理解的模型來解決常見問題,比如垃圾郵件過濾、詞性標註等。但並不是所有問題都能用這些經典模型來解決。簡單的模型不能準確地捕捉到語言中的細微之處,比如諷刺、成語或語境。在計算機視覺領域中,卷積神經網絡已經取得了很好的應用,遲早會延伸到自然語言處理研究中。目前,作為一種常用的網絡單元,一維卷積已成功應用到多種序列模型問題的處理中,包括語義分割、快速機器翻譯和某些序列轉換網絡中。由於更容易進行並行計算,與循環神經網絡相比,一維卷積在訓練速度上已提高了一個數量級。
  • 自然語言處理全家福:縱覽當前NLP中的任務、數據、模型與論文
    >Penn Treebank4.指代消歧CoNLL 20125.依存解析Penn Treebank6.對話第二對話狀態追蹤挑戰賽7.域適應多領域情感數據集8.語言建模Penn TreebankWikiText-29.機器翻譯WMT 2014
  • 資源| 史丹福大學NLP組開放神經機器翻譯代碼庫(附論文)
    選自斯坦福機器之心編譯參與:吳攀、杜夏德近日,史丹福大學自然語言處理組(Stanford NLP)發布了一篇文章,總結了該研究組在神經機器翻譯(NMT)上的研究信息。在這篇文章中,他們還放出了在多種翻譯任務上(比如英德翻譯和英語-捷克語翻譯)實現了當前最佳結果的代碼庫(codebase)。
  • 最新中文NLP開源工具箱來了!支持6大任務,面向工業應用|資源
    LAC使用基於 GRU 的網絡結構學習特徵,將學習到的特徵接入 CRF 解碼層完成序列標註。CRF解碼層本質上是將傳統 CRF 中的線性模型換成了非線性神經網絡,基於句子級別的似然概率,因而能夠更好的解決標記偏置問題。LAC能整體性地完成中文分詞、詞性標註、專名識別任務。基於自建的數據集上對分詞、詞性標註、專名識別進行整體的評估效果,效果如下表所示。
  • 創新工場兩篇論文入選ACL 2020,將中文分詞數據刷至新高
    這兩篇論文均聚焦中文分詞領域,是深度學習引入知識後的有益嘗試,將該領域近年來廣泛使用的各數據集上的分數全部刷至新高,在工業中也有著可觀的應用前景。把這些可能成詞的組合全部找到以後,加入到該分詞模型中。跨領域分詞實驗(對話測試集)的結果主動引入和分辨知識,實現中文分詞技術突破中文分詞在中國科研領域已經有幾十年的歷史。最初的中文分詞是基於詞典構建,詞典的好壞會直接影響到最後分析的效果。如果某個新詞在詞典裡沒有,那麼模型是死活都分不出來的。