句子互動(dòng) | Rasa介紹 對(duì)話系統(tǒng)弃榨、產(chǎn)品與技術(shù)

作者:段清華

畢業(yè)于北京大學(xué)計(jì)算機(jī)專業(yè)。

因互聯(lián)早期研發(fā)工程師梨睁,完成項(xiàng)目包括金融搜索鲸睛,公告摘要抽取項(xiàng)目,銀行問答機(jī)器人坡贺。

某基金管理公司的量化分析平臺(tái)官辈,資產(chǎn)配置平臺(tái)算法負(fù)責(zé)人。

擁有多年金融NLP經(jīng)驗(yàn)遍坟,帶領(lǐng)團(tuán)隊(duì)完成問答機(jī)器人拳亿、投研系統(tǒng)、監(jiān)管輿情愿伴、知識(shí)圖譜等項(xiàng)目肺魁。對(duì)金融文檔解析、抽取隔节、搜索鹅经、量化分析、知識(shí)圖譜建設(shè)怎诫、對(duì)話系統(tǒng)等領(lǐng)域有深入研究瘾晃。


Bot Friday Zero - 沙龍第0場(chǎng)分享

關(guān)于對(duì)話系統(tǒng)/產(chǎn)品/技術(shù)

2019-07-19 于北京騰訊,QHDuan


對(duì)話系統(tǒng)與Rasa

首先筆者認(rèn)為: 所謂對(duì)話系統(tǒng)刽虹,是通過對(duì)話的方式酗捌,實(shí)現(xiàn)人機(jī)交互的一種方法呢诬。

就如同鍵盤鼠標(biāo)是輸入設(shè)備涌哲,顯示器音箱是輸出設(shè)備胖缤,輸入輸出是什么?是與計(jì)算機(jī)交互阀圾。對(duì)話系統(tǒng)也如此而已哪廓。

Rasa是一家通過機(jī)器學(xué)習(xí)技術(shù)實(shí)現(xiàn)對(duì)話系統(tǒng)、機(jī)器人開發(fā)的工具初烘,同時(shí)也是一家創(chuàng)業(yè)公司涡真。

Rasa最新于2019年初A輪融資$13M。

筆者認(rèn)為Rasa最大的創(chuàng)新肾筐,是開發(fā)了整套的基于機(jī)器學(xué)習(xí)的對(duì)話工具哆料,而相對(duì)的,如wit.ai吗铐,dialogflow(原api.ai)东亦,luis.ai等都不夠完整。

相對(duì)來說國(guó)內(nèi)的unit唬渗,yige ai典阵,更完整,但是無論是體驗(yàn)镊逝、效果壮啊、社區(qū)等等都不如rasa。

個(gè)人認(rèn)為:程序員更愛工具撑蒜,而不是平臺(tái)歹啼。


Rasa的組成

Rasa NLU

主要實(shí)現(xiàn)自然語言理解(即NLU)功能,本質(zhì)上就是識(shí)別句子的意圖和實(shí)體座菠。

如“買一張去北京的票”染突,我們可以定義一個(gè)意圖是“購(gòu)票”,實(shí)體是“北京”和“一張”辈灼。

意圖識(shí)別本質(zhì)是短文本分類任務(wù)(當(dāng)然在學(xué)術(shù)界可能稱為Intent Detection來和Text Classification分開)份企。 單純短文本分類任務(wù)的SOTA基本上就是BERT了。

抽取本質(zhì)是信息抽取任務(wù)巡莹。 抽取的SOTA現(xiàn)在一般還是BiLSTM-CRF的各種變型司志,或BERT之類。

現(xiàn)在學(xué)術(shù)界的主要研究方向是多種工作結(jié)合降宅,例如同一模型同時(shí)做意圖識(shí)別和信息抽取骂远,互相配合增加總體準(zhǔn)確率。

Rasa的NLU腰根,主要是當(dāng)前的社區(qū)版激才,主要還是使用了各種開源技術(shù),并沒有追求學(xué)術(shù)上的SOTA。 它使用的工具包括Spacy瘸恼、sklearn-crfsuite

Rasa Core

筆者認(rèn)為這是Rasa的核心部分劣挫,NLU有各種實(shí)現(xiàn),開源的也有snips nlu等东帅,但是core卻獨(dú)一無二压固。

