使用深度學(xué)習(xí)打造智能聊天機(jī)器人

聊天機(jī)器人(也可以稱為語(yǔ)音助手、聊天助手、對(duì)話機(jī)器人等)是目前非常熱的一個(gè)人工智能研發(fā)與產(chǎn)品方向。很多大的互聯(lián)網(wǎng)公司重金投入研發(fā)相關(guān)技術(shù),并陸續(xù)推出了相關(guān)產(chǎn)品,比如蘋果Siri、微軟Cortana與小冰、Google Now、百度的“度秘”、亞馬遜的藍(lán)牙音箱Amazon Echo內(nèi)置的語(yǔ)音助手Alexa、Facebook推出的語(yǔ)音助手M、Siri創(chuàng)始人推出的新型語(yǔ)音助手Viv…….

為何老牌互聯(lián)網(wǎng)公司和很多創(chuàng)業(yè)公司都密集地在聊天機(jī)器人領(lǐng)域進(jìn)行投入?其實(shí)根本原因在于大家都將聊天機(jī)器人定位為未來(lái)各種服務(wù)的入口,尤其是移動(dòng)端APP應(yīng)用及可穿戴設(shè)備場(chǎng)景下提供各種服務(wù)的服務(wù)入口,這類似于Web端搜索引擎的入口作用。將來(lái)很可能通過(guò)語(yǔ)音助手繞過(guò)目前的很多APP直接提供各種服務(wù),比如查詢天氣、定航班、訂餐、智能家居的設(shè)備控制、車載設(shè)備的語(yǔ)音控制等等,目前大多采用獨(dú)立APP形式來(lái)提供服務(wù),而將來(lái)很多以APP形式存在的應(yīng)用很可能會(huì)消失不見,直接隱身到語(yǔ)音助手背后。作為未來(lái)各種應(yīng)用服務(wù)的入口,其市場(chǎng)影響力毫無(wú)疑問(wèn)是巨大的,這是為何這個(gè)方向如此火熱的根本原因,大家都在為爭(zhēng)奪未來(lái)服務(wù)入口而提前布局與競(jìng)爭(zhēng),雖然很多公司并未直接聲明這個(gè)原因,但其目的是顯而易見的。

|聊天機(jī)器人的類型

目前市場(chǎng)上有各種類型的機(jī)器人,比如有京東JIMI這種客服機(jī)器人,兒童教育機(jī)器人,小冰這種娛樂(lè)聊天機(jī)器人,Aexa這種家居控制機(jī)器人、車載控制機(jī)器人、Viv這種全方位服務(wù)類型機(jī)器人等等。這是從應(yīng)用方向角度來(lái)對(duì)聊天機(jī)器人的一種劃分。

如果對(duì)其應(yīng)用目的或者技術(shù)手段進(jìn)行抽象,可以有以下兩種劃分方法。


目標(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ù)目的而開發(fā)的,比如純粹聊天或者出于娛樂(lè)聊天目的以及計(jì)算機(jī)游戲中的虛擬人物的聊天機(jī)器人都屬于此類。這種無(wú)明確任務(wù)目標(biāo)的聊天機(jī)器人也可以被稱作為開放領(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)介紹開放領(lǐng)域、生成式的聊天機(jī)器人如何通過(guò)深度學(xué)習(xí)技術(shù)來(lái)構(gòu)建,很明顯這是最難處理的一種情況。

|好的聊天機(jī)器人應(yīng)該具備的特點(diǎn)

一般而言,一個(gè)優(yōu)秀的開放領(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ì)不起,我不理解您的意思”,對(duì)于聊天機(jī)器人來(lái)說(shuō)無(wú)疑是毀滅性的用戶體驗(yàn)。

其次,聊天機(jī)器人的回答應(yīng)該是語(yǔ)法正確的。這個(gè)看似是基本要求,但是對(duì)于采用生成式對(duì)話技術(shù)的機(jī)器人來(lái)說(shuō)其實(shí)要保證這一點(diǎn)是有一定困難的,因?yàn)闄C(jī)器人的回答是一個(gè)字一個(gè)字生成的,如何保證這種生成的若干個(gè)字是句法正確的其實(shí)并不容易做得那么完美。

