一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深度學(xué)習(xí)在NLP中的發(fā)展和應(yīng)用

電子工程師 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-07-24 10:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

近年來(lái),深度學(xué)習(xí)方法極大的推動(dòng)了自然語(yǔ)言處理領(lǐng)域的發(fā)展。幾乎在所有的 NLP 任務(wù)上我們都能看到深度學(xué)習(xí)技術(shù)的應(yīng)用,并且在很多的任務(wù)上,深度學(xué)習(xí)方法的表現(xiàn)大大超過(guò)了傳統(tǒng)方法??梢哉f(shuō),深度學(xué)習(xí)方法給 NLP 帶來(lái)了一場(chǎng)重要的變革。

我們近期邀請(qǐng)到了微信模式識(shí)別中心的高級(jí)研究員張金超博士,他畢業(yè)于中國(guó)科學(xué)院計(jì)算技術(shù)研究所,研究方向是自然語(yǔ)言處理、深度學(xué)習(xí),以及對(duì)話系統(tǒng)。

在本次公開(kāi)課上,他全面而具體地講述了深度學(xué)習(xí)在 NLP 中的發(fā)展和應(yīng)用,內(nèi)容主要分為以下四大篇章:

自然語(yǔ)言處理的基本概念和任務(wù)

深度學(xué)習(xí)方法如何來(lái)解決 NLP

對(duì)話和機(jī)器翻譯當(dāng)中的深度學(xué)習(xí)模型和一些云端應(yīng)用,以及使用實(shí)例

對(duì) NLP 感興趣的開(kāi)發(fā)者提供一些技能進(jìn)階的建議

以下為公開(kāi)課內(nèi)容實(shí)錄,人工智能頭條整理。

一、自然語(yǔ)言處理的基本概念和任務(wù)

▌1.基本概念

首先講一下自然語(yǔ)言處理的基本概念和任務(wù),這一塊講解的目的是讓大家對(duì)自然語(yǔ)言處理這個(gè)領(lǐng)域有一個(gè)非??驁D的認(rèn)識(shí),要,就是說(shuō)知道自然語(yǔ)言處理的目標(biāo)是什么,任務(wù)是什么,主要的方法大概有哪些。

Natural Language Processing,縮寫(xiě)是 NLP,主要是指說(shuō)我們借助于計(jì)算技術(shù),來(lái)對(duì)人類(lèi)的自然語(yǔ)言進(jìn)行分析、理解,還有生成的一個(gè)過(guò)程?,F(xiàn)在大家比較常見(jiàn)的兩個(gè)具體應(yīng)用的場(chǎng)景,一個(gè)就是對(duì)話機(jī)器人(Chatbot),比如 AI 音箱之類(lèi)的,大家可以跟它做一些對(duì)話交流。還有然后是機(jī)器翻譯,大家可能平時(shí)會(huì)用用的比較多一些提供翻譯功能的網(wǎng)站,就是我們用一些網(wǎng)頁(yè)提供翻譯的功能,這兩個(gè)就是自然語(yǔ)言處理比較經(jīng)典的任務(wù)。

自然語(yǔ)言處理其實(shí)是語(yǔ)言學(xué)和計(jì)算機(jī)科學(xué)的交叉學(xué)科,語(yǔ)言學(xué)方面主要涉及到詞法、句法、語(yǔ)用、語(yǔ)義等等,語(yǔ)言學(xué)家他們會(huì)語(yǔ)言學(xué)理論去研究。計(jì)算機(jī)科學(xué)方面會(huì)涉及到統(tǒng)計(jì)理論、機(jī)器學(xué)習(xí)、優(yōu)化方法以及數(shù)據(jù)可視化、深度學(xué)習(xí)等,它們兩個(gè)交叉起來(lái)叫做計(jì)算語(yǔ)言學(xué),即也就是說(shuō)以計(jì)算的方法來(lái)處理語(yǔ)言。

關(guān)于自然語(yǔ)言處理任務(wù)的重要性大家可以想一下,一方面語(yǔ)言是人類(lèi)一個(gè)長(zhǎng)期進(jìn)化來(lái)的能力,是人類(lèi)自然的一種交互方式,所以假如機(jī)器能夠非常準(zhǔn)確、全面地理解我們的語(yǔ)義,那么人機(jī)交互的方式肯定會(huì)發(fā)生一個(gè)非常革命性的變化。,但現(xiàn)在自然語(yǔ)言處理能力還沒(méi)有到那種個(gè)程度,我們還需要各種輸入、輸出設(shè)備。另一方面,人類(lèi)的知識(shí)是大規(guī)模的量存儲(chǔ)的形式是文本,包括大量的或者說(shuō)是書(shū)籍,可以把它電子化成數(shù)字化的文本,針對(duì)這些海量的文本做分析處理,從而得到有價(jià)值的信息,這也需要強(qiáng)大的自然語(yǔ)言處理能力的支撐。

▌2.自然語(yǔ)言處理任務(wù)

自然語(yǔ)言處理任務(wù)大概有哪些?我個(gè)人做了一個(gè)總結(jié),基本可以劃分分為五層項(xiàng)任務(wù):,詞法分析、句子分析、語(yǔ)義層面的分析、信息抽取,頂層的任務(wù)。頂層任務(wù)就是直接面向用戶(hù),,能提供如機(jī)器翻譯、對(duì)話機(jī)器人這樣的產(chǎn)品化服務(wù)。

首先是詞法分析層。第一個(gè)是分詞任務(wù),大家知道英文的文本是由空格分隔開(kāi)的單詞序列,但中文沒(méi)有一個(gè)詞和詞之間沒(méi)有清楚的分隔符。對(duì)于,所以說(shuō)“長(zhǎng)江是中華民族的母親河”這個(gè)句子,如果我們拿來(lái)做自然語(yǔ)言處理相關(guān)分析,最小的語(yǔ)義單元其實(shí)就是字,字的歧義性非常高。如果,我們對(duì)它做切分的話,那么“長(zhǎng)江”、“中華民族”,還有“母親”、“河”這種完全可以切出來(lái),就是句子的基本它的語(yǔ)義單元就變成了詞的語(yǔ)義單元,這就是分詞任務(wù)的目的。

第二個(gè)任務(wù)是新詞發(fā)現(xiàn),就是說(shuō)我們給你很多文本,該任務(wù)我們希望發(fā)掘發(fā)現(xiàn)文本中的一些新詞最新的一些詞,比如說(shuō)“活久見(jiàn)“、”十動(dòng)然拒“、”十動(dòng)然揍”這種網(wǎng)絡(luò)熱詞。第三個(gè)任務(wù)是形態(tài)分析,形態(tài)分析主要針對(duì)形態(tài)豐富拉丁語(yǔ)系的語(yǔ)言。,我們給定一個(gè)詞,然把后可以把里面的詞干、詞綴、詞根等拆分出來(lái),然后做一些形態(tài)還原、形態(tài)切分任務(wù),然后給上面的任務(wù)提供一個(gè)更好的輸入。

第四個(gè)任務(wù)是詞性標(biāo)注,就是說(shuō)詞有動(dòng)詞、名詞之類(lèi)詞性,詞性標(biāo)注任務(wù)就是我們把每一個(gè)詞的詞性給標(biāo)出來(lái)。另外還有還有就是拼寫(xiě)校正任務(wù),應(yīng)用場(chǎng)景就是我們?cè)诖蠹矣梦谋揪庉嬈鞯臅r(shí)候,你打錯(cuò)了字會(huì)被標(biāo)紅它會(huì)劃一個(gè)紅線,編輯器還能提供還會(huì)有自動(dòng)糾錯(cuò)的功能。

第二個(gè)層面的任務(wù)然后是句子分析(Sentence Analysis)。它包括句法分析等分析任務(wù)。,句法分析包括一些淺層的句法分析和深層的句法分析,比如像組塊分析就是給定你一個(gè)句子,然后我來(lái)標(biāo)出里面一些名詞短語(yǔ)或者動(dòng)詞短語(yǔ)的塊。我們直接來(lái)看下面的句法樹(shù),我們?cè)趺磥?lái)看組塊呢?比如前面這個(gè) “My dog” 是 NP,NP 就是指一個(gè)名詞短語(yǔ),。然后我們看 S1,VP1 是一個(gè)動(dòng)詞短語(yǔ),組塊分析的目的不是想把這棵樹(shù)分析出來(lái),而是說(shuō)我只是想把這個(gè) NP 和 VP 作為一個(gè) Chunk(組塊) 給把它標(biāo)注出來(lái)。

第二個(gè)任務(wù)是超級(jí)標(biāo)簽標(biāo)注(Super Tagging),這個(gè)任務(wù)個(gè)是說(shuō)我并是不想得到最后句法樹(shù)的結(jié)構(gòu),我只想得到跟我這個(gè)詞當(dāng)前相關(guān)的樹(shù)的結(jié)構(gòu)。比如說(shuō)我想得到 My 的這個(gè) Super Tagg,它從 ROOT 到 My 的這一條樹(shù)的路徑是必須保存的,然后其他上面的一些終結(jié)符的結(jié)點(diǎn)會(huì)被去掉。

還有成分句法分析任務(wù)的,它的目標(biāo)就是畫(huà)下面這棵樹(shù),把里面句子的結(jié)構(gòu)分析出來(lái)。,就是從一個(gè)根的結(jié)點(diǎn)出發(fā),然后下面會(huì)有 NP、VP,到最后它必須是到一個(gè)終結(jié)符上去。

依存句法分析任務(wù)是說(shuō)我來(lái)分析句子里詞和詞之間的依存(修飾)關(guān)系,然后由這些修飾關(guān)系來(lái)構(gòu)成一棵依存的句法樹(shù)。

還有語(yǔ)言模型任務(wù),是就是說(shuō)我們想訓(xùn)練設(shè)計(jì)一個(gè)模型來(lái)對(duì)語(yǔ)句合理的程度(流暢度)進(jìn)行一個(gè)打分。

還有語(yǔ)種識(shí)別任務(wù),是給定給你一段文本,我可以把它識(shí)別出這段文本成到底是用哪一個(gè)語(yǔ)言書(shū)寫(xiě)的,這可以被用到個(gè)可能用到的場(chǎng)景就是網(wǎng)頁(yè)端的機(jī)器翻譯任務(wù)中。

第三個(gè)任務(wù)是句子邊界的檢測(cè),我們知道中文句子邊界是非常明顯的,會(huì)由句號(hào)、嘆號(hào)或者問(wèn)號(hào)等做分隔,但是對(duì)于一些語(yǔ)言來(lái)說(shuō),句子之間是沒(méi)有明顯邊界的,所以做句子層面的分析之前的話,首先要對(duì)它進(jìn)行句子邊界的檢測(cè),比如泰語(yǔ)。

