chatbot是最近一段時(shí)間非;鸬囊粋(gè)詞或者一個(gè)應(yīng)用,不僅僅各大新聞媒體在熱炒bot的概念,各大巨頭也投入巨大的資源進(jìn)行研發(fā),arxiv上刷出bot相關(guān)的paper也更是家常便飯。炒作歸炒作,PR歸PR,不得不說(shuō)一個(gè)尷尬的事實(shí)是市面上確實(shí)難以找到一個(gè)真正好用的bot。bot按照涉及的領(lǐng)域,分為開(kāi)放域(open-domain)和面向具體任務(wù)(task-oriented)的bot。開(kāi)放域要做的事情很大,更像是一個(gè)什么都能搞的平臺(tái),不管你提什么樣的需求,它都能夠解決,有點(diǎn)trueAI的意思,而面向任務(wù)的bot則專(zhuān)注做好一件事情,訂機(jī)票,訂餐,辦護(hù)照等等。
說(shuō)到開(kāi)放域bot,大家接觸最多的也就是一些回答非常無(wú)厘頭的娛樂(lè)用bot,比如很多年前活躍在各大社交網(wǎng)站上的小黃雞,現(xiàn)在市面上活躍著很多號(hào)稱掌握了bot技術(shù),在用深度學(xué)習(xí)解決bot技術(shù)的bot公司,都是這種,解決不了什么實(shí)際問(wèn)題,就是能和大家聊上兩句,而且很多時(shí)候回答都是牛頭不對(duì)馬嘴的,機(jī)器人維修,十分可笑。
再說(shuō)task-orientedbot,市面上最多的就是客服機(jī)器人,銀行也好,電商也罷,不想重復(fù)性地回答用戶的問(wèn)題,就用一個(gè)客服機(jī)器人來(lái)應(yīng)對(duì),且不說(shuō)效果如何,開(kāi)發(fā)一個(gè)具體task的bot需要費(fèi)不少工夫,而且后期還要大量的維護(hù),因?yàn)樘嗟膆andcraftedfeatures被用到,整個(gè)bot的框架橫向擴(kuò)展性相對(duì)來(lái)說(shuō)較差,換一個(gè)場(chǎng)景基本上就需要重新開(kāi)發(fā)一套,人力成本太高了。
bot的理想非常豐滿,大公司描繪的場(chǎng)景也確實(shí)很美,但現(xiàn)實(shí)的bot卻狠狠地澆了一盆冷水下來(lái)。期望越高,失望越大。如果媒體一味地吹捧bot,仿佛整個(gè)世界明天就會(huì)是bot的了,對(duì)bot的發(fā)展并無(wú)益處,捧殺只會(huì)帶來(lái)氣泡,破裂之后,一切如初。
功能強(qiáng)大的、開(kāi)放域的bot在短期內(nèi)是比較難實(shí)現(xiàn)的,但是如果降低期望,將bot不應(yīng)當(dāng)做是一種技術(shù)層面的革命,而應(yīng)當(dāng)做交互層面的革新才是理性的態(tài)度,bot作為一種入口,可能大家都不再需要一個(gè)隨身攜帶的終端,只需要找到一個(gè)可以識(shí)別身份,可以聯(lián)網(wǎng)的硬件,比如一面鏡子,就可以執(zhí)行很多的task,訂機(jī)票、買(mǎi)東西等等等等。bot這個(gè)時(shí)候起到的是一個(gè)操作的入口和背后執(zhí)行各種不同task的黑箱,我們不需要看到整個(gè)執(zhí)行過(guò)程,也不需要知道原理是什么,通過(guò)一些簡(jiǎn)單的語(yǔ)言交互,就能完成一些復(fù)雜的task,終端要做的事情就是反饋結(jié)果和接收輸入,執(zhí)行的過(guò)程都在云端,各種bot云。
而這一切的關(guān)鍵是解決好task-orientedbot,用更多datadriven的解決方案來(lái)代替?zhèn)鹘y(tǒng)的人工features和templates。
|問(wèn)題描述
bot是一個(gè)綜合性的問(wèn)題,涉及到下面三個(gè)主要問(wèn)題:
1、responsegeneration(selection)
對(duì)話生成是最后一個(gè)步驟,是輸出的部分。簡(jiǎn)單總結(jié)下,有四種solutions:
solution1直接根據(jù)context來(lái)生成對(duì)話,這方面最近的paper非常地多,尤其是seq2seq+attention框架席卷了NLP的很多任務(wù)之后,對(duì)話生成的benchmark也一次又一次地被各種model刷新著。對(duì)話生成的問(wèn)題,被定義為基于某個(gè)條件下的生成模型,典型的根據(jù)context來(lái)predictwords,涉及到句子生成的問(wèn)題,評(píng)價(jià)問(wèn)題就會(huì)是一個(gè)比較難的問(wèn)題。
solution2當(dāng)然有的paper并不是將對(duì)話生成定義為語(yǔ)言模型問(wèn)題,而是一個(gè)nextutteranceselection的問(wèn)題,一個(gè)多選一的問(wèn)題,給定一個(gè)context,給定一個(gè)utterancecandidatelist,從list中選擇一個(gè)作為response,當(dāng)然這類(lèi)問(wèn)題的難度會(huì)小很多,評(píng)價(jià)起來(lái)也非常容易,但是數(shù)據(jù)集準(zhǔn)備起來(lái)要多花一些功夫,而且在實(shí)際應(yīng)用中不好被借鑒。
solution3rule-based或者說(shuō)template-based,response的最終形式其實(shí)是填充了一個(gè)模板而成的,大多數(shù)的東西是給定的,只有一些具體的value需要來(lái)填充。這一類(lèi)解決方案很適合做task-orientedbot,但過(guò)多的人工features和templates導(dǎo)致了其難以移植到其他task上。
solution4query-based或者說(shuō)example-based,response是來(lái)自于一個(gè)叫做知識(shí)庫(kù)的數(shù)據(jù)庫(kù),里面包含了大量的、豐富的example,根據(jù)用戶的query,找到最接近的example,將對(duì)應(yīng)的response返回出來(lái)作為輸出。這一類(lèi)解決方案非常適合做娛樂(lè)、搞笑用的bot,核心技術(shù)在于找更多的數(shù)據(jù)來(lái)豐富知識(shí)庫(kù),來(lái)清洗知識(shí)庫(kù)。但畢竟respnose是從別人那里拿出來(lái)的,可能會(huì)很搞笑,但大多數(shù)會(huì)牛頭不對(duì)馬嘴。
2、dialogstatetracking(DST)
有的paper稱DST為belieftrackers,這個(gè)部件其實(shí)是bot的核心,它的作用在于理解或者捕捉userintention或者goal,只有當(dāng)你真的知道用戶需要什么,你才能做出正確的action或者response。關(guān)于這個(gè)部分,會(huì)有DialogStateTrackingChallenge比賽。一般來(lái)說(shuō)都會(huì)給定一個(gè)state的范圍,通過(guò)context來(lái)predict用戶屬于哪個(gè)state,有什么樣的需求,是需要查詢天氣還是要查詢火車(chē)票。
3、usermodeling
bot面向具體的業(yè)務(wù),都是和真實(shí)的user來(lái)打交道的,如果只是簡(jiǎn)單的FAQbot,回答幾個(gè)常見(jiàn)的問(wèn)題可能不需要這塊,但如果是其他更加復(fù)雜、細(xì)致的業(yè)務(wù),都需要給用戶建模,相同的問(wèn)題,bot給每個(gè)人的response一定是不同的,這個(gè)道理非常簡(jiǎn)單。usermodeling,需要涉及的不僅僅是簡(jiǎn)單的用戶基本信息和用戶的一些顯式反饋信息,而更重要的是用戶的historyconversations,這些隱式的反饋信息。就像是推薦系統(tǒng)火起來(lái)之前,大家都是中規(guī)中矩地賣(mài)東西,但是有一些聰明人開(kāi)始分析用戶的行為,不僅是那些點(diǎn)贊行為,更多的是那些用戶不經(jīng)意間留下的蛛絲馬跡,從而知道了用戶對(duì)哪些東西潛在地感興趣,也就是后來(lái)推薦系統(tǒng)在做的事情。對(duì)user進(jìn)行建模,就是做一個(gè)個(gè)性化的bot,生成的每一個(gè)response都有這個(gè)user鮮明的特點(diǎn)。
|語(yǔ)料
大型的語(yǔ)料都是用來(lái)訓(xùn)練開(kāi)放域bot對(duì)話生成模型的,數(shù)據(jù)源一般都是來(lái)自社交網(wǎng)站。而對(duì)于task-orientedbot來(lái)說(shuō),客戶的數(shù)據(jù)一般規(guī)模都非常地小,這也正是難以將datadriven的方案直接套用到task-orientedbot上的一個(gè)主要原因。
[1]中給出了bot訓(xùn)練語(yǔ)料的survey,感興趣的同學(xué)可以讀一下這篇survey。
圖來(lái)自文章[13],英文的語(yǔ)料確實(shí)比較多,SinaWeibo那個(gè)語(yǔ)料是華為諾亞方舟實(shí)驗(yàn)室release的[12]。從twitter或者微博上產(chǎn)生bot數(shù)據(jù)的話,conversationalinnature效果不如從ubuntuchatlogs這種聊天室產(chǎn)生的數(shù)據(jù)更加適合訓(xùn)練response生成模型,因?yàn)楦犹烊粺o(wú)公害。文章[5]也用了一個(gè)大型中文語(yǔ)料,數(shù)據(jù)來(lái)自百度貼吧。
|模型
研究bot的paper是在太多了,這是一個(gè)非;钴S的研究領(lǐng)域,細(xì)分的方向也非常的多,接下來(lái)按照所針對(duì)的研究問(wèn)題來(lái)分別介紹一些模型。
seq2seq生成模型