0
雷鋒網(wǎng) AI 研習社按:伴隨著近幾年的機器學習的熱潮,自然語言處理成為了目前炙手可熱的研究方向,同時也是 Google、Microsoft、Facebook、Baidu、Alibaba 等各大公司投入巨額資金和高端人力努力爭奪的下一個互聯(lián)網(wǎng)流量入口(智能助手、智能音箱等)。
近日,雷鋒網(wǎng)研習社公開課邀請了孔曉泉來介紹自然語言處理技術的一些基本知識、行業(yè)的發(fā)展現(xiàn)狀和基于深度學習的通用的 NLP 處理流程。本次分享將幫助想要學習和從事 NLP 的學生、工程師以及愛好者建立一個基本的 NLP 的知識框架,熟悉基礎的技術方案,了解通用的深度學習處理流程。視頻回放地址:http://www.mooc.ai/open/course/495
孔曉泉,現(xiàn)就職于某 BAT 互聯(lián)網(wǎng)公司,在公司內(nèi)從事自然語言處理(NLP)相關項目的研究和開發(fā),工作內(nèi)容直接向公司的 VP(Vice President / 副總裁)報告,Language Understanding Service (LUS) 系統(tǒng)的設計者和負責人,多個重量級開源 NLP 項目(如 Spacy、RASA NLU 等)的 Contributor。
分享主題:自然語言處理(NLP)應用和前沿技術回顧
分享提綱
簡單介紹和應用舉例
經(jīng)典的實現(xiàn)方法
基于深度學習的方案
DNN-based NLP 常用技術
回顧和總結
分享內(nèi)容:
總的來說,自然語言處理技術相當復雜,在一個小時內(nèi)將其講清楚也不太現(xiàn)實。因此,這節(jié)課主要想給大家留下兩方面的印象:一是使大家對 NLP 產(chǎn)生興趣和對其大體了解,并列舉一些 NLP 在生活中得到實際應用的例子。第二,從非常抽象的角度進行講解,神經(jīng)網(wǎng)絡時代 NLP 的一些宏觀的處理方法。
下面進行簡答介紹和應用舉例,下圖是維基百科對自然語言處理的解釋:
目前來看,自然語言生成距離實際應用還比較遙遠,除了文字轉語音技術(Text-To-Speech)已經(jīng)比較成熟之外,其他還無法實際應用,但目前的自然語言理解已經(jīng)相對實用,包括創(chuàng)業(yè)公司在內(nèi)的各大公司在此領域的研究成果也已相當不俗,可以實現(xiàn)工業(yè)化使用。因此,本節(jié)公開課將重點介紹自然語言理解。
自然語言理解(簡稱 NLU),同樣來看維基百科的解釋:
換一個說法來講,自然語言主要的輸入是人類的語言(語音,文字均可),輸出是計算機可以理解的一些高維度數(shù)據(jù)。
關于自然語言理解能做什么?我將從人機交談,機器翻譯和自動摘要這三個方面來講解自然語言理解的具體應用。
人機交談
人機交談存在語音和文字兩種方式,一般情況下,文字可以直接處理,如果是語音,通常情況下需要將語音轉換成文字(Automatic Speech Recognition)。
交談根據(jù)目的可分為兩種,一種是閑聊,另外一種是任務型聊天。
閑聊,不存在任何目的,可分為陪伴機器人和娛樂機器人,陪伴機器人主要用來陪伴一些比較孤獨的老人和幫助小朋友練習簡單的英語。娛樂機器人大家就比較熟悉了,例如微軟小冰。任務型人機交談具有明確的任務,屬于垂直領域。如訂機票機器人和客服機器人,客服機器人大家接觸最多,客服機器人可依據(jù)媒體的不同分為兩種,一種是基于電話語音,解答用戶的需求。另外一種基于文本,更常見,在淘寶,京東等各大電商上,先接待你的一般都為客服機器人,客服機器人可解答物流,商品信息等這種簡單而又大量重復問題,以節(jié)約成本。
一般情況下,交談輸出的為文字,但如果終端為智能音響或者在開車這種并不適合文字的場景下,就會產(chǎn)生文字轉語音的需求。
這里簡單介紹一下圖靈測試,圖靈測試是一個衡量機器智能達到人類智能的一個重要測試,測試過程這樣進行:將人放在一個隔離的房間里,通過電腦終端和另外一個房間的人類或者電腦進行通訊(通過語音或者文字),如果人無法區(qū)分對面房間里是人還是機器,這時就可以判定智能機器人通過了圖靈測試,也間接說明了機器具備人一樣的智能。因此,將圖靈測試作為評判機器到達人類智能的一個重要測試。
機器翻譯
機器翻譯最常見的是文本翻譯,中日文,中英文,還有中文到克林貢語(人造語言)。
除了傳統(tǒng)的文本翻譯之外,還有比較特殊的手語翻譯和唇語翻譯,下圖為華盛頓大學的學生作品:將手語翻譯成英語的翻譯手套獲得了 MIT 的學生創(chuàng)新大獎。
唇語翻譯
日常生活中存在一些語音不可用的場景,如噪音較大的馬路上,而且攝像頭未配備麥克風,這時,如果配備唇語識別技術,可以識別重要客戶的重要信息,為公共安全提供更加有效的支持,據(jù)我所知,搜狗也推出了中文的唇語識別技術。
在視頻介紹中可得治,Lipnet 能達到 93% 的驚人識別率,即使是經(jīng)驗豐富的人類唇語識別者的平均識別率也只有 52%。
自動摘要
濃縮式摘要,指將文章內(nèi)容壓縮,精簡成更加短小的文本內(nèi)容(或文本片段),大家眼熟的是無差別的總結單個文本內(nèi)容,類似文章的摘要。另外一種更加有意思,即增量的總結多篇文章內(nèi)容,比如當我閱讀一篇文章,了解了某一個事物的認知,當讀第二篇關于該事物的文章時,我的認知加強了(或更新了),到第三天,認知得到不斷加強。在這方面,有一家創(chuàng)業(yè)公司做得相當不錯,他們針對主題為「蘋果汽車」的多篇文章進行了增量的總結。
演示視頻中,對「蘋果汽車」的多篇文章進行了自動摘要,第一篇文章出來后,對其進行了摘要,第二篇文章后,它又在摘要的基礎上進行了改寫,第三篇出來后,不斷進行改寫,第四篇不斷地加強等。
除了濃縮式摘要,還有基于查詢的摘要。
基于查詢的摘要,即基于用戶的查詢?nèi)フ页鱿嚓P的文本,就像做閱讀理解,讀了一篇文章,題目要求找出能回答該問題的句子,這就類似基于查詢的摘要。另外,谷歌也有一個「精選摘要」特性,上圖中谷歌針對我搜索的內(nèi)容將它認為是答案的部分進行了高亮操作。
上面,我們講解了自然語言的定義和應用場景,下面我們來介紹下自然語言的經(jīng)典實現(xiàn)方法。
經(jīng)典的實現(xiàn)方法
其中有一些容易理解,一些難以理解,我會逐個進行介紹,首先是分詞。
在處理復雜的任務之前必須完成分詞。英語除了依據(jù)空格進行分詞外,還會基于規(guī)則,例如 do 和 n't 的分開。中文分詞對外國人或者機器來說相當困難,例如圖中這個典型的「我一把把把把住了」。
詞形還原
詞性還原并不適用于中文。上圖介紹了一些經(jīng)典的例子,其中,相同的顏色表示相同的詞對應的關系。
詞性標注
詞性標注,是指給句子里的每一個詞標注一個詞性類別(名詞,動詞,形容詞或其他類型)。傳統(tǒng)上,英語有八大詞類,名詞,代詞,形容詞,動詞,副詞,介詞,連詞和感嘆詞。不同分類方法,分類也不同,有一些分類方法比較細致,細分一點。
看下面這個例子:
「王小明」,「北京」,「清華」的標記為 NR,指代專有名詞,「在」標記為 P,指代介詞,「的」標記為 DEG,指代連接詞,「大學」標記為 NN,指代普通名詞,「讀書」標記為 VV,指代其他動詞,「。」標記為 PU,指代標點符號。
依存語法
還是來看「王小明在北京的清華大學讀書?!惯@個例句,詞性標注的標記還是一樣,這里的依存關系標記體系的使用標準為 Universal Dependencies (http://universaldependencies.org/),可以在上圖中發(fā)現(xiàn)有個比較特殊的地方,就是「讀書」只有向外發(fā)出,而沒有指向它的箭頭,「讀書」是句子里唯一的那個根,一個句子只有一個根,所有句子關系都是直接或間接由這個根產(chǎn)生的。上圖示例中,「讀書」和「王小明」是有關系的,「王小明」是「讀書」的名詞性主語,「大學」是「讀書」的名詞性修飾語,「清華」和「大學」是一種復合的關系,「清華」和「大學」就構成一個復合短語,「大學」是「北京」的名詞性修飾語,除此之外,「在」和「的」都是賓格的標記,表示所有所屬關系。
命名實體識別
在該例子中可以看到,「王小明」是一個人名,「北京」是一個省的名字,「清華大學」是一個組織。由此可知,命名實體識別的功能(職責)就是,把句子中所屬的實體找出來。
關于命名實體識別的詳細解讀可參考此前「UT Austin 博士生沈彥堯:基于深度主動學習的命名實體識別」的分享總結。
到這里,就講完了基于傳統(tǒng)的方案,下面來講解基于深度學習的方案。
基于深度學習的方案
在深度學習還未爆發(fā)之前,自然語言處理一直發(fā)展緩慢,而且距離具體的實用也很遙遠,原因可參考前面的傳統(tǒng)方法講解,傳統(tǒng)方法只是基于句子的結構,并沒有將句子的意思用一種計算機理解的方案表現(xiàn)出來,因此自然語言處發(fā)展緩慢。直到最近得益于深度學習的爆發(fā),自然語言得到了快速發(fā)展。
再加上其實用性較高,許多巨頭公司也加大了對自然語言領域的投入。
那么,為什么說神經(jīng)網(wǎng)絡對自然語言產(chǎn)生了很大影響?
神經(jīng)網(wǎng)絡具有的高度靈活性和端到端的屬性,成功的讓自然語言處理更加易于使用。
端到端的方案
深度學習有一個優(yōu)點:端到端的方案,該方案的輸入是原始的輸入(原始的文字或稍經(jīng)過加工),輸出是一些人類可以理解的,而非中間結果。端到端是實用的最重要的一點,它簡化了大量人工特征工程,讓自然語言處理變得相當實用。
下面來介紹主流的自然語言處理流程:
詞嵌入
借助下面單詞「King」在三維空間中的嵌入位置演示視頻來了解詞嵌入在實際中是如何應用的。
編碼,是指通過 RNN 技術(循環(huán)神經(jīng)網(wǎng)絡)將詞語進一步編碼成一個考慮了上下文和語義的向量。剛才講解的詞嵌入,是把詞轉化為向量,但存在這些詞并沒有考慮到上下文,在句子中并不知道上下文是什么的問題,所以在編碼過程中我們就要充分考量這些詞的上下文,對其重新編碼,編碼成一個具有語義的向量,一般情況下,會更加短小一點。
關于接下來的一步,我們來看下 Attention 機制。
Attention 機制類似人的眼睛,一般情況下,當你看到一張圖時,你要先大體掃描下,找到感興趣的區(qū)域,重點關注感興趣的區(qū)域部分,也就是權重一般放在你關系的點上,減少對其他區(qū)域的關注。
借助下面一張圖來了解 Attention 機制:
首先你會大體掃描下這張圖,隨后你會將重點放在這個球上面(關心這個球是個什么球),這和剛才講解的 Attention 機制運行的方案是一致的,我們會重點關注這個球(球有什么特征),但并不會關心草地(例如草的種類是什么),這就是 Attention 機制。
還可以借助來自斯坦福的 Attention 機制動畫演示加深理解,針對演示動畫的詳細講解可查看回放視頻。
解碼
解碼:需要實際將向量轉換成目標對象(詞語或者向量),在翻譯過程中就是詞語,標量用于情感分析:積極,消極,或預測評分,這些都需要解碼。
后面來介紹深度神經(jīng)網(wǎng)絡時代,NLP 常用的技術,剛才我們也提到了一些技術,現(xiàn)在我們更加深入地來了解。
其中,CNN 雖然主要用于圖像,但目前圖像和語音技術也逐漸出現(xiàn)了融合統(tǒng)一。
第一個部分,介紹 Embedding:word2vec
Embedding 思想:一個詞在一個句子中的意思,應該能通過句子周邊的詞進行推測,類似完形填空和成語中間去掉一個詞,也就是可以通過周邊詞來預測中心詞。word2vec,將中心詞周邊兩三個詞作為它的一個窗口大小,窗口內(nèi)的非中心詞就作為周邊詞,思想是,在一個句子中,我們可以通過周邊詞來預測中心詞,反之亦然,借此構建一個模型,中心詞和周邊詞語距離近,中心詞和非周邊詞距離遠,通過這個簡單想法就可以實現(xiàn) word2vec。
再次借助句例來了解下 word2vec 大體上是如何運作的:
還是選擇「王小明在北京的清華大學讀書」這個例句,中心詞為「在」,用綠色標注,「王小明」和「北京」分別是它的周邊詞,窗口內(nèi)大小是 1,我們通過周邊詞來預測中心詞,就可以構建一個詞語對(王小明,在)(北京,在),然后將窗口右移,得到了一個新的詞語對(在,北京)(的,北京),按照這個方式不斷右移,直到句子結束,在該過程中得到一些詞語對,通過這種形式來訓練 word2vec。
循環(huán)神經(jīng)網(wǎng)絡 RNN
一般的神經(jīng)網(wǎng)絡很難處理序列數(shù)據(jù),因為序列數(shù)據(jù)含有上下文,而且長度也不一定。循環(huán)神經(jīng)網(wǎng)絡有個特點,輸出作為下一個相同結構但不同實例的網(wǎng)絡結構的輸入,如上圖。
樸素的循環(huán)神經(jīng)網(wǎng)絡在實現(xiàn)的時候,存在一個問題,它對距離近的詞記憶較好,對于距離遠的詞記憶模糊(由于網(wǎng)絡長,權重隨之變?。?,所以這種比較原始的 RNN 用得并不多。
在實際中,常使用 RNN 的變體 LSTM,即長短期記憶 (Long Short Term Memory),在 LSTM 中,如下圖,上面那條是長期記憶,下面那條是短期記憶。
LSTM 的優(yōu)勢在于,我們可以使用 RNN,同時也能避免其長期失憶的問題。當然,LSTM 也存在一些需要改進的地方,大家可自行參考相關資料。
卷積神經(jīng)網(wǎng)絡 CNN
CNN 在圖像中應用較多,CNN 與前面介紹的一維的滑窗類似,不同的是 CNN 為二維。CNN 的基本思想為,滑窗是一個個小的檢測器,通過檢測得到數(shù)據(jù),以此構建低級的特性,在往后傳遞的時候不斷地使用一些高級的特性,最后這些高級特性用于生成等目的。
此處也使用了同樣來自斯坦福演示視頻對 CNN 進行了介紹,左邊藍色部分指一個個的圖像,中間紅色區(qū)域代表 filter(檢測窗口),右邊的綠色區(qū)域為加權得到的值,具體講解內(nèi)容大家可以回放課程進行查看。
以上就是本期嘉賓的全部分享內(nèi)容,本次講師孔曉泉也在公開課視頻的最后附有聯(lián)系方式,大家有問題想要交流的可以前往查看。更多公開課視頻請到雷鋒網(wǎng) AI 慕課學院觀看。關注微信公眾號:AI 研習社,可獲取最新公開課直播時間預告。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉載。詳情見轉載須知。