對(duì)話系統(tǒng)可以說是NLP領(lǐng)域目前已知最扎實(shí)的落地場景了,整個(gè)流程都脫離不了NLP的核心作用,而且整個(gè)流程涉及NLP的大量任務(wù),因此大量的研究都圍繞著對(duì)話系統(tǒng)來開展,也因此產(chǎn)生了很多很有意義的新方法。而檢索式對(duì)話作為對(duì)話系統(tǒng)最原始的實(shí)現(xiàn)方式,又蘊(yùn)涵著什么有意思的東西,我們來看看。
什么是對(duì)話系統(tǒng)
對(duì)話從來就不是一個(gè)簡單的任務(wù),這是一個(gè)涉及理解、生成、交互等多個(gè)方向技術(shù)的綜合實(shí)體。
理解:需要理解對(duì)方輸出的內(nèi)容,只有這樣才能給與正確的回應(yīng)。
生成:基于理解的內(nèi)容,給出合適的結(jié)果。
交互:在多輪對(duì)話上,需要記錄跟蹤整個(gè)對(duì)話過程中涉及的內(nèi)容。
要同時(shí)完成這么多任務(wù),相必是非常復(fù)雜的,同時(shí)場景上的復(fù)雜性,客服、語音助手、閑聊等,也造就了對(duì)話系統(tǒng)的復(fù)雜性,最終成為了NLP里面一個(gè)重要的研究抓手和目標(biāo)。
檢索式對(duì)話
檢索式對(duì)話按照個(gè)人理解應(yīng)該是最為經(jīng)典的解決方案,把一個(gè)對(duì)話問題抽象為一個(gè)搜索問題,大量早期的對(duì)話系統(tǒng)都是用這種解決方案來實(shí)現(xiàn)的,甚至在現(xiàn)在,一些簡單的對(duì)話任務(wù),都可以用它來簡單實(shí)現(xiàn),可以說是工業(yè)界最喜歡的一種實(shí)現(xiàn)方式了。簡單地說,整個(gè)檢索式對(duì)話的流程可以用這個(gè)流程來表示:
query理解->檢索召回->相似度排序
沒錯(cuò),看著就是搜索的流程,對(duì)句子進(jìn)行理解,理解后到數(shù)據(jù)庫里面進(jìn)行召回,召回以后再進(jìn)行相似度排序找到最佳答案。既然流程被拆解,那我們來看看每一步里面都會(huì)做什么東西。
query理解
簡單的說,其實(shí)就是去理解用戶輸入的內(nèi)容說的是啥,一般的自然語言理解主要關(guān)心的是這么幾個(gè)技術(shù)細(xì)節(jié):
意圖和話題。即用戶談?wù)摰氖悄膫€(gè)領(lǐng)域的事情,從而剖析用戶期待對(duì)話系統(tǒng)返回的是什么。這個(gè)問題常被當(dāng)成分類問題來處理,用分類規(guī)則或者是方法來進(jìn)行意圖識(shí)別。一旦抽象成分類問題大家就應(yīng)該大概理解了,就是fastext、textcnn之類的玩意了。
槽位和實(shí)體。我們需要知道用戶需要什么,需要抽取用戶的具體實(shí)體,這個(gè)經(jīng)常被抽象為序列標(biāo)注問題,此時(shí)CRF、BILSTM-CRF之類的方法就是基操了。
當(dāng)然,也有一些工程上會(huì)把它抽象化,只是轉(zhuǎn)化為向量或者矩陣,下游用矩陣進(jìn)行搜索。
總之,query理解這塊,主要是為了解析用戶說的內(nèi)容,去理解他的語義,這樣我們才能為用戶找到合適的答案。
檢索召回
召回這塊,按照搜索的操作,就是拿著我們提取的槽位和實(shí)體,甚至是我們解析的向量和矩陣,根據(jù)意圖和話題放到搜索引擎里面去檢索,搜索引擎中有倒排索引,直接拿著關(guān)鍵詞就能找到對(duì)應(yīng)的內(nèi)容。
然而,問題其實(shí)不在怎么檢索召回,而是在于召回的內(nèi)容怎么來。相比搜索引擎,對(duì)話系統(tǒng)的內(nèi)容可能更加不結(jié)構(gòu)化,同時(shí)可得性由于特定需求其實(shí)并不好得,例如淘寶的客服,每家店的商品性質(zhì)各不相同,很難需要召回的結(jié)果,有正確答案的就更難了,所以,常用的方式有這幾種:
對(duì)高頻問題進(jìn)行編輯,然后統(tǒng)一維護(hù)管理。數(shù)白了就是人編。
基于一些模板進(jìn)行組裝生成。
利用文本生成的方式進(jìn)行處理。
相似度排序
一般地,根據(jù)用戶最簡單的query,往往能召回很多可能比較好的答案,此時(shí)我們要選擇最優(yōu)的給用戶。衡量最優(yōu)的標(biāo)準(zhǔn)之一就是相似度,語義相似度就是最為經(jīng)典或者說基本的相似度衡量方式,當(dāng)然搜索領(lǐng)域的ctr(不是點(diǎn)擊率)、cqr、BM25等,這些非?;镜脑亍?/p>
對(duì)經(jīng)典的語義相似度,就要說2013年的DSSM了,這個(gè)模型可謂是開了語義相似度雙塔結(jié)構(gòu)的先河。
優(yōu)缺點(diǎn)和應(yīng)用場景
說完了具體的流程,然后再說說檢索式對(duì)話的優(yōu)點(diǎn)和應(yīng)用場景。
先談?wù)剝?yōu)點(diǎn)吧。
應(yīng)該是這么多種對(duì)話實(shí)現(xiàn)方式中對(duì)樣本依賴最低的。
實(shí)現(xiàn)成本低,初版本實(shí)現(xiàn)速度快,后續(xù)拓展
三段處理,可控性強(qiáng)。
因?yàn)檫@些優(yōu)點(diǎn),檢索式對(duì)話在工程上被廣泛應(yīng)用。
客服機(jī)器人。尤其是淘寶的場景,這里有非常專業(yè)的內(nèi)容,例如用戶會(huì)問浴缸的長寬高,會(huì)問電腦的配置等等,這些用檢索式非常方便。
問答類對(duì)話。例如小猿搜題之類的,還有一些百科類的問答,雖然不知道具體公司的操作,但是用檢索式的確會(huì)非常方便。
對(duì)話系統(tǒng)初版本。即使是很多開放域,第一版本的構(gòu)造都會(huì)嘗試檢索式對(duì)話的架構(gòu)。
當(dāng)然了,檢索式對(duì)話這套實(shí)現(xiàn)方案還是有很大的局限性,因此才會(huì)有很多項(xiàng)目嘗試做一些別的做法,先聊聊缺點(diǎn):
答案相對(duì)固定,靈活性不足,在一些閑聊場景,會(huì)非常困難。如,用戶問一句,你好,后面有很多答案都是合理的。
任務(wù)型的對(duì)話,在各種語音助手,小度、siri之類的很常見,一些引導(dǎo)用戶完成任務(wù)的工作,對(duì)話機(jī)器人是需要做一個(gè)主動(dòng)帶節(jié)奏的角色,檢索式基本辦不到。
多輪對(duì)話。在檢索式對(duì)話基礎(chǔ)上,單輪對(duì)話升級(jí)為多輪對(duì)話其實(shí)是存在明顯的天花板,成本也比較高,雖然已經(jīng)有一些相關(guān)的操作,如Multi-view、SMN之類的,但是實(shí)現(xiàn)的難度還是會(huì)有些高。
小結(jié)
小結(jié)一下,檢索式對(duì)話作為對(duì)話系統(tǒng)一個(gè)經(jīng)典的技術(shù),非常有必要學(xué)習(xí)和探究,今天大概講了一些流程和概述,也希望大家有所收獲。
責(zé)任編輯:xj
原文標(biāo)題:【對(duì)話】對(duì)話系統(tǒng)經(jīng)典:檢索式對(duì)話
文章出處:【微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
nlp
+關(guān)注
關(guān)注
1文章
488瀏覽量
22038 -
對(duì)話系統(tǒng)
+關(guān)注
關(guān)注
0文章
7瀏覽量
2182
原文標(biāo)題:【對(duì)話】對(duì)話系統(tǒng)經(jīng)典:檢索式對(duì)話
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論