智能客服(Intelligent Customer Service)


1. 智能客服系統

智能客服產生的背景:為什么要有智能客服這樣的一個產品,或者說研究方向呢?主要有以下這幾個原因:

  • 我們日常生活中會遇到大量的客服問題,比如說你打電話給聯通、移動等,或者說在淘寶上買東西,這些問題大部分都是一些重復的問題,而且頻率也特別高,非常的耗人工;
  • 對於一個客服密集型的企業來說,大量的人工客服,造成了企業的客服成本非常的高;
  • 人工客服是沒有辦法做到 24 小時全天候的服務;
  • 在客戶和客服的對話的過程中產生了大量的有價值的數據,這些數據也沒有被很好的利用起來。

基於以上的這些原因,我們就會產生一個想法:能不能有一個機器人來回答這些重復的問題,它能 24 小時的工作不用休息,降低客戶成本,還能挖掘聊天記錄里面的一些有價值的知識點。這就是智能客服產生的背景。

1.1 智能客服的目標

如果說要做一個智能客服,那做智能客服的一個基本的目標,或者說它的技術目標是要做到什么樣的程度呢?它是要完全的替代人工,還是要部分的替代人工呢?

一般情況下,一個智能客服的目標就是下面這張圖里描述的這些:一個客服的機器人負責回答客戶的一些高頻簡單問題,將疑難問題交給人工客服團隊來回答。那這個一定比例是多大比例呢?我這邊寫了一個百分之 X,也就是說這個比例不太確定,它是根據不同的場景以及不同的技術條件,不同廠商的技術能力而不同的,有的廠商是 80%,有的是 90%,有的甚至 95%,這都是不確定的。

總之智能客服做的一個技術目標就是:**一定比例的解決客服的簡單的高頻問題,將疑難問題仍然交給人工客服團隊。**這是目前智能客服一個基本的技術目標,是一個比較現實的目標。那么想讓客服的機器人來完全取代人工客服,這個目標到目前為止,在絕大部分場景下還是沒有辦法實現的。

1.2 細分領域

整個智能客服系統的發展非常快,應用也划分了很多的細分領域。

  1. 第一大類是對話操作系統級別的系統。那么這一類系統比較有代表性的有亞馬遜的 Alexa,這些系統都希望做操作系統級別的人機對話,就是把人機對話直接做成一個操作系統,那在這個系統上開發各種各樣不同的智能硬件、軟件等等這些應用。
  2. 第二大類,就是智能客服,智能客服里面又細分成兩類:一類是企業內部的智能客服,為了企業自身的業務發展需要研發的智能客戶系統;還有一類是對外服務的智能客服,並且以 SaaS 的方式對外服務。
  3. 第三大類就是個人助理類,最有名的就是蘋果的 Siri,還有微軟的 Cortana 等。智能家居現在做得比較火熱的就是一些智能音箱,比如說亞馬遜 Echo 等。還有些公司是做一些智能交互的服務,這些智能交互服務主要是自然語言處理和意圖識別方面的服務,其他的廠商可以基於這些智能交互服務做一些自己的應用。
  4. 第四類是開放平台,這個開放平台也可以叫 Bot Factory,比較有代表性的,有 Google 的 API.AI、Facebook 的 Wit.AI、還有微軟的 Luis.AI 等等。這些開放平台主要是做任務對話方面的一些定制。

1.3 智能客服常見功能

智能客服系統最常見的功能有哪些?目前最常見的形式是在人工客服系統基礎上,擴展出智能客服的功能,最常見的功能有 單輪問答、多輪對話和人機協作。

  • 單輪問答:一問一答,但是沒有記錄上下文,每一次問答和下一次問答都沒有任何的關系;
  • 多輪對話:是帶着上下文來問答,每個問答可能跟它的上文是有一定關系,或者是它記錄了上文的一些信息;
  • 人機協作:人機協作是一種比較有效的一種智能客服功能,現有的方式主要有兩大類:一類是機器人加人工進行問答,另外一大類是機器人推薦答案,人工選擇回答 。我們這里舉幾個例子:比如說上班的時候人工來回答,下班的時候機器人來回答;普通的客戶機器人來回答,VIP 客戶人工來回答;或者是說分渠道來選擇,比如說微信渠道來的機器人回答,手機渠道來的人工回答;還有就是機器人優先,機器人答不出來,轉給人工回答。