再往上就是語(yǔ)義分析(Semantic Analysis)層。從語(yǔ)言學(xué)家的角度來(lái)看,他想用一些結(jié)構(gòu)化的一些符號(hào)來(lái)表達(dá)語(yǔ)義,但是現(xiàn)在的深度學(xué)習(xí),大量的語(yǔ)義其實(shí)是分布式的表示,也就是一系列的數(shù)值,具體哪一種形式會(huì)真正地表達(dá)語(yǔ)義還沒(méi)有定論定性。

語(yǔ)義分析層中的任務(wù),第一個(gè)任務(wù)是詞義消歧,一個(gè)詞它可能會(huì)有歧義,該任務(wù)是來(lái)然后我們?cè)趺磥?lái)確定它準(zhǔn)確的詞義。

第二個(gè)任務(wù)是語(yǔ)義角色標(biāo)注,是一種一個(gè)淺層的語(yǔ)義分析。,該任務(wù)就是說(shuō)它要標(biāo)出句子里面這些語(yǔ)義決策動(dòng)作的發(fā)起者,受到動(dòng)作影響的人等等。比如 “A 打了 B”,那么 A 就是一個(gè)施事,,然后 B 就是一個(gè)受事,中間就是一個(gè)打的動(dòng)作。

第三個(gè)任務(wù)是抽象語(yǔ)義表示(Abstract Semantic Parsing),它是近幾年提出的一種抽象語(yǔ)義的表示形式,縮寫(xiě)是叫 AMR。下面這個(gè)一階謂詞邏輯演算和框架語(yǔ)義分析基本上是語(yǔ)言學(xué)家一直想把語(yǔ)義做一個(gè)符號(hào)化推理系統(tǒng)的表達(dá)。

然后近期在應(yīng)用里面用的比較多的語(yǔ)義的表現(xiàn)形式就是詞匯、句子、段落的一個(gè)向量化表示,即Word/Sentence/Paragraph Vector,包括然后研究向量化的方法和向量性質(zhì)以及應(yīng)用。

這是 AMR 的一個(gè)例子,這里面有三個(gè)句子,三個(gè)句子表達(dá)的語(yǔ)義是一樣的。就是說(shuō)“這個(gè)貓想吃魚(yú)”這個(gè)語(yǔ)義,有三個(gè)不同的句子表達(dá)形式,但是所以它們?cè)?AMR 這個(gè)概念里,對(duì)應(yīng)的是一個(gè)相同的 AMR 圖。由于它們的語(yǔ)義是完全相同的,所以 AMR 分析的時(shí)候,會(huì)把一些無(wú)關(guān)緊要的詞去掉,比如 the 或 to。

再高一個(gè)層面的任務(wù)就是信息抽?。↖nformation Extraction)。比如我們給定最下面的這一段新聞,想從里面抽一些關(guān)鍵的信息出來(lái),即然后就從無(wú)結(jié)構(gòu)的文本當(dāng)中抽取出結(jié)構(gòu)化的信息,這是廣義的信息抽取概念,可以比如我先做命名實(shí)體識(shí)別,我從這一段文字里識(shí)別出人名、地名、機(jī)構(gòu)名,因?yàn)檫@些東西相比于其他的連詞等標(biāo)點(diǎn)符號(hào)具有更多的意義。

第二個(gè)任務(wù)是實(shí)體消歧,該任務(wù)是就是我把句子中出現(xiàn)的這個(gè)名詞準(zhǔn)確東西如何關(guān)聯(lián)到現(xiàn)實(shí)當(dāng)中的一個(gè)對(duì)象,把它 link 上去。

第三個(gè)任務(wù)是術(shù)語(yǔ)抽取,就是從這個(gè)文本當(dāng)中抽取特定的術(shù)語(yǔ)。

第四個(gè)任務(wù)是共指消解。,你這個(gè)句子里面會(huì)出現(xiàn)了代詞好多指代的東西或者是多種名詞表達(dá)同一個(gè)對(duì)象的現(xiàn)象。,比如代詞的消解是找出“他、她、它”中的某一個(gè)到底指代的是哪個(gè)事物。名詞消解也是同樣的道理。

然后關(guān)系抽取任務(wù)事情是確定文本當(dāng)中兩個(gè)實(shí)體之間的關(guān)系,比如說(shuō)誰(shuí)生了誰(shuí),兩個(gè)實(shí)體一個(gè)是生一個(gè)是被生。

事件抽取任務(wù)是一個(gè)更復(fù)雜的過(guò)程,要就是說(shuō)抽取出時(shí)間、地點(diǎn)、人物、發(fā)生的事件等等,這是更結(jié)構(gòu)化的信息抽取。

這里信息抽取后面,我把情感分析和對(duì)話系統(tǒng)用到的意圖識(shí)別和槽位填充也歸結(jié)到這個(gè)部分里了。舉個(gè)情感分析這個(gè)應(yīng)用場(chǎng)景的例子是說(shuō),比如我們?nèi)ベ?gòu)物網(wǎng)站買(mǎi)東西,買(mǎi)完了以后會(huì)給它做評(píng)價(jià),那么用戶(hù)的這個(gè)評(píng)價(jià)到底是正面的還是負(fù)面的情緒?我們需要對(duì)這個(gè)評(píng)價(jià)分析出情感傾向。

意圖識(shí)別是對(duì)話系統(tǒng)當(dāng)中一個(gè)比較重要的模塊,是要分析就是說(shuō)用戶(hù)你跟對(duì)話機(jī)器人說(shuō)話的時(shí)候這句話的目的是什么,比如說(shuō)播放音樂(lè),那么那你的意圖就是音樂(lè)。

槽位填充是和意圖識(shí)別搭配起來(lái)使用的,你的意圖識(shí)別出來(lái)了,但是你的意圖要有具體的信息,比如你的意圖是讓機(jī)器人幫你去定明天早上從北京到上海飛的一張機(jī)票,意圖識(shí)別出來(lái)是定機(jī)票,那么要抽取一些信息的槽位槽位說(shuō)時(shí)間我要抽出來(lái),比如時(shí)間是“明天早上”,出發(fā)點(diǎn)是“北京”,目的地是“上?!?,這樣才能配合起來(lái)做后面的一些程序性的工作。

再往上就是頂層任務(wù)了,說(shuō)這些任務(wù)它面向用戶(hù)能夠提供自然語(yǔ)言處理產(chǎn)品的一些系統(tǒng)級(jí)任務(wù)。一般這些任務(wù)會(huì)用到之前我們說(shuō)的很多自然語(yǔ)言處理技術(shù),目的是搭建一個(gè)大概是一個(gè)綜合性的系統(tǒng)。

第一個(gè)就是機(jī)器翻譯任務(wù),就是要實(shí)現(xiàn)文本的一個(gè)自動(dòng)翻譯的過(guò)程。

文本摘要是說(shuō)給定你很大段的文字,然后你把里面的梗概提取出來(lái),把它縮短,使得然后更方便閱讀或者更方便提取關(guān)鍵的信息。

問(wèn)答任務(wù)是這樣,你問(wèn)你給系統(tǒng)一個(gè)問(wèn)題,然后它能給你一個(gè)準(zhǔn)確的答案。,比如,說(shuō)你問(wèn)“周杰倫的母親叫什么名字”,這個(gè)系統(tǒng)它需要反饋給你一個(gè)非常準(zhǔn)確的答案。

對(duì)話系統(tǒng)就是你和機(jī)器進(jìn)行交互,它給你相應(yīng)的反饋,執(zhí)行相應(yīng)的指令。閱讀理解就是你給定機(jī)器輸入一整篇文章,然后對(duì)它提一些與文章相關(guān)的問(wèn)題,它能夠給你答案,很像我們考英語(yǔ)閱讀理解。還有再一個(gè)任務(wù)就是自動(dòng)文章分級(jí),給定一篇文章,對(duì)文章的質(zhì)量進(jìn)行打分或者做一個(gè)分級(jí)的操作。

▌3.自然語(yǔ)言處理任務(wù)的本質(zhì)難點(diǎn)

自然語(yǔ)言處理任務(wù)為什么難?我的一些個(gè)人認(rèn)為觀點(diǎn)主要在于:是它的歧義問(wèn)題、知識(shí)問(wèn)題、離散符號(hào)計(jì)算問(wèn)題,還有語(yǔ)義本質(zhì)的問(wèn)題。

先說(shuō)歧義問(wèn)題,有些話的表達(dá)可能會(huì)有歧義或者說(shuō)模棱兩可。我們上面舉了幾個(gè)詞匯層面歧義的例子,比如我們上面這三個(gè)句子基本上是詞或者字層面的歧義,“我們研究所/有東西”,這里的研究所是一個(gè)名詞,“我們研究/所有東西”,這里的“研究”就變成一個(gè)動(dòng)詞。再往下就是一詞多義的問(wèn)題,第一個(gè)句子是叫“山上的杜鵑開(kāi)了”,第二個(gè)是“樹(shù)上有一只杜鵑在叫”,同樣是杜鵑,前面說(shuō)的是一種花,后面是一種鳥(niǎo),這也會(huì)造成歧義。

還有然后是詞性兼類(lèi)問(wèn)題,一個(gè)詞在不同的上下文環(huán)境當(dāng)中體現(xiàn)的詞性也會(huì)不同,比如說(shuō)第一個(gè)句子“向雷鋒同志學(xué)習(xí)”,這個(gè)學(xué)習(xí)是一個(gè)動(dòng)詞。第二個(gè)是“他非常勤奮,學(xué)習(xí)很好”,這個(gè)學(xué)習(xí)是一個(gè)名詞,所以也會(huì)出現(xiàn)這種詞性兼類(lèi)的歧義。再一個(gè)就是結(jié)構(gòu)性的歧義,分很多種,看一個(gè)比較簡(jiǎn)單的應(yīng)用的例子,I shot an elephant in my pajamas,如果我們把后面這個(gè) elephant in my pajamas 看成一個(gè) NP 的話,這個(gè)是說(shuō)“我擊中了這個(gè)睡衣睡褲里面的一頭大象”,這個(gè)在語(yǔ)義上是不對(duì)的。如果是說(shuō) in 后面的這個(gè)介詞短語(yǔ)來(lái)修飾這個(gè) an 的話,它翻譯出來(lái)就是“我穿著我的睡衣然后擊中了一頭大象”,這才是合理的。

第二個(gè)是知識(shí)問(wèn)題,是指就是說(shuō)知識(shí)稀疏或者詞匯稀疏,詞匯稀疏導(dǎo)致了搭配稀疏,然后導(dǎo)致了語(yǔ)義稀疏,它有一個(gè)遞進(jìn)關(guān)系。一個(gè)比較出名的定律叫齊夫定律(Zipf Law),這個(gè)定律是說(shuō)在自然語(yǔ)言語(yǔ)料當(dāng)中,一個(gè)單詞出現(xiàn)的頻率和它在頻率表當(dāng)中的排名基本成一個(gè)反比關(guān)系。例如,對(duì)英語(yǔ)的 Brown 數(shù)據(jù)集里的語(yǔ)料進(jìn)行統(tǒng)計(jì),“the、of、and”是前三高的詞頻。

