天天看點

NLP 1st (導入)

Natural Language Processing NLP

自然語言處理

- 概念了解

将NLP的概念分為 自然語言 + 處理 兩部分加以了解:

自然語言 區分于計算機語言,是人類發展過程中形成的一種資訊交流的方式,包括口語及書面語,反映了人類的思維,都是以自然語言的形式表達。現在世界上所有的語種語言,都屬于自然語言,包括漢語、英語、法語等。

處理 如果隻是人工處理的話,那原本就有專門的語言學來研究,也沒必要特地強調“自然”。是以,這個“處理”必須是計算機處理的。但計算機畢竟不是人,無法像人一樣處理文本,需要有自己的處理方式。

是以自然語言處理,簡單來說即是計算機接受使用者自然語言形式的輸入,并在内部通過人類所定義的算法進行加工、計算等系列操作,以模拟人類對自然語言的了解,并傳回使用者所期望的結果。正如機械解放人類的雙手一樣,自然語言處理的目的在于用計算機代替人工來處理大規模的自然語言資訊。它是人工智能、計算機科學、資訊工程的交叉領域,涉及統計學、語言學等的知識。由于語言是人類思維的證明,故自然語言處理是人工智能的最高境界,被譽為“人工智能皇冠上的明珠”。

- 發展曆程

1948年,香農提出資訊熵的概念。此時尚未有NLP,但由于熵也是NLP的基石之一,在此也算作是NLP的發展曆程。

按照維基百科的說法,NLP發源于1950年。圖靈于該年提出“圖靈測試”,用以檢驗計算機是否真正擁有智能。

NLP規則時代

1950-1970年,模拟人類學習語言的習慣,以文法規則為主流。除了參照喬姆斯基文法規則定義的上下文無關文法規則外,NLP領域幾乎毫無建樹。

NLP統計時代

20世紀70年代開始統計學派盛行,NLP轉向統計方法,此時的核心是以具有馬爾科夫性質的模型(包括語言模型,隐馬爾可夫模型等)。

2001年,神經語言模型,将神經網絡和語言模型相結合,應該是曆史上第一次用神經網絡得到詞嵌入矩陣,是後來所有神經網絡詞嵌入技術的實踐基礎。也證明了神經網絡模組化語言模型的可能性。

2001年,條件随機場CRF,從提出開始就一直是序列标注問題的利器,即便是深度學習的現在也常加在神經網絡的上面,用以修正輸出序列。

2003年,LDA模型提出,機率圖模型大放異彩,NLP從此進入“主題”時代。Topic模型變種極多,參數模型LDA,非參數模型HDP,有監督的LabelLDA,PLDA等。

2008年,分布式假設理論提出,為詞嵌入技術的理論基礎。

在統計時代,NLP專注于資料本身的分布,如何從文本的分布中設計更多更好的特征模式是這時期的主流。在這期間,還有其他許多經典的NLP傳統算法誕生,包括tfidf、BM25、PageRank、LSI、向量空間與餘弦距離等。值得一提的是,在20世紀80、90年代,卷積神經網絡、循環神經網絡等就已經被提出,但受限于計算能力,NLP的神經網絡方向不适于部署訓練,多停留于理論階段。

由谷歌、微軟、IBM,弗裡德裡克·賈裡尼克及其上司的IBM華生實驗室于20世紀70年代将語音識别率從70%提升到90%。 1988年,IBM的彼得·布朗提出了基于統計的機器翻譯方法。 2005年,Google機器翻譯打敗基于規則的Sys Tran。

NLP深度時代

2013年,word2vec提出,NLP的裡程碑式技術。

2013年,CNNs/RNNs/Recursive NN,随着算力的發展,神經網絡可以越做越深,之前受限的神經網絡不再停留在理論階段。在圖像領域證明過實力後,Text CNN問世;同時,RNNs也開始崛起。在如今的NLP技術上,一般都能看見CNN/LSTM的影子。

本世紀算力的提升,使神經網絡的計算不再受限。有了深度神經網絡,加上嵌入技術,人們發現雖然神經網絡是個黑盒子,但能省去好多設計特征的精力。至此,NLP深度學習時代開啟。

