分享嘉賓:邱立坤 阿里巴巴 算法專家
編輯整理:Hoh
內容來源:阿里小蜜 & DataFun AI Talk
出品社區:DataFun
註:歡迎轉載,轉載請註明出處
導讀:大家好,我今天報告的題目是知識結構化推動智能客服升級,主要為大家介紹阿里小蜜在知識圖譜問答(結構化智能問答)方面的工作,我們的基本思路是:通過知識結構化,解決現有智能客服系統在知識管理和語言理解上的痛點,為客戶帶來高效復用、精準理解、精細管理等方面的顯著收益。
大家對智能客服應該都有一定的了解,智能客服在中國已經有很長的歷史了,從2007年開始就有很多企業逐漸的應用了智能客服,這種智能客服,現在可以稱為第一代智能客服。最近幾年,很多大型企業,包括一些中小企業都希望升級到新一代智能客服。今天的報告分為以下四個部分:
新一代智能客服的主要需求是什麼?
面對這些需求,我們主要的解決思路是什麼?
基於結構化知識的解決方案。
使用這些解決方案的時候會得到什麼樣的收益。
▌智能客服升級的需求
首先看下智能客服升級的需求。
這個例子,大家一看就會明白,現在用很多智能客服的時候它都讓你配很多標準問,然後再為每個標準問配很多的相似問。一些大型智能客服系統會有幾千個標準問,每個標準問需要配很多相似問,才能得到差強人意的效果。這裡舉了一個簡單的例子,比如問上海有多少人口,你可以給配置相似問,這些相似問用於覆蓋同一個問題的各種可能的說法,因此最終系統可以將各種不同的 query 定位到同樣的標準問上,進而可以給出統一的答案。
如果把這個句子中的「上海」換成「北京」呢?你又需要給它很多類似的說法。依此類推,這樣需要配備的相似問數量是非常巨大的,你肯定不願意這樣蠻幹。但是現在大多數智能客服系統,就是這麼做的。所以維護客服系統的運營人員都是很沒有成就感的,每天都在做大量重複性的工作。
這也是人們將人工智慧詬病為人肉智能的主要原因。
我們可以把目前智能客服系統存在的問題歸納成兩個痛點:
一是知識管理痛點。成千上萬的知識點,缺乏關聯,給知識運營和管理帶來困擾,卻又需要維護大量的相似問。其表現出來的兩種現狀:
設置多個知識點,答案細緻,但知識管理任務重。
設置1個知識點,管理任務輕,但答案過粗。
這兩種方法是兩種極端,都沒有很好的解決這個痛點,或者導致知識管理任務重,或者導致用戶使用體驗差。
二是語言理解難點。語言具有多樣性、歧義性、複雜性、復用性、模糊性等特點。現在的系統即使使用了深度學習算法,也不能很好地解決複雜問題、模糊問題,在遷移到新的領域時也不能很好地復用原有領域的訓練語料。
2017年用戶輸入「上海有多少人口?」這樣的問題時,機器人能夠自動問答「2017年上海的常住人口是:2419.70萬」,我們就可以認為機器人具有一定智能。在傳統的智能問答(FAQ)中,知識運營的主要工作是為每個標準問題配置一定數量的同義問法,比如「上海有多少人口」「上海目前常住人口有多少」「上海市現在有多少人口」等等。對於「天津有多少人口」這個標準問題,再配置對應的同義問法,「天津有多少人口」「天津目前常住人口有多少」「天津市現在有多少人口」等等。
從傳統智能問答到知識圖譜問答,第一個重要變化是引入知識圖譜,具體包括:
① 將實體歸納為實體類型:將「上海」歸納為「城市」類實體,將「2017年」歸納為「時間」類實體;
② 將標準問題歸納成屬性:將「[城市]有多少人口」映射到「城市」類實體的屬性「常住人口」上;
③ 抽取實體-屬性-值:將具體的知識組織成「(上海,常住人口,2419.70萬)」這樣的包含簡單屬性值的三元組,進而組織成「(上海,常住人口,(2017年,2419.70萬))」這樣的包含複合屬性值(CVT,Compound Value Type)的N元組。
第二個重要變化是在語言理解算法從分類或匹配算法改為 Semantic Parsing 算法。傳統智能問答在語言理解部分只需要將用戶問題映射為一個標準問題,而 Semantic parsing 則需要對用戶問題進行深入理解,並輸出一個結構化的語義表達式,可以直接從知識圖譜中查詢答案,或者經過推理後產生相應的答案。在語言理解算法的核心部分,Semantic Parsing 算法有三種主要的形式:
▌知識結構化的主要思路
結構化的主要思路可以分為三個方面:
① 從非結構化業務文檔或者半結構化的數據過渡到結構化知識圖譜
② 從非結構化的用戶表述解析出結構化的語義表達式
③ 從非結構的文本型答案升級為結構化答案
知識圖譜的概念大家都比較熟悉,知識圖譜實際上是網絡化的結構。
知識圖譜的構建一個非常複雜的過程,我們在內部有一套非常複雜的平臺,從知識建模、挖掘、融合、編輯與管理到推理與計算,它用於構建和管理超級複雜的知識圖譜。在構建服務於智能客服的知識圖譜時,一般不需要使用這個超級複雜的知識圖譜構建與管理平臺,而是使用一個相對輕量級的、人機互助的知識圖譜編輯和管理平臺。
這是阿里巴巴商品知識圖譜的示例,它把淘寶天貓中上百億種商品構建成一個非常龐大的商品知識圖譜,在淘寶和天貓平臺治理、智能客服、導購等許多方面發揮了很大作用。
但是這種知識圖譜的量與我們所要服務的個體企業的商品和服務在量級上是完全不可同日而語的。多數大型企業和機構能有幾萬種商品就已經相當可觀了。
1. 構建結構化知識圖譜
第一塊,將非結構化的業務文檔或半結構化數據轉換成結構化的知識圖譜。我們在 To B 的場景中,每一個企業都需要建立知識圖譜,卻不可能像建淘寶天貓商品知識圖譜那樣,投入那麼多的時間和人力去建設,否則客戶會覺得成本太貴了,承受不起。
但是知識結構化的目標仍然是可以以較低成本實現的。
這是一個很簡單的文檔的例子,為一個套餐提供了非結構化的表述。我們最終是希望從非結構化表述中整理出一個關於這個業務場景的 schema,它有實體類型、實體、簡單屬性/複合屬性等。最後把各種實體的值都填上,就得到了這個場景的知識圖譜。這個知識圖譜對於客戶來說通常不會很複雜,因為一般客戶所提供的服務和產品均不會大於萬這個量級,所以它的知識圖譜不會特別複雜,構建成本也沒有那麼高。
這是為移動運營商做的知識圖譜的一個簡單示例。它的實體類型有流量套餐、話費套餐等,然後每個套餐下面有很多實體,實體下面有很多屬性。
在建知識圖譜的過程中,抽象出 Schema 是最關鍵的一步,包括歸納出實體類型以及各實體類型下的各種屬性。智能客服廠商對客戶的業務了解不夠,客戶自身對知識圖譜的概念缺乏了解,因此溝通的成本較高。那麼,應該如何快速構建一個定製化的知識圖譜呢?一個非常簡單而又有效的做法是從客戶現有的 FAQ 知識庫出發,快速地歸納 Schema 和知識圖譜,比如這是我們內部的一個場景,原來大概有700個標準問,我們把它歸納完之後就變成了70個屬性。
然後這個是移動運營商的場景,大概是有4000個標準問,歸納完之後是不超過400個的屬性。
所以從知識管理角度來說,通過知識結構化可以大幅度降低知識量級,而且耗時比較短,成本比較低。
2. 結構化語義表達式
第二塊是語義理解部分,把非結構化的用戶 query 變成結構化語義表達式,就是我們通常所說的 Semantic Parser 的過程。
上面是一句話,我們希望得到這樣一個結構化的表達,最上面是動詞,下面有動詞的客體,客體下面還有它的修飾成分。
3. 結構化答案
第三塊,我們把原來非結構化的文本型答案變成結構化答案。
這是淘寶天貓雙十一的一個問題,這個問題在不同的時間段,回答的答案是不一樣的,所以我們就把它做成了一個時間性的結構化答案。用戶在不同的時間段進來可以看到對應時間段的答案。
這是一個彈性的答案,用戶可以問的很籠統,也可以問的很細。
▌知識圖譜問答解決方案
我們的知識圖譜問答解決方案主要可以分為三個方面:
① KAMR ( Knowledge-driven Abstract Meaning Representation ),是由我們提出的語義表達體系。我們參照的對象是 AMR 和 AMRL。
② KAMR Parser,基於 KAMR 語義體系的 Semantic Parser。KAMR Parser 是我們第二代的 Semantic Parser,上一代的 Parser 是 MulCG Parser。
③ 結構化問答平臺,是以 KAMR 為核心的包括人工智慧閉環在內的結構化問答平臺,將 FAQ 問答和知識圖譜問答融為一體。在上一代產品中,FAQ 問答和知識圖譜問答採用兩個不同的語言理解引擎。
1. 語義表達體系
語義表達體系方面我們參考的對象是 AMR ( Abstract Meaning Representation ),是由美國學者提出的語義表達體系,是一種通用的語義表達體系。AMR 的特點是將句子中的詞抽象為概念,因而使最終的語義表達式與原始的句子沒有直接的對應關係,這是它與語義角色標註、依存語法等的一個顯著區別。AMR 是2013年提出來的,本身並不是全新的體系,但是到目前為止 AMR 仍然是自然語言處理學界對於深度語言理解的最好最系統的解決方案。
另外一個參考對象是亞馬遜基於 AMR 提出的 AMRL,其語義表達形式與 AMR 一脈相承,但主要應用於任務型場景。
2. KAMR
通過上述參考,結合我們的業務場景,我們提出了基於知識驅動的抽象語義表達 KAMR,主要由 KAMR Ontology 和 KAMR Language 組成,KAMR 框架可以支持跨 domain 的 query、彈性粒度的 type、複雜的語義以及各種組合,進而可以支持精細理解、彈性理解和高效復用(從企業客戶角度來說,非常注重高效復用,因為我們希望同一個場景中數據之間可以復用,跨場景也可以復用,以及跨客戶復用,這樣才能降低成本,提高效率)。
剛剛提到語言理解有很多痛點,我們的 KAMR 著力於解決四個方面的問題:歧義性、複雜性、復用性、模糊性。
這是 KAMR Ontology,包括謂詞、算子、Type、Property 等部分,每個部分都是一個層次化的 Ontology。
這是 KAMR 語義表達的兩個例子。KAMR 本質上是有向無環圖。從表達能力上講,它可以表達多謂詞、省略、歧義、複雜約束條件、並列結構等各種複雜現象。
3. Semantic Parser
這是我們第一代的 Semantic Parser,其流程包含四個步驟:實體識別->屬性分類->約束綁定->重排序。其中屬性分類、重排序都使用了深度學習。目前很多做知識問答的系統,已經使用了端到端的系統,直接從 query 得到一個結構化的語義表達,但是這類系統在精度上離我們所採用的 Pipeline 方案有較大的差距。Pipeline 方案的優點是每一步都比較容易的進行人工的幹預,精確度也遠遠的高於目前純粹的端到端系統。端到端的系統對訓練數據量要求非常高,我們在多數情況下還不能獲取足夠多的訓練數據。因此,在這種情況下,Pipeline 的方式更為合適。
針對實際業務場景中遇到的問題,我們對第一代 MultCG Semantic Parser 進行針對性地系統改進,進而發展出第二代 Semantic Parser,即 KAMR Parser。它包含實體識別、屬性識別、約束識別和 Semantic Dependency Parser 四個模塊,每個模塊的內涵與第一代 Parser 相比也有本質的變化。
① 實體識別
首先是實體識別,我們在一些場景中落地的時候,發現實體識別遠遠比我們想像的要複雜,比如中移動上有一些套餐,大流量58元套餐,本來這個實體叫大流量套餐就可以了,但是這個實體名被數字隔開了,這是我們之前沒有遇到的。因此,我們引入了模型化的實體識別,這裡模型採用的是比較常見的 BLSTM+CRF 模型。特別的地方在於,序列標籤可以是不連續的,就可以把前面的 BD、ID 和後面的 ID 合成一個實體。
② 意圖識別
更核心的是意圖/屬性識別部分,這裡我們提出的是基於多因子的意圖分類方案:
每一個意圖由三維因子組成 ( domain,predicate,target )
每一個query由四維因子組成 ( domain,predicate,target,query type )
query 的四維因子中的前面三維可以直接從它所屬的意圖繼承而來,query type 則是個性化的,同一個意圖下的多個 query 可以屬於不同的 query type。
這是我們在某個業務場景下對意圖進行多因子分析的例子,其中 none 表示有些因子的值可以為空。
這個是我們的多因子意圖分類模型,主要包含兩個模塊,第一個就是編碼核心,可選擇諸如 CNN、LSTM、Gated CNN、Transformer 之類的方法進行 encoder。剩下的關鍵的就是把四維因子和原始query之間建立 Attention,通過因子與 query 之間的 attention 對 query 的表示進行引導,將與因子相關的部分進行增強。
當把一個意圖拆解到因子這個粒度的時候,可以實現意圖間的語料復用,因為一個場景中不同的意圖是有些相同部分的,比如「辦理」這個 predicate,可能出現在「辦理方式」、「辦理條件」、「辦理時間」等意圖中,這裡的 predicate 都是一樣的。之前把意圖作為一個整體的時候,是沒法利用 predicate 層的共享信息的。還可以解決不同意圖語料之間不平衡的問題。
多因子意圖分類,還可以發揮其他作用:
③ Semantic Dependency Parser
在實體識別和意圖識別階段系統可以輸出多個結果,可能存在多個實體、多個意圖、多個約束條件以及算子,因此還需要有一個模塊將多個結果組合起來形成一個完整的語義表達式。在此,我們使用的是基於 Biaffine 的 Semantic Dependency Parser。這是一個簡潔高效的模型,但是速度很快,效果也很好,可以用來解決複雜問題,如多實體、多約束條件、多謂詞多意圖等。Biaffine Dependency Parser 本質上是一個基於最大生成樹的依存分析器。
4. 結構化問答平臺
這是我們的結構化問答平臺的整體架構圖,分為算法層和知識層兩部分。這個平臺中為客戶可見的部分主要是 KG 編輯平臺,包括知識圖譜 Schema 編輯器和實體知識編輯器,以及目前服務於結構化問答的智能閉環已經投入使用,支持用戶在線進行無答案或未解決問題篩選、人工標註、模型訓練、評測、模型部署等。
知識圖譜 Schema 編輯器的界面
▌知識結構化的收益
基於我們的知識圖譜問答(結構化智能問答)解決方法,可以為客戶帶來以下幾個方面的收益:
高效復用:如果一個企業有幾百種產品(實體),可以達到舉一反千的效果;如果新增加一個或多個實體,無需新增相似問,直接把實體和屬性的值填上,就可以生效;同時還實現了知識的瘦身,將知識點數量從4000減少到400左右;並且做到了同場景復用、跨場景復用、跨客戶復用。
精準理解:通過 Semantic Parsing,KBQA 對問句的理解更加深入,它可以知道一個問句涉及到的實體是什麼實體,屬性是什麼,帶有什麼約束條件。比如「3元 5G 流量快餐包如何辦理」這個句子中,實體是「流量快餐包」,屬性是「辦理方法」,約束條件是「流量=5G,資費=3元」。傳統智能問答在回答這類問題時,將不同檔位的流量快餐包的答案聚合在一起輸出給用戶,答案冗長。KBQA 在精準理解的基礎上,可以給出更細緻的回答,直接回復「3元 5G 流量快餐包的辦理方法是:……」。
精細管理:當知識數量較大時,增、刪、改、查將會成為一個難題。通過知識結構化,從實體、屬性、CVT 子屬性等多個維度對知識進行系統的梳理,知識的增、刪、改、查將會更加便捷。
推理計算:在結構化知識的基礎上可以進行推理和計算。比如,對於「阿里巴巴幾歲了」這樣的問題,在知識圖譜中存儲的具體知識三元組是(阿里巴巴,創立於,1999年),KBQA 經過一個從創立時間到年齡的計算過程:年齡=當前年份-1999年,即可計算出「阿里巴巴的年齡是:19歲」。不需要每隔一年去修改一次答案。
▌總結
最後再小結一下今天報告的主要內容:
需求,分析了知識結構化的需求,包括知識管理和語言理解;
思路,知識結構化為分為知識圖譜構建、語義剖析和答案展示三個方面;
方案,知識結構化的方案包括 KAMR 語義表達體系、KAMR Parser 及知識圖譜問答平臺三個部分;
收益,知識結構化解決方案帶來的收益主要是高效復用、精準理解和精細化管理。
知識就是力量,結構化的知識更有力量。今天的分享到此結束,謝謝大家!
邱立坤,阿里巴巴集團智能服務事業部算法專家。主要研究方向為知識圖譜問答、語言資源構建及基礎自然語言處理技術,擔任中國計算機學會、中國中文信息學會專業委員會委員以及 ACL、EMNLP、COLING 等多個著名國際學術會議程序委員會委員。已在 AAAI、COLING 等國內外期刊和會議上發表學術論文50餘篇,獲中國發明專利授權10項,出版專著、譯著各一部,主持國家自然科學基金項目2項及其它項目20餘項。——END——
文章推薦:
阿里小蜜中的情緒回復能力
雲小蜜:在中國移動的落地實踐
阿里小蜜:智能服務技術實踐及場景探索
DataFun:
專注於大數據、人工智慧領域的知識分享平臺。
一個「在看」,一段時光!👇