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

日期: 2018-12-24 10:49:20 / 人氣: 5317

智能問答系統,近兩年被炒得熱火朝天。然而,刨除花式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系統的語義匹配能力

AnyQ 框架

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

image

配置化

AnyQ系統集成了檢索和匹配的眾多插件,通過配置的方式生效;以檢索方式和文本匹配相似度計算中的插件為例:

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

插件化

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

文本語義匹配框架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%以上。


av中文字幕网免费观看