再次,聊天機(jī)器人的應(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ù)思路

隨著技術(shù)的發(fā)展,對(duì)于聊天機(jī)器人技術(shù)而言,常見的幾種主流技術(shù)包括:基于人工模板的聊天機(jī)器人、基于檢索的聊天機(jī)器人、基于機(jī)器翻譯技術(shù)的聊天機(jī)器人、基于深度學(xué)習(xí)的聊天機(jī)器人。

基于人工模板的技術(shù)通過(guò)人工設(shè)定對(duì)話場(chǎng)景,并對(duì)每個(gè)場(chǎng)景寫一些針對(duì)性的對(duì)話模板,模板描述了用戶可能的問(wèn)題以及對(duì)應(yīng)的答案模板。這個(gè)技術(shù)路線的好處是精準(zhǔn),缺點(diǎn)是需要大量人工工作,而且可擴(kuò)展性差,需要一個(gè)場(chǎng)景一個(gè)場(chǎng)景去擴(kuò)展。應(yīng)該說(shuō)目前市場(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ò)程看做是把Message翻譯成Response的過(guò)程,類似于把英語(yǔ)翻譯成漢語(yǔ)?;谶@種假設(shè),就完全可以將統(tǒng)計(jì)機(jī)器翻譯領(lǐng)域里相對(duì)成熟的技術(shù)直接應(yīng)用到聊天機(jī)器人開發(fā)領(lǐng)域來(lái)。

? ?基于深度學(xué)習(xí)的聊天機(jī)器人技術(shù)是本文后續(xù)內(nèi)容主要介紹的技術(shù)路線,總體而言,絕大多數(shù)技術(shù)都是在Encoder-Decoder(或者稱作是Sequence to Sequence)深度學(xué)習(xí)技術(shù)框架下進(jìn)行改進(jìn)的。使用深度學(xué)習(xí)技術(shù)來(lái)開發(fā)聊天機(jī)器人相對(duì)傳統(tǒng)方法來(lái)說(shuō)整體思路是非常簡(jiǎn)單可擴(kuò)展的。

|深度學(xué)習(xí)構(gòu)建聊天機(jī)器人

如上所述,目前對(duì)于開放領(lǐng)域生成式聊天機(jī)器人技術(shù)而言,多數(shù)技術(shù)采用了Encoder-Decoder框架,所以本節(jié)首先描述Encoder-Decoder框架技術(shù)原理。然后分別針對(duì)聊天機(jī)器人研究領(lǐng)域需要特殊考慮的主要問(wèn)題及其對(duì)應(yīng)的解決方案進(jìn)行講解,這些主要問(wèn)題分別是:多輪會(huì)話中的上下文機(jī)制問(wèn)題、“安全回答”問(wèn)題以及個(gè)性信息一致性問(wèn)題。

Encoder-Decoder框架

Encoder-Decoder框架可以看作是一種文本處理領(lǐng)域的研究模式,應(yīng)用場(chǎng)景異常廣泛,不僅僅可以用在對(duì)話機(jī)器人領(lǐng)域,還可以應(yīng)用在機(jī)器翻譯、文本摘要、句法分析等各種場(chǎng)合。下圖是文本處理領(lǐng)域里常用的Encoder-Decoder框架最抽象的一種表示:

圖1.?抽象的Encoder-Decoder框架

