改變世界的七大NLP技術,你瞭解多少?(下)

摘要: 這裏有改變世界的7大NLP技術,點進來了解一下吧!

改變世界的七大NLP技術,你瞭解多少?(上)算法

clipboard.png

在第1部分中,我介紹了天然語言處理(NLP)領域以及爲其提供支持的深度學習。我還介紹了NLP中的3個關鍵概念:文本嵌入(字符串的矢量表示),機器翻譯(使用神經網絡翻譯語言),以及Dialogue和Conversations(能夠實時與人進行對話的技術)。在第2部分中,我將介紹另外4項重要的NLP技術,你應該關注這些技術,以跟上這一研究領域快速增加的步伐。網絡

技術4:情緒分析

人際交往不只僅是文字和其明確的含義,並且它仍是微妙且複雜的。即便在徹底基於文本的對話中,你也能夠根據單詞選擇和標點符號判斷客戶是否感到憤怒。你能夠閱讀產品在天貓平臺的評論,並瞭解評論者是否喜歡或不喜歡它,即便他們從未直接說過。爲了使計算機真正理解人類天天的交流方式,他們須要理解的不只僅是客觀意義上的詞語定義、並且他們須要瞭解咱們的情緒。情緒分析是經過較小元素的語義組成來解釋較大文本單元(實體、描述性術語、事實、論據、故事)的含義的過程。架構

傳統情感分析的方法是將句子視爲一個詞袋,並查閱「積極」和「消極」單詞的策劃列表,以肯定該句子的情緒。這須要手工設計的特徵來捕捉情緒,全部這是很是耗時和不可擴展的。框架

用於情感分析的現代深度學習方法可用於形態學、語法和邏輯語義,其中最有效的是遞歸神經網絡。顧名思義,遞歸神經網絡開發的主要假設遞歸是描述語言的天然方式。遞歸在消歧方面頗有用,有助於某些任務引用特定的短語,而且對於使用語法樹結構的任務很是有效。機器學習

clipboard.png

遞歸神經網絡很是適合具備嵌套層次結構和內部遞歸結構的設置。語法的句法規則是高度遞歸的,所以,咱們利用遞歸神經網絡!使用RNN對句子進行建模的另外一個好處是,咱們如今能夠輸入任意長度的句子,這對於在NLP中使用神經網絡來講是一個巨大的難題,使用很是聰明的技巧使句子的輸入向量具備相同的大小,儘管句子的長度不相等。學習

clipboard.png

標準RNN是一種遞歸神經網絡的最基本的版本。它具備最大邊距結構預測架構,能夠在複雜的場景圖像和句子中成功地運用這種結構。它用於爲天然語言句子提供有競爭力的語法分析器好比說Penn Treebank。做爲參考,Penn Treebank是第一個大型樹形數據集,由華爾街日報三年(WSJ)收集的24,799個故事組成,它普遍用於句法註釋。此外,它優於語義場景分割、註釋和分類的替代方法。優化

然而,標準RNN並不能捕獲語法短語的完整語法。在語法上解開RNN,也被稱爲成分矢量語法(CVG),這個方法是解決這個問題的一個重大升級。它使用語法解開的遞歸神經網絡來學習句法語義和組合向量表示。該模型可以像標準RNN同樣快速地進行訓練和實施。編碼

clipboard.png

另外一個演變是Matrix-Vector RNN,它可以捕獲更長短語的組成含義。該模型爲解析樹中的每一個節點分配一個向量和一個矩陣:向量用於捕獲成分的固有含義,而矩陣捕獲它如何改變相鄰單詞或短語的含義。並且該矩陣向量RNN能夠在命題邏輯和天然語言中學習運算符的含義。
該模型在三個不一樣的實驗中得到過不錯的表示:spa

  • 預測副詞-形容詞對的細粒度情感分佈;
  • 對電影評論的情感標籤進行分類;
  • 使用它們之間的句法路徑對名詞之間的語義關係(例如因果關係)進行分類。

clipboard.png

迄今爲止用於情感分析的最強大的RNN模型是遞歸神經張量網絡,其在每一個節點處具備神經網絡的樹結構。該模型可用於邊界分割,以肯定哪些詞組是積極的,哪些是消極的。在Sentiment Treebank上接受訓練時,該模型在幾個指標上的表現優於全部之前的方法。翻譯

技術5:問答系統

問答(QA)系統的想法是直接從文檔、對話、在線搜索和其餘地方提取信息,以知足用戶的信息需求。QA系統不是讓用戶閱讀整個文檔,而是更喜歡簡短而簡潔的答案。現在,QA系統能夠很是容易地與其餘NLP系統結合使用,而且一些QA系統甚至超越了對文本文檔的搜索,而且能夠從圖片集合中提取信息。

事實上,大多數NLP問題均可以被視爲一個問題回答問題。範例很簡單:咱們發出查詢指令,機器提供響應。經過閱讀文檔或一組指令,智能系統應該可以回答各類各樣的問題。

clipboard.png

