自然語言是人類知識的抽象濃縮表示,而自然語言理解是人工智能研究領(lǐng)域中極具挑戰(zhàn)的一個(gè)分支。上次,《自然語言處理在 2017 年有哪些值得期待的發(fā)展?》中,我們已經(jīng)講到,2016 年是深度學(xué)習(xí)大潮沖擊 NLP 的一年,通過去年一年的努力,深度學(xué)習(xí)在 NLP 領(lǐng)域已經(jīng)站穩(wěn)了腳跟。其中,對話交互系統(tǒng)已經(jīng)成為一個(gè)重要的應(yīng)用研究領(lǐng)域,2017 年的自然語言對話系統(tǒng),將開創(chuàng)一個(gè)新的人機(jī)交互時(shí)代。
通過深度學(xué)習(xí)和其他機(jī)器學(xué)習(xí)技術(shù)的模型組合,竹間智能也已初步實(shí)現(xiàn)了自然語言對話中的意圖識別、上下文理解和多輪對話。本文將基于竹間智能的一些經(jīng)驗(yàn)和探索,從分詞、詞性等基礎(chǔ)模塊,到機(jī)器翻譯、知識問答等領(lǐng)域,列舉并分析一些深度學(xué)習(xí)在 NLP 領(lǐng)域的具體運(yùn)用,希望對大家研究深度學(xué)習(xí)和 NLP 有所幫助。
事實(shí)上,從分詞、詞性、語法解析、信息抽取等基礎(chǔ)模塊,到自然語言生成、機(jī)器翻譯、對話管理、知識問答等高層的 NLP 領(lǐng)域,幾乎都可以應(yīng)用以 CNN、RNN 為代表的深度學(xué)習(xí)模型,且確實(shí)能夠取得不錯(cuò)的效果。深度學(xué)習(xí)模型有效降低了語言模型輸入特征的維度,降低了輸入層的復(fù)雜性。另外,深度學(xué)習(xí)模型具有其他淺層模型不能比擬的靈活性。深度學(xué)習(xí)模型更復(fù)雜,能夠?qū)?shù)據(jù)進(jìn)行更精準(zhǔn)的建模,從而增強(qiáng)實(shí)驗(yàn)效果。
深度學(xué)習(xí)模型可以將文本中的詞高效地表示為分布式連續(xù)向量(word2vec),將詞語、文本由詞空間映射到語義空間,這樣的語義表示可以捕獲重要的句法和語義信息,一定程度上緩解了詞面不匹配、數(shù)據(jù)稀疏、語義鴻溝等問題。Word2vec 的應(yīng)用可以使許多自然語言處理任務(wù)取得突出的表現(xiàn)。Word2vec 雖然可以通過神經(jīng)網(wǎng)絡(luò)訓(xùn)練大規(guī)模的語料實(shí)現(xiàn),但仍面臨著 out of vocabulary 的現(xiàn)實(shí)。Bahdanau 等人利用 LSTM 模型結(jié)合定義知識語料,解決傳統(tǒng) word embedding 模型中的 out of vocabulary 問題。(框架流程見圖 1,具體見 https://arxiv.org/abs/1706.00286)
圖 1:利用 RNN 解決 Word2Vec 中 out of vocabulary 問題實(shí)例
中文不同于英文自然分詞,中文分詞是文本處理的一個(gè)基礎(chǔ)步驟,也是自然語言處理的基礎(chǔ)模塊。分詞性能的好壞直接影響比如詞性、句法樹等其他模塊的性能。利用深度學(xué)習(xí)實(shí)現(xiàn)的字嵌入+Bi-LSTM+CRF 中文分詞器,不需要構(gòu)造額外手工特征。使用人民日報(bào)的 80 萬語料訓(xùn)練實(shí)現(xiàn),按照字符正確率評估標(biāo)準(zhǔn)能達(dá)到 98% 的準(zhǔn)確率。其本質(zhì)上是一個(gè)序列標(biāo)注模型,模型參考的論文是:http://www.aclweb.org/anthology/N16-1030,整個(gè)神經(jīng)網(wǎng)絡(luò)的主要框架如圖 2 所示。有感興趣的朋友可以去看看,具體實(shí)現(xiàn)已在 github 開源 https://github.com/koth/kcws。
圖 2:Word Embedding+Bi-LSTM+CRF 主要框架示意圖
語法解析可以獲得句子的語法結(jié)構(gòu),例如,哪些單詞組合在一起(形成「短語」),哪些單詞是動(dòng)詞的主題或?qū)ο蟆yntactic Parsing 明確標(biāo)出了詞與詞之間的短語結(jié)構(gòu),隱含了詞與詞之間的關(guān)系。而 Dependency Parser 則明確表示出了詞與詞之間的關(guān)系。利用神經(jīng)網(wǎng)絡(luò)模型解析句子的語法結(jié)構(gòu)的實(shí)現(xiàn)可以參考 http://www.petrovi.de/data/acl15.pdf 以及斯坦福的 http://cs.stanford.edu/~danqi/papers/emnlp2014.pdf。除解析文本之外,Richard Socher 等人利用 CNN 模型實(shí)現(xiàn)了解析圖片的功能(Parsing Natural Scenes and Natural Language with Recursive Neural Networks)。
文本分類是各種場景在自然語言處理領(lǐng)域中經(jīng)常使用到的技術(shù),例如判斷文本內(nèi)容的情感分類(即對文本表達(dá)的情感進(jìn)行分析,如正面、負(fù)面的情感,開心、憤怒等情緒等)。深度學(xué)習(xí)在文本分類中的表現(xiàn)優(yōu)于其他一些傳統(tǒng)線性模型,例如 https://arxiv.org/abs/1508.04112。Github 上的 https://github.com/harvardnlp/sent-conv-torch 是用于文本分類的 CNN,這個(gè)代碼用 GPU 在 Torch 中實(shí)現(xiàn)了 Kim(2014)的句子卷積代碼。它復(fù)制了現(xiàn)有數(shù)據(jù)庫中的結(jié)果,并允許在任意其它的文本數(shù)據(jù)庫上訓(xùn)練模型。
信息抽取,從句子中抽取特定的片段(比如命名實(shí)體識別、摘要總結(jié)等)。Abstractive Summarization 摘要總結(jié) https://github.com/harvardnlp/NAMAS,該項(xiàng)目包含了來自論文 A Neural Attention Model for Abstractive Summarization(Alexander M. Rush, Sumit Chopra, Jason Weston. https://arxiv.org/pdf/1509.00685.pdf)的摘要抽象總結(jié)系統(tǒng)。該項(xiàng)目里發(fā)布的代碼可以:提取摘要數(shù)據(jù)、訓(xùn)練摘要神經(jīng)網(wǎng)絡(luò)模型、用 ROUGE 構(gòu)建評估集、調(diào)試提取的特征等。
神經(jīng)指代消解(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 中開源的指代消解項(xiàng)目有 https://github.com/swiseman/nn_coref。
自然語言生成,能夠根據(jù)一些關(guān)鍵信息及其在機(jī)器內(nèi)部的表達(dá)形式,經(jīng)過一個(gè)規(guī)劃過程,來自動(dòng)生成一段高質(zhì)量的自然語言文本。目前關(guān)于自然語言生成有一些比較有趣的研究,比如 https://github.com/karpathy/char-rnn 是一個(gè)基于 RNN 的文本生成器,可以自動(dòng)生成莎士比亞的劇本或者 shell 代碼;https://link.zhihu.com/?target=https%3A//github.com/phunterlau/wangfeng-rnn 基于 char-rnn 的汪峰歌詞生成器等。
知識問答,可以用深度學(xué)習(xí)模型,從語料中學(xué)習(xí)獲得一些問題的答案,比如 https://github.com/facebook/MemNN,是 memmnn 的一個(gè)官方實(shí)現(xiàn),可以從諸如「小明在操場;小王在辦公室;小明撿起了足球;小王走進(jìn)了廚房」的語境中,獲得問題「小王在去廚房前在哪里?」這樣涉及推理和理解的問題;例如斯坦福的 http://cs.stanford.edu/~danqi/papers/nips2013.pdf 利用深度學(xué)習(xí)實(shí)現(xiàn)的知識問答系統(tǒng)。
神經(jīng)機(jī)器翻譯(NMT)在翻譯中提供了統(tǒng)計(jì)方式之外的另一種方式,同時(shí)也更加簡便。Github 上基于 Sequence-to-Sequence Learning with Attentional Neural Networks 的開源項(xiàng)目: http://github.com/harvardnlp/seq2seq-attn,以及基于上述項(xiàng)目和 http://www.people.fas.harvard.edu/~yoonkim/data/emnlp_2016.pdf 的安卓系統(tǒng)中的神經(jīng)機(jī)器翻譯。該項(xiàng)目考慮了將知識提煉(knowledge distillation)方式加入機(jī)器神經(jīng)翻譯中,以解決其體量問題,這種方式已在其他領(lǐng)域中被證明能夠成功減小神經(jīng)模型的尺寸。
在 Github 上還有一些有趣的關(guān)于深度學(xué)習(xí)與自然語言處理的項(xiàng)目。比如:Google Brain 團(tuán)隊(duì)的一組研究人員發(fā)布了一個(gè)項(xiàng)目 Project Magenta,其主要目標(biāo)是利用機(jī)器學(xué)習(xí)創(chuàng)作藝術(shù)和譜寫曲子 https://github.com/tensorflow/magenta;https://github.com/ryankiros/neural-storyteller 是一個(gè)自然語言生成項(xiàng)目,實(shí)現(xiàn)了看圖講故事的功能。
以上是對深度學(xué)習(xí)在 NLP 領(lǐng)域運(yùn)用的一些總結(jié)和說明。最后,再講回竹間全力打造的自然語言對話系統(tǒng)。之前提到 2017 年的對話系統(tǒng)一定是在限定的場景下發(fā)揮作用的,而竹間智能基于深度學(xué)習(xí)打造的人機(jī)交互系統(tǒng),在金融、電商及 IoT 等限定領(lǐng)域中已經(jīng)實(shí)現(xiàn)了比較好的可控人機(jī)對話。未來,竹間希望在更多垂直領(lǐng)域形成突破。
原文標(biāo)題:專欄 | 深度學(xué)習(xí)在NLP中的運(yùn)用?從分詞、詞性到機(jī)器翻譯、對話系統(tǒng)
文章出處:【微信號:almosthuman2014,微信公眾號:機(jī)器之心】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
NPU在深度學(xué)習(xí)中的應(yīng)用
AI干貨補(bǔ)給站 | 深度學(xué)習(xí)與機(jī)器視覺的融合探索
![AI干貨補(bǔ)給站 | <b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>與<b class='flag-5'>機(jī)器</b>視覺的融合探索](https://file.elecfans.com/web2/M00/4F/E6/poYBAGLGUbCACFenAABTXFanQTU129.png)
評論