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