強大的深度學習架構(稱爲動態內存網絡(DMN))已針對QA問題進行了專門開發和優化。給定輸入序列(知識)和問題的訓練集,它能夠造成情節記憶,並使用它們來產生相關答案。該體系結構具備如下組件:

  • 語義內存模塊(相似於知識庫)被用來建立從輸入句子的嵌入字序列預先訓練手套載體。
  • 輸入模塊處理與問題有關的輸入矢量稱爲事實。該模塊使用門控循環單元實現,GRU使網絡可以瞭解當前正在考慮的句子是否相關或與答案無關。
  • 問題模塊逐字處理疑問詞,而且使用輸出相同權重的GRU輸入模塊的向量。事實和問題都被編碼爲嵌入。
  • 情景記憶模塊接收從輸入中提取和編碼的嵌入事實和問題載體。這使用了一個受大腦海馬體啓發的想法,它能夠檢索由某些反應觸發的時間狀態,如景點或聲音。
  • 答案生成模塊,經過適當的響應,情景記憶應該包含回答問題所需的全部信息。該模塊使用另外一個GRU,使用正確序列的交叉熵錯誤分類進行訓練,而後能夠將其轉換回天然語言。

clipboard.png

DMN不只在質量保證方面作得很是好,並且在情感分析和詞性標註方面也優於其餘架構。自開發以來,動態內存網絡已經有了重大改進,進一步提升其在問答環境中的準確性,包括:

  • 用於視覺和文本問題的動態存儲網絡問答應用基本上是將DM​​N應用於圖像,其內存和輸入模塊已升級,以便可以回答視覺問題。該模型改進了許多基準Visual
    Question Answering數據集的現有技術水平,而不支持事實監督。
  • 用於問題應答的動態Coattention網絡解決了從對應於不正確答案的局部最大值恢復的問題。它首先融合了問題和文件的共同依賴表示,以便集中於兩
    者的相關部分。而後,動態指向解碼器迭代潛在的答案跨度,該迭代過程使模型可以從對應於不正確答案的初始局部最大值中恢復。

技術6:文本摘要
人類很難手動彙總大型文本文檔。文本摘要是NLP爲源文檔建立簡短、準確和流暢的摘要問題。隨着推送通知和文章摘要得到愈來愈多的注意力,爲長文本生成智能且準確摘要的任務天天都在增加。

經過首先計算整個文本文檔的單詞頻率來自動彙總文本。而後,存儲和排序100個最經常使用的單詞。而後根據它包含的高頻詞數對每一個句子進行評分,更高頻率的詞,價值更大。最後,根據它們在原始文本中的位置來獲取和排序前X個句子。

clipboard.png

文本摘要有兩種基本方法:提取和抽象。前者從原始文本中提取單詞和單詞短語以建立摘要。後者是學習內部語言表示以生成更像人類的摘要,解釋原始文本的意圖。

提取摘要的方法是經過選擇子集來工做。這是經過從實際文章中提取短語或句子以造成摘要來完成的,LexRank和TextRank是衆所周知的摘要總結,它們都使用了Google PageRank算法的變體。

  • LexRank是一種無監督的基於圖形的算法,它使用IDF修改的餘弦做爲兩個句子之間的類似性度量。該類似度用做兩個句子之間的圖形邊緣的權重。LexRank還採用了智能後處理步驟,確保爲摘要選擇的頂級句子彼此不太類似。
  • TextRank是一種相似於LexRank的算法,具備一些加強功能,例如使用詞形化而不是詞幹,結合詞性標註和命名實體分辨率,從文章中提取關鍵短語,以及根據這些短語提取摘要句子。除了文章摘要外,TextRank還從文章中提取了有意義的關鍵短語。

抽象歸納的模型屬於深度學習。使用深度學習的文本摘要已經取得了必定的突破。如下是一些NLP領域最大公司最顯着的公佈結果:

  • Facebook的神經注意是一種神經網絡架構,它利用基於本地注意力的模型,可以根據輸入句子生成摘要中的每一個單詞。
  • Google
    Brain的Sequence-to-Sequence模型遵循編碼器-解碼器架構。編碼器負責讀取源文檔並將其編碼爲內部表示,解碼器是一種語言模型,負責使用源文檔的編碼表示在輸出摘要中生成每一個單詞。
  • IBM Watson使用相似的序列到序列模型,但具備註意力和雙向遞歸神經網絡功能。

技術7:注意力機制

神經網絡中的注意力機制是基於人類的視覺注意機制。人類的視覺注意力雖然存在不一樣的模型,但它們都基本上歸結爲可以以「高分辨率」聚焦於圖像的某個區域,同時以「低分辨率」感知周圍的圖像,而後隨着時間的推移調整焦點。

想象一下,你正在閱讀一篇完整的文章:不是按順序瀏覽每一個單詞或字符,而是潛意識地關注一些信息密度最高的句子並過濾掉其他部分。你的注意力有效地以分層方式捕獲上下文信息,這樣就能夠在減小開銷的同時作出決策。

那爲何這很重要?諸如LSTM和GRU之類的模型依賴於讀取完整的句子並將全部信息壓縮爲固定長度的矢量。這須要基於文本統計屬性的複雜特徵工程,用幾個單詞表示的數百個單詞的句子確定會致使信息丟失,翻譯不足等。

