雲知聲:深度文字匹配在智慧客服中的應用

機器之心發表於2018-10-23

目錄

一. 深度文字匹配的簡介

1.文字匹配的價值

2.深度文字匹配的優勢

3.深度文字匹配的發展路線

二. 智慧客服的簡介

1.智慧客服的應用背景

2.智慧客服的核心模組

·FAQ 庫的構建

·語義召回

·相似度模型

·模型更新

三. 深度文字匹配在智慧客服中的應用

1.為什麼使用深度文字匹配

2.怎麼樣使用深度文字匹配

·深度文字匹配模型

·文字匹配引擎

3. 深度智慧客服的效果評測

四. 參考

一、深度文字匹配的簡介

1. 文字匹配的價值

文字匹配是自然語言理解中的一個核心問題,它可以應用於大量的自然語言處理任務中,例如資訊檢索問答系統、複述問題、對話系統、機器翻譯等等。這些自然語言處理任務在很大程度上都可以抽象成文字匹配問題,比如資訊檢索可以歸結為搜尋詞和文件資源的匹配,問答系統可以歸結為問題和候選答案的匹配,複述問題可以歸結為兩個同義句的匹配,對話系統可以歸結為前一句對話和回覆的匹配,機器翻譯則可以歸結為兩種語言的匹配。

2. 深度文字匹配的優勢

傳統的文字匹配技術如圖1中的 BoW、TFIDF、VSM等演算法,主要解決詞彙層面的匹配問題,而實際上基於詞彙重合度的匹配演算法存在著詞義侷限、結構侷限和知識侷限等問題。

·詞義侷限:的士和計程車雖然字面上不相似,但實為同一種交通工具;而蘋果在不同的語境下表示的東西不同,或為水果或為公司;

·結構侷限:機器學習和學習機器雖詞彙完全重合,但表達的意思不同;

·知識侷限:秦始皇打 Dota,這句話雖從詞法和句法上看均沒問題,但結合知識看這句話是不對的。

傳統的文字匹配模型需要基於大量的人工定義和抽取的特徵,而這些特徵總是根據特定的任務(資訊檢索或者自動問答)人工設計的,因此傳統模型在一個任務上表現很好的特徵很難用到其他文字匹配任務上。而深度學習方法可以自動從原始資料中抽取特徵,省去了大量人工設計特徵的開銷。首先特徵的抽取過程是模型的一部分,根據訓練資料的不同,可以方便適配到各種文字匹配的任務當中;其次,深度文字匹配模型結合上詞向量的技術,更好地解決了詞義侷限問題;最後得益於神經網路的層次化特性,深度文字匹配模型也能較好地建模短語匹配的結構性和文字匹配的層次性[1]。

3. 深度文字匹配的發展路線

雲知聲:深度文字匹配在智慧客服中的應用

圖 1 深度文字匹配的發展路線

隨著深度學習計算機視覺語音識別推薦系統領域中的成功運用,近年來有很多研究致力於將深度神經網路模型應用於自然語言處理任務,以降低特徵工程的成本。最早將深度學習應用於文字匹配的是微軟 Redmond 研究院。2013年微軟 Redmond 研究院發表了 DSSM [2],當時 DSSM 在真實資料集上的效果超過了SOTA(State of the Art);為了彌補 DSSM 會丟失上下文的問題,2014年微軟又設計了CDSSM [3];2016年又相繼發表了 DSSM-LSTM, MV-DSSM。微軟的 DSSM 及相關係列模型是深度文字匹配模型中比較有影響力的,據瞭解百度、微信和阿里的搜尋場景中都有使用。其他比較有影響的模型有:2014年華為諾亞方舟實驗室提出的 ARC-I和ARC-II [4],2015年史丹佛的 Tree-LSTM [5],2016年 IBM 的 ABCNN [6],中科院的 MatchPyramid [7],2017年朱曉丹的 ESIM[8],2018 年騰訊 MIG 的多通道資訊交叉模型 MIX [9]。

一般來說,深度文字匹配模型分為兩種型別,表示型和互動型。表示型模型更側重對錶示層的構建,它會在表示層將文字轉換成唯一的一個整體表示向量。典型的網路結構有 DSSM、CDSMM 和 ARC-I。這種模型的核心問題是得到的句子表示失去語義焦點,容易發生語義偏移,詞的上下文重要性難以衡量。互動型模型摒棄後匹配的思路,假設全域性的匹配度依賴於區域性的匹配度,在輸入層就進行詞語間的先匹配,並將匹配的結果作為灰度圖進行後續的建模。典型的網路結構有 ARC-II、DeepMatch 和 MatchPyramid。它的優勢是可以很好的把握語義焦點,對上下文重要性合理建模。由於模型效果顯著,業界都在逐漸嘗試互動型的方法。