2. 智能客服的工作原理

剛才我們是給智能客服做了一個概述。接下來,我們介紹一下智能客服的工作原理。一個常見的智能客服,就包括以下這些模塊並且按照一個類似的流程進行工作。

  1. 識別模塊:首先可能會有一個 ASR(語音識別)模塊,也可能沒有,這取決於具體廠商的一個選擇,這個語音識別模塊會把語音轉換成文字。如果沒有語音識別模塊,直接就是文字。
  2. 意圖識別:對這個文字做一個問句的理解,或者說做一個查詢的理解,理解完以后,再對意圖做一個識別;
  3. 機器回答:最后,我們把這個問句的理解和意圖識別的結果帶到對話管理系統里邊,對話管理系統會決定到底是給哪一種機器人發過去,這些機器人最后給出答案,將答案返回。

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

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

2.1 自然語言理解

自然語言理解主要做一些什么事情呢?比如說用戶的問題如果是多句話,那么我們做一個**“分句”**,對每一句話來尋找答案,最后呢,將答案組合起來,發給用戶;“分詞”很常見,分詞后才能理解,才能進行標注,進行實體識別,這是常規的一些處理,然后就是句法分析、指代消解,再有就是詞權重、語義相似度等等,做這些分析都是為后面的算法做准備,這是第一部分的預處理工作,就是自然語言理解或者自然語言處理的內容。

2.2 意圖識別

第二部分的預處理工作就是意圖識別。意圖識別主要是用戶的這句話暴露了用戶什么樣的意圖,比如說我們這個例子里:“今天天氣怎么樣”,這個意圖實際上就是用戶要問天氣。那么如果用戶說“幫我定一張去上海的機票”,這個意思就是用戶要訂機票。

那么意圖識別一般是怎么實現的?就是有模板和分類器兩種方式。

模板的方式,比如說:“北京今天天氣怎么樣?”我們會建一個叫“city”的詞典,這里面會有北京、上海、天津等城市;我們會把今天、明天、后天等等也做一個詞典,詞典名字叫做“date”。這樣如果滿足剛開始有一個“city”,中間有任意字符串,然后再有一個“date”,然后再有“天氣”這個詞,就滿足了一個模板,那么我們基本上可以認為它是一個詢問天氣怎么樣的意圖,這是模板的方法。

分類器的方法很容易理解,我們在某一個特定領域里面收集大量語料,人工去標注這些語料是屬於哪種意圖的,用分類器模型來做一些二分類或者多分類的分類器,用來判斷意圖。但是分類器方法需要大量人工標注的數據,以及如何去收集多個領域里面的語料的問題。

基於知識庫的問答可以使用檢索或者分類模型來實現。檢索式回答的流程是:首先對用戶的輸入問題做處理,如分詞、抽取關鍵詞、同義詞擴展、計算句子向量等;然后基於處理結果在知識庫中做檢索匹配,例如利用BM25、TF-IDF或者向量相似度等匹配出一個問題集合,這類似推薦系統中的召回過程;

由於我們是一個問答系統,最終是直接返回給用戶一個答案,因此需要從問題集合中挑出最相似的那個問題,這里會對問題集合做重排序,例如利用規則、機器學習或者深度學習模型做排序,每個問題會被打上一個分值,最終挑選出top1,將這個問題對應的答案返回給用戶,這就完成了一次對話流程。在實際應用中,我們還會設置閾值來保證回答的准確性,若最終每個問題的得分低於閾值,會將頭部的幾個問題以列表的形式返回給用戶,最終用戶可以選擇他想問的問題,進而得到具體的答案。

2.3 知識庫

