1. 程式人生 > >智慧問答中Answer seletcion的一些總結

智慧問答中Answer seletcion的一些總結

傳統做法

1.直接根據關鍵詞檢索或 BM25 等演算法計算相關性排序

缺點:

需要維護大量的同義詞典庫和匹配規則

機器學習做法

1.潛在語義分析技術(Latent Semantic Analysis,LSA):將詞句對映到低維連續空間,可在潛在的語義空間上計算相似度。

2.PLSA(Probabilistic Latent Semantic Analysis)或者LDA(Latent Dirichlet Allocation)等淺層主題模型技術方向。

優點:對文字的語義表示形式簡潔,較好地彌補了傳統詞彙匹配方法的不足

缺點:無法完全替代基於字詞的匹配技術

深度學習

基於神經網路訓練的 Word2vec來進行文字匹配計算

缺點:

無監督的 Word2vec 在句子匹配度計算的實用效果上還是存在不足,而且本身沒有解決短語、句子的語義表示問題

句子級別上的神經網路語言模型:DSSM 模型(Deep Structured Semantic Model)

基於二維互動匹配的卷積匹配模型

多視角迴圈神經網路匹配模型(MV - LSTM)

基於矩陣匹配的的層次化匹配模型 MatchPyramid

雖然模型的結構非常多種,但底層結構單元基本以全連結層、LSTM、卷積層、池化層為主

ps:我在9月底看過不錯的論文:

Attentive Pooling Networks:這篇論文需要的語料需要正負對的形式,也就是pair - wise。

Siamese Recurrent Architectures for Learning Sentence Similarity:這篇論文需要做的是對語料進行同義句改寫,對標註團隊而言,工作量比較大。

語義模型訓練框架——分類

一般最後一層接的是多類別的 softmax,即輸入是使用者 Q,分類結果是所屬的標準 Q 類別。

語義模型訓練框架——排序

三種類型:point - wise,pair - wise 和 list - wise。

point - wise 的方法直接把問題轉換成二分類,判斷當前使用者問題是否屬於帶匹配的問題,最後根據隸屬概率值可以得到問題的排序。

pair - wise 學習的是(uq,sq+)和(uq,sq-)兩兩之間的排序關係,訓練目標是最大化正樣本對和負樣本對的距離:max⁡L=||f(uq,q+ )-f(uq,q- )||d,其中f(·)表示某種距離度量。

多輪對話

Task 任務式對話,Task(goal - driven system)是根據預定義的槽位和狀態來表示上下文,並且依照某個業務邏輯的對話管理策略來引導使用者到想要搜尋的內容。

QA(non - goal - driven system)不是面向槽管理的,而是根據使用者會話意圖來調整對話過程。

在 QA 的上下文會話管理方法中,大致可分為兩個方向,一個是 Rule - Based 的上下文模型;另一個是 Model - Based 的上下文模型。

Rule - Based:通過預定義一些先驗知識來表示上下文,在會話中不斷修改上下文的先驗知識並根據上下文記錄資訊來重排序。

Model - Based:Model - Based 相對於 Rule - Based 的好處就是能夠提升泛化能力。把上下文資訊表徵在向量裡,並通過層次化模型來學習和推斷。

該模型主要有三個結構:句子級 encoder 模型、context 級別 encoder 模型以及 response decoder 模型。

輸入聯想

一、Trie 樹結構:在搜尋中,可以把所有的候選詞條建立一個字典樹,然後根據使用者輸入的字首到 Trie 樹中檢索候選集,展示給使用者。

優點:簡單有效,能夠快速上線。

缺點:召回率較低,這是因為字典樹要求使用者輸入的詞語必須和候選集合裡的短語句子要有一致的字首。

泛化優化:例如去除掉停用詞或者無意義詞語等,儘可能提高召回。但提升有限。

二、point - wise 排序模型

資料:歷史曝光點選資料

模型:邏輯迴歸模型

特徵:一類是基於 word2vec 得到的句子特徵,另一類是傳統的 TF - IDF 特徵,最後一類是重要詞彙特徵(這類特徵是通過資料探勘得到的對應場景的重要詞)。

優點:使用率比字典樹有了明顯提升,召回率大幅度提高。

缺點:線上存在很多拼音漢字混搭的case,模型沒有解決能力;-使用者輸入的話術存在很多錯別字;-聯想請求場景以超短文字為主,大都集中在 2 - 6 個字 。