在大學(xué)時(shí)代參加過一次微軟技術(shù)大會(huì),沒記錯(cuò)的是在2015年吧,當(dāng)時(shí)演講者(原諒我不記得名字)在臺(tái)上介紹了兩款機(jī)器人,所負(fù)責(zé)日常事務(wù)的秘書小娜(Cortana)和具有情感溝通能力的小冰(XiaoIce),前者在現(xiàn)在看來更像是任務(wù)型的代表,而小冰,則更像是一個(gè)有血有肉的人,在回答中能更明顯地透露出人的氣息,這在當(dāng)時(shí)已經(jīng)是神級(jí)別的產(chǎn)品了。
19年微軟的4位大佬桌子Arxiv上對(duì)微軟小冰的整體架構(gòu)進(jìn)行了詳盡的介紹,我們來看一下:論文標(biāo)題:The design and implement of XiaoIce, an empathetic social chatbot。
按事先說明,這篇文章沒有啥復(fù)雜的模型,而是把小冰的外部結(jié)構(gòu)講的很清楚,可以說是智能機(jī)器人整個(gè)領(lǐng)域一個(gè)非常前沿的介紹,大家可以在這里面抽取自己所需放入自己的系統(tǒng)里面。
懶人目錄:
小冰的設(shè)計(jì)原則
小冰的架構(gòu)
對(duì)話引擎
小結(jié)
小冰的設(shè)計(jì)原則
一般系統(tǒng)級(jí)介紹的文章,開篇intro結(jié)束后會(huì)開始講結(jié)構(gòu)了,但是這篇論文卻加了一章專門討論全文的設(shè)計(jì)原則,這里面其實(shí)有很多有參考價(jià)值的東西,我們來看看。
IQ+EQ+Personality
文章認(rèn)為,一個(gè)完整的人,需要擁有完整智商情商和人格,小冰也是這樣拆解實(shí)現(xiàn)的。
先說智商,文章將小冰的智商理解為知識(shí)和記憶的建模,圖像和自然語言的理解、推理、生成和預(yù)測(cè)。這么說起來其實(shí)就非常明確了,一方面我們要有存儲(chǔ),一種是長(zhǎng)期穩(wěn)定的知識(shí),另一種是短期變化的聊天記憶;另一方面就是滿足基本的交流能力,這個(gè)和人的對(duì)話類似,理解對(duì)方說什么、自己反應(yīng)提煉信息、產(chǎn)生自己的回復(fù)并且對(duì)對(duì)方的回答產(chǎn)生預(yù)期。
然后是情商,情商被拆解為共情能力和社交能力。顧名思義,前者是一種將心比心的能力,理解他人的能力,這里面其實(shí)涵蓋了query理解、用戶畫像、情感檢測(cè)、情緒識(shí)別、動(dòng)態(tài)追蹤情緒變化等多個(gè)能力,可能在細(xì)節(jié)上每個(gè)能力其實(shí)都已經(jīng)有一定的研究,但組合在一起還是有一定難度的;而后者,其實(shí)體現(xiàn)在交流上,用戶是有不同的文化、性格等的背景的,因此要具備迎合對(duì)方興趣的能力,盡可能避免說一些敏感的話題。
最后是人格,中文叫做personality,讓一個(gè)人能成為人,必須有他最鮮明的標(biāo)簽,有自己的性格,因?yàn)橹挥忻鞔_性格才能讓用戶有明確的預(yù)期,知道他會(huì)和你聊什么,當(dāng)然這點(diǎn)還被做的更加差異化,不同地區(qū)、場(chǎng)景的小冰可能會(huì)有不同的形象以滿足當(dāng)?shù)赜脩舻男枨蟆?/p>
抓手:對(duì)話交互次數(shù)
要衡量一個(gè)機(jī)器人好壞,對(duì)于小冰所應(yīng)對(duì)的場(chǎng)景,文章使用了平均單次對(duì)話交互次數(shù)作為評(píng)價(jià)的抓手。文章認(rèn)為這是一個(gè)非常有效、長(zhǎng)期可靠的指標(biāo)。首先對(duì)于對(duì)話機(jī)器人,更多的對(duì)話次數(shù)意味著用戶愿意與他溝通,獲取所需信息;第二是,雖然類似“沒聽懂”的這種問題可能會(huì)短期帶來更高的交互次數(shù),但是這種劣質(zhì)的交互次數(shù)多以后用戶自然就不愿意再和交流了,所以這個(gè)指標(biāo)在長(zhǎng)期來看也是比較有意義的;第三雖然一些技能的快速達(dá)成同樣會(huì)大導(dǎo)致交互次數(shù)的下降,但是高效的交互同樣會(huì)加強(qiáng)用戶和機(jī)器人的紐帶,在長(zhǎng)期同樣有意義。(作者在這里說了很多有關(guān)交互次數(shù)的誤解,但是個(gè)人感覺這個(gè)指標(biāo)還是不能只看次數(shù),還有一些別的指標(biāo)吧,只看一個(gè)指標(biāo)可能會(huì)比較危險(xiǎn))
把社交聊天當(dāng)做是分層決策
這里的分層決策其實(shí)看做是將整個(gè)對(duì)話內(nèi)容決策看做兩層操作:頂層是技能決策,選擇合適的技能應(yīng)對(duì)用戶的對(duì)話,底層則考慮原始基本的話術(shù)執(zhí)行回復(fù),兩者結(jié)合完成整體對(duì)話操作。
a top-level process manages the overall conversation and selects skills to handle different types of conversation modes (e.g., chatting casually, question answering, ticket booking), and a low- level process, controlled by the selected skill, chooses primitive actions (responses) to generate a conversation segment or complete a task.
小冰的架構(gòu)
整體架構(gòu)長(zhǎng)這樣。
整體架構(gòu)分了3層。
用戶體驗(yàn)層。不同APP下、不同的語音輸入場(chǎng)景下,用戶都有不同的需求。這里分了兩種,說人話就是把語音模式單獨(dú)抽取出,滿足更為實(shí)時(shí)的對(duì)話場(chǎng)景,另一種則涵蓋文本、圖像、聲音、視頻的模式。這里面會(huì)涉及大量的信息預(yù)處理的工作,如文本圖像則是歸一化、聲音的去噪、判全和ASR等等。
對(duì)話引擎層??疵志椭懒?,主要是用來進(jìn)行對(duì)話交互的處理的,里面涵蓋了大量的功能,后面會(huì)花點(diǎn)時(shí)間展開說,論文也是花了整個(gè)章節(jié)來討論這塊。
數(shù)據(jù)層。我們當(dāng)然知道是需要存儲(chǔ)數(shù)據(jù)的,但是存了什么與怎么用就是用戶所關(guān)心。這里主要講了有什么,有小冰畫像、用戶畫像、成對(duì)(我們有的時(shí)候叫平行)數(shù)據(jù)、非成對(duì)數(shù)據(jù)、主題索引、知識(shí)圖譜。
對(duì)話引擎
前面的章節(jié)討論了整體架構(gòu)后,這時(shí)候就把最核心的對(duì)話引擎拿出來詳細(xì)品一品了。
對(duì)話管理器
Dialogue Manager,對(duì)話管理器,可以說是多輪對(duì)話最為靈魂的一個(gè)模塊了,這里作者把它分為了兩個(gè)子模塊,分別是全局狀態(tài)管理器和對(duì)話規(guī)則,這里其實(shí)把整個(gè)對(duì)話看成一個(gè)類似強(qiáng)化學(xué)習(xí)問題去看了,根據(jù)這個(gè)狀態(tài)和對(duì)話規(guī)則,可以進(jìn)行一些動(dòng)作決策,即,這個(gè)動(dòng)作可以是特定技能,也可以是核心對(duì)話的一些規(guī)則。
首先聊聊對(duì)話狀態(tài)管理器,它主要維護(hù)的是對(duì)話過程中出現(xiàn)的需要記憶的信息,從而跟蹤對(duì)話的狀態(tài),舉個(gè)例子,在對(duì)話過程匯總達(dá)成的共識(shí)就需要被記錄下來,如當(dāng)前的話題、用戶的愛好等,這種是短期、對(duì)話內(nèi)有效的記憶。
而對(duì)話規(guī)則,則如上所示采用了分層的對(duì)話策略,高級(jí)策略管技能,低級(jí)策略管話術(shù)。而在其中,高級(jí)策略管理的技能也需要記錄下來,于是有了話題管理器,它主要用于實(shí)現(xiàn)當(dāng)前話題、管理話題切換等功能,這里有很多有意思的技術(shù),如發(fā)現(xiàn)用戶覺得無聊的時(shí)候主動(dòng)切換話題、自身知識(shí)匱乏聊不下去時(shí)的主動(dòng)切換等等。
說到這個(gè)話題的切換,其實(shí)內(nèi)部是按照“召回-排序”的模式去搭建的,這個(gè)和推薦搜索非常類似,召回主要就是基于用戶信息和當(dāng)前對(duì)話的狀態(tài)了,而排序其實(shí)用的就是多個(gè)特征合并到一個(gè)提升樹上進(jìn)行機(jī)器學(xué)習(xí)打分排序,文章中列舉了一些排序的規(guī)則,如下:
上下文信息。
新鮮度。
用戶個(gè)性化特征。
流行度??梢岳斫鉃?a href="http://ttokpm.com/v/tag/1722/" target="_blank">網(wǎng)絡(luò)的熱門程度。
接受度??梢岳斫鉃樵谛”鶊?chǎng)景下的用戶愿意去聊的程度。
情感計(jì)算
如果說小冰情感機(jī)器人的一個(gè)代表任務(wù),那么情感計(jì)算模塊就是整個(gè)小冰最為特色的對(duì)話模塊了。
實(shí)質(zhì)上情感計(jì)算模塊是把上面提到的狀態(tài)給構(gòu)造處后來,這4個(gè)東西分別為上下文狀態(tài)、上下文、用戶情感向量和回復(fù)的情感向量,這個(gè)東西后續(xù)就會(huì)被放入dialog policy(對(duì)話規(guī)則)中進(jìn)行處理,最終表現(xiàn)為小冰形式的回復(fù)——一個(gè)18歲,可靠,富有同情心,深情,博學(xué)多聞,但會(huì)自欺欺人,并且幽默感極佳的妹子(心動(dòng)了沒?)。
整合整個(gè)計(jì)算模塊主要有3個(gè)任務(wù):上下文query理解、用戶理解和用戶回復(fù)生成。
首先是上下文query理解,這個(gè)相信很多做搜索推薦的人應(yīng)該都會(huì)比較熟悉,這里面涉及到這幾個(gè)計(jì)算任務(wù):
命名實(shí)體識(shí)別。NLU的基本操作。
共指解析。這個(gè)在多輪對(duì)話非常常見,要把里面你的代詞給解析出來。
句子完整性。這個(gè)在對(duì)話問題里面很常見,需要判斷句子是否完整。
用戶理解實(shí)質(zhì)上就是基于上面的和,即上下文狀態(tài)和上下文,處理成用戶情感向量。這里面主要有5個(gè)核心工作:
話題檢測(cè),檢測(cè)當(dāng)前的話題狀態(tài),看用戶有沒有自己開新的的話題等。這個(gè)要會(huì)和話題管理器進(jìn)行交互(topic manager)
識(shí)別對(duì)話意圖,文中一共提到了11中對(duì)話意圖,如打招呼、回復(fù)、告知等。
情感分析,分析用戶情緒,是開心、傷心、憤怒等。
觀點(diǎn)分析,分析用戶對(duì)話題的觀點(diǎn),樂觀悲觀等。
在用戶畫像明確的前提下引入用戶畫像,如性別興趣等。
在上面基礎(chǔ)上就可以生成了,這里作者把它叫做用戶共情向量生成,說到生成,說明就要把前面的信息集成起來,這樣才能有一個(gè)比較綜合性的結(jié)果,這里就包括了前面的對(duì)話內(nèi)容、用戶理解,還需要涵蓋小冰的人格特征等。
核心聊天模塊
核心聊天模塊是處理用戶輸入最終完成結(jié)果回復(fù)的重要模塊,它主要分為通用域聊天和垂直域聊天。顧名思義通用域就是管常見的閑聊、開放域場(chǎng)景的聊天,對(duì)于特定領(lǐng)域、任務(wù)的聊天,就交給垂直域聊天負(fù)責(zé),一般都會(huì)是一些比較有深度知識(shí)依賴的領(lǐng)域,例如聊電影演員八卦之類的。這樣劃分的核心主要是根據(jù)下游數(shù)據(jù)庫(kù)知識(shí)存儲(chǔ)的結(jié)構(gòu)有關(guān),這個(gè)和搜索非常類似。
無論是開放域聊天還是垂直于聊天,實(shí)質(zhì)上都是一種“召回-排序”模式的實(shí)現(xiàn)方式,召回(生成)多個(gè)可能的回答,然后排序。召回的方式文章列舉了3種:
基于成對(duì)文本的數(shù)據(jù)庫(kù)檢索。
神經(jīng)網(wǎng)絡(luò)生成。文中提到了實(shí)質(zhì)上用的是seq2seq的框架,并特地提到了GRU-RNN。
非成對(duì)樣本。非成對(duì)樣本的召回來自一些講座、對(duì)話記錄等,進(jìn)行過一些類似非小冰風(fēng)格的過濾,使用,即對(duì)話上下文狀態(tài)作為索引過濾,并借助知識(shí)圖譜的方式進(jìn)行適當(dāng)?shù)耐卣?,知識(shí)圖譜的構(gòu)建原理源于“共現(xiàn)”。
然后就是排序了,排序同樣使用的是提升樹類的模型(可見提升樹類的機(jī)器學(xué)習(xí)模型仍有很大的使用空間,不要小看)。特征作者也列舉出來了:
局部語義相似度特征。保證小冰回復(fù)的內(nèi)容和上一句足夠接近,使用的是DSSM模型。
全局語義相似度特征。保證整個(gè)聊天會(huì)話中內(nèi)容是比較緊湊的,所以會(huì)和全局上下文進(jìn)行與上述相似的一次語義相似度計(jì)算。
情緒匹配度。為了保證小冰的形象及其回復(fù)足夠有共情力,需要考慮情緒上的匹配度(注意這里叫匹配度,不是相似性,用戶傷心你不見得要跟著她傷心,你可以嘗試用快樂感染他,大家細(xì)品,這也是為什么前兩個(gè)用戶用的是coherence,這一個(gè)用的是matching的理由)。
檢索相似性。即搜索的相似性,在特定話題下,應(yīng)該有一些特定的關(guān)鍵詞是需要被保留的,所以要有搜索上的相似性,比較突出的當(dāng)然就是BM25之類的基操了。
圖像評(píng)論
圖像評(píng)論稍微會(huì)觸及到我的知識(shí)盲區(qū)——CV,我試著講講吧。
首先看需求,回想下我們?cè)谖⑿沤o別人發(fā)圖都是為了什么,為了聊天分享對(duì)吧,哪怕是斗圖也有斗圖本身的含義,因此圖像評(píng)論功能有別于一般的圖像識(shí)別,因?yàn)檫@里除了要識(shí)別圖像內(nèi)容,還要分析出用戶的目的,然后返回針對(duì)性的內(nèi)容,例如“斗圖”,只有能分析出目的并且能給出針對(duì)性回復(fù),斗圖才能都得起來。
整體的操作流程和文字的處理其實(shí)類似,所以作者更多是舉例子而沒有深入技術(shù)細(xì)節(jié)。
對(duì)話技能
對(duì)話技能涉及到對(duì)話內(nèi)容中需要完成的任務(wù),這塊和上述的圖像評(píng)論和核心聊天共同組成了IQ模塊,對(duì)話技能主要分為內(nèi)容創(chuàng)建,深度參與和任務(wù)完成三種能力。
內(nèi)容創(chuàng)建的主要目標(biāo)是和人類一起完成一些創(chuàng)作任務(wù),如畫畫、作曲等,甚至包括一些兒童讀物等。這里特別提到了RNN進(jìn)行創(chuàng)作。
深度參與旨在通過針對(duì)特定主題和設(shè)置來滿足用戶的特定情感和智力需求,從而提高用戶的長(zhǎng)期參與度,類似的一些百科檢索、求安慰之類的其實(shí)都算是深度參與的部分,他主要涵蓋兩個(gè)維度,從IQ到EQ,以及組內(nèi)的討論。上面提到的百科、求安慰其實(shí)都算是這個(gè)維度里面的,這個(gè)能覆蓋大量用戶需求。組內(nèi)討論則傾向于和用戶達(dá)成一種更加深入的關(guān)系,文中提到的“數(shù)羊”技能就是其中一個(gè)。
任務(wù)完成能力讓小冰具備了和小娜類似的私人秘書能力,而且更具“人性”,完成度和貼心度都很高,類似一些相關(guān)的問答,小冰會(huì)考慮到用戶的知識(shí)背景給出更加通俗的解釋,例如美國(guó)人問某個(gè)國(guó)家的面積,回復(fù)可能就是“面積是XXX,相當(dāng)于X個(gè)美國(guó)”。
小結(jié)
文章讀完,可能深度技術(shù)上沒有很明顯的提升,文中但凡說了模型,其實(shí)都是一些非常經(jīng)典簡(jiǎn)單的模型,收獲是在于知道了這些架構(gòu)上、設(shè)計(jì)思路上的東西,回頭想來說實(shí)話其實(shí)模型反而不是最值錢的東西,他只是一個(gè)工具,有了好的設(shè)計(jì),出效果的風(fēng)險(xiǎn)就會(huì)更低,哪怕是各種飛機(jī)大炮模型,其實(shí)都是建立在對(duì)用戶對(duì)系統(tǒng)現(xiàn)狀足夠理解,根據(jù)這個(gè)現(xiàn)狀因地制宜建立起來的,不是誰都適用,試錯(cuò)風(fēng)險(xiǎn)自然就高了,這也是我在本系列第一篇用這個(gè)的核心目的所在。
責(zé)任編輯:xj
原文標(biāo)題:【微軟小冰】多輪和情感機(jī)器人的先行者
文章出處:【微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
微軟
+關(guān)注
關(guān)注
4文章
6554瀏覽量
103903 -
情感機(jī)器人
+關(guān)注
關(guān)注
1文章
6瀏覽量
3459
原文標(biāo)題:【微軟小冰】多輪和情感機(jī)器人的先行者
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論