知識庫問答的技術本質也是用一些跟搜索引擎相似的技術,分為兩個階段:第一個階段是侯選集召回,第二個階段是重排序。

首先是侯選集,侯選集召回有很多種方式,和搜索引擎相比,相對簡單,原因是搜索引擎要召回的量特別的大,但是知識庫,因為是人工導入的,它的召回的就沒有那么復雜。

第二是重排序,其實我們可以用文本相似度、檢索相關度,如果有足夠數據的話,還可以用神經網絡的語義相似度等,來做重排序工作。這些工作也可以用多模型融合的方式來做,將多個模型的結果綜合考慮得到最終結果。這些都跟搜索引擎的技術沒有特別本質的區別,也會有些微小的差別,這是知識庫這塊的工作。

2.4 知識圖譜

知識圖譜(Knowledge Graph),在圖書情報界稱為知識域可視化或知識領域映射地圖,是顯示知識發展進程與結構關系的一系列各種不同的圖形,用可視化技術描述知識資源及其載體,挖掘、分析、構建、繪制和顯示知識及它們之間的相互聯系。

知識圖譜問答最難的一點在於數據的整理,其次是工具方面。有很多開源的工具,例如:Neo4j、OrientDB、Titan。

假設我們解決了數據來源和更新的問題,同時也有了工具,接下來要做的事情就是查詢轉換的工作。因為一般的知識圖譜工具都會有一些自己的查詢語言,那么我們所要做的工作實際上就是把自然語言通過某種方式轉換成知識圖譜的工具所支持的查詢語言。

查詢轉換也有常見的兩種方式,一種是可以用模板,做一些查詢轉換的工作。

2.5 對話技術

對話技術就是我們前面所說的任務對話等等,比較典型的有三大類:

  1. 第一大類是一種用狀態機,或者和狀態機類似的填槽方式。這種方式的主要特點是將整個的對話過程抽象成一個有限狀態機,每一輪對話,或者每幾輪作為一種狀態,隨着對話狀態的進行,這個狀態機在不斷的遷移,最終對話結束,狀態機也結束。這里面的所有狀態,以及所要執行的動作都是事先約定好的,所以狀態機它比較適合一些場景簡單的對話,對於場景復雜的對話,狀態機這種方式就已經不太適應了。
  2. 第二大類就是馬可夫決策過程(Markov Decision Process, MDP)的方式,它和狀態機的區別在於它里面增加了動作,狀態機里面的動作是我們事先約定好的,是固定的動作,已經事先知道對話到了那時候,於是就固定的采取這樣的動作,但是 MDP 這種方式,狀態不確定,動作也不確定,所以說我的狀態和動作是需要根據我的上一個狀態和將要采用的動作做了以后的回饋(Reward)來進行決策的,所以說這個決策過程在特定領域里有足夠的語料的時候可以做出很好的效果,但是我們得想辦法去找到合適的領域,以及找到足夠的語料才能做這樣的事情。
  3. 最后一類是端到端的模型。端到端的模型主要出發點是:我有一個問題,把問題輸入到一個模型里面之后,這個模型是幫我解決了我們之前整個對話過程所有流程的所有問題,而這個模型是需要從數據里面去學習,包括自然語言處理、意圖識別,包括整個系統里面方方面面的各種東西都要學習到。這個模型對於我們來說它是個黑盒,我給它一個問題,它也能給我答案,我並不需要仔細的去研究里面是怎么做得,我只需要設計訓練這么一個模型就行了。

那么這三種方式是現在的比較常見的三類對話技術,第一大類,像狀態機和填槽這一類是商用系統的主流;第二大類是學術界的主流,但是工業界也在積極的嘗試,有的也已經落地,或者接近落地;端到端這種模型,主要還是停留在學術界的研究階段,我並沒有看到哪一個商業系統已經做到了端到端的模型的產品化,還沒有成為商用主流的技術。

2.6 聊天機器人

