1. 程式人生 > >NLP--- 將改變你未來溝通方式的7種NLP技術(第二部分)

NLP--- 將改變你未來溝通方式的7種NLP技術(第二部分)

在第一部分中,我介紹了自然語言處理(NLP)領域以及為其提供支援的深度學習運動。我還向您介紹了NLP中的3個關鍵概念:文字嵌入(字串的矢量表示),機器翻譯(使用神經網路翻譯語言),以及對話和對話(可以實時與人進行對話的技術)。在第2部分中,我將介紹另外4項重要的NLP技術,您應該注意這些技術,以跟上這一研究領域快速增長的步伐。

技巧4:情緒分析

人際交往不僅僅是文字及其明確的含義。相反,它是微妙而複雜的。您可以根據朋友詢問您是否感到無聊,生氣或好奇的方式來判斷。即使在完全基於文字的對話中,您也可以根據單詞選擇和標點符號判斷客戶是否感到憤怒。您可以閱讀產品的亞馬遜評論,並瞭解評論者是否喜歡或不喜歡它,即使他們從未直接說過。為了讓計算機真正理解人類每天的交流方式,他們需要了解的不僅僅是客觀的詞語定義; 他們需要了解我們的情緒,我們真正的意思。情緒分析

 就是通過較小元素的語義組成來解釋較大文字單元(實體,描述性術語,事實,論據,故事)的含義的過程。

情感分析的傳統方法是將句子視為一個詞袋,並查閱“正面”和“否定”單詞的策劃列表,以確定該特定句子的情緒。這將需要手工設計的功能來捕捉情緒,這是非常耗時和不可擴充套件的。

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

遞迴神經網路非常適合具有巢狀層次結構和內部遞迴結構的設定。如果我們想到一個句子, 這不是有這樣的結構嗎?以 "一大群人暴力襲擊手無寸鐵的警察" 這句話為例。首先, 我們將這句話分成各自的名詞短語和動詞短語--"一大群人", "暴力攻擊手無寸鐵的警察"。但在這個動詞短語裡有一個名詞短語, 對吧?"暴力襲擊" 和 "手無寸鐵的警察"對我來說似乎是相當遞迴的。

語法的句法規則是高度遞迴的。因此,我們利用具有特別依賴它的模型的遞迴結構!使用RNN對句子進行建模的另一個好處是,我們現在可以輸入任意長度的句子,這對於在NLP中使用神經網路來說是一個巨大的難題,使用非常聰明的技巧使句子的輸入向量具有相同的大小,儘管句子的長度不相等。

 該標準RNN是一種遞迴神經網路的最基本的版本。它具有最大邊距結構預測架構,可以在複雜的場景影象和句子中成功地恢復這種結構。它用於為Penn Treebank的自然語言句子提供有競爭力的語法分析器。作為參考,Penn Treebank是第一個大型樹庫資料集,由華爾街日報三年(WSJ)收集的24,799個故事組成,共有98,732個故事,用於句法註釋。此外,它優於語義場景分割,註釋和分類的替代方法。

然而, 標準的 rnn 既沒有捕捉到語言短語的完整句法, 也沒有豐富的語義。語法上不繫結的 rnn(也稱為組合向量語法 (cvg)) 是解決此問題的主要升級。它使用語法上不繫結的遞迴神經網路來學習句法語義和組合向量表示。該模型與標準的 rnn 一樣高效地進行訓練和實施。它學習了一個軟性的頭部單詞概念, 並提高了需要語義資訊的歧義型別的效能。

另一個演變是Matrix-Vector RNN,它能夠捕捉甚至更長的短語的組成含義。模型為解析樹中的每個節點分配一個向量和一個矩陣:向量捕獲成分的固有含義,而矩陣捕獲它如何改變相鄰單詞或短語的含義。該矩陣向量RNN可以在命題邏輯和自然語言中學習運算子的含義。

因此,該模型在三個不同的實驗中獲得了最先進的效能:

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

迄今為止開發的用於情感分析的最強大的RNN模型是遞迴神經張量網路,其具有在每個節點處具有神經網路的樹結構。該模型可用於邊界分割,以確定哪些片語是正的,哪些是否定的。這同樣適用於整個句子。在Sentiment Treebank上接受培訓時,該模型在幾個指標上的表現優於所有以前的方法超過5%。目前,它是唯一能夠準確捕捉否定效果的模型及其在各種樹級別對正面和負面短語的範圍。

技巧5:問答系統(QA)

問答(QA)系統的想法是直接從文件,對話,線上搜尋和其他地方提取資訊,以滿足使用者的資訊需求。QA系統不是讓使用者閱讀整個文件,而是更喜歡簡短而簡潔的答案。如今,QA系統可以非常容易地與其他NLP系統(如聊天機器人)結合使用,並且一些QA系統甚至超越了對文字文件的搜尋,並且可以從圖片集合中提取資訊。

