首頁>科技>

編者按

智慧對話系統因其巨大的潛力和商業價值受到越來越多研究者和從業者的關注,對話的主要種類包括閒聊型、知識型、任務型、閱讀理解型等,目前已經廣泛應用在智慧客服、智慧音箱、智慧車載等眾多場景。近年來,智慧對話還出現了新的應用場景,例如可以將自然語言轉換為各種程式性語言,如SQL,從資料庫中找到相應的答案,讓使用者和資料庫的互動變得更加直接和方便。

為此,Datafun釋出了百分點首席演算法科學家蘇海波署名文章,文中主要介紹了智慧問答中的問題語義等價模型、知識圖譜問答模型、NL2SQL模型,以及百分點在智慧問答領域的實踐案例。

一、智慧問答的典型場景

1. 典型的智慧問答應用場景

在典型的智慧問答應用場景中包括:

閒聊式,開放域閒聊的典型例子,包括問天氣,寒暄,情感陪伴等。

任務導向式對話,任務驅動的多輪對話的例子,包括智慧音箱,語音智慧點餐服務,這是特定任務模式下的服務。

資訊問答式,知識型問答,回答資訊,例如問姚明的身高等,是用作獲取資訊的服務。

2. 典型的智慧問答對比應用場景

知識型機器人,主要應用於諮詢和售後服務的場景,擁有一問一答,智慧匹配應答,實現語義歸一的能力,在實際使用中代替部分的人工服務,服務於垂直單一行業領域,這部分的資料主要來自於企業自主更新的業務知識庫和不斷最佳化的知識體系。

任務機器人,在售前,銷售,售後均有涉及,可以進行多輪對話,實現深層語義識別,意圖識別等任務,主要服務於明確具體的任務場景,資料同樣來自於企業自主更新的業務知識庫和不斷最佳化的知識體系。

另外,知識型機器人和任務型機器人均屬於為垂直行業領域服務的業務型機器人。

二、智慧問答的產品架構

1. 智慧問答的具體流程

首先進行語音識別,將使用者會話識別出來後,經過ASR結果糾錯和補全、指代消解、省略恢復等預處理之後,經過敏感詞檢測,送入中控系統。中控系統是在特定語境下進行意圖識別的系統,分為情緒識別、業務意圖識別、對話管理、異常處理等四個模組,其中業務意圖包括QA問答機器人(QA Bot)、基於知識圖譜的問答機器人(KG Bot),NL2SQL機器人(DB Bot),任務型機器人(TASK Bot)。對話管理包括多輪對話的對話歷史管理、BOT當前詢問、會話狀態選取等模組。異常處理包括安全話術(對意圖結果的結果進行後處理)、會話日誌記錄、告警等功能。然後,進入話術/指令生成子系統,這是識別問句意圖後的對話結果生成,包括話術生成和指令生成兩個模組,在話術生成中,對話系統根據對話歷史資料和對話模板生成和拼接產生話術,如果是任務型對話,將生成對應指令。另外,輔助系統透過畫像分析、使用者分析、問題分析等功能,進一步最佳化問答系統的效果。

2. 智慧問答產品的具體架構

智慧問答產品主要包括知識庫、對話模型、配置中心、多渠道接入以及後臺管理。針對不同的任務劃分,準備不同的知識庫,例如QA BOT需要引入問答知識對,KG BOT需要知識圖譜的支援等等。將針對不同任務的對話模型服務,部署接入各個平臺介面,譬如小程式、微信、網頁等,提供線上問答服務。配置中心主要提供QA對、閒聊語料、同義詞庫、特徵詞庫等的視覺化配置服務,實現知識配置的快速拓展。後臺管理針對智慧問答系統實施整體監控、日誌管理、告警、許可權管理等等,另外,它還提供各種維度的統計分析服務。

三、QA知識問答的技術實現

1. QA知識問答的簡介

這是以智慧匹配問答庫為主要實現原理的問答機器人,將使用者所提問題與問答庫中的問題進行相似度匹配篩選,識別出語義等價的問題以及對應答案,完成對話。

2. 構建知識庫的過程

