嘉賓:蘇海波博士 百分點 首席算法科學家 整理:朱瑞杰 出品:DataFunTalk 導讀:智能對話系統(tǒng)因其巨大的潛力和商業(yè)價值受到越來越多研究者和從業(yè)者的關(guān)注,對話的主要種類包括閑聊型、知識型、任務型、閱讀理解型等,目前已經(jīng)廣泛應用在智能客服、智能音箱、智能車載等眾多場景。近年來,智能對話還出現(xiàn)了新的應用場景,例如可以將自然語言轉(zhuǎn)換為各種程序性語言,如SQL,從數(shù)據(jù)庫中找到相應的答案,讓用戶和數(shù)據(jù)庫的交互變得更加直接和方便。本文將圍繞智能問答中的問題語義等價模型、知識圖譜問答模型、NL2SQL模型等進行展開介紹,同時會介紹百分點智能問答實踐案例。 智能問答的典型場景 1. 典型的智能問答應用場景 在典型的智能問答應用場景中包括:
2. 典型的智能問答對比應用場景
另外,知識型機器人和任務型機器人均屬于為垂直行業(yè)領域服務的業(yè)務型機器人。 智能問答的產(chǎn)品架構(gòu) 1. 智能問答的具體流程 2. 智能問答產(chǎn)品的具體架構(gòu) 智能問答產(chǎn)品主要包括知識庫、對話模型、配置中心、多渠道接入以及后臺管理。針對不同的任務劃分,準備不同的知識庫,例如QA BOT需要引入問答知識對,KG BOT需要知識圖譜的支持等等。將針對不同任務的對話模型服務,部署接入各個平臺接口,譬如小程序、微信、網(wǎng)頁等,提供在線問答服務。配置中心主要提供QA對、閑聊語料、同義詞庫、特征詞庫等的可視化配置服務,實現(xiàn)知識配置的快速拓展。后臺管理針對智能問答系統(tǒng)實施整體監(jiān)控、日志管理、告警、權(quán)限管理等等,另外,它還提供各種維度的統(tǒng)計分析服務。 QA知識問答的技術(shù)實現(xiàn) 1. QA知識問答的簡介 這是以智能匹配問答庫為主要實現(xiàn)原理的問答機器人,將用戶所提問題與問答庫中的問題進行相似度匹配篩選,識別出語義等價的問題以及對應答案,完成對話。 首先用戶訪問PC網(wǎng)站或者公眾號平臺,通過語音描述要咨詢的問題,輸入ASR語音識別模塊,將得到的問題經(jīng)過糾錯之后,進行問題語義等價的識別、相似問題的推薦,并對問答結(jié)果進行記錄。經(jīng)過一段時間的累積之后,后臺就會得到實際應用中對于用戶咨詢問題的各種情況,這里包括未識別的問題、誤識別的問題、新挖掘的高頻問題,AI算法團隊針對這些問題進行優(yōu)化,包括問題的新增、答案的優(yōu)化、相似問題發(fā)掘、算法的優(yōu)化等部分,并將這些重新梳理的數(shù)據(jù)作為補充的問答知識在人工審核之后錄入知識庫,持續(xù)迭代。另外,在實際的應用過程中,問答知識庫的類型包括信息中心、組織人事處、后勤管理處、保衛(wèi)處、計劃財務處、離退休工作處等各種部門需要的業(yè)務知識數(shù)據(jù)。 2. 構(gòu)建知識庫的過程 在配置中心,也可以通過可視化的配置功能,實現(xiàn)問答意圖、QA問答庫、閑聊庫等知識的快速創(chuàng)建以及分類管理。 3. 如何找到語義等價的問句 構(gòu)建問答知識庫之后,在檢索知識庫的過程中,最重要的是如何找到與輸入語義等價的問句,如下圖所示:
例如問題“什么是新冠肺炎”和“解釋下新冠肺炎的定義”是語義等價,但和“什么是支氣管肺炎”卻不是語義等價的,采用編輯距離之類的算法是無法識別的。因而,只有基于語義理解的模型才能識別出來,這里包括兩類,一是傳統(tǒng)機器學習方法,二是深度遷移學習方法。 4. 基于BERT和BIMPM的語義等價模型方案 我們采用了基于BERT和BIMPM的語義等價模型方案,模型的網(wǎng)絡結(jié)構(gòu)如下圖所示: 5. 智能問答中語義等價模型 接下來介紹智能問答中語義等價模型的訓練、優(yōu)化和發(fā)布過程,該模型的目標是判斷兩個問句在語義上是否完全等價。 模型的具體訓練和發(fā)布閉環(huán)流程,如下圖所示: 實例:疫情問答系統(tǒng) 此問答系統(tǒng)基于上述技術(shù),采用疫情相關(guān)的問答知識庫,提供智能化、自動化的疫情知識問答,并且實現(xiàn)了實時統(tǒng)計數(shù)據(jù)、實時門診咨詢、實時數(shù)據(jù)咨詢、協(xié)助求醫(yī)報警等。 04 知識圖譜問答的技術(shù)實現(xiàn) 1. 基于知識圖譜問答的算法實現(xiàn)原理 本系統(tǒng)主要是通過將輸入問句,轉(zhuǎn)化為SparQL的語句,實現(xiàn)對知識圖譜的智能問答,例如武漢大學出了那些科學家,需要識別出武漢大學和科學家的兩個查詢條件才能得到交集答案,當不能使用常規(guī)NER識別出實體的時候,可以將訓練語料中的實體詞匯導入到ES搜索引擎中,實現(xiàn)對一些難以識別樣例的查詢。具體實現(xiàn)原理,如下圖所示: 首先針對用戶問題,經(jīng)過文本預處理,先進行實體識別,將實體送入別名詞典和ES中去,得到備選的實體名稱;再問題分類,這一步是為了得到問題結(jié)果的模板類型是什么,然后槽位預測,填寫實體和關(guān)系槽位;在實體分析模塊中,針對實體識別得到的備選實體,通過語義特征和人工特征進行實體消歧和實體檢索,生成實體鏈接,并將實體填入SparQL查詢模板語句之中;繼而,根據(jù)上一步實體鏈接,找到實體在知識圖譜中的所有關(guān)系,并對所有關(guān)系和用戶問題語句進行語義匹配的排序,得到了相似度最高的關(guān)系路徑,并將該實體在該關(guān)系下的結(jié)果填入SparQL的查詢模板之中;最后,根據(jù)填寫完成的查詢語句,在圖數(shù)據(jù)庫之中檢索校驗,得到答案。 仔細來談,在問題分類部分中,一個問題所屬的類型有三個判斷依據(jù):
2. 實體分析模塊:實體鏈接 3. 查詢生成模塊:路徑排序 上面的方案在2020CCKS大賽上取得了F1為0.901的成績,并部署在GPU平臺上響應時間只需要200ms。 NL2SQL問答的技術(shù)實現(xiàn) 與上述兩種問答類型不同的是,NL2SQL問答不是基于問答對或者知識圖譜知識庫,它是基于結(jié)構(gòu)化數(shù)據(jù)表進行智能問答,實現(xiàn)自然語言轉(zhuǎn)SQL查詢的功能。 1. NL2SQL問答的技術(shù)實現(xiàn)原理: 在經(jīng)典的NL2SQL方案中,基于Seq2Seq的X-SQL模型是十分常見的,該模型的思路是先通過 MT-DNN 對原始問題及字段名稱進行編碼,再在問題前面人為地添加一個 [CXT] 用于提取全局信息。中間的 Context Reinforcing Laryer 層是這個模型的核心部分,它的目的是把 MT-DNN 得到的預訓練編碼在 NL2SQL 任務上進行增強和重組。這個中間層不僅能體現(xiàn)上下文信息,還能通過 Attention機制對字段名稱的編碼進行強化。這一層輸出的結(jié)果包括問題的編碼,以及強化后的字段編碼,后面的輸出層都會在這個基礎上進行。輸出層包括6個子模型:S-COL和S-AGG 用于預測 select 的字段,只依賴于強化后的字段名稱編碼,通過 softmax 對每個字段打分就行了;W-NUM 只依賴全局信息,用于預測 where 條件個數(shù);W-COL、W-OP和W-VAL 用于預測過濾條件的具體內(nèi)容,通過組合字段編碼,當前的 where 條件編號及問題編碼,通過softmax 評分就能得到需要的結(jié)果。 2. 基于X-SQL和依存句法樹的NL2SQL 首先,對問句進行分詞,再做依存句法分析,得到問句每一個成分在詞性、實體、是否為數(shù)據(jù)表字段、聚合函數(shù)等信息,再經(jīng)過詞庫和后序遍歷解析依存樹,將各個問句成分組合,最終得到解析結(jié)果。在基于X-SQL+句法分析+時間模板的模型設計下,達到90%以上的解析準確率,達到實用的效果。 小結(jié) 以上就是百分點關(guān)于智能問答技術(shù)的全部分享,總結(jié)起來有以下三點:
|
|