事實上,大多數NLP問題都可以被視為一個問題回答問題。範例很簡單:我們發出查詢,機器提供響應。通過閱讀文件或一組指令,智慧系統應該能夠回答各種各樣的問題。很自然地,我們想設計一個可用於一般QA的模型。

 

一個強大的深度學習架構, 稱為動態記憶體網路(DMN), 已經開發和優化專門針對 QA問題。給定一組輸入序列 (知識) 和問題的訓練集, 它可以形成插曲記憶, 並使用它們來生成相關的答案。該體系結構具有以下元件:

  • 語義記憶模組(類似於知識庫) 由預先訓練的嵌入字向量組成, 用於從輸入句子建立單詞嵌入序列。這些向量將作為模型的輸入。
  •  輸入模組將與問題相關的輸入向量處理為一組稱為事實的向量。本模組是使用門報遞經常股實現的。gru 使網路能夠了解目前正在考慮的句子是否相關或與答案無關。
  • 問題模組逐字逐句處理問題, 並使用與輸入模組相同的 gru 和相同的權重輸出向量。事實和問題都被編碼為嵌入。
  • 情節記憶模組接收從輸入中提取的事實和問題向量, 並將其編碼為嵌入。這使用了一個受大腦海馬體啟發的過程, 它可以檢索由某些反應 (如視覺或聲音) 觸發的時間狀態。
  • 最後,答案模組生成適當的響應。通過最後一遍,情景記憶應該包含回答問題所需的所有資訊。該模組使用另一個GRU,使用正確序列的交叉熵錯誤分類進行訓練,然後可以將其轉換回自然語言。

DMN不僅在質量保證任務方面做得非常好,而且在情感分析和詞性標註方面也優於其他架構。自成立以來,動態記憶體網路已經有了重大改進,以進一步提高其在問答環境中的準確性,包括:

  • 用於視覺和文字問題回答的動態記憶網路基本上是將 dmn 應用於影象。它的記憶體和輸入模組進行了升級, 以便能夠回答視覺問題。該模型改進了許多基準視覺問題應答資料集的最新狀態, 但不支援事實監督。
  • 動態諮詢網路的問題回答解決了從本地最大值恢復對應於不正確的答案的問題。它首先融合了問題和檔案的相互依賴表示, 以便將重點放在兩者的相關部分。然後, 動態指向解碼器遍歷潛在的答案範圍。此迭代過程使模型能夠從與不正確答案相對應的初始本地最大值中恢復。

技巧6:文字摘要

人類很難手動彙總大型文字文件。文字摘要是NLP中為源文件建立簡短,準確和流暢的摘要的問題。在當今快速發展的資訊時代,它已成為幫助和解釋文字資訊的重要而及時的工具。隨著推送通知和文章摘要獲得越來越多的牽引力,為長文字生成智慧和準確的摘要的任務每天都在增長。

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

 

通過保持簡單和一般用途,自動文字摘要演算法能夠在其他實現可能會遇到的各種情況下執行,例如包含外語的文件或標準英語中找不到的唯一單詞關聯語料庫。

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

提取摘要中的方法通過選擇子集來工作。這是通過從實際文章中提取短語或句子以形成摘要來完成的。LexRankTextRank是眾所周知的摘要總結。它們都使用了Google PageRank演算法的變體。

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

抽象概括的模型屬於深度學習的大範圍。使用深度學習的文字摘要已經取得了一定的突破。以下是一些NLP領域最大公司最顯著的公佈結果:

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

神經網路中的注意力機制是以人類的視覺注意力機制為基礎的。

人類的視覺注意力得到充分研究,雖然存在不同的模型,但它們都基本上歸結為能夠以“高解析度”聚焦於影象的某個區域,同時以“低解析度”感知周圍的影象,然後隨著時間的推移調整焦點。

想象一下,你正在閱讀一篇完整的文章:你不是按順序遍歷每個單詞或字元,而是潛意識地專注於幾個最高資訊密度的句子並過濾掉其餘部分。您的注意力有效地以分層方式捕獲上下文資訊,這樣就可以在減少開銷的同時做出決策。神經網路中的注意機制鬆散地基於人類中發現的視覺注意機制。

那為什麼這很重要?諸如LSTM和GRU之類的模型依賴於讀取完整的句子並將所有資訊壓縮為固定長度的向量。這需要基於文字統計屬性的複雜特徵工程。用幾個單詞表示的數百個單詞的句子肯定會導致資訊丟失,翻譯不足等。

 通過注意機制,我們不再嘗試將句子編碼為固定長度的向量。相反,我們允許解碼器在輸出生成的每個步驟處理源語句的不同部分。我們讓模型根據輸入句子以及它到目前為止產生的內容來學習要注意的內容。

根據上面從基於注意力的神經機器翻譯的有效方法的影象,藍色表示編碼器,紅色表示解碼器,因此我們可以看到上下文向量將所有單元格的輸出作為輸入來計算每個單元格的源語言單詞的概率分佈。解碼器想要生成單個字。通過利用該機制,解碼器可以捕獲全域性資訊而不是僅基於一個隱藏狀態進行推斷。