以 Zipf 的角度來(lái)看,它認(rèn)為排位和詞頻實(shí)際上是可以用一個(gè)反比關(guān)系來(lái)對(duì)它進(jìn)行建模。那么這個(gè)語(yǔ)料也很好地反應(yīng)了基本上這個(gè)“the”大概在 7 萬(wàn)左右,“of”大概在 36000 左右,那就變成了 c 和 c/2 這么一個(gè)倍數(shù)的關(guān)系。然后“and”和“the”就構(gòu)成了 c/3,這是一個(gè) 1/3 的關(guān)系,這是一個(gè) Zipf 的現(xiàn)象,這個(gè)現(xiàn)象會(huì)引起這個(gè)詞的 Frequency,這個(gè)詞頻會(huì)下降得非???,然后后面會(huì)導(dǎo)致一個(gè)非常長(zhǎng)尾的現(xiàn)象。,即就是說(shuō)有很多詞出現(xiàn)的次數(shù)很少,但是數(shù)量又很大,當(dāng)它們?nèi)考悠饋?lái)的話,又你不能把它們忽略掉。再一個(gè)問(wèn)題是知識(shí)依賴(lài),這也就是說(shuō)對(duì)語(yǔ)言精確的理解和生成,有很多時(shí)候是需要背景知識(shí)支持的,比如“蘋(píng)果”到底是一個(gè)水果還是一個(gè)手機(jī),可能就需要有一些這種知識(shí)來(lái)支持,不能根據(jù)一句話就完全能把它理解掉。

知識(shí)稀疏的問(wèn)題,從機(jī)器學(xué)習(xí)的角度來(lái)看的話,相當(dāng)于你給了一個(gè)模型非常不均勻的數(shù)據(jù)分布,那對(duì)模型來(lái)說(shuō)它的學(xué)習(xí)難度就會(huì)變大。

第三個(gè)是離散符號(hào)計(jì)算的問(wèn)題。我們看到的文本其實(shí)都是一些符號(hào),對(duì)計(jì)算機(jī)來(lái)說(shuō),它看的其實(shí)也是一些離散的符號(hào),但我們知道計(jì)算機(jī)其實(shí)最擅長(zhǎng)的去運(yùn)算的實(shí)際上是數(shù)值型的運(yùn)算,而不是符號(hào)之間的推理,并且符號(hào)之間的邏輯推理會(huì)非常復(fù)雜?,F(xiàn)在在統(tǒng)計(jì)機(jī)器學(xué)習(xí)模型里面做的就是用one-hot,就是用一個(gè)非常稀疏的向量來(lái)表示這個(gè)詞的形式,把它作為特征輸?shù)胶竺娴哪P屠锶?,但這面臨一個(gè)高維的問(wèn)題。另一個(gè)是符號(hào)和符號(hào)之間都是正交的,那么就很難建立起符號(hào)之間的相關(guān)關(guān)系,這是深度學(xué)習(xí)方法能夠部分解決一下這個(gè)問(wèn)題。

第四個(gè)就是語(yǔ)義問(wèn)題,到底什么是語(yǔ)義?什么是語(yǔ)義?語(yǔ)言里面到底是什么東西?符號(hào)背后真正的語(yǔ)義怎么來(lái)表示?語(yǔ)言學(xué)家他走的路子就是我構(gòu)建好多形式化的、結(jié)構(gòu)化的圖之類(lèi)的,這種結(jié)構(gòu)去做語(yǔ)義或者是一些符號(hào)推導(dǎo)系統(tǒng),認(rèn)為它可以接近語(yǔ)義本質(zhì)。但是,這些其實(shí)走得越遠(yuǎn)離計(jì)算機(jī)就越遠(yuǎn),因?yàn)樗椒?hào),語(yǔ)義的可解釋性就會(huì)很差。,拿數(shù)字來(lái)表示語(yǔ)義,我們你也不知道這個(gè)數(shù)字到底它是什么東西。所以目前為止現(xiàn)在研究領(lǐng)域?qū)@個(gè)問(wèn)題解決得比較差。

假如語(yǔ)義問(wèn)題真的解決了,那所有的自然語(yǔ)言處理任務(wù)都不是問(wèn)題,但目前來(lái)說(shuō),我們現(xiàn)階段做的事情實(shí)際上僅僅是需要你在去做每一個(gè)子問(wèn)題的時(shí)候,把這個(gè)子問(wèn)題用各種各樣的方法把它做好就行了,語(yǔ)義的話真的是比較難解決的問(wèn)題。

目前來(lái)說(shuō)幾乎所有的自然語(yǔ)言處理方法都是基于數(shù)據(jù)驅(qū)動(dòng),也就是統(tǒng)計(jì)機(jī)器學(xué)習(xí)的模型,那么數(shù)據(jù)質(zhì)量加上模型的能力就決定了最后的任務(wù)表現(xiàn),而并非是說(shuō)機(jī)器真的能全面理解人類(lèi)語(yǔ)言當(dāng)中的語(yǔ)義,比如市面上的對(duì)話機(jī)器人很大的程度上要?dú)w于數(shù)據(jù)或者一些規(guī)則,而不是說(shuō)機(jī)器真的能像人類(lèi)一樣地去思考、推理,然后給你一個(gè)非常人格化的回復(fù),現(xiàn)階段人工智能還沒(méi)有達(dá)不到那種要求。

▌4.小結(jié)

我們大概講了自然語(yǔ)言處理任務(wù)的基本概念,還有一些目前自然語(yǔ)言大家處理主要在解決的任務(wù)。,一般來(lái)說(shuō)一個(gè)做 NLP 的人,他可能以他的能力做到里面的一個(gè)或者幾個(gè)任務(wù)。自然語(yǔ)言處理它是一個(gè)交叉學(xué)科,它會(huì)使用語(yǔ)言學(xué)的理論,但是不會(huì)說(shuō)去研究語(yǔ)言學(xué),然后也會(huì)去用一些統(tǒng)計(jì)機(jī)器學(xué)習(xí)或者算法模型方面的東西,但目的又不是說(shuō)我去徹底研究透算法層面的東西,而是說(shuō)只是追求可用。當(dāng)然現(xiàn)在的趨勢(shì)是很多做自然語(yǔ)言處理的人都在深入地研究算法模型,但歸根到底我們想解決自然語(yǔ)言處理的問(wèn)題其實(shí)就是怎么對(duì)這個(gè)問(wèn)題進(jìn)行建模然后解決好。

二、深度學(xué)習(xí)方法解決NLP任務(wù)

▌1.自然語(yǔ)言處理方法的演化

下面講一下深度學(xué)習(xí)方法和之前的方法,還有一些深度學(xué)習(xí)方法解決基本任務(wù)的介紹。

自然語(yǔ)言處理方法的演化大概可以這么來(lái)劃分,一個(gè)是叫理性主義,后面一個(gè)叫經(jīng)驗(yàn)主義。

理性主義很好理解,就是寫(xiě)規(guī)則,然后來(lái)處理這個(gè)問(wèn)題。經(jīng)驗(yàn)主義就是加數(shù)據(jù),加算法模型的方式來(lái)解決問(wèn)題。理性主義基本上是語(yǔ)言學(xué)家來(lái)主導(dǎo),就是研究語(yǔ)言,寫(xiě)語(yǔ)言學(xué)的知識(shí),然后用這些語(yǔ)言學(xué)知識(shí)的規(guī)則來(lái)處理自然語(yǔ)言處理的任務(wù)。

這個(gè)方法的好處就是可解釋性特別好,它明確知道這個(gè)輸出的結(jié)果是由哪條規(guī)則產(chǎn)生的作用,但問(wèn)題是說(shuō)規(guī)則越寫(xiě)越多的時(shí)候,很容易前后起沖突,寫(xiě)規(guī)則的成本也非常高,其實(shí)對(duì)自然語(yǔ)言處理的理解,處理方法的演化方面會(huì)比較慢。

經(jīng)驗(yàn)主義方法就是所有的知識(shí)都在數(shù)據(jù)里面,從數(shù)據(jù)里面學(xué)東西,不關(guān)心里面的語(yǔ)法規(guī)則是什么,這個(gè)研究階段就由計(jì)算機(jī)科學(xué)家主導(dǎo),主要的方法就是基于數(shù)據(jù)驅(qū)動(dòng)的機(jī)器學(xué)習(xí)模型加少量的語(yǔ)言學(xué)知識(shí)。

經(jīng)驗(yàn)主義里我們給它又劃分成了兩個(gè)階段,一個(gè)是統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法的階段,它的特征一個(gè)特點(diǎn)是基于符號(hào)特征的計(jì)算,就是抽一些符號(hào)化的特征,然后交給機(jī)器學(xué)習(xí)模型來(lái)做。第二個(gè)特點(diǎn)是它一般是用傳統(tǒng)的針對(duì)非 DL 的一些方法,比如,LR、SVM 之類(lèi)的。

到了近幾年,NLP主要是用深度學(xué)習(xí)方法,它的第一個(gè)特點(diǎn)就是分布式的表示特征,也就是拿一串?dāng)?shù)字來(lái)表示一些語(yǔ)義作為特征,交到后面的分類(lèi)器來(lái)做。第二個(gè)特點(diǎn)是以各種神經(jīng)網(wǎng)絡(luò)為核心模型,而不再是以前的這種 SVM 之類(lèi)其他的分類(lèi)器之類(lèi)的東西,這是深度學(xué)習(xí)方法兩大比較突出的特征。

我們來(lái)看理性主義模型下自然語(yǔ)言處理的一個(gè)視角,這是一個(gè)德國(guó)研究機(jī)器翻譯的一位德國(guó)教授提出的機(jī)器翻譯金字塔模型,當(dāng)然后面到統(tǒng)計(jì)的時(shí)代是大家也去借用這個(gè)模型來(lái)表達(dá)機(jī)器翻譯的過(guò)程。

我們從這個(gè)視角看語(yǔ)言,要先做形態(tài)分析,然后再做句法分析,語(yǔ)義分析,再往上是中間語(yǔ)言最高的形式,然后往右邊去轉(zhuǎn)換,這是一個(gè)機(jī)器翻譯的過(guò)程。就是說(shuō)給一個(gè)源語(yǔ)言的句子,然后轉(zhuǎn)換成目標(biāo)語(yǔ)言的句子,那么它認(rèn)為從上到下是一個(gè)遞進(jìn)的,從左到右是一個(gè)層層轉(zhuǎn)化的過(guò)程,所以它在處理某一任務(wù)的時(shí)候也是基于語(yǔ)言學(xué)結(jié)構(gòu)來(lái)處理,這是理性主義模型下一個(gè)非常經(jīng)典的看法。

