深度學(xué)習(xí)在自然語(yǔ)言處理方面的應(yīng)用打造智能聊天機(jī)器人
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
作者:張俊林,中科院軟件所博士,技術(shù)書(shū)籍《這就是搜索引擎:核心技術(shù)詳解》、《大數(shù)據(jù)日知錄:架構(gòu)與算法》作者。曾擔(dān)任阿里巴巴、百度、新浪微博資深技術(shù)專家,目前是用友暢捷通工智能相關(guān)業(yè)務(wù)負(fù)責(zé)人,關(guān)注深度學(xué)習(xí)在自然語(yǔ)言處理方面的應(yīng)用。
責(zé)編:周建?。▃houjd@csdn.net)
本文為《程序員》原創(chuàng)文章,未經(jīng)允許不得轉(zhuǎn)載,更多內(nèi)容請(qǐng)訂閱2016年《程序員》
聊天機(jī)器人(也可以稱為語(yǔ)音助手、聊天助手、對(duì)話機(jī)器人等)是目前非常熱的一個(gè)人工智能研發(fā)與產(chǎn)品方向。很多大型互聯(lián)網(wǎng)公司投入重金研發(fā)相關(guān)技術(shù),并陸續(xù)推出了相關(guān)產(chǎn)品,比如蘋(píng)果Siri、微軟Cortana與小冰、Google Now、百度的“度秘”、亞馬遜的藍(lán)牙音箱Echo內(nèi)置的語(yǔ)音助手Alexa、Facebook推出的語(yǔ)音助手M、Siri創(chuàng)始人新推出的Viv……
究其原因在于大家都將聊天機(jī)器人定位為未來(lái)各種服務(wù)的入口,尤其是移動(dòng)端App及可穿戴設(shè)備場(chǎng)景下提供各種服務(wù)的入口。
聊天機(jī)器人的類型
目前市場(chǎng)上有各種類型的聊天機(jī)器人,比如有京東JIMI客服機(jī)器人,兒童教育機(jī)器人,小冰娛樂(lè)聊天機(jī)器人,Alexa家居控制、車(chē)載控制機(jī)器人,Viv全方位服務(wù)類型機(jī)器人等。這是從應(yīng)用方向?qū)α奶鞕C(jī)器人的一種劃分。
如果對(duì)應(yīng)用目的或者技術(shù)手段進(jìn)行抽象,聊天機(jī)器人可以有以下兩種劃分方法。
目標(biāo)驅(qū)動(dòng)(Goal Driven) VS 無(wú)目標(biāo)驅(qū)動(dòng)(Non-Goal Driven)聊天機(jī)器人
目標(biāo)驅(qū)動(dòng)的聊天機(jī)器人指的是聊天機(jī)器人有明確的服務(wù)目標(biāo)或者服務(wù)對(duì)象,比如客服機(jī)器人、兒童教育機(jī)器人、類似Viv的提供天氣/訂票/訂餐等服務(wù)的服務(wù)機(jī)器人等,這種目標(biāo)驅(qū)動(dòng)的聊天機(jī)器人也可以稱作特定領(lǐng)域的聊天機(jī)器人。
無(wú)目標(biāo)驅(qū)動(dòng)聊天機(jī)器人指的是聊天機(jī)器人并非為特定領(lǐng)域服務(wù)目的而開(kāi)發(fā),比如純粹聊天或者出于娛樂(lè)聊天目的以及計(jì)算機(jī)游戲中的虛擬人物聊天機(jī)器人都屬于此類。這種無(wú)明確任務(wù)目標(biāo)的聊天機(jī)器人也可以稱作為開(kāi)放領(lǐng)域的聊天機(jī)器人。
檢索式 VS 生成式聊天機(jī)器人
檢索式聊天機(jī)器人指的是事先存在一個(gè)對(duì)話庫(kù),聊天系統(tǒng)接收到用戶輸入句子后,通過(guò)在對(duì)話庫(kù)中以搜索匹配的方式進(jìn)行應(yīng)答內(nèi)容提取。很明顯,這種方式對(duì)對(duì)話庫(kù)要求很高,需要對(duì)話庫(kù)足夠大,能夠盡量多地匹配用戶問(wèn)句,否則會(huì)經(jīng)常出現(xiàn)找不到合適回答內(nèi)容的情形(因?yàn)樵谡鎸?shí)場(chǎng)景下用戶說(shuō)什么都是可能的),但它的好處是回答質(zhì)量高,因?yàn)閷?duì)話庫(kù)中的內(nèi)容都是真實(shí)的對(duì)話數(shù)據(jù),表達(dá)比較自然。
生成式聊天機(jī)器人則采取不同的技術(shù)思路,在接收到用戶輸入句子后,采用一定技術(shù)手段自動(dòng)生成一句話作為應(yīng)答,這個(gè)路線機(jī)器人的好處是可能覆蓋任意話題的用戶問(wèn)句,但是缺點(diǎn)是生成應(yīng)答句子質(zhì)量很可能會(huì)存在問(wèn)題,比如語(yǔ)句不通順、句法錯(cuò)誤等看上去比較低級(jí)的錯(cuò)誤。
本文重點(diǎn)介紹開(kāi)放領(lǐng)域、生成式的聊天機(jī)器人如何通過(guò)深度學(xué)習(xí)技術(shù)來(lái)構(gòu)建,很明顯這是最難處理的一種情況。
好聊天機(jī)器人應(yīng)該具備的特點(diǎn)
一般而言,一個(gè)優(yōu)秀的開(kāi)放領(lǐng)域聊天機(jī)器人應(yīng)該具備如下特點(diǎn):
首先,針對(duì)用戶的回答或者聊天內(nèi)容,機(jī)器人產(chǎn)生的應(yīng)答句應(yīng)該和用戶的問(wèn)句語(yǔ)義一致并邏輯正確,如果聊天機(jī)器人答非所問(wèn)或者不知所云,或者總是回答說(shuō)“對(duì)不起,我不理解您的意思”,無(wú)疑是毀滅性的用戶體驗(yàn)。
其次,回答應(yīng)該語(yǔ)法正確。這個(gè)看似是基本要求,但是對(duì)于采用生成式對(duì)話技術(shù)的機(jī)器人來(lái)說(shuō)其實(shí)有一定困難,因?yàn)闄C(jī)器人的回答是一個(gè)字一個(gè)字生成,要保證這種生成的若干個(gè)字句法正確,并不容易做得那么完美。
再次,應(yīng)答應(yīng)該是有趣、多樣而非沉悶無(wú)聊的。盡管有些應(yīng)答看上去語(yǔ)義沒(méi)什么問(wèn)題,但目前技術(shù)訓(xùn)練出的聊天機(jī)器人很容易產(chǎn)生“安全回答”的問(wèn)題,就是說(shuō),不論用戶輸入什么句子,聊天機(jī)器人總是回答“好啊”、“是嗎”等諸如此類,看上去語(yǔ)義說(shuō)得過(guò)去,但是這給人很無(wú)聊的感覺(jué)。
此外,聊天機(jī)器人應(yīng)該給人“個(gè)性表達(dá)一致”的感覺(jué)。因?yàn)槿藗兒土奶鞕C(jī)器人交流,從內(nèi)心習(xí)慣還是將溝通對(duì)象想象成一個(gè)人,而一個(gè)人應(yīng)該有相對(duì)一致的個(gè)性特征,如果用戶連續(xù)問(wèn)兩次“你多大了”,而聊天機(jī)器人分別給出不同的歲數(shù),那么會(huì)給人交流對(duì)象精神分裂的印象,這即是典型的個(gè)性表達(dá)不一致。而好的聊天機(jī)器人應(yīng)該對(duì)外體現(xiàn)出各種基本背景信息以及愛(ài)好、語(yǔ)言風(fēng)格等方面一致的回答。
幾種主流技術(shù)思路
當(dāng)前聊天機(jī)器人的幾種主流技術(shù)包括:基于人工模板、基于檢索、基于機(jī)器翻譯技術(shù),以及基于深度學(xué)習(xí)的聊天機(jī)器人。
基于 人工模板的技術(shù)通過(guò)人工設(shè)定對(duì)話場(chǎng)景,并對(duì)每個(gè)場(chǎng)景編寫(xiě)針對(duì)性的對(duì)話模板,模板描述了用戶可能的問(wèn)題以及對(duì)應(yīng)的答案。這個(gè)技術(shù)路線的好處是精準(zhǔn),缺點(diǎn)是需要大量人工工作,而且可擴(kuò)展性差,需要一個(gè)場(chǎng)景一個(gè)場(chǎng)景去擴(kuò)展。目前市場(chǎng)上各種類似于Siri的對(duì)話機(jī)器人中都大量使用了人工模板的技術(shù),但其精準(zhǔn)性是其他方法還無(wú)法比擬的。
基于 檢索技術(shù)的聊天機(jī)器人則走的是類似搜索引擎的路線,事先存儲(chǔ)好對(duì)話庫(kù)并建立索引,根據(jù)用戶問(wèn)句,在對(duì)話庫(kù)中進(jìn)行模糊匹配找到最合適的應(yīng)答內(nèi)容。
基于 機(jī)器翻譯技術(shù)的聊天機(jī)器人把聊天過(guò)程比擬成機(jī)器翻譯過(guò)程,就是說(shuō)將用戶輸入聊天信息Message,翻譯成聊天機(jī)器人應(yīng)答Response的過(guò)程類似于把英語(yǔ)翻譯成漢語(yǔ)。基于這種假設(shè),就完全可以將統(tǒng)計(jì)機(jī)器翻譯領(lǐng)域相對(duì)成熟的技術(shù)直接應(yīng)用到聊天機(jī)器人開(kāi)發(fā)中。
基于 深度學(xué)習(xí)的聊天機(jī)器人技術(shù)是本文后續(xù)內(nèi)容主要介紹的技術(shù)路線,總體而言,絕大多數(shù)技術(shù)都是在Encoder-Decoder(或者稱作Sequence to Sequence)深度學(xué)習(xí)技術(shù)框架下改進(jìn)的。使用深度學(xué)習(xí)技術(shù)來(lái)開(kāi)發(fā)聊天機(jī)器人相對(duì)傳統(tǒng)方法來(lái)說(shuō),整體思路非常簡(jiǎn)單并可擴(kuò)展。
利用深度學(xué)習(xí)構(gòu)建聊天機(jī)器人
如上所述,目前對(duì)于開(kāi)放領(lǐng)域生成式聊天機(jī)器人技術(shù)而言,多數(shù)采用了Encoder-Decoder框架,所以這里首先描述Encoder-Decoder框架技術(shù)原理。然后分別針對(duì)聊天機(jī)器人研究領(lǐng)域需要特殊考慮的主要問(wèn)題及其對(duì)應(yīng)的解決方案進(jìn)行講解,這些主要問(wèn)題分別是:多輪會(huì)話中的上下文機(jī)制、“安全回答”以及個(gè)性信息一致性問(wèn)題。
Encoder-Decoder框架
Encoder-Decoder框架可以看作一種文本處理領(lǐng)域的研究模式,應(yīng)用場(chǎng)景異常廣泛,不僅可用在對(duì)話機(jī)器人領(lǐng)域,還可以應(yīng)用在機(jī)器翻譯、文本摘要、句法分析等各種場(chǎng)合。圖1是文本處理領(lǐng)域里常用的Encoder-Decoder框架最抽象的一種表示。Encoder-Decoder框架可以直觀地理解為適合處理由一個(gè)句子(或篇章)生成另外一個(gè)句子(或篇章)的通用處理模型。對(duì)于句子對(duì)(X,Y),我們的目標(biāo)是給定輸入句子X(jué),期待通過(guò)Encoder-Decoder框架來(lái)生成目標(biāo)句子Y。X和Y可以是同一種語(yǔ)言,也可以是兩種不同的語(yǔ)言。而X和Y分別由各自的單詞序列構(gòu)成:
Encoder顧名思義就是對(duì)輸入句子X(jué)進(jìn)行編碼,將輸入句子通過(guò)非線性變換轉(zhuǎn)化為中間語(yǔ)義表示C:
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%
下載地址
深度學(xué)習(xí)在自然語(yǔ)言處理方面的應(yīng)用打造智能聊天機(jī)器人下載
相關(guān)電子資料下載
- 深度學(xué)習(xí)在工業(yè)缺陷檢測(cè)中的應(yīng)用 63
- 探討目前主流3D激光SLAM算法方案 94
- 華為成為中國(guó)首個(gè)PyTorch基金會(huì)Premier會(huì)員 453
- 《人工智能在指揮和控制系統(tǒng)中的決策支持》 133
- 中國(guó)手機(jī)廠商發(fā)力這一領(lǐng)域 外媒:大戲剛剛開(kāi)始 262
- 百度智能云推出國(guó)內(nèi)首個(gè)大模型全鏈路生態(tài)支持體系 251
- 人工智能領(lǐng)域存在第一性原理嗎? 53
- 基于機(jī)器視覺(jué)檢測(cè)技術(shù)現(xiàn)狀 41
- 自動(dòng)駕駛規(guī)控決策方面的建議與解決方案 40
- 里程碑 主線科技無(wú)人集卡在舟山港開(kāi)啟全天候真無(wú)人常態(tài)化運(yùn)營(yíng) 166