Rasa Core主要完成了基于故事的對(duì)話管理,包括解析故事并生成對(duì)話系統(tǒng)中的對(duì)話管理模型(Dialog Management)靠闭,輸出系統(tǒng)決策(System Action/System Policy)帐我。

學(xué)術(shù)上一般認(rèn)為這部分會(huì)包含兩個(gè)模型:

對(duì)話狀態(tài)跟蹤(Dialog State Tracking / Belief Tracking)

對(duì)話策略(Dialog Policy / Policy Optimization)

對(duì)于1.其實(shí)Rasa實(shí)現(xiàn)很簡(jiǎn)單,具體在它的論文 Few-Shot Generalization Across Dialogue Tasks, Vlasov et at., 2018 中說的比較具體愧膀。就是簡(jiǎn)單的基于策略的槽狀態(tài)替換拦键。

對(duì)于2.Rasa使用基于LSTM的Learn to Rank方法,大體上是將當(dāng)前輪用戶意圖檩淋、上一輪系統(tǒng)行為矿咕、當(dāng)前槽值狀態(tài)向量化,然后與所有系統(tǒng)行為做相似度學(xué)習(xí)狼钮,以此決定當(dāng)前輪次的一個(gè)或多個(gè)系統(tǒng)行為:

Rasa X

Rasa的可視化編輯工具碳柱,更方便NLU、NLG數(shù)據(jù)的管理熬芜,故事的編寫莲镣。

Rasa X可能暫時(shí)還不能讓所有非開發(fā)人員也能快速方便的使用。不過它本質(zhì)上可以方便開發(fā)人員快速開發(fā)涎拉,快速訓(xùn)練模型驗(yàn)證瑞侮。

筆者是這么認(rèn)為的,Rasa X就好像小程序開發(fā)也要有個(gè)本地開發(fā)工具一樣鼓拧,或者像Android Studio那樣的工具半火。本地工具的優(yōu)點(diǎn)就是方便調(diào)試、開發(fā)季俩、快速驗(yàn)證钮糖、Debug。相對(duì)線上的缺點(diǎn)就是速度慢酌住、驗(yàn)證需要等待后臺(tái)訓(xùn)練店归、不便于Debug。

可以看出國(guó)內(nèi)外現(xiàn)在很多機(jī)器人平臺(tái)都是完全在線的酪我,例如國(guó)外的luis.ai消痛,dialogflow等。這樣當(dāng)然也可以都哭,但是總還是不如有一個(gè)可自己訓(xùn)練的終端對(duì)開發(fā)者更友好秩伞。 國(guó)內(nèi)的就不說了逞带。

再舉個(gè)例子,如Elasticsearch纱新、Docker都是非常棒的工具展氓,但是如果官方開始的時(shí)候說:你不能自己本地架設(shè),你只能用我的云服務(wù)怒炸。這樣對(duì)于很多開發(fā)者來說就必然喪失了很大的興趣带饱。

Rasa 的 Pipeline

Pipeline 的過程是這樣的:

用戶輸入文字毡代,送入解釋器阅羹,即Rasa NLU

NLU給出結(jié)果,如圖?

從Tracker到Policy教寂,Tracker用于跟蹤對(duì)話狀態(tài)捏鱼,Tracker輸出的是Embedding

用戶意圖的Embedding

系統(tǒng)動(dòng)作(上一步)的Embedding

實(shí)體(槽值/Slot)的Embedding

Policy給出系統(tǒng)行為

Tracker記錄系統(tǒng)行為,下一次會(huì)提供給Policy使用

返回消息給用戶


Rasa技術(shù)詳細(xì)

Embedding 方法

用戶意圖和系統(tǒng)行為會(huì)通過bag-of-word的方法分詞酪耕,然后向量化导梆,很有趣的結(jié)果。在官方論文沒有仔細(xì)探討為什么迂烁,筆者猜測(cè)是為了增加不同的意圖看尼、行為之間的語義關(guān)聯(lián)。

論文原文:

A bag-of-words representations for the user and the system labels are then created using token counts inside each label.

例如:

action_search_restaurant = {action, search, restaurant}

實(shí)體/槽值(Slot)的向量化就非常簡(jiǎn)單了盟步,只是走了是否存在的binary向量

The slots are featurized as binary vectors, indicating their presence or absence at each step of the dialogue.

Learn to Rank 方法

