對話機器人學習篇(三)


智能客服系統架構

 

技術目標:以一定比例的解決客戶的簡單的高頻問題,將疑難問題交給人工客服團隊;

(比例根據不同場景及不同的技術條件而不同)

  

 

工作原理

 

 

對話管理系統可以選擇一個機器人將問題發過去,也可以同時將問題發給所有的機器人,當它們都回復答案時,進行答案選擇再返回,使用哪種方式取決於廠商自己的一個選擇。上圖中這四種機器人分別對應了四種不同的模塊:

  • 第一類是任務管理類的模塊,比如說訂機票,它屬於一個特定的任務,這種機器人就類似蘋果的 Siri,是任務處理類;
  • 第二類是知識庫問答,也就是咨詢問答類的,只是做一些咨詢類的工作,一般情況下,它並不處理實際的一些任務;
  • 第三類是知識圖譜問答,知識圖譜是知識庫常見的是提供一個問答對結構和一個樹型結構,知識圖譜提供一個圖結構,可以認為是一個廣義上的知識庫問答。
  • 第四類是聊天機器人的技術,聊天並不是客服的首要功能,客服主要是解決問題的,不是來聊天的,為什么在一個智能客服系統里面會有聊天這么一個功能呢?原因在於,一是在用戶沒有輸入知識庫內容的時候,這個聊天機器人會被客戶當成是測試廠商機器人技術能力的評測對象;二是在某些場景下,會讓整個客服對話沒那么單調。

 

 

 

自然語言理解(NLU)

用戶的問題是多句話—需要分句,對每一句尋找答案,將答案組合,發給用戶;

對句子分詞—詞性標注—實體識別—-關鍵詞抽取—句法分析—指代消解—詞權重—語義相似度

 

 

意圖識別的實現方式

 

需識別用戶意圖(通用意圖+業務意圖);

通用意圖指用戶做業務咨詢還是閑聊,業務意圖指若用戶做業務咨詢,具體咨詢什么業務(使用文本分類的技術識別用戶意圖)

 

1.模版的方式

通過捕捉一個意圖中包含的關鍵詞

 

2.分類器

在某一特定領域里搜集大量語料,人工標注這些預料是屬於哪種意圖的,用分類器模型做一些二分類或多分類的分類器,用來判斷意圖;

(需要大量人工標注的數據,還有如何收集多個領域里的語料)

 

基於知識庫的問答可以用檢索或分類模型實現:

(1)先對用戶輸入問題作處理:分詞,抽取關鍵詞,同義詞擴展,計算句子向量;

(2)然后基於處理結果在知識庫中檢索匹配,(利用BM25/TF_IDF/向量相似度等)匹配出一個問題集合;(類似推薦系統中的召回);

(3)問答系統直接會返回給用戶一個答案,所以接着從問題集合挑出最相似的那個問題,需要對問題集合做重排序(利用規則/機器學習/深度學習模型做排序),每個問題打上一個分值,最終挑出問題top1,將這個問題對應的答案返回給用戶,即完成了一次對話流程;

(4)實際應用時,可設置閾值保證回答的准確性,若最終問題集合每個問題的得分都低於閾值,則會將頭部幾個問題以列表的形式返回給用戶,用戶可以選擇他想問的問題,進而得到(直接返回對應)具體的答案。

 

 

知識庫

 

與搜索引擎類似,分為兩個階段:第一個階段候選集召回,第二個階段重排序;

候選集召回:由於知識庫是人工導入,召回不那么復雜;

重排序:用文本相似度/檢索相關度/神經網絡的語義相似度/多模型混合來做;

 

知識圖譜

 

(1)概念:知識域可視化或知識領域映射地圖,顯示知識發展進程與結構關系的一系列各種不同的圖形,用可視化技術描述知識資源及其載體,挖掘、分析、構建、繪制和顯示知識及它們之間的相互聯系

(2)數據整理可使用開源工具:如Neo4j、OrientDB、Titan;

(3)然后 需要把自然語言通過某種方式轉換成知識圖譜的工具所支持的查詢語言;

 

 

對話技術

 

分三類:

(1)狀態機:填槽方式,將整個的對話過程抽象成一個有限狀態機,每一輪對話,或者每幾輪作為一種狀態,隨着對話狀態的進行,這個狀態機在不斷的遷移,最終對話結束,狀態機也結束。這里面的所有狀態,以及所要執行的動作都是事先約定好的,所以狀態機它比較適合一些場景簡單的對話;

——商用系統的主流

(2)馬可夫決策過程(MDP):和狀態機的區別在於它里面增加了動作,狀態機里面的動作是我們事先約定好的,是固定的動作,已經事先知道對話到了那時候,於是就固定的采取這樣的動作,但是 MDP 這種方式,狀態不確定,動作也不確定,所以說我的狀態和動作是需要根據我的上一個狀態和將要采用的動作做了以后的回饋(Reward)來進行決策的,所以說這個決策過程在特定領域里有足夠的語料的時候可以做出很好的效果;