到經(jīng)驗(yàn)主義模型基本上是這樣的,其實(shí)就是一個(gè)機(jī)器學(xué)習(xí)的過(guò)程,就是先構(gòu)建語(yǔ)料,做標(biāo)注,然后再設(shè)計(jì)特征,做特征提取,然后后面是交給到機(jī)器學(xué)習(xí)算法,然后訓(xùn)練好模型做輸出。我們說(shuō)前面的階段一個(gè)核心問(wèn)題是語(yǔ)言學(xué)知識(shí)表達(dá)的問(wèn)題,后面經(jīng)驗(yàn)主義模型下一個(gè)核心的問(wèn)題實(shí)際上是對(duì)這個(gè)任務(wù)的建模和機(jī)器學(xué)習(xí)算法的求解。

▌2.自然語(yǔ)言處理常用的問(wèn)題模型

首先我們?cè)谶@里區(qū)分兩個(gè)概念,一個(gè)叫問(wèn)題模型,一個(gè)叫算法模型。問(wèn)題模型就是把這個(gè)任務(wù)怎么把它形式化出來(lái),是一個(gè)建模的過(guò)程。算法模型是說(shuō)怎么來(lái)拿某個(gè)算法去解決這個(gè)問(wèn)題建模好的形式,就是給你一個(gè)事情,你把它分解開(kāi)來(lái),然后看看它到底能套哪個(gè)模型,然后后面就是對(duì)這個(gè)模型的求解問(wèn)題。

NLP 當(dāng)中常用的問(wèn)題模型包括分類(lèi)模型、序列標(biāo)注模型和序列生成模型。

分類(lèi)模型是一個(gè)比較狹義的分類(lèi)概念。實(shí)際上序列標(biāo)注模型和序列生成模型也可以理解成一個(gè)廣義分類(lèi)的問(wèn)題。分類(lèi)是說(shuō)是指大概像文本分類(lèi)或者給句子做情感分析之類(lèi)的狹義的模型。

第一個(gè)分類(lèi)問(wèn)題就是給你一段文本做類(lèi)別的標(biāo)注,比如你對(duì)它進(jìn)行文本分類(lèi),給你一個(gè)新聞,它到底是一個(gè)政治、體育、財(cái)經(jīng)或者其他類(lèi)別的新聞。那么意圖識(shí)別,就是前面說(shuō)到的你和一個(gè)對(duì)話機(jī)器人聊天的時(shí)候你給它一句話,然后這個(gè)機(jī)器人它能識(shí)別出來(lái)你的意圖是要干嘛。情感分類(lèi)的話就是前面說(shuō)的你買(mǎi)的東西,你對(duì)它做一個(gè)評(píng)價(jià),這是正向的還是負(fù)向的,實(shí)際上都可以抽象成問(wèn)題模型里面的一個(gè)分類(lèi)模型。

分類(lèi)模型傳統(tǒng)的一個(gè)解決方法就是說(shuō)標(biāo)帶標(biāo)注的語(yǔ)料,再特征提取,然后訓(xùn)分類(lèi)器進(jìn)行分類(lèi),然后類(lèi)別。這個(gè)分類(lèi)器就會(huì)用比如說(shuō)邏輯回歸、貝葉斯、支持向量機(jī)、決策樹(shù)等等。

第二個(gè)是序列標(biāo)注模型。序列標(biāo)注我們拿分詞這個(gè)事情來(lái)做一個(gè)比較好的舉例,實(shí)際上數(shù)學(xué)建模是這樣,你有 N 個(gè) X,它構(gòu)成一個(gè)序列,你可以認(rèn)為它是 N 個(gè)字詞,這個(gè)句子里面有 N 個(gè)字詞,,然后你給每個(gè)字詞加上一個(gè)標(biāo)簽,它生成 N 個(gè)序列的標(biāo)簽,那么分詞這個(gè)問(wèn)題就抽象成字的序列標(biāo)注的模型。

比如說(shuō)“長(zhǎng)江”它應(yīng)該是構(gòu)成一個(gè)詞的,那么就給它分成分類(lèi)的侯選標(biāo)簽,就是 begin、middle、end 或者 single。,這個(gè)是說(shuō) B,就是說(shuō)“長(zhǎng)江”應(yīng)該在 begin 的位置,“江”應(yīng)該在 end 的位置,如果它標(biāo)成 b 了,它標(biāo)成 e 了,很明顯是它們兩個(gè)字要構(gòu)成一個(gè)詞了。假如這個(gè)模型是標(biāo)注成了 s,那就是 single,它就是自己一個(gè)詞?!爸腥A民族”這個(gè)就是 begin,middle,middle,end,那這四個(gè)合起來(lái)就是“中華民族”這一個(gè)詞。

后面我們就都類(lèi)似了。那么整個(gè)分詞的過(guò)程,就是從上面這一行藍(lán)色到下面這個(gè)詞的藍(lán)色的,那就是一個(gè)序列標(biāo)注,你只要對(duì)每個(gè)字分類(lèi)分正確了,那你分詞的結(jié)果結(jié)構(gòu)就是對(duì)的。

這是一個(gè)序列標(biāo)注的模型,這個(gè)分詞是一個(gè)非常經(jīng)典的任務(wù)。詞性標(biāo)注、命名實(shí)體識(shí)別,甚至說(shuō)現(xiàn)在大家做句法分析或者做語(yǔ)義角色標(biāo)注,也開(kāi)始使用這個(gè)序列標(biāo)注模型來(lái)做了。那么傳統(tǒng)做序列標(biāo)注模型的一些方法,包括隱馬爾科夫、最大熵、條件隨機(jī)場(chǎng)、平均感知機(jī)等等,很多去求解這個(gè)序列標(biāo)注的算法模型,是用來(lái)怎么來(lái)求解序列標(biāo)注的問(wèn)題的。?這兩個(gè)層面上的模型我們要分開(kāi)。

第三個(gè)是序列生成模型。所謂的序列生成模型就是如何生成一段文本,逐個(gè)詞地來(lái)生成,使得然后生成的這個(gè)文本是合理的。怎么來(lái)評(píng)價(jià)它的合理性?如果你是單語(yǔ)生成的話,那么可以使用可能像語(yǔ)言模型,保證流暢度、合理性越高越好。

如果它是一個(gè)雙語(yǔ)生成的任務(wù),像機(jī)器翻譯任務(wù),你就要約束約定它跟原來(lái)的語(yǔ)義接近的情況下,然后生成的序列更合理。在深度學(xué)習(xí)方法出來(lái)之前,其實(shí)沒(méi)有太好的方法來(lái)建模序列生成問(wèn)題,一個(gè)就是這個(gè)語(yǔ)言模型來(lái)做單語(yǔ)生成,再一個(gè)就是用統(tǒng)計(jì)機(jī)器翻譯模型來(lái)做雙語(yǔ)生成。然后生成的過(guò)程當(dāng)中基本上是要用一個(gè)束解碼的方式來(lái)約束搜索空間。

▌3.統(tǒng)計(jì)機(jī)器學(xué)習(xí)算法模型的不足

我們前面講的是一些統(tǒng)計(jì)的學(xué)習(xí)算法,比如像 SVM、LR 之類(lèi),這些算法有什么不足呢?一個(gè)就是前面需要設(shè)計(jì)一些復(fù)雜的特征,這些特征是要人工地去設(shè)一個(gè)特征模板,用這些特征模板去匹配句子里面的一些特征,把它抽出來(lái),作為一個(gè)離散化的特征來(lái)輸入到模型里面去,這一塊是非常復(fù)雜的。

第二個(gè)是這個(gè)算法模型對(duì)序列建模的能力很差,這個(gè)特征在詞方面都是非常稀疏的,在那么你對(duì)句子抽特征的時(shí)候這個(gè)就更稀疏了。比如整個(gè)語(yǔ)料當(dāng)中有 1 萬(wàn)個(gè)不同的詞,那么這個(gè)句子里非常有可能出現(xiàn)了一個(gè)詞會(huì)只在幾個(gè)句子里出現(xiàn)過(guò),所以它的特征會(huì)非常稀疏。第三個(gè)就是你前面抽出特征是一步,訓(xùn)練模型是一步,這個(gè)其實(shí)中間會(huì)有錯(cuò)誤的誤差,甚至有一些復(fù)雜的任務(wù),它是要去進(jìn)行多步的操作,這會(huì)產(chǎn)生一個(gè)非常嚴(yán)重的錯(cuò)誤傳播問(wèn)題。后面我們也會(huì)用具體的模型來(lái)解釋這個(gè)錯(cuò)誤傳播的問(wèn)題。

我們看一下深度學(xué)習(xí),它可以就是我們來(lái)解決前面說(shuō)的分類(lèi)問(wèn)題、序列標(biāo)注問(wèn)題、序列生成問(wèn)題用到的一些基本組件,現(xiàn)在主要應(yīng)用到的比如前向神經(jīng)網(wǎng)絡(luò),就是一個(gè)最簡(jiǎn)單的全鏈接網(wǎng)絡(luò)。循環(huán)神經(jīng)網(wǎng)絡(luò),包括純的 RNN,不加任何門(mén)控的 RNN,還有 LSTM,這種加門(mén)控的一些神經(jīng)網(wǎng)絡(luò)的單元。還有就是卷積神經(jīng)網(wǎng)絡(luò),這個(gè)在圖象方面用的比較多,NLP 里面也會(huì)用。再一個(gè)就是注意力機(jī)制,這些是一些深度學(xué)習(xí)的基本組件,大家有興趣的可以自己去看公式,了解一些基本的模型。

為什么說(shuō)深度學(xué)習(xí)方法比前面我們說(shuō)的統(tǒng)計(jì)機(jī)器學(xué)習(xí)的模型要強(qiáng)大?我們現(xiàn)在來(lái)逐條分析。

▌4.強(qiáng)大的深度學(xué)習(xí)方法—分布式表示

一個(gè)是分布式表示(Distributed Representation),或者更具體一點(diǎn)叫 Word Embedding/Word Representation 之類(lèi)的。也就是拿這個(gè)數(shù)值來(lái)表示這個(gè)特征,而不再是之前的離散的特征,這是一個(gè)比較經(jīng)典的任務(wù),也就是 Bengio 提出的神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型,他把這個(gè)詞通過(guò)一個(gè)矩陣,然后通過(guò)查表的方式形式得到做成一個(gè) Word Embedding,然后交到后面去訓(xùn)練這個(gè)神經(jīng)網(wǎng)絡(luò)的語(yǔ)言模型。,現(xiàn)在后面就是 NLP 所有的任務(wù)基本都基于都在 Word Embedding。