2014年,seq2seq提出,在機器翻譯領域,神經網絡碾壓基于統計的SMT模型。

2015年,attention提出,可以說是NLP另一裡程碑式的存在。帶attention的seq2seq,碾壓上一年的原始seq2seq。記得好像17年年初看過一張圖,調侃當時學術界都是attention的現象,也證明了attention神一般的效果。

2017年末,Transformer提出。似乎是為了應對Facebook純用CNN來做seq2seq的“挑釁”,google就純用attention,并發表著名的《Attention is All You Need》。初看時以為其工程意義大于學術意義,直到BERT的提出才知道自己還是too young。

2018年末,BERT提出,橫掃11項NLP任務,奠定了預訓練模型方法的地位,NLP又一裡程碑誕生。光就SQuAD2.0上前6名都用了BERT技術就知道BERT的可怕。

? BERT ? ?

同時也有?

深度學習時代,神經網絡能夠自動從資料中挖掘特征,人們從複雜的特征中脫離出來,得以更專注于模型算法本身的創新以及理論的突破。并且深度學習從一開始的機器翻譯領域逐漸擴散到NLP其他領域,傳統的經典算法地位大不如前。但神經網絡似乎一直是個黑箱,可解釋性一直是個痛點,且由于其複雜度更高,在工業界經典算法似乎還是占據主流。

具體熟知事件:AlphaGo先後戰勝李世石、柯潔等,掀起人工智能熱潮。深度學習、人工神經網絡成為熱詞。領域:語音識别、圖像識别、機器翻譯、自動駕駛、智能家居。

- 基本分類

NLP裡細分領域和技術實在太多,根據NLP的終極目标,大緻可以分為 自然語言了解(NLU) 和 自然語言生成(NLG) 兩種。

NLU側重于如何了解文本,包括文本分類、命名實體識别、指代消歧、句法分析、機器閱讀了解等。

NLG則側重于了解文本後如何生成自然文本,包括自動摘要、機器翻譯、問答系統、對話機器人等。兩者間不存在有明顯的界限,如機器閱讀了解實際屬于問答系統的一個子領域。

大緻來說,NLP可以分為以下幾個領域:

(1) 機器翻譯

跨語種翻譯,該領域目前已較為成熟。目前谷歌翻譯已用上機翻技術。

(2) 自動文摘

從給定的文本中,聚焦到最核心的部分,自動生成摘要。

該研究内容 ? 看這篇小文章 ?

(3) 資訊檢索

對大規模的文檔進行索引。可簡單對文檔中的詞彙,賦之以不同的權重來建立索引,也可建立更加深層的索引。在查詢的時候,對輸入的查詢表達式比如一個檢索詞或者一個句子進行分析,然後在索引裡面查找比對的候選文檔,再根據一個排序機制把候選文檔排序,最後輸出排序得分最高的文檔。

(4) 文檔分類

本質上就是個分類問題。目前也較為成熟,難點在于多标簽分類(即一個文本對應多個标簽,把這些标簽全部找到)以及細粒度分類(二極情感分類精度很高,即好中差三類,而五級情感分類精度仍然較低,即好、較好、中、較差、差)

(5) 問答系統

接受使用者以自然語言表達的問題,并傳回以自然語言表達的回答。常見形式為檢索式、抽取式和生成式三種。近年來互動式也逐漸受到關注。典型應用有智能客服。

對話系統

與問答系統有許多相通之處,差別在于問答系統旨在直接給出精準回答,回答是否口語化不在主要考慮範圍内;而對話系統旨在以口語化的自然語言對話的方式解決使用者問題。對話系統目前分閑聊式和任務導向型。前者主要應用有siri、小冰等;後者主要應用有車載聊天機器人。(對話系統和問答系統應該是最接近NLP終極目标的領域)

(6) 資訊過濾

通過計算機系統自動識别和過濾符合特定條件的文檔資訊。通常指網絡有害資訊的自動識别和過濾,主要用于資訊安全和防護,網絡内容管理等。

(7) 資訊抽取

從不規則文本中抽取想要的資訊,包括命名實體識别、關系抽取、事件抽取等。應用極廣。