雲知聲:深度文字匹配在智慧客服中的應用

圖 2 深度文字匹配模型的型別

二、智慧客服的簡介

1. 智慧客服的應用背景

由於人工客服在響應時間、服務時間和業務知識等方面的侷限性,有必要研發智慧客服系統,使其通過智慧化的手段來輔助人工客服為使用者服務。智慧客服與人工客服的優劣勢對比如圖 4 所示。

雲知聲:深度文字匹配在智慧客服中的應用

圖 3 智慧客服與人工客服的優劣勢對比

2. 智慧客服的核心模組

智慧客服的一般框架如圖 5 所示:當有 Query 請求時,首先對 Query 進行補全、解析和需求理解;其次,問題召回模組通過精準召回、核心召回和語義召回從 FAQ 庫召回與 Query 相關的問題;接著,問題排序模組通過 CTR 模型和相似度模型對召回的問題進行排序,選出 Top k 返回給使用者;最後,反饋系統記錄使用者的點選行為等,對模型進行更新。具體哪些模型會被更新,與語義召回和相似度模型階段使用的演算法有關。

雲知聲:深度文字匹配在智慧客服中的應用

圖 4 智慧客服的一般框架

在智慧客服的框架中,最重要的模組是 FAQ 庫的構建、語義召回、相似度模型和模型更新,它們效能的好壞對使用者的使用體驗有很大影響。

FAQ 庫的構建

對於重視使用者體驗的客服系統來說,FAQ 庫的構建是非常嚴格的,它的內容需要非常完整和標準,不能像聊天機器人那樣可以插科打諢。一般的做法是將積累的 FAQ ,或是將場景相關的設計文件、PRD文件中的相應內容整理成 FAQ,新增到 FAQ 庫中。日常的維護就是運營人員根據線上使用者的提問做總結,把相應的問題和答案加入 FAQ 庫。不難想像,隨著使用者量的增加,使用者的問題種類五花八門,問法多種多樣,這種維護方式肯定會給運營帶來很大的壓力,也會給使用者帶來糟糕的體驗。那麼,有沒有什麼自動或是半自動的方法可以解決新問題的挖掘和 FAQ 庫的更新?

一種理想的 FAQ 庫構建的流程應該是:從客服的直接對話出發,提取出與產品相關的問題,計算問題之間的距離,通過增量聚類的方法把使用者相似的問題聚到一起,最後由運營人員判斷新增的問題能否進入 FAQ 庫,同時將他們的反饋更新給文字匹配模型。

雲知聲:深度文字匹配在智慧客服中的應用

圖 5 理想的FAQ 庫構建的流程

語義召回

當 FAQ 庫達到一定規模時,再讓使用者請求的 Query 與 FAQ 庫中的問題一一計算相似度是非常耗時的,而問題召回模組可以通過某些演算法只召回與請求 Query 相關的問題,減少問題相似度模型階段的複雜度。精準召回和核心召回是基於詞彙重合度的檢索方法,它們的侷限是不能召回那些 FAQ 庫中與請求 Query 無詞彙重合,但語義表達是一樣的問題,而語義召回可以解決此類問題。

相似度模型

相似度模型分別計算召回的相關問題與請求 Query 之間的相似度,作為排序模型的特徵之一。需要注意,此處的相似度模型不同於語義召回中的相似度計算,前者更靠近輸出端,對準確率要求高;後者對召回率要求高。因此,這兩個模組在實現時使用的模型往往不同,在我們的文字匹配引擎中,語義召回使用的是基於表示型的深度文字匹配模型,相似度模型使用的是基於互動型的深度文字匹配模型和其他傳統文字匹配模型的混合模型。

模型更新

智慧客服投入線上使用後,使用者 query 可能與某些模型的訓練資料分佈不一致,導致智慧客服的響應不理想。因此,十分有必要從收集到的使用者行為資料中挖掘相關知識,並更新相關模型。

三、深度文字匹配在智慧客服中的應用

1. 為什麼使用深度文字匹配

問題聚類、語義召回和相似度模型都可以歸結為文字匹配問題。傳統智慧客服在這些模組中使用的是傳統文字匹配方法,不可避免地會遇到詞義侷限、結構侷限和知識侷限等問題;加上傳統文字匹配方法多是無監督的學習方法,那麼由這些方法訓練的模型就無法利用運營人員的反饋和使用者的點選行為等知識。然而,使用深度文字匹配的方法則可以有效地解決這些弊端。具體改進方面如圖 7 所示。