Encoder-Decoder框架可以如此直觀地去理解:可以把它看作適合處理由一個(gè)句子(或篇章)生成另外一個(gè)句子(或篇章)的通用處理模型。對(duì)于句子對(duì),我們的目標(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:


對(duì)于解碼器Decoder來(lái)說(shuō),其任務(wù)是根據(jù)句子X(jué)的中間語(yǔ)義表示C和之前已經(jīng)生成的歷史信息來(lái)生成i時(shí)刻要生成的單詞yi:


每個(gè)yi都依次這么產(chǎn)生,那么看起來(lái)就是整個(gè)系統(tǒng)根據(jù)輸入句子X(jué)生成了目標(biāo)句子Y。

對(duì)于聊天機(jī)器人來(lái)說(shuō),完全可以使用上述的Encoder-Decoder框架來(lái)解決技術(shù)問(wèn)題。具體而言,對(duì)應(yīng)的中,X指的是用戶輸入語(yǔ)句,一般稱作Message,而Y一般指的是聊天機(jī)器人的應(yīng)答語(yǔ)句,一般稱作Response。其含義是當(dāng)用戶輸入Message后,經(jīng)過(guò)Encoder-Decoder框架計(jì)算,首先由Encoder對(duì)Message進(jìn)行語(yǔ)義編碼,形成中間語(yǔ)義表示C,Decoder根據(jù)中間語(yǔ)義表示C生成了聊天機(jī)器人的應(yīng)答Response。這樣,用戶反復(fù)輸入不同的Message,聊天機(jī)器人每次都形成新的應(yīng)答Response,形成了一個(gè)實(shí)際的對(duì)話系統(tǒng)。

在實(shí)際實(shí)現(xiàn)聊天系統(tǒng)的時(shí)候,一般Encoder和Decoder都采用RNN模型,RNN模型對(duì)于文本這種線性序列來(lái)說(shuō)是最常用的深度學(xué)習(xí)模型,RNN的改進(jìn)模型LSTM以及GRU模型也是經(jīng)常使用的模型,對(duì)于句子比較長(zhǎng)的情形,LSTM和GRU模型效果要明顯優(yōu)于RNN模型。盡管如此,當(dāng)句子長(zhǎng)度超過(guò)30以后,LSTM模型的效果會(huì)急劇下降,一般此時(shí)會(huì)引入Attention模型,這是一種體現(xiàn)輸出Y和輸入X句子單詞之間對(duì)齊概率的神經(jīng)網(wǎng)絡(luò)模型,對(duì)于長(zhǎng)句子來(lái)說(shuō)能夠明顯提升系統(tǒng)效果。

文獻(xiàn)1和文獻(xiàn)2都較早采用Encoder-Decoder模型來(lái)建立對(duì)話機(jī)器人,一般的做法是采用收集Twitter或者微博中評(píng)論里的聊天信息來(lái)作為訓(xùn)練數(shù)據(jù),用大量的此類聊天信息來(lái)訓(xùn)練Encoder-Decoder模型中RNN對(duì)應(yīng)的神經(jīng)網(wǎng)絡(luò)連接參數(shù)。圖2展示了利用微博評(píng)論對(duì)話數(shù)據(jù)訓(xùn)練好的聊天機(jī)器人的聊天效果,其中Post列指的是用戶輸入Message,其后三列是不同Encoder-Decoder方法產(chǎn)生的應(yīng)答Response,而最后一列是基于傳統(tǒng)檢索方法的輸出應(yīng)答。


????????????? 圖2.?聊天機(jī)器人聊天效果示例

多輪會(huì)話中的上下文問(wèn)題

? 上述Encoder-Decoder框架可以根據(jù)用戶當(dāng)前輸入Message,聊天機(jī)器人自動(dòng)生成應(yīng)答Response,形成了一個(gè)有效的對(duì)話系統(tǒng)。但是一般人們聊天并不是單純的一問(wèn)一答,在回答的時(shí)候到底說(shuō)什么內(nèi)容常常要參考上下文Context信息,所謂對(duì)話上下文Context,也就是在用戶當(dāng)前輸入問(wèn)句Message之前兩者的對(duì)話信息,因?yàn)榇嬖诙噍喌囊粏?wèn)一答,這種情形一般稱為多輪會(huì)話。在多輪會(huì)話中,一般將上下文稱作Context,當(dāng)前輸入稱為Message,應(yīng)答稱作Response。

深度學(xué)習(xí)來(lái)解決多輪會(huì)話的關(guān)鍵是如何將上下文聊天信息Context引入到Encoder-Decoder模型中去的問(wèn)題。很明顯,上下文聊天信息Context應(yīng)該引入到Encoder中,因?yàn)檫@是除了當(dāng)前輸入Message外的額外信息,有助于Decoder生成更好的會(huì)話應(yīng)答Response內(nèi)容。目前不同的研究主體思路都是這樣的,無(wú)非在如何將Context信息在Encoder端建立模型或者說(shuō)具體的融入模型有些不同而已。