(8) 文本挖掘

包括文本聚類、分類、情感分析以及對挖掘的資訊和知識的可視化、互動式的表達界面。目前主流的技術都是基于統計機器學習的。

(9) 輿情分析

是指收集和處理海量資訊,自動化地對網絡輿情進行分析,以實作及時應對網絡輿情的目的。

(10) 隐喻計算

研究自然語言語句或篇章中隐喻修辭的了解方法。

(11) 文字編輯和自動校對

對文字拼寫、用詞,甚至文法、文檔格式等進行自動檢查、校對和編排。

(12) 作文自動評分

對作文品質和寫作水準進行自動評價和打分。

(13) 光讀字元識别

通過計算機系統對印刷體或手寫體等文字進行自動識别,将其轉換成計算機可以處理的電子文本。

(14) 語音識别

語音識别是将輸入計算機的語音符号識别轉換成書面語表示。語音生成又稱文語轉換、語音合成,它是指将書面文本自動轉換成對應的語音表征。

該研究内容 ? 看這篇小文章 ?

(15) 文語轉換

文語轉換又稱語音生成、語音合成,它是指将書面文本自動轉換成對應的語音表征。

(16) 說換人識别/認證/驗證

對一說話人的言語樣本做聲學分析,依此推斷(确定或驗證)說話人的身份。

(17) 序列标注

給文本中的每一個字/詞打上相應的标簽。是大多數NLP底層技術的核心,如分詞、詞性标注、關鍵詞抽取、命名實體識别、語義角色标注等等。曾是HMM、CRF的天下,近年來逐漸穩定為BiLSTM-CRF體系。

該研究内容 ? 看這篇小文章 ?(序列标注應該就是資料标記吧?)

(18) 知識圖譜

從規則或不規則的文本中提取結構化的資訊,并以可視化的形式将實體間以何種方式聯系表現出來。圖譜本身不具有應用意義,建立在圖譜基礎上的知識檢索、知識推理、知識發現才是知識圖譜的研究方向。

(19) 文本聚類

一個古老的領域,但現在仍未研究透徹。從大規模文本資料中自動發現規律。核心在于如何表示文本以及如何度量文本之間的距離。

- 基本技術

(1) 分詞

基本算是所有NLP任務中最底層的技術。不論解決什麼問題,分詞永遠是第一步。

(2) 詞性标注

判斷文本中的詞的詞性(名詞、動詞、形容詞等等),一般作為額外特征使用。

(3) 句法分析

分為句法結構分析和依存句法分析兩種。

(4) 詞幹提取

從單詞各種字首字尾變化、時态變化等變化中還原詞幹,常見于英文文本處理。

(5) 命名實體識别

識别并抽取文本中的實體,一般采用BIO形式。

(6) 指代消歧

文本中的代詞,如“他”“這個”等,還原成其所指實體。

(7) 關鍵詞抽取

提取文本中的關鍵詞,用以表征文本或下遊應用。

(8) 詞向量與詞嵌入

把單詞映射到低維空間中,并保持單詞間互相關系不變。是NLP深度學習技術的基礎。

(9) 文本生成

給定特定的文本輸入,生成所需要的文本,主要應用于文本摘要、對話系統、機器翻譯、問答系統等領域。

- 常用算法

tfidf、BM25、TextRank、HMM、CRF、LSI、主題模型、word2vec、GloVe、LSTM/GRU、CNN、seq2seq、Attention等

- 研究難點

仍有很多制約NLP發展的因素,這些因素構成了NLP的難點。而且要命的是,大多數是基礎技術的難點。

中文分詞:專門針對中文,衆所周知漢語博大精深,老外學漢語尚且虐心,更别提計算機了。同一個任務,同一個模型在英文語料的表現上一般要比中文語料好。無論是基于統計的還是基于深度學習的NLP方法,分詞都是第一步。分詞表現不好的話,後面的模型最多也隻能盡力糾偏。

詞義消歧:很多單詞不隻有一個意思,但這個在今年BERT推出後應該不成問題,可以通過上下文學到不同的意思。另一個較難的是指代消歧,即句子中的指代詞還原,如“小明受到了老師的表揚,他很高興”,這個“他”是指“小明”還是指“老師”。

