前言
近年來,随着人工智能技術的發展,人機對話技術得到越來越多的關注,人機對話産品也不斷湧現。其中,智能客服作為人機對話的一個典型場景表現出極大的商業潛力和很強的研究價值,各企業也争先恐後的推出自己的智能客服産品。
FAQ 問答技術作為智能客服系統最核心技術之一,在智能客服系統中發揮重要作用。通過該技術,可實作在知識庫中快速找到與使用者問題相比對的問答,為使用者提供滿意的答案,進而極大提升客服人員效率,改善客服人員服務化水準,降低企業客服成本。
百度在今年 7 月的 AI 開發者大會上開源了首個工業級基于語義計算的 FAQ 問答系統——AnyQ,旨在賦能開發者,為人工智能技術及應用蓬勃發展貢獻力量。
FAQ 問答技術難題與現狀
FAQ 問答主要有以下技術難題:
1、使用者問題較為口語化,包含大量省略、指代等現象;
2、使用者問題複雜多樣,基于字面資訊很難精準比對語義相同問題;
3、實際産品應用中,對系統魯棒性、整體性能要求較高;
學術界研究的 FAQ 問答技術主要集中在問題比對單點技術上,對整體 FAQ 問答系統研究較少。而工業界使用的 FAQ 系統對外則極少披露細節。
AnyQ 系統架構
開源 AnyQ(Answer Your Questions) (https://github.com/baidu/AnyQ) 系統采用配置化、插件化架構設計,搭載由百度自主研發、業界領先的 SimNet 語義比對技術,針對 FAQ 問答的種種技術難題給出了高效的解決方案。
AnyQ 系統主要由 Question Analysis(問題分析)、Retrieval(檢索)、Matching(比對)、Re-ranking(重排序) 等核心部件構成。系統架構如圖示:
AnyQ 系統特色
【特色 1】架構設計靈活,插件功能豐富
AnyQ 系統的配置化和插件化設計,使得開發者可以自主配置選擇系統的功能,目前支援 20 多個插件。同時,開發者也可根據需要便捷地将定制化的功能以插件的方式加入系統。
• 配置化
AnyQ 系統內建了檢索和比對的豐富插件,通過配置的方式生效;以相似度計算為例,包括字面比對相似度 Cosine、Jaccard、BM25 等,同時包含了語義比對相似度。
• 插件化
AnyQ 的所有功能都是通過插件形式加入,使用者自定義插件,隻需實作對應的接口即可,如 Question 分析方法、檢索方式、比對相似度、排序方式等。
【特色 2】極速語義檢索
傳統反向索引隻考慮了輸入問題和索引問題間的字面重合度,這種技術在智能客服場景中存在很大問題,FAQ 集合通常是專業人員整理,其問題形式比較書面和正式,而使用者問題更加口語化,兩者之間即使語義一緻,但表述上差别迥異。與基于反向索引的 FAQ 問答系統相比,AnyQ 在檢索方面采用了業界前沿的語義檢索技術。
語義檢索技術将使用者問題和 FAQ 集合的相似問題通過深度神經網絡映射到語義表示空間的臨近位置,檢索時,通過高速向量索引技術對相似問題進行檢索。語義檢索原理如下圖:
【特色 3】業界領先語義比對技術 SimNet
問題相似度計算是 FAQ 問答系統的核心,其算法效果好壞決定了整個系統的效果。
AnyQ 使用 SimNet 語義比對模型建構文本語義相似度,克服了傳統基于字面比對方法的局限。
SimNet 是百度 NLP 于 2013 年自主研發的語義比對架構,在百度搜尋、百度資訊流、百度地圖等産品廣泛應用,主要包括 BOW、CNN、RNN、MM-DNN 等神經網絡模型。此外,我們基于 SimNet 架構內建了學術界主流模型:Match-Pyramid、MV-LSTM、K-NRM 等。SimNet 支援 PaddlePaddle 和 Tensorflow 兩種平台訓練。基于 SimNet 語義比對架構,開發者可以快速訓練已有的語義比對網絡模型。
使用 SimNet 訓練出的模型可以便捷的加入 AnyQ 系統中,增強 AnyQ 系統的語義檢索和語義比對能力。
本次開源包含一個基于百度海量搜尋資料訓練的 SimNet-BOW 模型,在一些真實的 FAQ 問答資料集上,該模型效果相比基于字面的相似度方法 AUC 提升 5% 以上,有效解決特定領域由于标注資料少無法訓練出準确語義比對模型的問題。
總結
AnyQ 系統配置化、插件化的架構設計有助于開發者快速建構、快速定制适用于特定業務場景的 FAQ 系統。AnyQ 包含了百度積累多年的 SimNet 語義比對架構,開發者可根據自身産品需求訓練自己的語義模型,提升産品效果。此外,針對無任何訓練資料的開發者,AnyQ 還包含了基于百度海量資料訓練的語義比對模型,開發者可零成本直接使用。