Word Embedding 這一步怎么來(lái)做?假如有 V 個(gè)詞,一個(gè)詞就是 W1、W2 一直到 Wv,構(gòu)建一個(gè)矩陣,然后每一個(gè)詞可向量的維度是 M維v,那么這個(gè) W1 過(guò)來(lái)了以后,我查表會(huì)查到 W1 對(duì)應(yīng)這一類(lèi)的詞向量作為它的一個(gè)表示,這個(gè)表叫 Lookup Table,這就把這個(gè)詞的符號(hào)轉(zhuǎn)換成一個(gè)向量的一個(gè)形式的過(guò)程。

最右邊這個(gè)就是它的詞向量,這個(gè)詞向量是在整個(gè)模型的訓(xùn)練中,可以通過(guò) SGD 下降的方式給它回傳做調(diào)整,也就是說(shuō)我們最終得到的詞向量是非常適合于這個(gè)任務(wù)的詞向量,也是得到了這個(gè)任務(wù)的目標(biāo)函數(shù)下這個(gè)詞非常好的一個(gè)表達(dá)形式。那么符號(hào)向量化的第一個(gè)好處就是克服維度爆炸的問(wèn)題,One-hot會(huì)到一個(gè)非常高的維度,但是詞向量最小可以把它設(shè)成 20、50 之類(lèi)的就解決掉了。再一個(gè)就是說(shuō)它可以直接進(jìn)行數(shù)值運(yùn)算,因?yàn)樗褪窍蛄浚蛄烤褪菙?shù)值,后面就交到后面做很大的矩陣運(yùn)算,這完全沒(méi)有問(wèn)題。再一個(gè)就是 SGD 自動(dòng)特征學(xué)習(xí),這個(gè)前面我們說(shuō)到了,就是 SGD 怎么去調(diào) Word Embedding。

▌5.強(qiáng)大的深度學(xué)習(xí)方法—序列建模方法

深度學(xué)習(xí)方法強(qiáng)大的第二個(gè)優(yōu)點(diǎn),就是序列建模。前面說(shuō)序列建模很難,在前面的一些特征設(shè)計(jì)方法里面,在深度學(xué)習(xí)里面,序列建模的方法就變得非常簡(jiǎn)單了,就是以詞匯層面的分布式表示為基礎(chǔ),然后對(duì)詞之間的交互進(jìn)行計(jì)算,然后生成整個(gè)句子的一個(gè)分布式表示。整個(gè)過(guò)程都是在做計(jì)算,而不是在做特征模板的設(shè)計(jì)。

這個(gè)圖是一個(gè)比較具體的基于雙向 RNN 的一個(gè)序列建模模型,我們看到會(huì)有兩層 RNN 層,第一層是從左向右地對(duì)詞向量進(jìn)行壓縮表示,第二層是從右向左做壓縮表示,然后兩層的表示連接起來(lái),作為最終整個(gè)句子的表示,用 N 個(gè)詞,你后面生成的分布式表示就可以是 N 個(gè)向量,每個(gè)向量可以認(rèn)為是它對(duì)應(yīng)的下面這個(gè)詞的一個(gè)上下文環(huán)境的語(yǔ)義表示,作為整個(gè)句子的特征。也可以用最后面一個(gè),就用 Hn 也可以表示一個(gè)句子的特征,也可以把這些東西作為一個(gè)句子特征的表示。也就是說(shuō)這個(gè)地方你用神經(jīng)網(wǎng)絡(luò)的方式直接基于詞做計(jì)算得到句子的特征表示,就繞過(guò)了特征模板,非常方便。

這是基于 CNN 的序列建模的一個(gè)方法,CNN就是一個(gè)窗口,把一個(gè)詞通過(guò)不同的權(quán)重做加和,然后形成一個(gè)表示。第二層也是一個(gè)窗口,這樣一層層上去以后,越上面的一些 CNN 的結(jié)點(diǎn)它覆蓋的詞的范圍就越大。實(shí)際上到最上面這一層綠色的表示,也可以認(rèn)為跟前面那個(gè)模型一樣,就是作為整個(gè)句子的一個(gè)特征表示,然后結(jié)合后面的任務(wù)就好了。

在最近的工作有就是基于 Self-Attention 的這種序列建模方式,在 W1 生成 H1 的過(guò)程中它需要參考所有句子里面的詞,然后計(jì)算和所有詞的一個(gè)相關(guān)程度,決定其他所有詞在最終形成它的表示的過(guò)程中所占的權(quán)重比例。這個(gè)話有點(diǎn)繞,就是像前面的這些模型,W1 生成 H1 的時(shí)候,它可能只是一個(gè)局部窗口,只考慮一個(gè)局部范圍跟它交互的一些詞的范圍,在 Self-Attention 里面,它要考慮跟它所有詞的關(guān)系,然后來(lái)構(gòu)成最終的一個(gè)表示。

▌6.強(qiáng)大的深度學(xué)習(xí)方法—參數(shù)統(tǒng)一優(yōu)化

第三個(gè)深度學(xué)習(xí)方法強(qiáng)大的一個(gè)優(yōu)點(diǎn)就是參數(shù)統(tǒng)一優(yōu)化的問(wèn)題。之前我們說(shuō)前面設(shè)計(jì)特征模板,后面交一個(gè)分類(lèi)分離器,更嚴(yán)重的就是搭一個(gè)系統(tǒng)的時(shí)候需要做很多步的模型搭建,比如傳統(tǒng)的統(tǒng)計(jì)機(jī)器翻譯里面有一個(gè)短語(yǔ)模型的搭建流程,我有語(yǔ)料,然后我先要做詞對(duì)齊,然后在詞對(duì)齊的結(jié)果上抽短語(yǔ),抽完短語(yǔ)以后做短語(yǔ)特征方面的抽取。

在短語(yǔ)這個(gè)層面還要學(xué)一個(gè)調(diào)序模型,在語(yǔ)料這個(gè)層面上其實(shí)還需要學(xué)一個(gè)語(yǔ)言模型,這些模型最后加一塊來(lái)融合,達(dá)到最后的模型,但實(shí)際上中間這些模型訓(xùn)練的時(shí)候都是非常獨(dú)立的,有一些遞進(jìn)的關(guān)系,然后就會(huì)出現(xiàn)一個(gè)錯(cuò)誤傳播的問(wèn)題,這些所有的參數(shù)并不是統(tǒng)計(jì)到一個(gè)優(yōu)化目標(biāo)函數(shù)下去訓(xùn)練的,但深度學(xué)習(xí)方法里,尤其 End-to-End 這個(gè)模型,就是能把所有的參數(shù)統(tǒng)一到一個(gè)優(yōu)化目標(biāo)函數(shù)下去緩解這種傳統(tǒng)的系統(tǒng)搭建方法的一個(gè)錯(cuò)誤傳播的問(wèn)題。這是一個(gè)基于統(tǒng)計(jì)的短語(yǔ)機(jī)器翻譯系統(tǒng)的一個(gè)搭建流程。

然后我們看一下基于神經(jīng)網(wǎng)絡(luò)的機(jī)器翻譯模型搭建的過(guò)程。下面有平行語(yǔ)料,就交到這個(gè)模型里面去訓(xùn)練,結(jié)果模型會(huì)有一個(gè)優(yōu)化函數(shù),最后能得到這個(gè)模型,整個(gè)這個(gè)模型來(lái)建模平行語(yǔ)料里的翻譯知識(shí)。具體怎么來(lái)做,后面我們會(huì)有更加詳細(xì)的介紹。這里想表達(dá)的是深度學(xué)習(xí)方法,可以把所有的參數(shù)做統(tǒng)一優(yōu)化。

我們來(lái)看一下前面提到自然語(yǔ)言處理中提到了三個(gè)問(wèn)題的不良語(yǔ)言處理里面提到了單個(gè)問(wèn)題模型,一個(gè)叫分類(lèi),一個(gè)叫序列標(biāo)注,另一個(gè)叫序列生成。在傳統(tǒng)的方法下我們看過(guò)了它們是怎么來(lái)做的。?比如,前面做特征模板設(shè)計(jì),后面接分類(lèi)器,像決策樹(shù)、SVM、LR 之類(lèi)的分類(lèi)器來(lái)做。那到了神經(jīng)網(wǎng)絡(luò)或者說(shuō)深度學(xué)習(xí)時(shí)代,這個(gè)事情怎么解決?其實(shí)底層還是基于特征抽取的一個(gè)過(guò)程。

看這個(gè)圖,大家應(yīng)該看到除了上面橙黃色的這個(gè)點(diǎn),就是前面我們說(shuō)的一個(gè)特征抽取的過(guò)程,一個(gè)雙向 RNN 來(lái)抽取一定特征的一個(gè)過(guò)程。對(duì)這個(gè)句子特征抽取完了以后,接一個(gè)橙黃色的分類(lèi)器,后面輸一個(gè) Softmax,然后輸出哪個(gè)類(lèi)別的概率,那就是用這種方法來(lái)建模一個(gè)分類(lèi)問(wèn)題。

比如情感分析問(wèn)題,或者說(shuō)一個(gè)文本分類(lèi)問(wèn)題,你就把句子交到這個(gè)神經(jīng)網(wǎng)絡(luò)去,然后神經(jīng)網(wǎng)絡(luò)把特征抽完了,后面接一個(gè)分類(lèi)的過(guò)程,,然后整個(gè)的優(yōu)化都是基于上面這個(gè)分類(lèi)的準(zhǔn)確程度來(lái)做梯度回傳,回傳到每一條連接權(quán)重,還有詞向量上面去,所以整個(gè)系統(tǒng)它是一個(gè)模型,所有的參數(shù)同時(shí)在做優(yōu)化,不存在特征模板的問(wèn)題,所以就是能夠很好地解決分類(lèi)問(wèn)題。, 還有序列生成和序列標(biāo)注的問(wèn)題。

這是一個(gè)序列標(biāo)注的問(wèn)題,就是前面說(shuō)到分詞的問(wèn)題,就是給每一個(gè)字加一個(gè)合適的類(lèi)標(biāo)。其實(shí)下面還是一樣,抽特征,抽出 N 個(gè)表示出來(lái),N 個(gè)字的表示出來(lái),就是這些字的特征出來(lái),然后后面每個(gè)接 Softmax 的分類(lèi)器,然后做一個(gè)路徑最優(yōu)的尋優(yōu)學(xué)優(yōu)操作做一個(gè)推理,然后找到一條最優(yōu)的序列路徑出來(lái)。這是一個(gè)深度學(xué)習(xí)方法解決序列標(biāo)注問(wèn)題,