二義性:有些句子,往往有多種了解方式,其中以兩種了解方式的最為常見,稱二義性。

OOV問題:随着詞嵌入技術大熱後,使用預訓練的詞向量似乎成為了一個主流。但有個問題就是,資料中的詞很可能不在預訓練好的詞表裡面,此即OOV(out of vocabulary)。主流方法是要麼當做UNK處理,要麼生成随機向量或零向量處理,當然都存在一定的弊端。

文本相似度計算:是的你沒有看錯。文本相似度計算依舊算是難點之一。不過與其說難點,主要是至今沒有一種方法能夠從理論證明。主流認可的是用餘弦相似度。但看論文就會發現,除了餘弦相似度外,有人用歐式距離,有人用曼哈頓距離,有人直接向量內積,且效果還都不錯。

文本生成的評價名額:文本生成的評價名額多用BLEU或者ROUGE,但尴尬的是,這兩個名額都是基于n-gram的,也就是說會判斷生成的句子與标簽句子詞粒度上的相似度。然而由于自然語言的特性(同一個意思可以有多種不同的表達),會出現生成的句子盡管被人為判定有意義,在BLEU或ROUGE上仍可能會得到很低的分數的情況。這兩個名額用在機翻領域倒是沒多大問題(本身就是機翻的評價名額),但用在文本摘要和對話生成就明顯不合适了。

?一些觀點

- 社會影響

由于自然語言作為人類社會資訊的載體,使得NLP不隻是計算機科學的專屬。在其他領域,同樣存在着海量的文本,NLP也成為了重要支援技術:

在社會科學領域,關系網絡挖掘、社交媒體計算、人文計算等,國内一些著名的大學實驗室,如清華的自然語言處理與社會人文計算實驗室、哈工大的社會計算與資訊檢索研究中心均冠有社會計算的關鍵詞。

在金融領域,單A股就有300多家上市公司,這些公司每年都有年報、半年報、一季報、三季報等等,加上瞬息萬變的金融新聞,金融界的文本數量是海量的。金融領域的NLP公司舉例:李紀為大佬的香侬科技。

在法律領域,中國裁判文書網上就有幾千萬公開的裁判文書,此外還有豐富的流程資料、文獻資料、法律條文等,且文本相對規範。該領域已經有不少公司在做,如塗存超大佬的幂律智能。

在醫療健康領域,除了影像資訊,還有大量的體檢資料、臨床資料、診斷報告等,同樣也是NLP大展身手的地方。該領域的NLP公司:碳雲智能。

在教育領域,智能閱卷、機器閱讀了解等都可以運用NLP技術。國内這方面目前領先者應該是科大訊飛和猿輔導。

- 終極目标

從計算機誕生,NLP這個概念被提出伊始,人們便希望計算機能夠了解人類的語言,于是便有了圖靈測試。

盡管google I/O大會上的Google Assistant宣稱已經通過了圖靈測試,但離真正了解人類語言仍有很長的距離,讓計算機能夠确切了解人類的語言,并自然地與人進行互動是NLP的最終目标,也是大多數NLPer的最高信仰。為此各路大佬揮舞手中的代碼不斷挖坑填坑,攻克一個又一個難題,推動NLP一直往前發展。

- 附

對于如何在 NLP 領域内實戰還是有點懵?,附上這兩張思維導圖幫助了解(撈自知乎兩位道友)

↓ 可參考的詳細流程

NLP 1st (導入)

↓ 看了之後好像更不了解了?,應該是涉及聊天機器人這一具體項目的内容,感謝辛勤總結!

NLP 1st (導入)

相關文章

部落格中的文章連結彙總如下

有關深度時代BERT:BERT時代與後時代的NLP?、不隻有BERT!盤點2018年NLP令人激動的10大想法?

關于自動文摘: AI給AI論文寫了個摘要?

有關語音識别:語音識别技術簡史?

有關序列标注:NLP入門第一步:6種獨特的資料标記方式?

有關難題:NLP難出獨角獸??

參考連結

自然語言處理專欄(圖一來源處)

自然語言處理話題的簡介

? END