在上文所述的Encoder-Decoder框架中,很容易想到一種直觀地將Context信息融入Encoder的思路:無(wú)上下文信息的Encoder-Decoder模型的輸入僅僅包含Message,只需要把上下文信息Context和信息Message拼接起來(lái)形成一個(gè)長(zhǎng)的輸入提供給Encoder,這樣就把上下文信息融入模型中了。這個(gè)直覺(jué)本身其實(shí)是沒(méi)有什么問(wèn)題的,但是對(duì)于采用RNN模型的Encoder來(lái)說(shuō)會(huì)存在如下問(wèn)題:因?yàn)檩斎胧菤v史上下文Context加上當(dāng)前輸入Message構(gòu)成的,有時(shí)候輸入會(huì)非常長(zhǎng),而眾所周知,對(duì)于RNN模型來(lái)說(shuō),如果輸入的線型序列長(zhǎng)度越長(zhǎng),模型效果越差。所以這樣簡(jiǎn)單地拼接Context和Message的策略明顯不會(huì)產(chǎn)生太好的聊天效果。

考慮到RNN對(duì)長(zhǎng)度敏感的問(wèn)題,文獻(xiàn)3提出了針對(duì)聊天機(jī)器人場(chǎng)景優(yōu)化的Encoder-Decoder模型,核心思想是將Encoder用多層前向神經(jīng)網(wǎng)絡(luò)來(lái)代替RNN模型,神經(jīng)網(wǎng)絡(luò)的輸出代表上下文信息Context和當(dāng)前輸入Message的中間語(yǔ)義表示,而Decoder依據(jù)這個(gè)中間表示來(lái)生成對(duì)話Response。這樣做既能夠?qū)⑸舷挛男畔ontext和當(dāng)前輸入語(yǔ)句Message通過(guò)多層前向神經(jīng)網(wǎng)絡(luò)編碼成Encoder-Decoder模型的中間語(yǔ)義表達(dá),又避免了RNN對(duì)于過(guò)長(zhǎng)輸入敏感的問(wèn)題。圖3和圖4是論文中提出的兩種不同的融合方法,方法1對(duì)Context和Message不做明顯區(qū)分,直接拼接成一個(gè)輸入;而方法2則明確區(qū)分了Context和Message,在前向神經(jīng)網(wǎng)絡(luò)的第一層分別對(duì)其進(jìn)行編碼,拼接結(jié)果作為深層網(wǎng)絡(luò)后續(xù)隱層的輸入,核心思想是強(qiáng)調(diào)Message的作用,這個(gè)道理上是很好理解的,因?yàn)楫吘筊esponse是針對(duì)Message的應(yīng)答,Context只是提供了背景信息,所以應(yīng)該突出Message的作用。

?????????????? 圖3.??融合方法1

圖4.??融合方法2

當(dāng)然,除了Encoder從RNN替換為深層前向神經(jīng)網(wǎng)絡(luò)外,文獻(xiàn)3與傳統(tǒng)Encoder-Decoder還有一個(gè)顯著區(qū)別,就是Decoder的RNN模型每個(gè)時(shí)刻t在輸出當(dāng)前字符的時(shí)候,不僅僅依賴t-1時(shí)刻的隱層狀態(tài)和當(dāng)前輸入,還顯示地將Encoder的中間語(yǔ)義編碼直接作為t時(shí)刻RNN節(jié)點(diǎn)的輸入,而不是像經(jīng)典Encoder-Decoder模型那樣把中間語(yǔ)義編碼當(dāng)做Decoder中RNN的最初輸入。其出發(fā)點(diǎn)其實(shí)也是很直觀的,就是在生成每個(gè)輸出字符的時(shí)候反復(fù)強(qiáng)化中間語(yǔ)義編碼的作用,這對(duì)于輸出應(yīng)答Response較長(zhǎng)的時(shí)候無(wú)疑是有幫助作用的。

圖5.?層級(jí)神經(jīng)網(wǎng)絡(luò)