雲知聲:深度文字匹配在智慧客服中的應用

圖 6 深度文字匹配對傳統智慧客服的改進

2. 怎麼樣使用深度文字匹配

我們曾在智慧客服的不同領域中嘗試過多種深度文字匹配方法,通過業務場景推動技術演進的方式,逐淅形成了一套成熟的文字匹配引擎。我們的文字匹配引擎除了使用傳統的機器學習模型(如話題匹配模型、詞匹配模型、VSM等)外,還使用了基於表示型和基於互動型的深度文字匹配模型。

深度文字匹配模型

Representation-based Model

表示型的深度文字匹配模型能抽出句子主成分,將文字序列轉換為向量,因此,在問題聚類模組,我們使用表示型的深度文字匹配模型對挖掘的問題和 FAQ 庫的問題做預處理,方便後續增量聚類模組的計算;在語義召回模組,我們使用表示型的深度文字匹配模型對 FAQ 庫的問題做向量化處理,並建立索引,方便問題召回模組增加對使用者 query 的召回。另外,我們使用基於 Bi-LSTM 的表示型模型以捕獲句子內的長依賴關係。模型結構如圖 7 所示。

雲知聲:深度文字匹配在智慧客服中的應用

圖 7 基於 Bi-LSTM 的表示型模型

Iteraction-based Model

我們在相似度模型模組使用了基於互動型的深度文字匹配模型 MatchPyramid,其原因有三點:

·第一點,表示型的深度文字匹配模型對句子表示時容易失去語義焦點和發生語義偏移,而互動型的深度文字匹配模型不存在這種問題,它能很好地把握語義焦點,對上下文重要性進行合理建模。

·第二點,在語義召回階段,使用者 query 與召回問題間的語義相似度會作為排序模型的特徵之一,同樣地,相似度模型階段,使用者 query 與召回問題間的另一種語義相似度也會作為排序模型的特徵之一。

·第三點,相似度模型需要實時計算,使用者每請求一次,相似度模型就需要計算 n 個句對的相似度,n 是問題召回的個數。而序列型的神經網路不能平行計算,因此我們選擇了網路結構是 CNN 的 MatchPyramid 模型。模型結構如圖 8 所示。

雲知聲:深度文字匹配在智慧客服中的應用

圖 8 An overview of MatchPyramid on Text Matching

文字匹配引擎

由於自然語言的多樣性,文字匹配問題不是某個單一模型就能解決的,它涉及到的是演算法框架的問題。每個模型都有獨到之處,如何利用不同模型的優點去做整合,是任何文字匹配引擎都需要解決的問題。我們的文字匹配引擎融合了傳統文字匹配模型和深度文字匹配模型,具體的框架如圖 9 所示。

雲知聲:深度文字匹配在智慧客服中的應用

圖 9 文字匹配引擎的框架

3. 深度智慧客服的效果評測

應用上述的文字匹配引擎後,我們為某汽車公司開發的智慧客服系統,在測試集上的 precision 達到了 97%;與某壽險公司合作完成的智慧客服,其 precision 比 baseline 高出 10 個點。除此之外,在對話系統的音樂領域中,使用深度文字匹配引擎替代模糊匹配後,整體 precision 提高了 10 個點;在通用領域的測試集上,我們的文字匹配引擎也與百度的 SimNet 表現不相上下。

四、參考

1.龐亮,蘭豔豔,徐君等. 深度文字匹配綜述. 計算機學報. 2017, 40(4):985-1000.

2.Po-Sen Huang, Xiaodong He, Jianfeng Gao, et al. Learning Deep Structured Semantic Models for Web Search using Clickthrough Data. 2013, In CIKM.

3.Yelong Shen, Xiaodong He, Jianfeng Gao, et al. A Latent Semantic Model with Convolutional-Pooling Structure for Information Retrieval. 2014, In CIKM.

4.Baotian Hu, Zhengdong Lu, Hang Li, et al. Convolutional Neural Network Architectures for Matching Natural Language Sentences. 2014, In NIPS.

5.Kai Sheng Tai, Richard Socher, Christopher D. Manning. Improved Semantic Representations From Tree-Structured Long Short-Term Memory Networks. 2015.

6.Wenpeng Yin, Hinrich Schutze, Bing Xiang, et al. ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs. 2016.

7.Liang Pang, Yanyan Lan, Jiafeng Guo, et al. Text Matching as Image Recognition. 2016.

8.Qian Chen, Xiaodan Zhu, Zhenhua Liu, et al. 2017.

9.[Haolan Chen, Di Niu, Dong Liu, et al. MIX: Multi-Channel Information Crossing for Text Matching. 2018, In KDD.

相關文章