很多對(duì)話系統(tǒng)的系統(tǒng)決策都采用的是分類(Classification)方法藏斩,也就是每次總是在多個(gè)系統(tǒng)行為中選擇唯一一個(gè)。

而Rasa選擇了排序方法却盘,即判斷當(dāng)前對(duì)話狀態(tài)和系統(tǒng)行為的相似度狰域,筆者認(rèn)為這有兩個(gè)可能的好處(論文沒說明):

可以更容易實(shí)現(xiàn)多個(gè)系統(tǒng)行為的同時(shí)輸出。能讓一個(gè)對(duì)話狀態(tài)輸出多個(gè)系統(tǒng)行為是Rasa的特色黄橘。至于為什么如此兆览,可能有工程上的一些考慮,例如這樣更方便塞关,例如兩個(gè)系統(tǒng)行為抬探,一個(gè)是機(jī)器人說“請(qǐng)等待”,一個(gè)是真的去查詢數(shù)據(jù)帆赢。

更方便擴(kuò)展系統(tǒng)行為驶睦。如果是分類模型,增加一個(gè)分類匿醒,那必須重新訓(xùn)練整個(gè)分類器场航。如果是Ranking模型,如果只是增加或減少分類廉羔,可以考慮只訓(xùn)練新增的系統(tǒng)行為相關(guān)的和不相關(guān)的部分?jǐn)?shù)據(jù)集溉痢,可能增加總體的訓(xùn)練速度僻造。更方便快速實(shí)驗(yàn)、迭代孩饼。


總結(jié)

優(yōu)點(diǎn)

機(jī)器學(xué)習(xí)方法的好處是實(shí)際工程上代碼量比較少髓削,很多狀態(tài)不需要寫判斷(對(duì)比專家系統(tǒng))。

可以做到不寫邏輯下镀娶,快速驗(yàn)證某些場(chǎng)景或?qū)υ捔髁⑻拧@缫粋€(gè)非開發(fā)者甚至可以不需要寫一行代碼就能搭建某種原型機(jī)器人。

缺點(diǎn)

要做好一個(gè)比較復(fù)雜的機(jī)器人梯码,還是需要對(duì)機(jī)器學(xué)習(xí)有了解的工程師宝泵。

針對(duì)復(fù)雜的機(jī)器人,可能需要大量數(shù)據(jù)轩娶。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末儿奶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鳄抒,更是在濱河造成了極大的恐慌闯捎,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,406評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件许溅,死亡現(xiàn)場(chǎng)離奇詭異瓤鼻,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)贤重,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門茬祷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人游桩,你說我怎么就攤上這事牲迫。” “怎么了借卧?”我有些...
    開封第一講書人閱讀 167,815評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵盹憎,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我铐刘,道長(zhǎng)陪每,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,537評(píng)論 1 296
  • 正文 為了忘掉前任镰吵,我火速辦了婚禮檩禾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘疤祭。我一直安慰自己盼产,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評(píng)論 6 397
  • 文/花漫 我一把揭開白布勺馆。 她就那樣靜靜地躺著戏售,像睡著了一般侨核。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上灌灾,一...
    開封第一講書人閱讀 52,184評(píng)論 1 308
  • 那天搓译,我揣著相機(jī)與錄音,去河邊找鬼锋喜。 笑死些己,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嘿般。 我是一名探鬼主播段标,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼博个!你這毒婦竟也來了怀樟?” 一聲冷哼從身側(cè)響起功偿,我...
    開封第一講書人閱讀 39,668評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤盆佣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后械荷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體共耍,經(jīng)...
    沈念sama閱讀 46,212評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評(píng)論 3 340
  • 正文 我和宋清朗相戀三年吨瞎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了痹兜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,438評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡颤诀,死狀恐怖字旭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情崖叫,我是刑警寧澤遗淳,帶...
    沈念sama閱讀 36,128評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站心傀,受9級(jí)特大地震影響屈暗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜脂男,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評(píng)論 3 333
  • 文/蒙蒙 一养叛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宰翅,春花似錦弃甥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肮之。三九已至,卻和暖如春卜录,著一層夾襖步出監(jiān)牢的瞬間戈擒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工艰毒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留筐高,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,827評(píng)論 3 376
  • 正文 我出身青樓丑瞧,卻偏偏與公主長(zhǎng)得像柑土,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绊汹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評(píng)論 2 359