文獻(xiàn)4給出了解決多輪會(huì)話上下文問(wèn)題的另外一種思路(如圖5所示),被稱作層級(jí)神經(jīng)網(wǎng)絡(luò)(Hierarchical Neural Network,簡(jiǎn)稱HNN)。HNN本質(zhì)上也是Encoder-Decoder框架,主要區(qū)別在于Encoder采用了二級(jí)結(jié)構(gòu),上下文Context中每個(gè)句子首先用“句子RNN(Sentence RNN)”對(duì)每個(gè)單詞進(jìn)行編碼形成每個(gè)句子的中間表示,而第二級(jí)的RNN則將第一級(jí)句子RNN的中間表示結(jié)果按照上下文中句子出現(xiàn)先后順序序列進(jìn)行編碼,這級(jí)RNN模型可被稱作“上下文RNN(Context RNN)”,其尾節(jié)點(diǎn)處隱層節(jié)點(diǎn)狀態(tài)信息就是所有上下文Context以及當(dāng)前輸入Message的語(yǔ)義編碼,以這個(gè)信息作為Decoder產(chǎn)生每個(gè)單詞的輸入之一,這樣就可以在生成應(yīng)答Response的單詞時(shí)把上下文信息考慮進(jìn)來(lái)。

綜上所述可以看出,深度學(xué)習(xí)解決多輪會(huì)話的上下文信息問(wèn)題時(shí)大致思路相同,都是在Encoder階段把上下文信息Context及當(dāng)前輸入Message同時(shí)編碼,以促進(jìn)Decoder階段可以參考上下文信息生成應(yīng)答Response。

如何解決“安全回答”(Safe Response)問(wèn)題

如果采用經(jīng)典的Encoder-Decoder模型構(gòu)建開放領(lǐng)域生成式聊天機(jī)器人系統(tǒng),一個(gè)比較容易產(chǎn)生的嚴(yán)重問(wèn)題就是“安全回答”問(wèn)題。什么是安全回答問(wèn)題呢?就是說(shuō)不論用戶說(shuō)什么內(nèi)容,聊天機(jī)器人都用少數(shù)非常常見的句子進(jìn)行應(yīng)答,比如英文的“I don’t know”、“Come on”、“I’m OK”,中文的“是嗎”、“呵呵”等。雖然說(shuō)在很多種情況下這么回答也不能說(shuō)是錯(cuò)誤的,但是可以想象,如果用戶遇到這樣一位聊天對(duì)象會(huì)有多抓狂。這個(gè)現(xiàn)象產(chǎn)生的主要原因是聊天訓(xùn)練數(shù)據(jù)中確實(shí)很多回答都是這種寬泛但是無(wú)意義的應(yīng)答,所以通過(guò)Encoder-Decoder模型機(jī)器人學(xué)會(huì)這種常見應(yīng)答模式。如何解決聊天機(jī)器人“安全回答”問(wèn)題,讓機(jī)器產(chǎn)生多樣化的應(yīng)答是個(gè)很重要的課題。

?文獻(xiàn)5即在Sequence-to-Sequence框架下來(lái)解決“安全回答”問(wèn)題。在聊天場(chǎng)景下,傳統(tǒng)的使用Sequence-to-Sequence框架來(lái)進(jìn)行模型訓(xùn)練時(shí),其優(yōu)化目標(biāo)基本上是最大似然法(MLE),就是說(shuō)給定用戶輸入Message,通過(guò)訓(xùn)練來(lái)最大化生成應(yīng)答Response的概率:

? 其中M代表message,R代表Response;

?文獻(xiàn)5提出了改進(jìn)的優(yōu)化目標(biāo)函數(shù):最大化互信息(MMI),其目標(biāo)函數(shù)如下:



