摘要
自然語言處理(NLP)是人工智能的一個子領域,其重點是使計算機能夠理解和處理人類語言。在過去的五年里,我們見證了NLP在機器翻譯、問答和基于深度學習的機器閱讀理解等任務上的快速發展,以及海量的帶注釋和未帶注釋的數據。本文將從建模、學習和推理三個方面綜述基于神經網絡的神經語言處理框架(neural NLP)的最新進展。在建模部分,我們將描述幾種基本的基于神經網絡的建模范例,如單詞嵌入、句子嵌入和序列到序列的建模,這些在現代NLP引擎中被廣泛使用。在學習部分,我們將介紹廣泛使用的NLP模型的學習方法,包括監督學習、半監督學習和無監督學習;多任務學習;遷移學習;和主動學習。我們認為推理是神經NLP的一個新的和令人興奮的方向,但它還沒有被很好地解決。在推理部分,我們將回顧推理機制,包括知識,現有的非神經推理方法,和新的神經推理方法。我們在本文中強調推理的重要性,因為它對于建立可解釋的和知識驅動的神經網絡規劃模型來處理復雜的任務是很重要的。在本文的最后,我們將簡要概述我們對神經語言處理的未來發展方向的思考。
介紹
自然語言處理(Natural Language Processing, NLP)是人工智能(AI)的一個重要分支,通過自然語言研究人與計算機之間的交互。它研究單詞、短語、句子和文檔的意義表達的基礎技術,以及句法和語義處理(如斷句、句法分析器和語義解析)的基礎技術,并開發諸如機器翻譯(MT)、問答(QA)、信息檢索、對話、文本生成和推薦系統等應用程序。NLP對于搜索引擎、客戶支持系統、商業智能和語音助手至關重要。
NLP的歷史可以追溯到20世紀50年代。在NLP研究之初,我們使用基于規則的方法來構建NLP系統,包括單詞/句子分析、QA和MT。這些由專家編輯的規則被用于從MT開始的各種NLP任務的算法中。通常,設計規則需要大量的人力。此外,當規則數量很大時,很難組織和管理規則。20世紀90年代,隨著互聯網的快速發展,出現了大量的數據,這使得統計學習方法可以用于處理NLP任務。使用人工設計的特征,統計學習模型通過使用標記/挖掘數據學習。統計學習方法為許多自然語言處理任務,特別是MT和搜索引擎技術帶來了顯著的改進。2012年,隨著深度學習在ImageNet[1]對象識別和Switchboard[2]語音識別方面的成功,深度學習方法被引入到NLP中。深度學習方法比統計學習方法快得多,結果好得驚人。目前,基于神經網絡的神經語言處理(以下簡稱神經語言處理)框架已經達到了新的質量水平,并且已經成為處理神經語言處理任務的主要方法,例如MT、機器閱讀理解(MRC)、聊天機器人等等。例如,微軟的Bible系統在2017年MT研討會的中英新聞翻譯任務中就取得了能和人媲美的結果。微軟亞洲研究院(MSRA)的R-NET和NLNet在斯坦福問題回答數據集(小組)評估任務中,在精確匹配(EM)得分和模糊匹配(F1)得分上都取得了人機質量結果。最近,生成式預訓練(GPT)[3]、來自 Transformers的雙向編碼器表示(BERT)[4]和XLNet[5]等預訓練模型在多個NLP任務中顯示了強大的能力。神經NLP框架在有大量標記數據用于學習神經模型的監督任務中工作得很好,但在資源有限或沒有標記數據的低資源任務中仍然表現不佳。
建模
NLP系統使用自然語言句子并生成一個類類型(用于分類任務)、一個標簽序列(用于序列標記任務)或另一個句子(用于QA、對話、自然語言生成和MT)。要應用神經語言處理方法,需要解決以下兩個關鍵問題: (1)在神經網絡中對自然語言句子(詞的序列)進行編碼。 (2)生成一個標簽序列或另一個自然語言句子。 從這兩個方面,本節將介紹幾種常用的神經網絡語言處理模型,包括字嵌入、句子嵌入和序列到序列的建模。單詞嵌入將輸入句子中的單詞映射成連續的空間向量。 基于“嵌入”這個詞,復雜網絡如遞歸神經網絡(RNNs)卷積神經網絡(CNNs)和自注意力網絡可以用于特征提取,考慮到整個句子的上下文信息構建嵌入環境敏感詞,句子的或集成所有的信息來構造句子嵌入。上下文感知詞嵌入可用于序列標記任務,如詞性標記(POS)和命名實體識別(NER),句子嵌入可用于句子級任務,如情緒分析和意譯分類。句子嵌入也可以作為另一個RNN或自注意網絡的輸入,生成另一個序列,形成序列-序列建模的編解碼框架。給定一個輸入句子,序列到序列的建模可以用來生成一個問題的答案(即問答任務)或翻譯成另一種語言(即機器翻譯任務)。
學習
目前已經提出了新的和有效的訓練算法,以優化大量的參數在深度學習模型。在訓練神經網絡時,常用的方法是隨機梯度下降(SGD)[18],它通常是基于[19]的反向傳播方法。基于動量的SGD被提出是為了引入動量來加速訓練過程。AdaGrad [20], AdaDelta [21], Adam [22], RMSProp方法嘗試對不同的參數使用不同的學習比率,這進一步提高了效率,穩定了訓練過程。當模型非常復雜時,并行訓練方法被用來利用許多計算設備,甚至數百或數千臺(中央處理單元、圖形處理單元或現場可編程門陣列)。根據參數是否同步更新,分布式訓練方法可以分為同步SGD和異步SGD。 除了一般的優化方法已經取得的進展外,針對特定的NLP任務提出了更好的訓練方法。當大量的訓練數據可用于資源豐富的任務時,使用監督學習方法,深度學習模型可以取得很好的性能。對于一些特定的任務,如具有大量并行數據的語言對(如英語和漢語)的MT,神經模型可以很好地完成,有時在共享任務中實現人的平等。然而,在許多NLP任務中,很難獲得大量的標記數據。這類任務通常被稱為低資源任務,包括對稀有語言的情緒分析MT。利用未標記數據對少量標記數據訓練的模型進行增強,可以采用半監督學習方法。在沒有任何標記數據的情況下,可以利用無監督學習方法來學習NLP模型。利用未標記數據的另一種方法是對模型進行預訓練,通過遷移學習將這些模型轉移到特定的任務中。除了利用任務內標記的數據,其他任務的標記數據也可以在多任務學習的幫助下使用。如果沒有可用的數據,可以引入人力資源來使用主動學習創建學習數據,以便在給定的預算下最大化模型的性能。
推理
神經方法在許多NLP任務中取得了良好的進展,如MT和MRC。然而,他們仍然有一些未解決的問題。例如,大多數神經網絡模型的行為就像一個黑盒子,它從來沒有告訴我們一個系統是如何以及為什么會以這種方式解決了一個問題。此外,對于QA和對話系統這樣的任務,僅僅了解輸入話語的字面意義往往是不夠的。為了生成正確的響應,可能還需要外部和/或上下文知識。為了建立這種可解釋的和知識驅動的系統,推理是必要的。在本文中,我們將推理定義為一種機制,它可以通過使用推理技術操作現有知識來生成未見問題的答案。根據這一定義,推理系統(圖11)應該包括兩個部分:
知識,如知識圖、常識、規則、從原始文本中提取的斷言等;
一個推理引擎,通過操作現有的知識來生成問題的答案。
接下來,我們用兩個例子來說明為什么推理對于NLP任務是重要的。
第一個例子是基于知識的QA任務。“比爾·蓋茨的妻子是什么時候出生的?”, QA模型必須將其解析為生成答案的邏輯形式:
其中需要基于知識圖譜的推理從這個問題開始,可以附加新的問題,例如:“他/她的工作是什么?”,為了回答這種上下文感知的問題,共指解析決定了他/她指的是誰。這也是一個推理的過程,需要一個常識,他只能指男人,她只能指女人。
第二個例子是一個對話任務。例如,如果一個用戶說我現在很餓,更合適的回答應該是:讓我向您推薦一些不錯的餐館,而不是讓我推薦一些好電影給你。這也需要推理,因為對話系統應該知道饑餓會導致尋找餐館而不是看電影的行為。在本節的剩余部分中,我們將首先介紹兩種類型的知識:知識圖譜和常識。接下來,我們將描述典型的推理方法,這些方法在自然語言處理領域已經或正在研究。
主題: Modern Deep Learning Techniques Applied to Natural Language Processing
簡要介紹: 該文章概述了基于深度學習的自然語言處理(NLP)的最新趨勢。 它涵蓋了深度學習模型(例如遞歸神經網絡(RNN),卷積神經網絡(CNN)和強化學習)背后的理論描述和實現細節,用于解決各種NLP任務和應用。 概述還包含NLP任務(例如機器翻譯,問題解答和對話系統)的最新結果摘要。
自然語言處理(NLP)幫助智能機器更好地理解人類語言,實現基于語言的人機交流。計算能力的最新發展和大量語言數據的出現,增加了使用數據驅動方法自動進行語義分析的需求。由于深度學習方法在計算機視覺、自動語音識別,特別是NLP等領域的應用取得了顯著的進步,數據驅動策略的應用已經非常普遍。本調查對得益于深度學習的NLP的不同方面和應用進行了分類和討論。它涵蓋了核心的NLP任務和應用,并描述了深度學習方法和模型如何推進這些領域。我們進一步分析和比較不同的方法和最先進的模型。
題目: Natural Language Processing Advancements By Deep Learning: A Survey
摘要: 自然語言處理(NLP)幫助智能機器更好地理解人類語言,實現基于語言的人機交流。算力的最新發展和語言大數據的出現,增加了使用數據驅動方法自動進行語義分析的需求。由于深度學習方法在計算機視覺、自動語音識別,特別是NLP等領域的應用取得了顯著的進步,數據驅動策略的應用已經非常普遍。本綜述對得益于深度學習的NLP的不同方面和應用進行了分類和討論。它涵蓋了核心的NLP任務和應用,并描述了深度學習方法和模型如何推進這些領域。我們并進一步分析和比較不同的方法和最先進的模型。
題目: Self-supervised Visual Feature Learning with Deep Neural Networks: A Survey
摘要: 為了在計算機視覺應用中從圖像或視頻中獲得更好的視覺特征學習性能,通常需要大規模的標記數據來訓練深度神經網絡。為了避免大規模數據集收集和標注的大量開銷,作為無監督學習方法的一個子集,提出了一種自監督學習方法,在不使用任何人類標注的標簽的情況下,從大規模無標記數據中學習圖像和視頻的一般特征。本文對基于深度學習的自監督一般視覺特征學習方法進行了廣泛的綜述。首先,描述了該領域的動機、通用管道和術語。在此基礎上,總結了常用的用于自監督學習的深度神經網絡體系結構。接下來,回顧了自監督學習方法的模式和評價指標,然后介紹了常用的圖像和視頻數據集以及現有的自監督視覺特征學習方法。最后,總結和討論了基于基準數據集的定量性能比較方法在圖像和視頻特征學習中的應用。最后,對本文的研究進行了總結,并提出了一套具有發展前景的自監督視覺特征學習方法。
簡介: 人們在閱讀文章時,可以識別關鍵思想,作出總結,并建立文章中的聯系以及對其他需要理解的內容等方面都做得很出色。深度學習的最新進展使計算機系統可以實現類似的功能。用于自然語言處理的深度學習可教您將深度學習方法應用于自然語言處理(NLP),以有效地解釋和使用文章。在這本書中,NLP專家Stephan Raaijmakers提煉了他對這個快速發展的領域中最新技術發展的研究。通過詳細的說明和豐富的代碼示例,您將探索最具挑戰性的NLP問題,并學習如何通過深度學習解決它們!
自然語言處理是教計算機解釋和處理人類語言的科學。最近,隨著深度學習的應用,NLP技術已躍升至令人興奮的新水平。這些突破包括模式識別,從上下文中進行推斷以及確定情感語調,從根本上改善了現代日常便利性,例如網絡搜索,以及與語音助手的交互。他們也在改變商業世界!
目錄:
1深度NLP學習
2 深度學習和語言:基礎知識
3文字嵌入
4文字相似度
5序列NLP和記憶
6NLP的6種情景記憶
7注意力機制
8多任務學習
附錄
附錄A:NLP
附錄B:矩陣代數
附錄C:超參數估計和分類器性能評估