以同程藝龍客服機器人為例,談談意圖識別和對話管理建設

AIBigbull2050發表於2020-06-09

隨著雲端計算、大資料、機器學習、深度學習等技術的不斷髮展進步,基於人工智慧的智慧客服機器人嶄露頭角。本文將以同程藝龍客服機器人為例,分析智慧客服機器人的意圖識別和對話管理建設。

所謂智慧客服機器人,其實是一種使用自然語言與使用者進行交流的人工智慧資訊系統,它採用包括自然語言理解、機器學習技術在內的多項智慧人機互動技術,能夠識別並理解使用者以文字或語音形式提出的問題,透過語義分析理解使用者意圖,並以擬人化的方式與使用者溝通,向使用者提供資訊諮詢等相關服務。

智慧客服是人機互動在客服領域的一個應用,本文將和大家簡單分享下同程藝龍智慧客服機器人在意圖識別以及對話管理建設過程中的一點心得體會。

同程藝龍智慧客服目前分為單輪問答的QA Bot和多輪對話的Task Bot,一般多輪對話的智慧客服系統會切分為以下幾個模組:客人的問題Q,進來後首先經過NLU模組抽象化為客人的意圖(intent)以及關鍵資訊槽位(slot),意圖及槽位傳給DM模組後,經過DST、DPL、NLG模組返回答案。

目前的智慧客服會話的核心是進行使用者意圖匹配,只有明確了意圖,才能給出針對性的回答,所以下面簡單和大家分享下意圖識別的一般性原理。

對於智慧客服機器人而言,意圖識別就是判斷使用者諮詢的問題是什麼?使用者想表達的是什麼意思?

例如:

這張機票我不要了-退票

我的火車票出票了沒-催出票

我要預訂明天的機票-幫下單

一般會使用下面幾種方式進行提取

1. 基於命名實體提取和詞庫

例如我的訂單出票了沒,使用HanLp 自然語言處理工具包, 會抽取以下2個詞語 訂單、出票,根據停用詞詞典去除掉訂單,然後根據出票到詞庫中進行匹配對應的分類,找到對應意圖催出票。對於複雜的句子,可以統計詞頻,根據頻率最高的找到對應的分類意圖。

使用這種方式優點是操作方便,用搜尋的方式很快找出對應的意圖。但缺點也很明顯,比如這個訂單還沒出票,沒出票不要了,意圖是退票,很明顯提取出來的是錯誤。識別的準確率相對來說不高,所以此種方式一般作為機器學習意圖槽位資料提取。

2. 基於模板的匹配

查詢非常符合規則的類別,透過規則解析的方式來獲取查詢的意圖。 幫我預訂明天的蘇州到北京的機票,可以使用規則模板,進行如下提取 [蘇州]到[北京][明天][機票]。

這種方式需要藉助命名實體提取,詞性標準,語義分析才能完成,對於規則性比較強的諮詢有較好的準確率。但此種方式對於研發和訓練師需要做大量的工作,較難進行擴充套件。

3. 基於機器學習

1)邏輯迴歸

意圖識別在機器學習中的分類問題,也就是使用邏輯迴歸進行分類。在使用邏輯迴歸之前,首先要對詞語進行分詞,向量化。 分詞可以比較各個分詞的效果,最常用是jieba分詞。支援配置專業名詞及停用詞。分詞完成後,需要將詞與進行向量化。

一般有2種方式,一種是使用One-Hot編碼,這種方式一般針對專業性比較強的領域使用,另一種是word2vec,這種編碼方式可以很好的標識詞之間的關係。

one-hot編碼一半般將所有詞行列進行排列,相同的地方記做1,比如分詞完成後,按照詞頻排序結果如下:

那麼[訂單,出票,取消]得到的詞向量為[[1,0,0],[0,1,0],[0,0,1]] 假如一個句子是這個訂單還沒出票,沒出票不要了,訂單出現一次,出票出現2次,這個句子最終的向量為

使用word2vec得到的結果類似。

針對意圖識別,一般是多類分類。但多分類問題是從二分類問題進行擴充套件。

2)二元分類

對於二分問題,在對於未知機率分佈條件下,一般假設為正態分佈(高斯分佈),多維高斯分佈如下,也是多個高斯分佈相乘得到的結果。

帶入貝葉斯公式,最終得到是關於w,b的函式,也是sigmod函式。

對於資料量較少的分類,可以使用生成模型(Generative Model),計算p(c1),p(c2)和各個分類樣本資料的均值mean和共用協方差矩陣Σ,即可得到w,b,對於任意輸入x

代表資料分類屬於c1,否則屬於c2。由於是二元分類,不必單獨計算p(c2|x)。

但針對資料量較多的情況,一般使用判別模型(Discriminative Model), 針對二分類問題,根據最大擬然估算,Loss函式為

所有就是要找到w,b,使得

為了計算方便,將公式取對數

由於和的機率表示式不統一,上面的式子無法寫成統一的形式,為了統一格式,這裡將所有Training data都打上0和1的標籤, y = 1代表c1, y= 0代表c2,於是上式進一步改寫成:

這個形式其實就是兩個分佈的交叉熵,表示個機率分佈有多接近。

下面就是對這個loss函式使用梯度下降求解最小值,對w,b微分最終得到每次更新的梯度,最終得到w,b,帶入sigmod函式即可得到結果。

另外,一般情況下判別模型比生成模型要高。

以上二元分類的情況,對於多元分類問題,其原理的推導過程與二元分類基本一致。

3)多分類

假設我們用的是高斯分佈,共用協方差矩陣,經過一般推導,也就是各種變換後,可以得到一個softmax函式。