可以從公式差異中看出,MMI的優(yōu)化目標(biāo)除了最大化從Message生成應(yīng)答Response的概率,同時(shí)加入了反向優(yōu)化目標(biāo),即最大化應(yīng)答Response產(chǎn)生Message的概率,其中l(wèi)amda是控制兩者哪個(gè)更重要的調(diào)節(jié)超參數(shù)。通過(guò)其名字“互信息”以及具體公式可以看出,這個(gè)優(yōu)化目標(biāo)函數(shù)要求應(yīng)答Response和Message內(nèi)容密切相關(guān)而不僅僅是考慮哪個(gè)Response更高概率出現(xiàn),所以降低了那些非常常見的回答的生成概率,使得應(yīng)答Response更多樣化且跟Message語(yǔ)義更相關(guān)。


采用MMI作為目標(biāo)函數(shù)明顯解決了很多“安全回答”問(wèn)題,表一是兩個(gè)不同優(yōu)化目標(biāo)函數(shù)產(chǎn)生的應(yīng)答Response的示例,其中Message列代表用戶輸入語(yǔ)句Message,S2S Response代表MLE優(yōu)化目標(biāo)產(chǎn)生的應(yīng)答,MMI Response代表MMI優(yōu)化目標(biāo)產(chǎn)生的應(yīng)答。


表1? S2S與MMI產(chǎn)生的應(yīng)答

個(gè)性信息一致性問(wèn)題

對(duì)于聊天助手等應(yīng)用來(lái)說(shuō),聊天機(jī)器人往往會(huì)被用戶當(dāng)做一個(gè)具有個(gè)性化特性的虛擬人,比如經(jīng)常會(huì)問(wèn):“你多大了”、“你的愛(ài)好是什么”、“你是哪里人啊”等。如果將聊天助手當(dāng)做一個(gè)虛擬人,那么這位虛擬人相關(guān)的個(gè)性化信息比如年齡、性別、愛(ài)好、語(yǔ)言風(fēng)格等個(gè)性特征信息應(yīng)該維護(hù)回答的一致性。利用經(jīng)典的Sequence-to-Sequence模型訓(xùn)練出的聊天助手往往很難保持這種個(gè)性信息的一致性(不一致的例子請(qǐng)參考圖6),這是因?yàn)镾equence-to-Sequence模型訓(xùn)練的都是單句Message對(duì)單句Response的映射關(guān)系,內(nèi)在并沒(méi)有統(tǒng)一維護(hù)聊天助手個(gè)性信息的場(chǎng)所,所以并不能保證每次相同的問(wèn)題能夠產(chǎn)生完全相同的應(yīng)答。另外,對(duì)于海量用戶來(lái)說(shuō),可能不同的用戶會(huì)喜歡不同聊天風(fēng)格或者不同身份的聊天助手,所以聊天機(jī)器人應(yīng)該能夠提供不同身份和個(gè)性信息的聊天助手,不同類型用戶可以采用相應(yīng)類型的聊天助理來(lái)聊天,當(dāng)然,在聊天過(guò)程中要盡量保持身份和個(gè)性信息的一致性。


? ? ? ? ? ? ??圖6.?個(gè)性信息不一致問(wèn)題(這是利用Twitter 2千5百萬(wàn)訓(xùn)練數(shù)據(jù)經(jīng)過(guò)Sequence-to-Sequence模型訓(xùn)練后產(chǎn)生的結(jié)果)?

圖7.?一種Sequence-to-Sequence框架下維護(hù)聊天助手個(gè)性一致化的方案

那么如何在Sequence-to-Sequence框架下采用技術(shù)手段維護(hù)聊天助手的個(gè)性一致性呢?文獻(xiàn)6給出了一種比較典型的解決方案。參照文獻(xiàn)6,我們可以改造出一個(gè)能夠?qū)崿F(xiàn)不同身份個(gè)性特征的聊天助手的思路。圖7是其示意圖。(注意:本文敘述的并非文獻(xiàn)6中的原始場(chǎng)景,而是本文作者參照文獻(xiàn)稍作修正的技術(shù)方案)