clipboard.png

經過注意力機制,咱們再也不嘗試將全文編碼爲固定長度的矢量。相反,咱們容許解碼器在輸出生成的每一個步驟處理源語句的不一樣部分。咱們讓模型根據輸入句子以及它到目前爲止產生的內容來學習要注意的內容。

根據上面從基於注意力的神經機器翻譯的有效方法的圖像,藍色表示編碼器,紅色表示解碼器,所以咱們能夠看到上下文向量將全部單元格的輸出做爲輸入來計算每一個單元格的源語言單詞的機率分佈。解碼器想要生成單個字,經過利用該機制,解碼器能夠捕獲全局信息而不是僅基於一個隱藏狀態進行推斷。

除了機器翻譯以外,注意力模型還能夠處理各類其餘NLP任務。在Show,Attend和Tell:使用視覺注意生成神經圖像標題,做者將注意力機制應用於生成圖像描述的問題。他們使用卷積神經網絡對圖像進行編碼,使用具備註意力機制的遞歸神經網絡來生成描述。經過可視化注意力,他們能夠在生成單詞時解釋模型正在查看的內容:

clipboard.png

在語法做爲外語中,做者使用具備註意力機制的遞歸神經網絡來生成句子解析的樹。可視化的注意力矩陣能夠深刻了解網絡如何生成這些樹:

clipboard.png

在閱讀和理解的教學機器中,做者使用迴歸神經網絡來閱讀文本,閱讀問題,而後產生答案。經過可視化關注矩陣,它們能夠在嘗試查找問題答案時顯示網絡的外觀:

clipboard.png

然而,注意力機制須要付出代價。咱們須要計算輸入和輸出字的每一個組合的注意力值。若是你有一個100字的輸入序列並生成一個100字的輸出序列,那將是10,000個注意力值。若是你進行字符級計算並處理由數百個令牌組成的序列,上述機制可能變得很是昂貴。

天然語言處理已經解決的障礙

值得注意的是,研究人員不得不處理各類障礙:算法的侷限性、模型的可擴展性、對人類語言的模糊理解。好消息是,這個領域的發展彷佛是一個巨大的開源項目:研究人員不斷構建更好的模型來解決現有問題並與社區分享他們的結果。因爲最近的學術研究進展,如下是NLP中已經解決的主要障礙:

  • 沒有單一的模型架構,跨任務具備一致的最新結果。例如,在Question Answering中,咱們有強監督的端到端內存網絡 ;
    在情感分析中,咱們有Tree-LSTM ;
    在序列標記中,咱們有雙向LSTM-CRF。我以前在問題回答部分中提到的動態內存網絡以某種方式解決了這一挑戰,由於它能夠在多個域中一致地運行。
  • 機器學習中一種強大的方法是多任務學習,它共享相關任務之間的表示,以使模型可以更好地歸納原始任務。然而,相關的多任務學習很難,由於它一般僅限於較低層,僅在任務相關時纔有用,而且在所提出的模型中具備相同的解碼器/分類器。在聯合多任務模型中:爲多個NLP任務增加,做者預先定義了一個由幾個NLP任務組成的分層架構,做爲多任務學習的聯合模型。該模型包括字符n-gram和短路以及最早進的純前饋解析器,可以執行依賴解析,多句子任務和聯合訓練。
  • 另外一個挑戰是重複字表示的問題,其中模型中編碼器和解碼器的不一樣編碼致使重複的參數/含義。對此最簡單的解決方案是將單詞向量聯繫在一塊兒並聯合訓練單個權重,如「綁定單詞向量」
    和「單詞分類器:語言建模的損失框架」中所示。
  • 另外一個障礙是,與諸如卷積神經網絡或前饋神經網絡相比,任何Deep NLP技術的基本構建塊Recurrent Neural
    Networks至關慢。準遞歸神經網絡採用RNN和CNN的最佳部分來提升訓練速度,使用卷積跨越時間的並行性和跨越信道的並行性的元素級門控遞歸。這種方法比語言建模和情感分析中的任何其餘模型更好,更快。
  • 最後,在NLP中,架構搜索使用機器學習自動化人工神經網絡設計的過程
    很是緩慢,由於傳統的手動過程須要大量的專業知識。若是咱們可使用AI爲任何問題找到合適的架構怎麼辦?使用Google
    Brain進行強化學習的神經架構搜索是迄今爲止開發的最可行的解決方案。做者使用循環網絡生成神經網絡的模型描述,並使用強化學習訓練此RNN,以最大化驗證集上生成的體系結構的預期準確性。

結論

本系列文章展現了主要的天然語言處理技術的基本概要,這些技術能夠幫助計算機從單個文本或文本序列中提取,分析和理解有用的信息。從跨文化鏈接人的機器翻譯到幫助客戶服務的對話聊天機器人; 從深入理解人類情緒的情感分析,到能夠模仿咱們視覺注意力的注意力機制。由於NLP的領域過於龐大可能我並無徹底介紹,因此我鼓勵你進一步探索,不管是經過在線課程,博客教程,或研究論文。

本文做者:【方向】

閱讀原文

本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索