假設有三個分類:c1,c2,c3 ,每一個c都有自己的w,b,w1,w2,w3 分佈代表三個向量, b1,b2,b3分別代表三個常量,輸入x也是一個向量。

用softmax進行輸出正則化。softmax計算方式如下:

可以是任何值,但是做完softmax之後,輸出的值一定是介於0~1之間,並且它們的和一定是1。
多分類任務中輸出的是目標屬於每個類別的機率,所有類別機率的和為1,其中機率最大的類別就是目標所屬的分類。

即二分類使用sigmod函式輸出得到結果,而多分類使用softmax得到結果。

如下圖所示,輸入x經過三個式子分別生成,經過softmax轉化成輸出,它們分別是這三個 分類的機率,由於sum=1,因此做完softmax之後就可以把y的分佈當做是一個機率分佈。

我們在訓練的時候還需要有一個輸出,因為是三個分類,所以對應的輸出也是三維的。為了滿足交叉熵的條件,輸出也必須是機率分佈,這裡我們不能使用1,2,3作為分類的區分,為了保證所有分類之間的關係是一樣的,這裡使用類似於one-hot編碼的方式。

和二元分類求解一樣,利用交叉熵,最終透過微分得到最優w1,w2,w3 。

4. 基於神經網路

對於輸入引數比較複雜的情況,例如輸入的可能是一個100*100的矩陣,這個時候就需要對資料進行處理,或者輸入的特徵無法在資料來源上進行資料處理,就需要在邏輯迴歸之前再接上一個邏輯迴歸,對資料來源做處理。

多個邏輯迴歸就構成了一個類神經網路,也就是深度學習,如(CNN,LTSM)。

對於分類問題,深度學習的最後輸出函式也就是sigmod或者softmax函式。

透過上一次的語義抽取和意圖識別,對話會進入後續對話樹模組。根據前一模組抽取資料和使用者本身資料,將資料填充到對話樹的對應部分,對話數節點也可以根據條件拉取其他資料,最終這些資料都會在當前會話中儲存。可以根據使用者問題,如果條件滿足,透過NLG模組生成對應話術返回。

最終一次使用者會話的完整的流程

5. 應用與實踐

同程藝龍智慧酒店訂單諮詢問題,目前使用交叉熵和L-GFGS演算法訓練得到的意圖,初步打樣上線後,準確率在93%左右。

上文我們提到了智慧客服相關的核心技術,除此之外,我們還希望有一套比較完整的對話管理系統解決方案,並期望它:

更靈活:可靈活支援以上不同形態,不同業務,不同的運營人員使用。

更易用:運營團隊可以自主訓練自己的機器人和定義對話流程。

同程藝龍對話管理平臺:

面向於同程藝龍和外部租戶的公共對話管理支援系統,包括機器人訓練,對話流程配置功能(詞槽和意圖的配置、對話條件和執行動作的配置)、以及相關的資料包表和機器人自學習最佳化等功能。

1. 多租戶管理

考慮內外部的不同需求,平臺採用SAAS的租戶管理方式,將不同業務之間分離解耦。租戶下支援建立多業務線和系統角色、成員等。

2. 視覺化任務場景搭建

我們將對話互動抽象和總結為條件判斷(Entry),資訊收集 (SlotFilling),響應回覆(Response)等一系列元素模組。支援運營人員在平臺上利用這些元素,快速自由組合配置對話流。

業務系統可以透過系統公共API接入全域性變數,並將這些變數運用到對話流配置中。同時也也可以使用系統預置的條件引數,或對話中已收集到的資訊來完善任務場景。

例如:【定機票】場景下,首先要判斷是否已存在未支付的衝突訂單,業務系統可以接入全域性變數 [查詢訂單] [訂單狀態],在該判斷節點選擇使用。

在決策樹中新增資訊收集節點(SlotFilling),配置多輪對話引數和澄清話術,來完成複雜場景和多倫對話。系統預置了常用通用實體供選擇,如時間,城市等;支援自行擴寫專用實體型別用來補充與業務強相關的行業專用實體,如航司,水果等;

例如:【定機票】場景中,如不存在衝突訂單,需要確認買票的資訊:定義 [出發時間] [出發地] [目的地] 3個槽位,和澄清話術,系統將按流程完成填槽資訊收集。

3. 響應型別

任務執行響應結果包含文字響應,自定義類響應(提交資料或完成某項任務),跳轉(跳轉其他場景/節點)等多種形式。

例如:【定機票】場景下,透過文字回復確認客戶購買需求後,可以透過[提交訂單][傳送支付連結]代替客戶提交訂單併傳送支付連結完成下單流程。

在整體上,智慧客服業務和技術的部分是解耦的。業務相關資訊的設定和操作都是透過智慧客服平臺,包括不同業務線的意圖和詞槽的設定、答案配置、資料稽核、測試、標註等。新建一條業務線的智慧客服應用,只需要在平臺上新建專案,輸入設定的意圖、對應的語料、必要的槽位和對應的答案。

此外,平臺上的答案配置也很靈活,可以是固定回答,可以是知識圖譜的schema,可以是外部的介面,或是隨不同詞槽設定的回覆等等。

以上是同程藝龍智慧客服產品技術推進過程中的一點點心得分享,未來智慧客服將往多模態和多語言方向發展,支援語音、影像等模態的解析。智慧客服還將提供智慧外呼、主動服務、人機協同、等多維度服務,未來將實現從售前到售後、從服務到產品的全業務以及全服務流程的智慧化,構建服務行業的全智慧模式。





來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2697090/,如需轉載,請註明出處,否則將追究法律責任。

相關文章