——學術界的主流

(3)短到端模型:有一個問題,把問題輸入到一個模型里面之后,這個模型是幫我解決了我們之前整個對話過程所有流程的所有問題,而這個模型是需要從數據里面去學習,包括自然語言處理、意圖識別,包括整個系統里面方方面面的各種東西都要學習到。這個模型對於我們來說它是個黑盒,我給它一個問題,它也能給我答案,我並不需要仔細的去研究里面是怎么做得,我只需要設計訓練這么一個模型就行;

——學術界研究階段

 

 

聊天機器人

 

智能客服系統通常會有聊天機器人模塊,有三種做法:

  1. 第一種就是檢索式,比如答案是事先編輯好的,並不會隨便生成,在檢索式里面又會分為兩大類:第一類是用大量的語料和模型來訓練,收集大量的語料,把問題和答案給一個神經網絡的模型,用這個模型幫我去找到問題和答案之間的相關度,這樣的話,就能夠用大量的語料訓練出聊天機器人模型,這是最常見的一種方式;

 

  1. 第二種方式是基於規則來做,使用類似於之前介紹過的 Alice 機器人所用到的 AIML 標記語言,寫大量的 pattern,以及在這個 pattern 下所需要的答案,寫大量這樣的人工規則就可以做一個檢索式的機器人,但是這僅限於少量的小規模應用,如果需要編輯大量的規則,規則之間可能會有沖突等問題,所以主流的這種聊天機器人的方式是我們說到的第一種,用統計模型和大量的語料來訓練聊天機器人。

 

  1. 第三種是生成式的聊天機器人,我需要把我的答案直接生成出來,這種方式是需要限定在一定的領域里面。開放領域里直接生成式的聊天機器人會有一些敏感詞的問題,因為語料一般是網上收集的,想做到所有語料都人工審核成本是巨大的。所以說生成式需要把它限定在一個特定的領域里面,生成式分為兩種:一種是純粹的生成,一種是基於一些模板來生成。

 

 

 

整體架構

 

 

  1. 基礎服務之上是應用服務層,這一層具體實現了KB-Bot基於問答知識庫的機器人、Task-Bot任務對話型機器和Chat-Bot閑聊類型機器人,這是智能客服系統的三種核心能力。
  2. 編輯運營層是指有一個編輯團隊支撐算法策略迭代,主要完成數據標注、問答運營、數據分析和效果評估的工作,這些工作輸出會作用到基礎服務層和應用服務層。
  3. 基於應用服務層,對外提供通用的接口服務以便於業務方接入。
  4. 此外,機器不是萬能的,用戶有很多復雜的問題仍需要人工解決,這里有一套在線客服系統提供了人工在線客服的能力,應用服務層會和這套在線客服系統做無縫對接。

 

 

評價體系

 

兩種方式:

 

(1)基於人工標注的評價:系統的回答能力受限於知識庫的豐富程度,因此並非能回答用戶的所有問題,系統最佳的狀態是將能回答的全部回答准確,不能回答的全部拒識,即拒絕回答。因此這里的評價指標包括有結果率、拒識率、召回率和准確率等,我們的目標是讓系統的有結果率無限接近數據的真實有結果率,召回率和准確率盡量高。

召回率 = 機器人能回答的問題數 /問題總數

准確率 = 機器人正確回答問題數 /問題總數

問題解決率 = 機器人成功解決問題數 /問題總數

 

實現方式:通過標注標准評測集來計算系統的各項指標,我們會從每日的全量數據集中抽樣出一個小數據集,保證小數據集的數據分布盡量符合全量數據集,然后由標注團隊對數據集做標注,標注出每個問題的實際答案,一般標注完成后還有質檢的環節,以保證標注結果盡量准確,這樣便生成了每日數據的標准評測集。基於該標准評測集我們會去評價系統的好壞,並且每次做新模型迭代時都會使用標准評測集去評價新模型,只有新模型的效果好了才允許上線。

 

(2)基於用戶反饋的評價:人工評價能夠評價智能客服系統的准確率,但是答案是否合理,能否為用戶解決問題,需要用戶去反饋評價,整個智能客服系統的最終目標是幫助用戶解決問題。

 

實現方式:在產品上設計智能客服和在線客服的評價功能,例如會讓用戶評價智能客服的每個答案或者某次會話,在和人工客服聊天完畢會發送評價卡片給用戶去評價滿意度。最終我們會統計參評比例、滿意度等指標,這些指標能夠真正反應智能客服系統的好壞。實際中往往用戶參評比例低,我們會使用各種方法去刺激用戶評價。

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM