對基于如Bot Framework的frame-based chatbot的一點理解

前言

最近在看一些基于如bot framework這樣的平臺搭建個性化的聊天機器人的資料令境,看的不多也不深,寫下來談一點自己的理解,主要是關于整個流程尤其是上下文設計的一些思考。這里尤其想感謝下一位作者的分享,我也是在看過他對bot framework的一些闡述后才能不那么膚淺的去看這個話題抛人,所以也參考了許多他文章中的見解。參考鏈接如下:

談 Bot Framework(以Facebook的wit.ai為例)

談 Bot Framework 中的上下文(Contexts)設計

概述

1. Bot Framework

Bot Framework是微軟開發(fā)的一款可讓任何人制作自己的聊天機器人脐瑰,按其自己的說法妖枚,或者說更深入的應該理解為“一個用于搭建、鏈接蚪黑、測試盅惜、和部署智能機器人的平臺”。用戶可以在這個平臺上忌穿,在模式上通過其定義好的規(guī)范和組件來搭建聊天(或會話)機器人抒寂,在內(nèi)容上可以個性化的定制,面向個性化應用提供服務掠剑。

目前國內(nèi)國外有很多這種聊天機器人搭建平臺屈芜,比如微軟的Bot Framework、Facebook的wit.ai朴译、Google的api.ai井佑、阿里的云小蜜和百度的dueros等等。

2. Frame-based chatbot

解釋frame-based chatbot之前眠寿,先提兩個概念:QA system和Dialog system/chatbot躬翁。

按照阿里對問題的分類,可以分為三類:

問答型:特點是依托結構化程度高且關聯(lián)性高的領域知識盯拱,針對問題盒发,返回知識作為答案。

任務型:特點是面向具體任務狡逢,同樣依托領域知識的概念宁舰,每個任務負責獨立的業(yè)務流程,任務之間相對互斥性強

閑聊型:特點是不是面向具體目標奢浑,語義意圖不明確蛮艰,領域不局限

兩種system概念根據(jù)具體的目標和問題分類進行區(qū)分。QA system(問答系統(tǒng))主要針對解決問答型問題雀彼,而Dialog system/chatbot(對話系統(tǒng)/聊天機器人)針對解決任務型閑聊型問題壤蚜。再具體的說即寡,QA system關注單輪系統(tǒng)對用戶query的response,而相比之下chatbot更加關注單輪的上下文以及多輪對話的需求仍律。

在兩種系統(tǒng)內(nèi)嘿悬,又分別按技術路線細分。比如QA system可分為ir-based(基于檢索)和knowledge-based(基于大規(guī)模結構化知識庫水泉,比如知識圖譜);Dialog system/chatbot也可分為rule-based(基于規(guī)則)窒盐、ir-based和frame-based等草则。

frame-based直譯過來是基于框架,其實指的是主要通過槽位填充的方式理解intent(用戶意圖)蟹漓,然后解決會話需求的會話機器人炕横。它針對每個intent定義一個frame,作為以槽位填充為主要目的的會話流程的模式葡粒,如針對用戶訂機票這個intent的frame樣例:

frame

frame主要內(nèi)容為field和prompt份殿。field定義了該intent需要填充的slot(比如訂機票的slot為origin、destination和departdate)和每個slot對應的prompt嗽交;prompt為提示話術卿嘲,主要是系統(tǒng)為了填充slot的提示語句,具體可分為針對每一個slot的提問prompt夫壁、對識別的slot值追加的confirm prompt以及在用戶無輸入或系統(tǒng)無法識別時的系統(tǒng)默認prompt拾枣。當用戶intent產(chǎn)生時,系統(tǒng)可以根據(jù)frame定義的模式執(zhí)行操作盒让。


對整個流程尤其是context的一些理解

frame-based chatbot在會話流程中按順序主要完成三個任務:識別domain→識別intent→填充slot

識別domain指識別識別會話所在領域梅肤,使用相應領域的知識做知識庫,比如訂機票這個任務屬于“出行助手”(打個比方)領域邑茄;識別intent指用戶意圖的識別姨蝴,具體做什么任務,比如“訂機票”肺缕;填充slot不用解釋左医,對origin、destination和departdate三個slot通過會話進行填充搓谆,最終按識別的意圖執(zhí)行任務炒辉。他們幾個的關系可以表示為:

一個domain對應多個intent,每個intent對應一個frame

同一domain下或者是可繼承(上下文可繼承)的intent間有時會共享相同的slot泉手,比如訂飛機票和訂火車票共享“出發(fā)地”黔寇、“目的地”和“出發(fā)時間”,所以intent和slot是多對多的關系斩萌。

本文有一些不同于參考文章的在于對context和lifespan的理解


上圖展示了整個會話從識別domain到execute的流程缝裤。對于context的意義屏轰,我很認同參考文章中“作為信號,影響 Intent 的識別”和“作為載體憋飞,存儲已填寫的 Parameter Value”兩個作用霎苗。但我認為,可以將整個會話的context細分為兩種榛做,一種是父context唁盏,即圖中紅框表示的,從識別了domain開始检眯,父context即開始生命周期厘擂,存儲所有的intent的slot和value信息,無論是在同一個intent下對slot的刪改還是在可繼承的intent之間的場景轉(zhuǎn)換锰瘸,同名slot的value是共享的刽严;另一種是子context,即通常framework平臺中所描述的intent之間的inputContext和outputContext避凝,用于識別intent或者是slot的繼承舞萄,我認為,子context中存儲的實際上是slot的key信息管削,即在intent下所需要填充的slot列表倒脓,在場景切換時,不斷更新或繼承列表中的key佩谣,在確認了所有intent后直接去讀取存儲在父context中的value值即可把还。這樣的話,我們不需要事先定義context的生效輪數(shù)(lifespan)茸俭,只要在父context下吊履,所有場景都可以訪問或者說繼承到已填充過的slot value。當遇到不可繼承的場景切換或更改domain時调鬓,直接清空父context信息艇炎。這種intent間共享slot值也對應了之前所說的intent和slot多對多的關系。

總之腾窝,對應于context的兩種意義缀踪,父context作為載體,存儲已填寫的slot value虹脯;子context(input/output)有時作為信號驴娃,影響intent的識別,有時作為載體循集,存儲intent所需的slot的key唇敞。


基于dueros搭建樣例

筆者嘗試了下利用dueros搭建一個簡單的聊天機器人demo。具體的操作不贅述,dueros官方文檔寫得很詳細疆柔,主要介紹下整個流程和之前講的會話流程對應信息咒精。

定義意圖


定義槽位

定義技能名稱:即定義domain

定義意圖:定義domain下的intent

定義槽位:其實是在定義intent的frame,包括slot和prompt旷档。

至于詞典和常用表達的訓練是用于slot信息識別

定義意圖確認話術(補全frame中的reimport模叙,confirmImport)

以上就是基本的定義流程,然后當會話開始時鞋屈,按照模式進行slot填充最后執(zhí)行


以上只是個人的一些理解范咨,望批評指正。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末厂庇,一起剝皮案震驚了整個濱河市湖蜕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宋列,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件评也,死亡現(xiàn)場離奇詭異炼杖,居然都是意外死亡,警方通過查閱死者的電腦和手機盗迟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門坤邪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人罚缕,你說我怎么就攤上這事艇纺。” “怎么了邮弹?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵黔衡,是天一觀的道長。 經(jīng)常有香客問我腌乡,道長盟劫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任与纽,我火速辦了婚禮侣签,結果婚禮上,老公的妹妹穿的比我還像新娘急迂。我一直安慰自己影所,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布僚碎。 她就那樣靜靜地躺著猴娩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上胀溺,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天裂七,我揣著相機與錄音,去河邊找鬼仓坞。 笑死背零,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的无埃。 我是一名探鬼主播徙瓶,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嫉称!你這毒婦竟也來了侦镇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤织阅,失蹤者是張志新(化名)和其女友劉穎壳繁,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荔棉,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡闹炉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了润樱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渣触。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖壹若,靈堂內(nèi)的尸體忽然破棺而出嗅钻,到底是詐尸還是另有隱情,我是刑警寧澤店展,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布养篓,位于F島的核電站,受9級特大地震影響壁查,放射性物質(zhì)發(fā)生泄漏觉至。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一睡腿、第九天 我趴在偏房一處隱蔽的房頂上張望语御。 院中可真熱鬧,春花似錦席怪、人聲如沸应闯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碉纺。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間骨田,已是汗流浹背耿导。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留态贤,地道東北人舱呻。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像悠汽,于是被迫代替她去往敵國和親箱吕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

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