在智能客服系統里面通常都會有聊天機器人的模塊。這個模塊主要有三種做法:

  1. 第一種就是檢索式,比如答案是事先編輯好的,並不會隨便生成,在檢索式里面又會分為兩大類:第一類是用大量的語料和模型來訓練,收集大量的語料,把問題和答案給一個神經網絡的模型,用這個模型幫我去找到問題和答案之間的相關度,這樣的話,就能夠用大量的語料訓練出聊天機器人模型,這是最常見的一種方式;
  2. 第二種方式是基於規則來做,使用類似於之前介紹過的 Alice 機器人所用到的 AIML 標記語言,寫大量的 pattern,以及在這個 pattern 下所需要的答案,寫大量這樣的人工規則就可以做一個檢索式的機器人,但是這僅限於少量的小規模應用,如果需要編輯大量的規則,規則之間可能會有沖突等問題,所以主流的這種聊天機器人的方式是我們說到的第一種,用統計模型和大量的語料來訓練聊天機器人。
  3. 第三種是生成式的聊天機器人,我需要把我的答案直接生成出來,這種方式是需要限定在一定的領域里面。開放領域里直接生成式的聊天機器人會有一些敏感詞的問題,因為語料一般是網上收集的,想做到所有語料都人工審核成本是巨大的。所以說生成式需要把它限定在一個特定的領域里面,生成式分為兩種:一種是純粹的生成,一種是基於一些模板來生成。

3. 整體架構

整體技術架構如下圖所示,包括**基礎服務層、應用服務層、編輯運營層、接入層以及在線客服系統。**基礎服務層提供對話系統的基礎技術能力,系統需要對用戶輸入的一段語句進行理解,這里需要自然語言理解模塊,對語句進行分詞、詞性標注、實體識別、關鍵詞抽取和句法分析等;同時需要識別用戶的意圖,包括通用意圖和業務意圖,通用意圖是指用戶是來做業務咨詢還是閑聊,業務意圖是指若用戶是做業務咨詢,具體咨詢什么業務,這里會使用文本分類的技術去識別用戶意圖。

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

4. 評價體系

智能客服系統需要有一個完備的評價體系去評價它的好壞,在我們的評價體系中有基於人工標注的評價和基於用戶反饋的評價兩種方式:

  1. 基於人工標注的評價

    系統的回答能力受限於知識庫的豐富程度,因此並非能回答用戶的所有問題,系統最佳的狀態是將能回答的全部回答准確,不能回答的全部拒識,即拒絕回答。因此這里的評價指標包括有結果率、拒識率、召回率和准確率等,我們的目標是讓系統的有結果率無限接近數據的真實有結果率,召回率和准確率盡量高。這里我們是通過標注標准評測集來計算系統的各項指標,我們會從每日的全量數據集中抽樣出一個小數據集,保證小數據集的數據分布盡量符合全量數據集,然后由標注團隊對數據集做標注,標注出每個問題的實際答案,一般標注完成后還有質檢的環節,以保證標注結果盡量准確,這樣便生成了每日數據的標准評測集。基於該標准評測集我們會去評價系統的好壞,並且每次做新模型迭代時都會使用標准評測集去評價新模型,只有新模型的效果好了才允許上線。

  2. 基於用戶反饋的評價

    人工評價能夠評價智能客服系統的准確率,但是答案是否合理,能否為用戶解決問題,需要用戶去反饋評價,整個智能客服系統的最終目標是幫助用戶解決問題。我們會在產品上設計智能客服和在線客服的評價功能,例如會讓用戶評價智能客服的每個答案或者某次會話,在和人工客服聊天完畢會發送評價卡片給用戶去評價滿意度。最終我們會統計參評比例、滿意度等指標,這些指標能夠真正反應智能客服系統的好壞。實際中往往用戶參評比例低,我們會使用各種方法去刺激用戶評價。

5. 參考文獻

15年研發經驗博士手把手教學:從零開始搭建智能客服

五八同城智能客服系統“幫幫”技術揭秘. 詹坤林, DataFunTalk. 2018.


免責聲明!

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



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