那怎么來(lái)做序列生成的問(wèn)題?就是 Encoder、Decoder,這是一個(gè)非常經(jīng)典的模型。Encoder 就是把原先的句子做表示,然后 Decoder 是根據(jù)這個(gè)表示來(lái)做生成。。然后 Encoder 也可以用 CNN、RNN、Self-Attention,Decoder 也可以分別用這三種。這個(gè)模型反映反應(yīng)的是一個(gè)翻譯的過(guò)程,翻譯的過(guò)程是計(jì)算機(jī)可以處理自然語(yǔ)言,我們希望計(jì)算機(jī)能生成這個(gè)結(jié)果,也就是一個(gè)序列到另一個(gè)序列的映射,但是這兩個(gè)序列之間可能會(huì)存在著不同的長(zhǎng)度。這是目前大家來(lái)做機(jī)器翻譯問(wèn)題或者對(duì)話聊天里的閑聊通用的一個(gè)模型。

▌7.深度學(xué)習(xí)方法的缺點(diǎn)

我們說(shuō)說(shuō)深度學(xué)習(xí)方法的缺點(diǎn)。缺點(diǎn)一個(gè)是模型的可解釋性低,首先它是一個(gè)數(shù)值的運(yùn)算,你很難解釋它每一步的數(shù)值代表了什么。,就是整個(gè)過(guò)程在算,你很難去展現(xiàn)它中間語(yǔ)言學(xué)的一些推理過(guò)程,效果會(huì)很好,但是不好解釋?zhuān)腥税阉凶龊诤小?/p>

再一個(gè)就是因?yàn)樗际腔跀?shù)值的,所以就比較難去融入一些鮮艷符號(hào)的規(guī)則進(jìn)來(lái),這個(gè)語(yǔ)言學(xué)的知識(shí)或者人類(lèi)的一些運(yùn)行約束,很難去融入進(jìn)來(lái)。再一個(gè)就是這個(gè)模型它需要的計(jì)算量比較大,有很大權(quán)重矩陣的運(yùn)算,矩陣乘法,或者做 Softmax 之類(lèi)的這種計(jì)算,所以需要計(jì)算的還是比較重的,尤其是訓(xùn)練大模型的時(shí)候,一般現(xiàn)在是用多顯卡,最起碼是多卡,或者是多機(jī)來(lái)訓(xùn)一個(gè)比較大的模型。

這個(gè)模型的表現(xiàn)除了依賴(lài)于本身的結(jié)構(gòu),它還依賴(lài)于比較多的訓(xùn)練技巧,所謂的訓(xùn)練技巧就是指說(shuō)中間某些參數(shù)的初始化方法,網(wǎng)絡(luò)的超參設(shè)計(jì),還要加一些其他東西,比如本身就給你一個(gè) RNN,它其實(shí)可能表現(xiàn)不好,但加上很多訓(xùn)練的方法進(jìn)去,這個(gè)模型表現(xiàn)才會(huì)好起來(lái)。

所以有很多人說(shuō)這是一個(gè)煉丹的過(guò)程,但是這個(gè)煉丹的過(guò)程到目前大家研究的也越來(lái)越透徹了,有很多分析的論文已經(jīng)出來(lái)了,所以我們也希望這個(gè)模型能夠可解釋性更好一點(diǎn),這些訓(xùn)練的技巧方法能夠在數(shù)學(xué)上找到更好的理論,然后拿實(shí)驗(yàn)去驗(yàn)證它,而不是說(shuō)我們就真的是像煉丹師一樣去煉一個(gè)模型出來(lái),這不是科學(xué)。

這章主要的內(nèi)容就是介紹了自然語(yǔ)言處理里面常用的一些問(wèn)題模型和算法模型,對(duì)比了統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法和深度學(xué)習(xí)方法,然后分析了它們的優(yōu)劣之處。

三、對(duì)話和機(jī)器翻譯中的深度學(xué)習(xí)模型和云端應(yīng)用

▌1.機(jī)器翻譯和對(duì)話系統(tǒng)中的序列到序列模型

前面我們說(shuō)到了對(duì)話機(jī)器人和機(jī)器翻譯,這它兩個(gè)問(wèn)題其實(shí)差不多,一個(gè)就是對(duì)話機(jī)器人它是一個(gè)單語(yǔ)的聊天,你說(shuō)中文它給你回復(fù)一個(gè)中文。機(jī)器翻譯的過(guò)程其實(shí)是從一個(gè)語(yǔ)言到另外一個(gè)語(yǔ)言,它說(shuō)“很高興認(rèn)識(shí)你”,翻譯出來(lái)“Nice to meet you”,但兩個(gè)問(wèn)題實(shí)際上都是序列到序列的問(wèn)題,也就是字和字。那么機(jī)器翻譯模型和對(duì)話系統(tǒng)里面的閑聊,給你回復(fù)的這種,它可以用一個(gè)通用模型,就是前面說(shuō)的 Encoder和Decoder 來(lái)解決。

數(shù)學(xué)形式的話就是這樣,X 和 X1 到 Xm,Y 是 Y1 到 Yn,前面可以認(rèn)為是 M 個(gè)詞或者 M 個(gè)字,這邊是 N 個(gè)詞或者 N 個(gè)字,建模就兩個(gè)序列之間的映射關(guān)系,就是第三個(gè)公式。只要把這個(gè)映射關(guān)系學(xué)到了,那么就知道給定了 X1 到 Xm 的時(shí)候,我怎么給出一個(gè)更好的 Y1 到 Yn,是一個(gè)更好的回復(fù)或者更好的翻譯,這是一個(gè)序列到序列的問(wèn)題模型。

前面我們已經(jīng)看過(guò)這個(gè)模型了,它怎么來(lái)生成這個(gè) Y2?首先它要考慮源端的信息,比如 X1 到Xm,它是一個(gè)語(yǔ)義。再一個(gè)就是它還要考慮到已經(jīng)生成了什么出來(lái),因?yàn)樗侵饌€(gè)生成的,從 Y1 到 Yn,Yn 是逐個(gè)生成的。所以已經(jīng)生成的序列加上源端的信息或者主題的信息,我們可以認(rèn)為大 X 是一個(gè)源端信息或者主題信息,然后經(jīng)過(guò)一個(gè)分類(lèi)器來(lái)預(yù)測(cè)下一個(gè)詞,下一個(gè)詞預(yù)測(cè)出來(lái)又到這兒來(lái)了,加到已經(jīng)生成的序列后面,這個(gè)序列變長(zhǎng)了,然后再預(yù)測(cè)下一個(gè)詞,直到預(yù)測(cè)出一個(gè)句子的終結(jié)符出來(lái),這個(gè)序列的預(yù)測(cè)就算生成完成了,大概流程就是這樣,抽象的數(shù)學(xué)表示就是上面三個(gè)公式。

這個(gè)圖是一個(gè)比較經(jīng)典的 Encoder-Decoder 結(jié)構(gòu),左邊是一個(gè) Encoder,右邊是一個(gè) Decoder,中間是一個(gè) Attention 注意力機(jī)制。當(dāng) Decoder 其中一個(gè)詞的時(shí)候,比如說(shuō) Yt 這個(gè)詞的時(shí)候,去源端尋找跟它相關(guān)語(yǔ)義的時(shí)候,用一個(gè) Attention 的形式,它到底是 H1 扮演的權(quán)重大一些,還是 H2 扮演的權(quán)重大一些,還是 Hm 扮演的權(quán)重大一些,這是一個(gè) Soft Attention 的過(guò)程。

這么講其實(shí)有點(diǎn)泛,可以看公式,第三個(gè)公式,就是說(shuō)我們來(lái)預(yù)測(cè) Yt,Y 小于 t 了,就是說(shuō)我們知道了前面已經(jīng)生成的 t-1 個(gè)詞,然后 x 是整個(gè)源端的信息,它需要參考一個(gè) ct,ct 就是這個(gè) Attention 完的一個(gè)結(jié)果。

然后就是前面剛生成完的一個(gè) Decoder 頂層的一個(gè)狀態(tài),它在算源端的一個(gè)相關(guān)程度的時(shí)候,用的就是中間這一項(xiàng)公式。這個(gè)地方歸比較繞,大家可以看一下公式。后面一個(gè)關(guān)于 Attention 機(jī)制的另外一個(gè)視角的看法,可能會(huì)更好理解一些。

還有一個(gè)是從檢索的視角來(lái)看 Attention 機(jī)制,實(shí)際上就是一個(gè) query 的過(guò)程,有一個(gè) query key,然后來(lái)檢索一個(gè) Memory 的區(qū)域,實(shí)際上在上面的這個(gè)過(guò)程當(dāng)中,拿前面這個(gè) Decoder 的狀態(tài),它作為 query 的 key 去查 Encoder 的 Memory,這個(gè) Memory 長(zhǎng)度是 m,寬度是源端的表示維度,大概是查每一塊對(duì)它的權(quán)重。我們做一個(gè)類(lèi)比的話,知道計(jì)算機(jī)內(nèi)存里面去保存,一般是有一個(gè)定位的過(guò)程,再一個(gè)就是保存的一個(gè)過(guò)程。

不同的是這個(gè)定位是 soft 的定位,假如你有 10 個(gè)格子去訪問(wèn),不是說(shuō)定位到第 3 個(gè)格子就讀第 3 個(gè)格子的信息,而是說(shuō)它要計(jì)算這 10 個(gè)格子里面的內(nèi)容,構(gòu)成最后那個(gè)內(nèi)容的一個(gè)權(quán)重。比如給第一個(gè)格子分了 0.1,第二個(gè)格子分了 0.2,第三個(gè)格子分 了0.3,依此類(lèi)推,那到最后整個(gè)表示的時(shí)候,就是每個(gè)格子內(nèi)容乘上它的權(quán)重,然后加起來(lái)。這,可以認(rèn)為是一個(gè) qurery 的過(guò)程,檢索一個(gè) Memory 的過(guò)程,不再是計(jì)算機(jī)硬件里面這種硬性的 qurery,而是一個(gè) soft 的 qurery。

這個(gè) qurery 里主要是存在著兩個(gè) key 的運(yùn)算,一個(gè)就是 qurery 可以和 Memory 里面 key 的一個(gè)運(yùn)算來(lái)計(jì)算相關(guān)程度。相關(guān)程度計(jì)算完以后,通過(guò) softmax 做概率的規(guī)劃,然后把它轉(zhuǎn)到概率空間上面,再根據(jù)這個(gè)概率對(duì)每一個(gè)值做權(quán)重的加和,得到最后的 result,大家可以看這一塊的公式。relation 函數(shù)就是一個(gè)怎么來(lái)衡量?jī)蓚€(gè)東西關(guān)系的一個(gè) relation 函數(shù),一般可以用一個(gè) BP 神經(jīng)網(wǎng)絡(luò),就是一個(gè)前向網(wǎng)絡(luò)來(lái)做。relation 函數(shù)有很多種選擇方式,但它的目的就是算 relation。

廣義的 Encoder-Decoder 框架現(xiàn)在用來(lái)做泛文本生成的一個(gè)問(wèn)題,也就是說(shuō)對(duì)話機(jī)器人、機(jī)器翻譯或者寫(xiě)文章、寫(xiě)詩(shī)、寫(xiě)歌詞這種都可以用 Encoder-Decoder 來(lái)做。

對(duì)它做一個(gè)大概總結(jié)的話,Encoder-Decoder 就可以把里面的構(gòu)件隨便地替換掉,比如 Encoder 用 RNN,Decoder 用 CNN ,所以我們前面提到一個(gè)神經(jīng)網(wǎng)絡(luò)里面構(gòu)建的構(gòu)件這些你完全可以在這個(gè)框架里任意去替換,把它當(dāng)做模塊化的東西來(lái)使用。

Attention 的計(jì)算過(guò)程是基于加法或者基于乘法的,全局的或者局部的,再一個(gè)就是它其實(shí)可以融入更多的特征進(jìn)來(lái)。在這個(gè)框架里融入更多的模塊。不變的是 Encoder 就是對(duì)文本做表示的,Decoder 就是用來(lái)做生成的。前面說(shuō)了泛文本生成的任務(wù)都可以基于該框架來(lái)做,所以它是一個(gè)非常經(jīng)典精簡(jiǎn)的框架。

▌2.機(jī)器翻譯系統(tǒng)VS對(duì)話系統(tǒng)

現(xiàn)在來(lái)說(shuō)機(jī)器翻譯系統(tǒng)和對(duì)話系統(tǒng)之間的區(qū)別,前面說(shuō)都可以用序列到序列的模型來(lái)進(jìn)行建模,但是區(qū)別在哪?首先是機(jī)器翻譯系統(tǒng)的訓(xùn)練語(yǔ)料是一個(gè)句對(duì),一個(gè)是源語(yǔ)言,一個(gè)是目標(biāo)語(yǔ)言,它們?cè)谡Z(yǔ)義上具有一個(gè)非常強(qiáng)的一致性關(guān)系,是一個(gè)非常標(biāo)準(zhǔn)的序列到序列的任務(wù)。再一個(gè)就是可以通過(guò)大量的平行語(yǔ)料來(lái)覆蓋近乎全量的翻譯現(xiàn)象。

對(duì)話系統(tǒng)其實(shí)場(chǎng)景非常復(fù)雜,那就是源端句子和目標(biāo)端句子并不是語(yǔ)義上的一致性,不是表達(dá)語(yǔ)義,而只是一個(gè)相關(guān)性或者一個(gè)回復(fù)的關(guān)系,你說(shuō)一句話,可能有上百種、上千種回復(fù)關(guān)系,所以你很難去拿語(yǔ)料去覆蓋對(duì)話場(chǎng)景,并且語(yǔ)料變大的時(shí)候,可能會(huì)因?yàn)檫@個(gè)回復(fù)的多樣性會(huì)導(dǎo)致知識(shí)沖突。再一個(gè)就是使用序列到序列的建模模型可以很方便地去搭建搭一個(gè)聊天機(jī)器人,就是你說(shuō)一句話,它返回來(lái)給你一句話,看上去像在聊天,但是很難去搭一個(gè)實(shí)用的面向任務(wù)的對(duì)話系統(tǒng),比如訂定機(jī)票,更多的是說(shuō)前面做意圖分析,后面再去具體地執(zhí)行。

對(duì)話前面也說(shuō)了,機(jī)器翻譯也需要知識(shí)庫(kù),但是對(duì)話這個(gè)系統(tǒng)更需要知識(shí)庫(kù),還有多媒體內(nèi)容平臺(tái),比如你要看電影,它需要有一個(gè)電影庫(kù)在后面支持,那就是對(duì)話系統(tǒng)和機(jī)器翻譯系統(tǒng)區(qū)別非常大的一個(gè)地方。

▌3.小微對(duì)話系統(tǒng)

介紹一下我們微信研發(fā)的一套小微對(duì)話系統(tǒng),目前是搭載到了很多硬件上。里面主要的 NLP 任務(wù),內(nèi)容大家看這個(gè)圖,會(huì)有分詞、詞性標(biāo)注、Parsing,還有意圖識(shí)別、命名實(shí)體識(shí)別、槽位填充等 NLP 的任務(wù)都可以設(shè)計(jì)到這個(gè)系統(tǒng)里,也就是我們前面說(shuō)的構(gòu)建一個(gè)產(chǎn)品級(jí)的自然語(yǔ)言處理系統(tǒng),一定會(huì)涉及到多個(gè)層面,多種技術(shù)的使用,才最后拼起來(lái)這么一個(gè)大的系統(tǒng)。

這個(gè)對(duì)話系統(tǒng)實(shí)際上在周邊還需要很多支持的系統(tǒng),現(xiàn)在就是語(yǔ)音交付,前面就是一個(gè)語(yǔ)音識(shí)別,語(yǔ)音識(shí)別可以糾錯(cuò),然后放到這個(gè)對(duì)話系統(tǒng)里面,對(duì)話系統(tǒng)可以返回一個(gè)語(yǔ)音合成的結(jié)果或者說(shuō)一個(gè)屏幕展示的結(jié)果。所謂語(yǔ)音合成的結(jié)果是這樣,比如說(shuō)你問(wèn)對(duì)話系統(tǒng)明天的天氣怎么樣,那么它就直接給你一段語(yǔ)音就好了。,明天的氣溫是多少,日照強(qiáng)度是多少,這個(gè)就合成文本出來(lái),然后文本再合成語(yǔ)音出來(lái)。

再一個(gè)就是屏幕展現(xiàn),比如要看一個(gè)什么電影,語(yǔ)音合成肯定不滿(mǎn)足你的需求了,那么就是到屏幕展現(xiàn)了,電影就被調(diào)出來(lái),然后播放。微信里面語(yǔ)音識(shí)別這個(gè)系統(tǒng)叫“智聆”,然后給它做一個(gè)輸入,交到小微里面去,小微做對(duì)話方面的計(jì)算,然后呈現(xiàn)用戶(hù)結(jié)果。

一些標(biāo)桿的案例,一個(gè)是客服,對(duì)話系統(tǒng)可以來(lái)做客服,你問(wèn)它一個(gè)問(wèn)題,然后它返回給你相應(yīng)的答案。再一個(gè)就是閑聊對(duì)話機(jī)器人,賢二機(jī)器僧是一個(gè)公眾號(hào),你可以跟它去聊一些事情。還有就是車(chē)上的對(duì)話系統(tǒng),比如讓它去導(dǎo)航、播放音樂(lè)、新聞之類(lèi)的。還有就是外交部的能夠自動(dòng)回復(fù)的助手。再一個(gè)就是現(xiàn)在大家能接觸到的智能音箱或者智能機(jī)器人,基本上都要搭載這樣一套對(duì)話系統(tǒng)。一個(gè)對(duì)話系統(tǒng)可以搭載到不同的硬件上去,構(gòu)成不同的一些應(yīng)用場(chǎng)景。

四、開(kāi)發(fā)者的技能進(jìn)階建議

基礎(chǔ)篇,其實(shí)還是要基于很大量的數(shù)學(xué)知識(shí),比如說(shuō)線性代數(shù)、矩陣運(yùn)算這一塊,整個(gè)神經(jīng)網(wǎng)絡(luò)所有的這個(gè)模型都是基于矩陣運(yùn)算來(lái)做的,所以這一塊要熟悉。然后再一個(gè)就是概率論,統(tǒng)計(jì)模型是以概率為基礎(chǔ)的。還有就是高等數(shù)學(xué),在神經(jīng)網(wǎng)絡(luò)或者深度學(xué)習(xí)技術(shù)里面用到的就是函數(shù)、導(dǎo)數(shù)、級(jí)數(shù)、公式推導(dǎo)這些,在數(shù)學(xué)模型統(tǒng)計(jì)方法里面,這些都是基礎(chǔ)的基礎(chǔ),非重要。

第二個(gè)建議是熟練使用一種深度學(xué)習(xí)的平臺(tái),現(xiàn)在 python 基本上成了人工智能的一種流程型的語(yǔ)言,大家可以去熟練地掌握,還有然后其他的深度學(xué)習(xí)平臺(tái),像 TensorFlow 這種,能夠讓你非常方便地來(lái)搭建神經(jīng)網(wǎng)絡(luò)模型,不用再去關(guān)注非常底層的一些運(yùn)算。

推薦一些公開(kāi)課,像 Chris Manning,自然語(yǔ)言處理或者 Standford 里面的 Deep Learning 課程,還有 Coursera 里面的一些自然語(yǔ)言處理課程,大家都可以看一下。下面這個(gè)博客,有一些非常好的資源,大家可以去聽(tīng)別人講一些東西,然后接觸基礎(chǔ)資料,怎么去入門(mén)。

進(jìn)階篇,進(jìn)階篇去研讀一下現(xiàn)在優(yōu)秀的一些深度學(xué)習(xí)的活動(dòng),像 Word2Vec 這種大家用得都非常多的。再?gòu)?fù)雜一點(diǎn)的,像 GNMT,就是谷歌開(kāi)源出來(lái)的一套神經(jīng)網(wǎng)絡(luò)的代碼。然后 Tensor2Tensor,大家在看的時(shí)候,一方面可以去學(xué)習(xí)模型,另一方面可以學(xué)習(xí)深度學(xué)習(xí)平臺(tái)的使用方法。也就是你讀別人的代碼,可以學(xué)到很多東西。再一個(gè)就是培養(yǎng)問(wèn)題建模的能力,就是說(shuō)你要對(duì)問(wèn)題和模型比較熟悉,給你一個(gè)問(wèn)題你大概能判斷出它大概用哪個(gè)模型去解決會(huì)好一點(diǎn)。再一個(gè)模型實(shí)現(xiàn),就是你能把它實(shí)現(xiàn)出來(lái),然后跑出實(shí)驗(yàn)結(jié)果出來(lái),就要性能分析、調(diào)優(yōu),然后加一些訓(xùn)練方法進(jìn)去,能夠很好地實(shí)現(xiàn)任務(wù)。

創(chuàng)新篇,這是更高階段的一個(gè)目標(biāo)。要去研究最新的方法,要讀論文,然后對(duì)這個(gè)領(lǐng)域的研究現(xiàn)狀和方法都有一個(gè)比較清晰的認(rèn)識(shí),然后看透問(wèn)題的本質(zhì)大概是怎樣的,然后嘗試提出自己的觀點(diǎn)和創(chuàng)新性的解決方法,然后能拿合理的實(shí)驗(yàn)方法去驗(yàn)證。

五、答聽(tīng)眾問(wèn)

Q:中文分詞和深度學(xué)習(xí)的算法相比差距有多少?還需要學(xué)習(xí)傳統(tǒng)算法嗎?

A:我讀博前兩年做了分詞相關(guān)的研究,用深度學(xué)習(xí)方法做過(guò),也用統(tǒng)計(jì)的方法做過(guò)。那實(shí)際上在一個(gè)標(biāo)準(zhǔn)的語(yǔ)料上,就是有一個(gè)標(biāo)準(zhǔn)的任務(wù),比如在 3 萬(wàn)個(gè)句子上做訓(xùn)練,然后在幾百個(gè)句子上做分詞的話,神經(jīng)網(wǎng)絡(luò)的方法在表現(xiàn)上面并不具備比傳統(tǒng)方法特別好的一個(gè)表現(xiàn),但在標(biāo)準(zhǔn)的任務(wù)上,神經(jīng)網(wǎng)絡(luò)方法一個(gè)好處就是它不需要設(shè)計(jì)特征模板。

Q:序列化標(biāo)注模型有什么成熟的模型?

A:其實(shí)有很多很成熟的模型和工具,問(wèn)題模型就是序列標(biāo)注問(wèn)題,模型有 CRFCIF 或者 MEMM1Mn等,就是最大熵之類(lèi)的,這些都有一些開(kāi)源的開(kāi)放包,你就直接拿著它然后搞一下特征,輸進(jìn)去,就可以訓(xùn)練了,都是非常成熟的,神經(jīng)網(wǎng)絡(luò)也可以做序列標(biāo)注任務(wù)。

Q:有監(jiān)督和無(wú)監(jiān)督方法哪個(gè)更有優(yōu)勢(shì)或者兩者區(qū)別,可以具體說(shuō)個(gè)例子嗎?

A:有監(jiān)督方法和無(wú)監(jiān)督方法的應(yīng)用場(chǎng)景不一樣。目前自然語(yǔ)言處理任務(wù)在產(chǎn)品當(dāng)中應(yīng)用的難點(diǎn),一個(gè)就是有限的標(biāo)注數(shù)據(jù),要完成很多任務(wù),你先是要去標(biāo)注數(shù)據(jù),需要的人力成本比較高,然后人與人之間的標(biāo)注數(shù)據(jù)也會(huì)存在一些不一致性,并且你針對(duì)某一個(gè)具體任務(wù)標(biāo)注的數(shù)據(jù)它很難遷移到其他任務(wù)上去使用,所以這個(gè)有監(jiān)督的方法還是比較局限,然后成本比較高。無(wú)監(jiān)督方法就想解決這個(gè)問(wèn)題,就是怎么把這個(gè)成本降下來(lái),但問(wèn)題是無(wú)監(jiān)督的方法現(xiàn)在的效果不太好,因?yàn)闊o(wú)監(jiān)督它確實(shí)知識(shí)很少,離應(yīng)用也會(huì)更差一些,但是無(wú)監(jiān)督是一個(gè)非常值得研究的問(wèn)題,如果真的哪天這個(gè)問(wèn)題能夠很好地解決,不再需要標(biāo)數(shù)據(jù)的方式,那么無(wú)監(jiān)督方法就可以通用了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5561

    瀏覽量

    122825
  • 自然語(yǔ)言
    +關(guān)注

    關(guān)注

    1

    文章

    292

    瀏覽量

    13658
  • nlp
    nlp
    +關(guān)注

    關(guān)注

    1

    文章

    490

    瀏覽量

    22631

原文標(biāo)題:微信高級(jí)研究員解析深度學(xué)習(xí)在NLP中的發(fā)展和應(yīng)用 | 公開(kāi)課筆記

文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    拿高薪必備的深度學(xué)習(xí)nlp技術(shù),這篇文章講得很透徹

    本文通過(guò)深度學(xué)習(xí)技術(shù)來(lái)闡述2017年NLP領(lǐng)域所取得的一系列進(jìn)步
    的頭像 發(fā)表于 12-16 07:59 ?7441次閱讀

    深度學(xué)習(xí)汽車(chē)的應(yīng)用

    神經(jīng)系統(tǒng),因此支持人工智能的概念。圖 2:簡(jiǎn)易反向傳播示例盡管深度學(xué)習(xí)具有效力,但其實(shí)際應(yīng)用也遇到了一些挑戰(zhàn)。對(duì)于容易受到系統(tǒng)限制因素(如總體成本、功耗和擴(kuò)展計(jì)算能力)影響的嵌入式
    發(fā)表于 03-13 06:45

    專(zhuān)欄 | 深度學(xué)習(xí)NLP的運(yùn)用?從分詞、詞性到機(jī)器翻譯、對(duì)話系統(tǒng)

    從分詞、詞性等基礎(chǔ)模塊,到機(jī)器翻譯、知識(shí)問(wèn)答等領(lǐng)域,本文列舉并分析一些深度學(xué)習(xí) NLP 領(lǐng)域的具體運(yùn)用,希望對(duì)大家研究深度
    的頭像 發(fā)表于 08-18 17:06 ?7839次閱讀
    專(zhuān)欄 | <b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>在</b><b class='flag-5'>NLP</b><b class='flag-5'>中</b>的運(yùn)用?從分詞、詞性到機(jī)器翻譯、對(duì)話系統(tǒng)

    對(duì)2017年NLP領(lǐng)域中深度學(xué)習(xí)技術(shù)應(yīng)用的總結(jié)

    本文作者Javier Couto是tryo labs公司的一名研發(fā)科學(xué)家,專(zhuān)注于NLP技術(shù)。這篇文章是他對(duì)2017年NLP領(lǐng)域中深度學(xué)習(xí)技術(shù)應(yīng)用的總結(jié),也許并不全面,但都是他認(rèn)為有價(jià)值
    的頭像 發(fā)表于 12-28 10:02 ?5811次閱讀
    對(duì)2017年<b class='flag-5'>NLP</b>領(lǐng)域中<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>技術(shù)應(yīng)用的總結(jié)

    回顧2018年深度學(xué)習(xí)NLP十大創(chuàng)新思路

    Sebastian Ruder 是一位 NLP 方向的博士生、研究科學(xué)家,目前供職于一家做 NLP 相關(guān)服務(wù)的愛(ài)爾蘭公司 AYLIEN,同時(shí),他也是一位活躍的博客作者,發(fā)表了多篇機(jī)器學(xué)習(xí)、NL
    的頭像 發(fā)表于 01-08 11:25 ?3809次閱讀

    NLP深度學(xué)習(xí)技術(shù)概述

    該項(xiàng)目是對(duì)基于深度學(xué)習(xí)的自然語(yǔ)言處理(NLP)的概述,包括用來(lái)解決不同 NLP 任務(wù)和應(yīng)用的深度學(xué)習(xí)
    的頭像 發(fā)表于 03-01 09:13 ?5224次閱讀
    <b class='flag-5'>NLP</b><b class='flag-5'>中</b>的<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>技術(shù)概述

    AI 深度學(xué)習(xí) 機(jī)器學(xué)習(xí)NLP四種先進(jìn)技術(shù)的不同

    隨著人類(lèi)技術(shù)的不斷發(fā)展,人工智能,深度學(xué)習(xí),機(jī)器學(xué)習(xí)NLP都是受歡迎的搜索熱詞。
    的頭像 發(fā)表于 05-03 18:09 ?2987次閱讀

    一文讀懂何為深度學(xué)習(xí)1

    自然語(yǔ)言處理領(lǐng)域的殿堂標(biāo)志 BERT 并非橫空出世,背后有它的發(fā)展原理。今天,螞蟻金服財(cái)富對(duì)話算法團(tuán)隊(duì)整理對(duì)比了深度學(xué)習(xí)模型自然語(yǔ)言處理領(lǐng)域的發(fā)展
    發(fā)表于 02-22 09:54 ?665次閱讀
    一文讀懂何為<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>1

    一文讀懂何為深度學(xué)習(xí)2

    自然語(yǔ)言處理領(lǐng)域的殿堂標(biāo)志 BERT 并非橫空出世,背后有它的發(fā)展原理。今天,螞蟻金服財(cái)富對(duì)話算法團(tuán)隊(duì)整理對(duì)比了深度學(xué)習(xí)模型自然語(yǔ)言處理領(lǐng)域的發(fā)展
    發(fā)表于 02-22 09:54 ?460次閱讀
    一文讀懂何為<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>2

    一文讀懂何為深度學(xué)習(xí)3

    自然語(yǔ)言處理領(lǐng)域的殿堂標(biāo)志 BERT 并非橫空出世,背后有它的發(fā)展原理。今天,螞蟻金服財(cái)富對(duì)話算法團(tuán)隊(duì)整理對(duì)比了深度學(xué)習(xí)模型自然語(yǔ)言處理領(lǐng)域的發(fā)展
    發(fā)表于 02-22 09:55 ?571次閱讀
    一文讀懂何為<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>3

    深度學(xué)習(xí)語(yǔ)音識(shí)別的應(yīng)用及挑戰(zhàn)

    一、引言 隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,其語(yǔ)音識(shí)別領(lǐng)域的應(yīng)用也日益廣泛。深度學(xué)習(xí)技術(shù)可以有效地提
    的頭像 發(fā)表于 10-10 18:14 ?1253次閱讀

    GPU深度學(xué)習(xí)的應(yīng)用與優(yōu)勢(shì)

    人工智能的飛速發(fā)展,深度學(xué)習(xí)作為其重要分支,正在推動(dòng)著諸多領(lǐng)域的創(chuàng)新。在這個(gè)過(guò)程,GPU扮演著不可或缺的角色。就像超級(jí)英雄電影的主角一樣
    的頭像 發(fā)表于 12-06 08:27 ?1929次閱讀
    GPU<b class='flag-5'>在</b><b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>中</b>的應(yīng)用與優(yōu)勢(shì)

    深度學(xué)習(xí)nlp的區(qū)別在哪

    深度學(xué)習(xí)和自然語(yǔ)言處理(NLP)是計(jì)算機(jī)科學(xué)領(lǐng)域中兩個(gè)非常重要的研究方向。它們之間既有聯(lián)系,也有區(qū)別。本文將介紹深度學(xué)習(xí)
    的頭像 發(fā)表于 07-05 09:47 ?1665次閱讀

    GPU深度學(xué)習(xí)應(yīng)用案例

    GPU深度學(xué)習(xí)的應(yīng)用廣泛且重要,以下是一些GPU深度學(xué)習(xí)應(yīng)用案例: 一、圖像識(shí)別 圖像識(shí)別是
    的頭像 發(fā)表于 10-27 11:13 ?1393次閱讀

    NPU深度學(xué)習(xí)的應(yīng)用

    隨著人工智能技術(shù)的飛速發(fā)展,深度學(xué)習(xí)作為其核心驅(qū)動(dòng)力之一,已經(jīng)眾多領(lǐng)域展現(xiàn)出了巨大的潛力和價(jià)值。NPU(Neural Processing Unit,神經(jīng)網(wǎng)絡(luò)處理單元)是專(zhuān)門(mén)為
    的頭像 發(fā)表于 11-14 15:17 ?1936次閱讀