除了機器翻譯之外,注意模型還可以處理各種其他NLP任務。在Show,Attend和Tell:使用視覺注意生成神經影象標題時,作者將注意機制應用於生成影象描述的問題。他們使用卷積神經網路對影象進行編碼,並使用具有注意機制的遞迴神經網路來生成描述。通過視覺化注意力量,他們可以在生成單詞時解釋模型正在檢視的內容:

語法作為外語中,作者使用具有注意機制的遞迴神經網路來生成句子解析的樹。視覺化的注意力矩陣可以深入瞭解網路如何生成這些樹:

閱讀和理解的教學機器中,作者使用迴歸神經網路來閱讀文字,閱讀問題,然後產生答案。通過視覺化關注矩陣,它們可以在嘗試查詢問題答案時顯示網路的外觀:

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

自然語言處理障礙

值得注意的是,在我討論過的這7篇文章中,研究人員不得不處理各種障礙:演算法的侷限性,模型的可擴充套件性,對人類語言的模糊理解。。好訊息是,這個領域的發展似乎是一個巨大的開源專案:研究人員不斷構建更好的模型來解決現有問題並與社群分享他們的結果。由於最近的學術研究進展,以下是NLP中已經解決的主要障礙:

  • 沒有單一的模型架構,跨任務具有一致的最新結果。例如,在Question Answering中,我們有強監督的端到端記憶體網路 ; 在情感分析中,我們有Tree-LSTM ; 在序列標記中,我們有雙向LSTM-CRF。我之前在問題回答部分中提到的動態記憶體網路以某種方式解決了這一挑戰,因為它可以在多個域中保持良好的效能。
  • 機器學習中一種強大的方法是多工學習,它共享相關任務之間的表示,以使模型能夠更好地概括原始任務。然而,全關節多工學習很難,因為它通常僅限於較低層,僅在任務相關時才有用(如果任務不相關則通常會損害效能),並且在所提出的模型中具有相同的解碼器/分類器。在聯合多工模型中:為多個NLP任務增長NN作者預先定義了一個由幾個NLP任務組成的分層架構,作為多工學習的聯合模型。該模型包括字元n-gram和短路以及最先進的純前饋解析器,能夠執行依賴解析,多句子任務和聯合訓練。
  • 儘管沒有收到任何關於該任務的訓練樣例,但零射擊學習是解決任務的能力。沒有多少模型能夠為NLP進行零射擊學習,因為只有在訓練期間看到答案並且作為softmax函式的一部分才能預測答案。為了解決這一障礙,Pointer Sentinel混合模型的作者在混合模型中將標準LSTM softmax與指標網路相結合。指標網路有助於稀有字和長期依賴,而標準softmax可以引用不在輸入中的字。
  • 另一個挑戰是重複字表示的問題,其中模型中編碼器和解碼器的不同編碼導致重複的引數/含義。對此最簡單的解決方案是將單詞向量聯絡在一起並聯合訓練單個權重,如“繫結單詞向量” 和“單詞分類器:語言建模的損失框架”中所示
  • 另一個重大障礙是,與諸如卷積神經網路或前饋神經網路相比,任何Deep NLP技術的基本構建塊Recurrent Neural Networks相當慢。準遞迴神經網路採用RNN和CNN的最佳部分來提高訓練速度,使用卷積跨越時間的並行性和跨越通道的並行性的逐元門控遞迴。這種方法比語言建模和情感分析中的任何其他模型更好,更快。
  • 最後,在NLP中,架構搜尋  - 使用機器學習自動化人工神經網路設計的過程 - 非常緩慢,因為傳統的手動過程需要大量的專業知識。如果我們可以使用AI為任何問題找到合適的架構怎麼辦?使用 Google Brain 進行強化學習的神經架構搜尋是迄今為止開發的最可行的解決方案。作者使用迴圈網路生成神經網路的模型描述,並使用強化學習訓練此RNN,以最大化驗證集上生成的體系結構的預期準確性。

結論

你去吧!我向您展示了主要的自然語言處理技術的基本概要,這些技術可以幫助計算機從單個文字或文字序列中提取,分析和理解有用的資訊。從跨文化連線人的機器翻譯到幫助客戶服務的對話聊天機器人; 從深刻理解人類情緒的情感分析,到可以模仿我們視覺注意力的注意機制,NLP的領域過於龐大而無法完全覆蓋,所以我鼓勵你進一步探索,無論是通過線上課程,部落格教程,或研究論文。

我強烈推薦斯坦福大學的CS 224作為初學者,因為您將學習如何實施,訓練,除錯,視覺化和發明自己的NLP任務神經網路模型。作為獎勵,您可以從我的GitHub倉庫獲取所有演講幻燈片,分配指南和原始碼。我希望它能指導你改變我們未來的溝通方式!

編者注:想進一步瞭解機器學習如何改變我們使用語言的方式?檢視這些有用的Heartbeat資源:

原始文章的地址:請點選