知識庫的主要來源包括:歷史的問答和諮詢資料、業務知識梳理積累、規章制度和流程等內容、輔之以同義詞詞庫等外部資料,在功能上設立新建知識、匯出知識、匯入知識等。舉個例子來說明知識庫的格式,例如“北京分為多少區||北京行政區劃||北京有四個區嗎”,這個個問題都是語義等價的,其一級分類為中國,二級分類為北京,對應的答案是“2015年北京市轄東城、西城、朝陽、豐臺、石景山、海淀、門頭溝、房山、通州、順義、昌平、大興、懷柔、平谷、密雲、延慶16個市轄區(合計16個地市級行政區劃單位);#n150個街道、143個鎮、33個鄉、5個民族鄉(合計331個鄉級行政單位)。||北京一共有16個區;”如果新增問答知識,那麼一級分類、二級分類、問題和回答是必須要新增的,以“||”作為分割多個問題和答案的分隔符等。

在配置中心,也可以透過視覺化的配置功能,實現問答意圖、QA問答庫、閒聊庫等知識的快速建立以及分類管理。

3. 如何找到語義等價的問句

構建問答知識庫之後,在檢索知識庫的過程中,最重要的是如何找到與輸入語義等價的問句,如下圖所示:

常用的相似度演算法包括餘弦相似度、編輯距離、關鍵詞重合度、BM25等等,實際使用中是有用,但仍然不夠,因為可能遇到如下問題:

字面相似的句子語義不等價

字面不相似的句子語義等價

例如問題“什麼是新冠肺炎”和“解釋下新冠肺炎的定義”是語義等價,但和“什麼是支氣管肺炎”卻不是語義等價的,採用編輯距離之類的演算法是無法識別的。因而,只有基於語義理解的模型才能識別出來,這裡包括兩類,一是傳統機器學習方法,二是深度遷移學習方法。

4. 基於BERT和BIMPM的語義等價模型方案

我們採用了基於BERT和BIMPM的語義等價模型方案,模型的網路結構如下圖所示:

BIMPM本身是十分經典的模型,底層是透過word2vec向量來進行語義匹配計算,這裡我們將word2vec詞向量全部替換為BERT的最上面若干層的輸出,並將原有模型中的BI-LSTM結構,替換為Transformer,以提高其在序列性上的表現,實際測試中,該模型在Quora和SLNI資料集中達到了state-of-the-art的效果,如下圖所示:

上面的表格中顯示了BERT層數在效果表現上的差異,其中使用BERT最上面三層的引數,作為模型的輸入,整體表現效果最佳。

5. 智慧問答中語義等價模型

接下來介紹智慧問答中語義等價模型的訓練、最佳化和釋出過程,該模型的目標是判斷兩個問句在語義上是否完全等價。

模型的具體訓練和釋出閉環流程,如下圖所示:

在完成對標註資料樣本集的模型訓練,生成模型之後,我們將在沙盒環境中測試模型的表現,針對模型表現不好的樣本,提取並標註再放入資料集重新訓練調優,模型釋出至生產環境之後,針對實際使用中未識別樣本、誤識別樣本和新高頻樣本做對話分析,進行模型最佳化後再重新發布模型。

例項:疫情問答系統

此問答系統基於上述技術,採用疫情相關的問答知識庫,提供智慧化、自動化的疫情知識問答,並且實現了實時統計資料、實時門診諮詢、實時資料諮詢、協助求醫報警等。

四、知識圖譜問答的技術實現

1. 基於知識圖譜問答的演算法實現原理

本系統主要是透過將輸入問句,轉化為SparQL的語句,實現對知識圖譜的智慧問答,例如武漢大學出了那些科學家,需要識別出武漢大學和科學家的兩個查詢條件才能得到交集答案,當不能使用常規NER識別出實體的時候,可以將訓練語料中的實體詞彙匯入到ES搜尋引擎中,實現對一些難以識別樣例的查詢。具體實現原理,如下圖所示:

首先針對使用者問題,經過文字預處理,先進行實體識別,將實體送入別名詞典和ES中去,得到備選的實體名稱;再問題分類,這一步是為了得到問題結果的模板型別是什麼,然後槽位預測,填寫實體和關係槽位;在實體分析模組中,針對實體識別得到的備選實體,透過語義特徵和人工特徵進行實體消歧和實體檢索,生成實體連結,並將實體填入SparQL查詢模板語句之中;繼而,根據上一步實體連結,找到實體在知識圖譜中的所有關係,並對所有關係和使用者問題語句進行語義匹配的排序,得到了相似度最高的關係路徑,並將該實體在該關係下的結果填入SparQL的查詢模板之中;最後,根據填寫完成的查詢語句,在圖資料庫之中檢索校驗,得到答案。

仔細來談,在問題分類部分中,一個問題所屬的型別有三個判斷依據:

鏈式和夾式,鏈式解釋其查詢語句遵循鏈式查詢,一步一步的查詢;夾式是指查詢的結果滿足兩個條件的交集;

問題的跳數,指的是需要建立的查詢次數;

每一跳是問實體還是問關係。

2. 實體分析模組:實體連結

在實體分析模組,實體連結就是用來處理問題和候選實體進行匹配的步驟,以確定所需的實體究竟是哪一個實體,畢竟同名實體是比較常見的。MatcgZoo是一款深度文字匹配的工具,支援DRMM、MatchPyramid、MV-LSTM、DSSM等深度匹配模型。採用該工具,我們需要準備實體匹配的正負樣本,將<問題、SparQL>樣本資料中,問題和正確的候選實體形成實體連結模型的正樣本,錯誤候選實體形成負樣本。在模型的改進方面,將上述得到的文字匹配特徵和人工特徵結合,使用stacking模型取得更好的效果。

3. 查詢生成模組:路徑排序

在查詢生成模組,針對問題和生成候選查詢匹配的問題上,就需要實現路徑排序。這裡使用了孿生網路來判斷其語義相似度,正負樣本生成與實體分析模組類似,在模型改進上,BERT向量會比傳統詞向量取得更好的效果。

上面的方案在2020CCKS大賽上取得了F1為0.901的成績,並部署在GPU平臺上響應時間只需要200ms。

五、NL2SQL問答的技術實現

與上述兩種問答型別不同的是,NL2SQL問答不是基於問答對或者知識圖譜知識庫,它是基於結構化資料表進行智慧問答,實現自然語言轉SQL查詢的功能。

1. NL2SQL問答的技術實現原理

首先,針對自然語言查詢語句,使用分詞、詞性標註、實體識別、依存句法等對句子進行句法分析,然後使用規則、詞向量、語言模型、深度學習等多種方法填充語義槽,具體包括查詢欄位、聚合函式、篩選條件、分組欄位等,然後基於這些填充的資訊生成對應的SQL查詢語句。

在經典的NL2SQL方案中,基於Seq2Seq的X-SQL模型是十分常見的,該模型的思路是先透過 MT-DNN 對原始問題及欄位名稱進行編碼,再在問題前面人為地新增一個 [CXT] 用於提取全域性資訊。中間的 Context Reinforcing Laryer 層是這個模型的核心部分,它的目的是把 MT-DNN 得到的預訓練編碼在 NL2SQL 任務上進行增強和重組。這個中間層不僅能體現上下文資訊,還能透過 Attention機制對欄位名稱的編碼進行強化。這一層輸出的結果包括問題的編碼,以及強化後的欄位編碼,後面的輸出層都會在這個基礎上進行。輸出層包括6個子模型:S-COL和S-AGG 用於預測 select 的欄位,只依賴於強化後的欄位名稱編碼,透過 softmax 對每個欄位打分就行了;W-NUM 只依賴全域性資訊,用於預測 where 條件個數;W-COL、W-OP和W-VAL 用於預測過濾條件的具體內容,透過組合欄位編碼,當前的 where 條件編號及問題編碼,透過softmax 評分就能得到需要的結果。

這個架構已經十分完善了,但是由於資料的侷限,模型無法預測多個 select 及 group 的內容。而且模型完全依賴欄位名稱去提取過濾條件和select的內容,在中文欄位名稱特徵不夠明顯或者領域資料與訓練資料偏差較大時,容易出錯。我們提出了一種結合依存語法樹的新方案在實際專案中得到了應用,下圖顯示此新方法的具體思路:

2. 基於X-SQL和依存句法樹的NL2SQL

首先,對問句進行分詞,再做依存句法分析,得到問句每一個成分在詞性、實體、是否為資料表字段、聚合函式等資訊,再經過詞庫和後序遍歷解析依存樹,將各個問句成分組合,最終得到解析結果。在基於X-SQL+句法分析+時間模板的模型設計下,達到90%以上的解析準確率,達到實用的效果。

總結

以上就是百分點關於智慧問答技術的全部分享,總結起來有以下三點:

(1)基於預訓練模型的深度遷移學習技術在智慧問答中將得到普遍應用。

(2)NL2SQL問答技術目前還存在很多的技術挑戰和提升空間,是目前前沿熱門的技術研究方向。

(3)垂直行業性的智慧問答場景,技術更容易落地,使用者能獲得更好的問答體驗。

15
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • “心不繫人民的人,管你馬雲白雲,最後人民都會讓你變成烏雲?”