1. 程式人生 > >問答系統總結

問答系統總結

最近在研究問答系統,但是在查詢資料的過程中一直處於懵逼狀態,因為問答系統分類比較多,根據不同的依據可以分為不同種類,總是搞混,也沒有找到資料詳細全面的介紹,所以在一邊學習查詢資料的同時,自己也整理出一份總結,用於以後學習過程不至於思路混亂,如有錯誤請幫忙指出.

19世紀60年代最早:基於模板和規則

19世紀90年代:基於檢索(IR)匹配-從問題中提取關鍵詞,根據關鍵詞在文字庫中搜索相關文件,並進行降序排序,然後從文件中提取答案.
        主要模型有:
            單輪:DSSM,CLSM
            多輪:Multi-Viem,DAM(state-of-art),Memory-Network

2010年,知識圖譜(結構化文字),基於知識庫(KB-QA)-對問題進行解析,根據解析內容從知識庫中推理出答案.
         基於知識庫的三大傳統方法:語義解析,資訊提取,向量建模.
        1. 語義解析:
        2. 資訊提取:用實體命名技術獲取到問題中的實體,然後在知識庫中進行查詢,得到關於問題實體的中心子圖,子圖的邊和結點就是候選答案的集合.進一步,可以通過分析,規則模板提取除特徵,將問題和答案的特徵結合送入二分類器中,將答案分為正確答案和錯誤答案進行建模.
        3. 向量建模:獲取問題和答案的表示向量,然後做點乘求得分.
        其他:Memory-Network也可用於KB-QA

基於閱讀理解的問答(MRC機器閱讀理解):適用資料型別為-(給定一個問題 Q 和一個與 Q 相關的文件 D,自動得到 Q 對應的答案 A)非結構化文字,主要的方法有匹配式,抽取式和生成式
        1.匹配式:給出文章,問題和答案集,從答案集中選出最高得分的答案,像選擇題.
            1)LSTM-reader(最簡單的方法):把文件d和問題q合併建模後,喂到雙向LSTM中,得到向量g
            2)Attentive-reader:先使用LSTM對問題建模得到向量q,再對文件建模,然後用q對文件使用attention匹配得到向量r,結合q和r,相當於帶著問題讀文件.
            3)Impatient-reader:同上,只不過是對每個token去計算attention,相當於先讀每個字或者詞,然後帶著字或者詞去讀文件.
            4)Gated-Attention Reader:相當於帶著一個問題,反覆讀文件,讀k遍。
        2.抽取式:顧名思義就是從文件中抽取出答案,前提是文件中包括問題答案.
           這樣的資料集有:斯坦福的SQuAD資料集,難度比較高的 TriviaQA資料集.
           抽取式的一般框架是,Embedder+Encoder+Interaction-layer+Answer
                Embedder:將輸入embedding
                Encoder:分別對問題和文件用LSTM建模(也可以用其他方法)
                Interaction-layer:使用attention將問題和文件結合起來,對問題和文件進行互動,得到query-aware的文章表示.(個模型只要差別所在)
                Answer:對上面得到的query-aware文章表示進行抽取答案,通常有兩種方法:一是使用兩個模型分別預測出答案的起始和終止位置.二是把當然當成label序列(序列標註),預測出label.
            抽取式主要模型有:
                1).Match-LSTM:比較基礎的模型,結構如下圖(沒看懂@

[email protected]),Machine Comprehension Using Match-LSTM and Answer Pointer
                    模型結構:
                    原理:
                2).BiDAF:比較出名的模型,論文地址:Bidirectional Attention Flow for Machine Comprehension
                    模型結構:
                    原理:
                3).R-Net:近似state-of-art的模型,論文地址:沒找到--.
                4).FastQAExt(輕量級),FastQA: A Simple and Efficient Neural Architecture for Question Answering
                5).GA-Reader,論文地址:Gated-Attention Readers for Text Comprehension
                6).QA-Net(使用CNN),論文地址:QANET: COMBINING LOCAL CONVOLUTION WITH GLOBAL SELF-ATTENTION FOR READING COMPREHENSION
        3.生成式:目前只有MSRA的MS MARCO資料集,答案形式是這樣的:1)答案完全在某篇原文.2)答案分別出現在多篇文章中.3答案一部分出現在原文,一部分出現在問題中.4)答案的一部分出現在原文,另一部分是生成的新詞.5)答案完全不在原文出現(Yes / No 型別)
            常見模型:
                1).改進R-Net
                2).S-Net,論文地址:S-NET: FROM ANSWER EXTRACTION TO ANSWER GENERATION FOR MACHINE READING COMPREHENSION
                3).R3-Net:集文件檢索與答案生成於一身的模型,論文地址:R 3 : Reinforced Ranker-Reader for Open-Domain Question Answering  

其他知識:
        1.transE模型:知識表示模型,最後訓練出來的向量e符合如下規則:e(object)=e(subject)+e(relation),損失函式是最小正例距離最大負樣本距離
        2.IRGAN模型:檢索
        3.OpenIE:關係抽取工具
        4.實體/關係連結:將OpenIE抽取的關係連結到知識庫
        5.檢查關係是否正確,使用transE模型的思想e(object)和e(relation)+e(subject)的餘弦距離小於閥值
        6.pointer network

參考文章:

https://www.zhihu.com/people/susht/posts    一份問答系統的小結

https://zhuanlan.zhihu.com/p/41217854    基於深度神經網路的自動問答系統概述

https://github.com/dapurv5/awesome-question-answering     領域經典論文,專案及資料集