智能問答系統,近兩年被炒得熱火朝天。然而,刨除花式PPT以及論文裏的各類黑科技,咱們最想知道的實際上是:這東西到底怎麼落地?網絡
近日,百度開源了主要面向FAQ集合的問答系統框架AnyQ(ANswer Your Questions),該框架究竟如何?讓咱們一塊兒來看一下。架構
AnyQ是ANswer Your Questions 的縮寫,直指問答系統的核心業務:回答你的問題。 實際上,該項目包含面向FAQ集合的問答系統框架AnyQ以及文本語義匹配工具SimNet。框架
AnyQ採用了配置化、插件化的設計,各功能均經過插件形式加入,當前共開放了20+種插件。開發者可使用AnyQ系統快速構建和定製適用於特定業務場景的FAQ問答系統,並加速迭代和升級。工具
SimNet是百度天然語言處理部於2013年自主研發的語義匹配框架,該框架在百度各產品上普遍應用,主要包括BOW、CNN、RNN、MM-DNN等核心網絡結構形式,同時基於該框架也集成了學術界主流的語義匹配模型,如MatchPyramid、MV-LSTM、K-NRM等模型。SimNet使用PaddleFluid和Tensorflow實現,可方便實現模型擴展。使用SimNet構建出的模型能夠便捷的加入AnyQ系統中,加強AnyQ系統的語義匹配能力ui
AnyQ系統框架主要由Question Analysis、Retrieval、Matching、Re-Rank等部分組成,框架中包含的功能均經過插件形式加入,如Analysis中的中文切詞,Retrieval中的倒排索引、語義索引,Matching中的Jaccard特徵、SimNet語義匹配特徵,當前共開放了20+種插件。AnyQ系統的配置化、插件化設計有助於開發者快速構建、快速定製適用於特定業務場景的FAQ問答系統,加速迭代和升級。 AnyQ的框架結構以下圖:插件
配置化設計
AnyQ系統集成了檢索和匹配的衆多插件,經過配置的方式生效;以檢索方式和文本匹配類似度計算中的插件爲例:3d
插件化cdn
除框架外,AnyQ的全部功能都是經過插件形式加入,用戶自定義的插件很容易加到AnyQ系統中,只需實現對應的接口便可,如自定義詞典加載、Question分析方法、檢索方式、匹配類似度、排序方式等,真正實現可定製和插件化。blog
SimNet是百度天然語言處理部於2013年自主研發的語義匹配框架,該框架在百度各產品上普遍應用,主要包括BOW、CNN、RNN、MM-DNN等核心網絡結構形式,同時基於該框架也集成了學術界主流的語義匹配模型,如MatchPyramid、MV-LSTM、K-NRM等模型。SimNet使用PaddleFluid和Tensorflow實現,可方便實現模型擴展。使用SimNet構建出的模型能夠便捷的加入AnyQ系統中,加強AnyQ系統的語義匹配能力。
按照文本語義匹配網絡結構, 可將SimNet中實現的網絡模型主要分爲以下兩類:
Representation-based Models
如:BOW, CNN, RNN(LSTM, GRNN)
特色:文本匹配任務的兩端輸入,分別進行表示,以後將表示進行融合計算類似度;
Interaction-based Models
如:MatchPyramid, MV-LSTM, K-NRM, MM-DNN
特色:在獲得文本word級別的序列表示以後,根據兩個序列表示計算類似度匹配矩陣,融合每一個位置上的匹配信息給出最終類似度打分;
SimNet使用PaddleFluid和Tensorflow實現,更多詳情訪問該開源項目
基於百度海量搜索數據,官方訓練了一個SimNet-BOW語義匹配模型,在一些真實的FAQ問答場景中,該模型效果比基於字面的類似度方法AUC提高5%以上。
關注安卓綠色聯盟公衆號,獲取更多技術乾貨。