傳統(tǒng)客服知識庫,如何進(jìn)行圖譜化改制以及具體的應(yīng)用?
基于結(jié)構(gòu)化數(shù)據(jù)的知識圖譜問答系統(tǒng)已經(jīng)非常成熟,并被廣泛應(yīng)用于搜索引擎及智能客服中。本文對這里面的內(nèi)容不在進(jìn)行贅述,主要為大家介紹傳統(tǒng)客服知識庫,如何進(jìn)行圖譜化改制及具體的應(yīng)用。
知識圖譜簡述
知識圖譜,其實是知識工程這門學(xué)科的延伸,它將知識通過三元組的形式相互勾連起來。通過實體之間的相連的邊,定義出實體之間的關(guān)系。機器人通過實體識別解析出用戶問句中的實體,以識別到的實體作為父節(jié)點,通過遍歷邏輯找出圖譜中對應(yīng)的實體和關(guān)系,進(jìn)而推理出用戶所需的答案。
接下來我們通過構(gòu)建一個簡單的知識圖譜,來簡單表示圖譜的知識推理流程。
如圖,我們構(gòu)建了“姚明”和“葉莉”兩個person entity,他們之間有一對相互的邊,這對邊的關(guān)系為“夫妻”。那么我們就可以能夠根據(jù)知識圖譜的結(jié)構(gòu)化數(shù)據(jù),進(jìn)行一個簡單的知識推理。
Q:“姚明的老婆是誰”
A:“葉莉”
當(dāng)然,這樣基礎(chǔ)的問答已經(jīng)被搜索引擎廣泛應(yīng)用
如果說深度學(xué)習(xí)讓機器人有了更好的理解能力,那么知識圖譜就是給了機器人推理的能力。人們可以通過定義實體與實體之間的關(guān)系,從而讓機器進(jìn)行知識的推理。
但是圖譜在應(yīng)用中也存在著一定的劣勢:
- 首先就是對結(jié)構(gòu)化數(shù)據(jù)的依賴性,由于構(gòu)建圖譜是一件成本很高的工作,因此目前更多的是依賴現(xiàn)有的結(jié)構(gòu)化數(shù)據(jù)進(jìn)行機器自動構(gòu)建,自動構(gòu)建對于非結(jié)構(gòu)化數(shù)據(jù)的處理,目前應(yīng)用仍然存在準(zhǔn)確率的問題。
- 其次便是實體識別的準(zhǔn)確性,只有實體識別準(zhǔn)確,圖譜的推理才能是有效且有用的,而當(dāng)實體的粒度及圖譜構(gòu)建的廣度到了一定時,如何在大量的實體中精確命中就成了問題。
- 還有就是遍歷的邏輯,知識圖譜的推理依賴的就是遍歷邏輯,合適的遍歷邏輯才能使得圖譜的推理合理準(zhǔn)確。
- 最后一點就是實體歧義性問題,在客服會話場景中,用戶描述會隱含部分信息,例如:綁卡,這個“卡”可以是電話卡,也可以是銀行卡。
非結(jié)構(gòu)化知識庫圖譜化的好處
很多人會有一只疑問,既然目前智能客服準(zhǔn)確率已經(jīng)能夠達(dá)到了八九十的水平(目前各大公司宣傳),那么為什么還要花功夫去構(gòu)建知識圖譜呢?
用戶意圖不清、上下文
相似度模型計算的是用戶問句與知識庫中問句的相似度,這是一種單輪的問答對匹配,然而實際的場景中用戶,經(jīng)常會表述不清或者的表述會帶有上下文的關(guān)系。
例如:
很多人認(rèn)為這可以通過上下文的技術(shù)去解決,然后目前的上下文技術(shù)更多的是通過配置的詞類與句式實現(xiàn)的。
這就導(dǎo)致了:
- 難以完全覆蓋線上用戶的問法;
- 句式之間的沖突問題。
因此我們可以通過將知識庫進(jìn)行圖譜化,解決用戶意圖表述不清的問題。當(dāng)用戶表述不清無法獲取答案時,我們將識別到的實體組合成交互話術(shù),向用戶進(jìn)行反問。
知識庫補全過濾
除了解決用戶表述不清、上下文問題,圖譜還能通過實體的組合,遍歷出所有可能的知識點,補全庫中缺的知識點,還可以通過實體組合找出知識庫中重復(fù)問句。
一般客服知識庫積累,是來源于坐席客服日常工作的積累,是一個多人參與維護(hù)的知識庫,不同人對同樣問句的表達(dá)會有偏差,這就導(dǎo)致了庫中存在一定比例的重復(fù)標(biāo)準(zhǔn)句。例如:有的標(biāo)準(zhǔn)句叫:XXX是什么,YYY是什么意思?
提高解析正確率
熟悉短文本相似度模型的人都知道,用于訓(xùn)練的樣本量是會影響特征在問句中的權(quán)重的。例如:“無法轉(zhuǎn)賬”這個問句的訓(xùn)練預(yù)料可能有上千句,但是“無法轉(zhuǎn)賬提示銀行卡余額不足”這個問句的訓(xùn)練預(yù)料可能就只有20多句。
那么模型訓(xùn)練后,就會存在用戶說:“轉(zhuǎn)不了錢,說是銀行卡里沒錢”,由于“無法轉(zhuǎn)賬”的特征權(quán)重過高,而預(yù)測出“無法轉(zhuǎn)賬”。然后知識圖譜的實體識別,就能夠通過識別用戶問句中的實體,遍歷出正確的結(jié)果。
知識圖譜在非結(jié)構(gòu)化知識庫中的應(yīng)用難點
功能很美好,但是如何將傳統(tǒng)的客服知識庫進(jìn)行圖譜化改造確實一個難題。智能客服一般都是在原有的客服知識庫基礎(chǔ)上,通過深度學(xué)習(xí)的方式,訓(xùn)練短文本相似度模型,實現(xiàn)準(zhǔn)確問答的。
客服知識庫一般是一個被維護(hù)到穩(wěn)定狀態(tài)的知識庫,雖然有的知識庫會有知識點分類,將標(biāo)準(zhǔn)問句根據(jù)知識點的層級關(guān)系進(jìn)行分類,但是這也是一種非結(jié)構(gòu)化數(shù)據(jù)。
客服知識庫的圖譜化與常見的知識圖譜,還是會有一定的區(qū)分:
- 知識庫圖譜化更多是的基于語義的抽取,而非答案的抽??;
- 知識庫圖譜化是一個有邊際的圖譜,層級會限制在一定范圍內(nèi);
- 知識庫圖譜化的實體不一定只是一個詞,也可能是一個短語,例如:提示綁卡失敗。
在我們圖譜化的工作中以下幾個具體的問題就是我們要解決的:
- schema構(gòu)建問題:在開始做之前,我們先要明確我們需要構(gòu)建的schema框架、邊的類型及定義,schema的構(gòu)建直接決定了圖譜的交互邏輯及遍歷邏輯。
- 實體抽取問題:如何定義實體、實體?如何從大量的標(biāo)準(zhǔn)句中抽取出來?
- 遍歷邏輯:當(dāng)我們命中到了實體后,如何進(jìn)行遍歷——即遍歷后的交互如何設(shè)計?也是需要考慮的。
- 實體不同階段名稱不同:同樣的事、物在整個業(yè)務(wù)的不同階段的稱呼會存在差別,而用戶不會進(jìn)行這么細(xì)致的區(qū)分,例如:銀行卡在綁定后進(jìn)行理財時叫理財卡,進(jìn)行支付操作是叫支付卡。
- 業(yè)務(wù)復(fù)雜導(dǎo)致的實體歧義性:當(dāng)app業(yè)務(wù)交叉較多時,會出現(xiàn)這種情況,例如:卡可能對應(yīng)的話費卡,也可能是銀行卡。
- schema的時效性問題:由于客服知識庫是持續(xù)維護(hù)更新的,維護(hù)包括了新增、刪除、合并、挑戰(zhàn),那么圖譜也需要同步更新。如果圖譜未進(jìn)行對應(yīng)的更新,那么就會存在新知識無法圖譜不認(rèn)識,刪除了的識別出來無法獲取答案。
圖譜化流程
schema構(gòu)建
構(gòu)建圖譜的第一步就是先確定圖譜的結(jié)構(gòu),定義結(jié)構(gòu)我們可以先根據(jù)知識庫中現(xiàn)有的標(biāo)準(zhǔn)句,確定圖譜構(gòu)建的層級。一般我們會將圖譜構(gòu)建成三層的主框架,分別為業(yè)務(wù)、框架、類型。
例如:花唄還款失敗,我們會拆解為:花唄-還款-失敗。
當(dāng)我們有了基本的基本的主框架結(jié)構(gòu)后,基本上就能夠覆蓋線上大部分常見問題,但是這并不是我們解決問題的主要方式,因為還有很多句子并不是這樣的簡單句。
例如:賬戶余額還花唄失敗怎么辦,這時我們相對于上面的標(biāo)準(zhǔn)句,增加了一個條件,即:賬戶余額。那么我們可以在主框架的基礎(chǔ)上增加一層的子實體,這個子實體可以是業(yè)務(wù),也可以是框架的下位。
實體抽取與定義
當(dāng)我們定義好了schema的框架和邊之后,那么我們剩下的工作就是把標(biāo)準(zhǔn)問進(jìn)行拆拆拆了。當(dāng)我們拆分時,我們需要做好拆分的定義文檔,避免實體的重復(fù)。例如:當(dāng)我們定義好了一個動詞,為開通,通過如下的文檔備注,就可以避免其他抽取實體的將開展也作為一個實體進(jìn)行標(biāo)注。
這里給大家介紹兩個實體抽取工具(應(yīng)用前應(yīng)先明確實體的定義,避免抽取時混亂)
(1)詞共現(xiàn)
我們可以通過詞共現(xiàn)算法對所有的問句進(jìn)行處理,這樣我們就可以很快得篩選出業(yè)務(wù)下面的框架、子業(yè)務(wù)實體,框架下的類型及子框架。
(2)句式結(jié)構(gòu)拆分
句式結(jié)構(gòu)拆分,即我們通過句式的結(jié)構(gòu)將標(biāo)準(zhǔn)問進(jìn)行拆分,當(dāng)標(biāo)準(zhǔn)句句式比較規(guī)范時,我們可以采用,適合有知識庫維護(hù)標(biāo)準(zhǔn)的業(yè)務(wù)方。
實體識別
知識圖譜的實體識別目前業(yè)界已經(jīng)有成熟的方案,這里不再作贅述。但是在智能客服的場景中的應(yīng)用,考慮到上下文的情況,上一輪識別的實體結(jié)果也是下一路實體識別的輸入之一。
遍歷、交互邏輯
遍歷的邏輯設(shè)計,是根據(jù)實體識別的結(jié)果進(jìn)行設(shè)計的,由于采用的是三層的結(jié)構(gòu),因此一共會有三類識別結(jié)果:只解析到一層實體;解析到兩層實體;三層實體都解析到。
這里我們進(jìn)行分開講述:
(1)一層實體
解析到一層實體時,我們不用考慮解析到的具體情況,我們可以直接將識別到的結(jié)果解析反問,例如:您是遇到了花唄的什么問題。
(2)兩層實體
當(dāng)解析到兩層實體時就會存在兩種情況:
- 一種是兩個實體之間存在邊連接;
- 另一種是兩個實體之間不存在邊進(jìn)行連接。
當(dāng)它們之間存在邊連接時,那么我們可以將同樣具有著兩個實體的路徑實體拿出來進(jìn)行交互。
如果兩個實體之間沒有邊連接,那么我們就只能拿置信度高的實體作為遍歷的起始節(jié)點,交互邏輯和只解析到一層實體一致。
(3)三層實體
當(dāng)解析到三層實體時,那么存在的情況就會有三種:
- 一種是三個可以組成一個標(biāo)準(zhǔn)問;
- 一種是其中兩個有變進(jìn)行聯(lián)系;
- 還有一種則是三層實體均無邊進(jìn)行連接。
第一種情況時,那么我們可以直接給用戶一個答案作為回應(yīng);第二種情況則交互邏輯同解析到兩層實體一致;第三種情況則交互邏輯與解析到一層實體一致。
解析方案設(shè)計
圖譜的解析和短文本相似度解析是并發(fā)的結(jié)構(gòu),這就類似于融合模型一樣,通過多套解析方案的融合,使得解析的效果達(dá)到一個理想的狀態(tài)。
圖譜和相似度模型的解析效果是一個交叉的,所以我們通過對兩個解析結(jié)果的組合,就可以實現(xiàn)正確率的提升。
- 當(dāng)兩個解析結(jié)果一致時,我們給出一個結(jié)果;
- 當(dāng)其中一個有結(jié)果,一個無結(jié)果時,我們給出一個預(yù)測結(jié)果;
- 當(dāng)他們給出了不一樣的結(jié)果時,我們通過評估得出的閾值,給出預(yù)測的結(jié)果;
- 如果兩個模型都沒有結(jié)果時,我們認(rèn)為解析失敗,機器人進(jìn)行兜底。
本文由 @祝楠 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Pixabay,基于 CC0 協(xié)議
你好,想要咨詢一下有關(guān)知識圖譜構(gòu)建的問題,可以加微信交流一下嗎
求微信交流
感謝分享,可以交流嗎?我的微信是NDLZYZ
大佬,想請教問題
您好,可以加個微信 咨詢一下嗎
你微信是多少啊,我加你
樓主你好,方便加個微信,咨詢下相關(guān)的問題么 ??
AI產(chǎn)品經(jīng)理,需要如此透徹的了解技術(shù)相關(guān)語言嗎?
如果是,那研發(fā)轉(zhuǎn)AI產(chǎn)品經(jīng)理的優(yōu)勢就極大體現(xiàn)了
你好,看了你的文章很有啟發(fā),能詳細(xì)溝通一下嗎?(ebele_)
我們正在做這塊,在簡書上也看到你的文章,苦于聯(lián)系不到你,能加微信交流下嗎,laoqi-hengqiu
可以加微信交流一下嗎
可以啊,你微信號多少
可以加微信嗎?
可以加個微信嗎?
請教一個問題,解析之后得到置信度高的結(jié)果之后,如何吐出答案呢?還是會像傳統(tǒng)的結(jié)構(gòu)化客服知識庫那樣,匹配qid返回答案嗎
知識圖譜中的標(biāo)準(zhǔn)問句是實體的組合,識別到實體后就可以映射到標(biāo)準(zhǔn)句上
感謝科普
感謝支持~
贊
謝謝支持~
很好
不錯