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