? ? ?其基本思路如下:聊天機(jī)器人系統(tǒng)可以定義不同身份和個(gè)性及語(yǔ)言風(fēng)格的聊天助理身份,個(gè)性化信息通過(guò)Word Embedding的表達(dá)方式來(lái)體現(xiàn),在維護(hù)聊天助手個(gè)性或身份一致性的時(shí)候,可以根據(jù)聊天對(duì)象的風(fēng)格選擇某種風(fēng)格身份的聊天助手。整體技術(shù)框架仍然采用Sequence-to-Sequence架構(gòu),其基本思路是把聊天助手的個(gè)性信息導(dǎo)入到Decoder的輸出過(guò)程中,就是說(shuō)在采用RNN的Decoder生成應(yīng)答Response的時(shí)候,每個(gè)t時(shí)刻,神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn)除了RNN標(biāo)準(zhǔn)的輸入外,也將選定身份的個(gè)性化Word Embedding信息一并作為輸入。這樣就可以引導(dǎo)系統(tǒng)在輸出時(shí)傾向于輸出符合身份特征的個(gè)性化信息。


? ?上述是一種深度學(xué)習(xí)框架下維護(hù)聊天助手個(gè)性一致性的技術(shù)框架,很明顯還可以衍生出很多種其它方案,但是其技術(shù)思路應(yīng)該是類似的,核心思想是把聊天助手的個(gè)性信息在Decoder階段能夠體現(xiàn)出來(lái),以此達(dá)到維護(hù)個(gè)性一致性的目的。


上述內(nèi)容介紹了使用深度學(xué)習(xí)構(gòu)建聊天機(jī)器人采用的主體技術(shù)框架以及面臨的一些獨(dú)特問(wèn)題及相應(yīng)的解決方案,除此外,還有一些問(wèn)題值得探討,比如如何使得聊天機(jī)器人有主動(dòng)引導(dǎo)話題的能力,因?yàn)橐话懔奶鞕C(jī)器人都比較被動(dòng),話題往往都是由用戶發(fā)起和引導(dǎo),聊天機(jī)器人只是作為應(yīng)答方,很少主動(dòng)引導(dǎo)新話題,而這很容易導(dǎo)致聊天冷場(chǎng),所以如何主動(dòng)引導(dǎo)話題也是聊天機(jī)器人應(yīng)該具備的能力之一,文獻(xiàn)7提出了一種技術(shù)方案,此處不贅述,感興趣的讀者可自行參考。

|深度學(xué)習(xí)聊天機(jī)器人的優(yōu)點(diǎn)與需要改進(jìn)的方向

相對(duì)基于檢索類或者機(jī)器翻譯類傳統(tǒng)技術(shù)而言,基于Encoder-Decoder深度學(xué)習(xí)框架的聊天機(jī)器人具有如下明顯優(yōu)點(diǎn):

構(gòu)建過(guò)程是端到端(End-to-End)數(shù)據(jù)驅(qū)動(dòng)的,只要給定訓(xùn)練數(shù)據(jù)即可訓(xùn)練出效果還不錯(cuò)的聊天系統(tǒng),省去了很多特征抽取以及各種復(fù)雜中間步驟的處理,比如省去句法分析與語(yǔ)義分析等傳統(tǒng)NLP繞不開的工作,使得系統(tǒng)開發(fā)效率大幅提高;

語(yǔ)言無(wú)關(guān),可擴(kuò)展性強(qiáng)。對(duì)于開發(fā)不同語(yǔ)言的聊天機(jī)器人來(lái)說(shuō),如果采用Encoder-Decoder技術(shù)框架,只需要使用不同語(yǔ)言的聊天數(shù)據(jù)進(jìn)行訓(xùn)練即可,不需要專門針對(duì)某種語(yǔ)言做語(yǔ)言相關(guān)的特定優(yōu)化措施,這使得系統(tǒng)可擴(kuò)展性大大加強(qiáng);

訓(xùn)練數(shù)據(jù)擴(kuò)大有助于持續(xù)提升系統(tǒng)效果。對(duì)于Encoder-Decoder深度學(xué)習(xí)模型來(lái)說(shuō),一般來(lái)說(shuō),通過(guò)不斷增加訓(xùn)練數(shù)據(jù)能夠帶來(lái)持續(xù)的效果提升。


當(dāng)然,開發(fā)出具備像人一樣能夠自然交流的聊天機(jī)器人目前還面臨著各種技術(shù)難題需要克服,具體到使用深度學(xué)習(xí)技術(shù)來(lái)構(gòu)建聊天機(jī)器人來(lái)說(shuō),目前在以下幾個(gè)方面還需大力加強(qiáng):

