無從下手落地問答系統?實用百度開源框架了解一下

智能問答系統,近兩年被炒得熱火朝天。然而,刨除花式PPT以及論文裏的各類黑科技,咱們最想知道的實際上是:這東西到底怎麼落地?網絡

近日,百度開源了主要面向FAQ集合的問答系統框架AnyQ(ANswer Your Questions),該框架究竟如何?讓咱們一塊兒來看一下。架構

image

摘要

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 框架

AnyQ系統框架主要由Question Analysis、Retrieval、Matching、Re-Rank等部分組成,框架中包含的功能均經過插件形式加入,如Analysis中的中文切詞,Retrieval中的倒排索引、語義索引,Matching中的Jaccard特徵、SimNet語義匹配特徵,當前共開放了20+種插件。AnyQ系統的配置化、插件化設計有助於開發者快速構建、快速定製適用於特定業務場景的FAQ問答系統,加速迭代和升級。 AnyQ的框架結構以下圖:插件

image

配置化設計

AnyQ系統集成了檢索和匹配的衆多插件,經過配置的方式生效;以檢索方式和文本匹配類似度計算中的插件爲例:3d

  • 檢索方式(Retrieval)
  • 倒排索引:基於開源倒排索引Solr,加入百度開源分詞
  • 語義檢索:基於SimNet語義表示,使用ANNOY進行ANN檢索
  • 人工干預:經過提供精準答案,控制輸出
  • 匹配計算(Matching)
  • SimNet語義匹配:使用語義匹配SimNet架構訓練的模型,構建問題在語義層面的類似度
  • Cosine類似度
  • Jaccard類似度
  • BM25
  • 字面匹配類似度:在對中文問題進行切詞等處理以後,計算字面匹配特徵
  • 語義匹配類似度

插件化cdn

除框架外,AnyQ的全部功能都是經過插件形式加入,用戶自定義的插件很容易加到AnyQ系統中,只需實現對應的接口便可,如自定義詞典加載、Question分析方法、檢索方式、匹配類似度、排序方式等,真正實現可定製和插件化。blog

文本語義匹配框架SimNet

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%以上。

關注安卓綠色聯盟公衆號,獲取更多技術乾貨。

image
相關文章
相關標籤/搜索