聊天機(jī)器人的評(píng)價(jià)標(biāo)準(zhǔn)。如何評(píng)價(jià)聊天機(jī)器人效果質(zhì)量的評(píng)價(jià)標(biāo)準(zhǔn)對(duì)于持續(xù)提升系統(tǒng)是至關(guān)重要的,因?yàn)橹挥羞@樣才能目標(biāo)明確地去有針對(duì)性地設(shè)計(jì)技術(shù)方案進(jìn)行改進(jìn)。聊天機(jī)器人在評(píng)價(jià)標(biāo)準(zhǔn)方面還有待深入研究,目前常用的標(biāo)準(zhǔn)包括機(jī)器翻譯的評(píng)價(jià)指標(biāo)BLEU、語(yǔ)言模型評(píng)價(jià)標(biāo)準(zhǔn)困惑度等,還有很多工作是通過(guò)人工來(lái)進(jìn)行效果評(píng)價(jià),還沒(méi)有特別合適地專用于聊天機(jī)器人的評(píng)價(jià)標(biāo)準(zhǔn),這是阻礙聊天機(jī)器人技術(shù)持續(xù)發(fā)展的一個(gè)障礙。

缺乏標(biāo)準(zhǔn)化的大規(guī)模訓(xùn)練數(shù)據(jù)。就像上述深度學(xué)習(xí)模型優(yōu)點(diǎn)所述,訓(xùn)練數(shù)據(jù)的不斷增加一般能夠帶來(lái)性能的持續(xù)提升。但是目前來(lái)說(shuō),標(biāo)準(zhǔn)化的特大規(guī)模的人與人對(duì)話數(shù)據(jù)相對(duì)缺乏,很多研究都是通過(guò)Twitter或者微博評(píng)論等高成本的采集方式來(lái)收集對(duì)話訓(xùn)練數(shù)據(jù),或者使用電影字幕等比較間接的方式來(lái)積累訓(xùn)練數(shù)據(jù)。如果能夠有大規(guī)模的標(biāo)準(zhǔn)聊天數(shù)據(jù),很明顯將能夠極大提升技術(shù)進(jìn)步。

技術(shù)仍處于發(fā)展初期。很明顯采用深度學(xué)習(xí)來(lái)進(jìn)行聊天機(jī)器人的技術(shù)研發(fā)還處于非常初期的階段,從技術(shù)手段也好,亦或是實(shí)際系統(tǒng)效果也好,都有非常大的進(jìn)步空間。

參考文獻(xiàn)


[1]Lifeng Shang, Zhengdong Lu, and Hang Li.2015. Neural responding machine for short-text conversation. In ACL-IJCNLP,pages 1577–1586.


[2] Oriol Vinyals and Quoc Le. 2015. Aneural conversational model. In Proc. of ICML Deep Learning Workshop.


[3] Alessandro Sordoni, Michel Galley,Michael Auli, ChrisBrockett, Yangfeng Ji, Meg Mitchell, Jian-Yun Nie,JianfengGao, and Bill Dolan. 2015. A neural network approach to context-sensitivegeneration of conversational responses. In Proc. of NAACL-HLT.


[4] Iulian V Serban, Alessandro Sordoni,Yoshua Bengio,Aaron Courville, and Joelle Pineau. 2015. Building end-to-enddialogue systems using generative hierarchical neural network models. In Proc.of AAAI.


[5]Jiwei Li, Michel Galley, Chris Brockett,Jianfeng Gao,and Bill Dolan. 2015. A diversity-promoting objective function forneural conversation models. arXiv preprint arXiv:15


[6] Jiwei Li, Michel Galley, ChrisBrockett, Jianfeng Gao and Bill Dolan. A Persona-Based Neural ConversationModel. arXiv preprint arXiv:16


[7] Xiang Li,Lili Mou,Rui Yan and MingZhang. StalemateBreaker: A Proactive Content-Introducing Approach to AutomaticHuman-Computer Conversation.IJCAI 2016.?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容