問答系統可以基于規則實現,可以基于檢索實現,還可以通過對 query 進行解析或語義編碼來生成候選回復(如通過解析 query并查詢知識庫后生成,或通過 SMT 模型生成,或通過 - 框架生成,有些 QA 場景可能還需要邏輯推理才能生成回復)。
具體到檢索式問答系統,其典型場景是:1)候選集先離線建好索引;2)在線服務收到 query 后,初步召回一批候選回復;3) 和 模型對候選列表做 并返回 topK。
備注:
1) 模型負責對 (query, reply) pair 做特征匹配,其輸出的 score 通常會作為 模型的一維特征;
2) 模型負責具體的 工作,其輸入是候選回復對應的特征向量,根據實際需求構造不同類型(如:, , )的損失函數,其輸出的 score 是候選回復的最終排序依據。各種 模型通常就是在 階段起作用;
3)有些檢索系統可能不會明確區分 和 這兩個過程。
再具體到短文本場景下的檢索式問答系統,由于分詞后 term 數量少,導致只基于 term 本身或其 bow 向量進行匹配的檢索策略無法令人滿意(term 稀疏且表達方式各異導致匹配效果不佳,也沒有利用 term 背后的語義)。出于語義特征補充的需求,隱語義模型(如:LSA, PLAS, LDA)得到了普遍關注。再到近幾年,利用神經網絡(尤其是深度學習)模型對文本做語義表示( )后進行語義匹配的方法開始被提出并應用于檢索式問答系統。
下面進入正題,盤點一些基于神經網絡模型實現語義匹配的典型工作。希望能夠拋磚引玉,如有遺漏或錯誤,歡迎補充或指出。
1. Po-Sen Huang, et al., 2013, Deep for Web using Data
這篇文章出自 UIUC 和 ,針對搜索引擎 query/ 之間的語義匹配問題 ,提出了基于 MLP 對 query 和 做深度語義表示的模型(Deep , DSSM),結構如下圖所示。
DSSM 模型原理簡述如下:
先把 query 和 轉換成 BOW 向量形式,然后通過 word 變換做降維得到相對低維的向量(備注:除了降維,word 還可以很大程度上解決單詞形態和 OOV 對匹配效果的影響),喂給 MLP 網絡,輸出層對應的低維向量就是 query 和 的語義向量(假定為 Q 和 D)。計算(D, Q)的 后,用 做歸一化得到的概率值是整個模型的最終輸出,該值作為監督信號進行有監督訓練。
通過挖掘搜索點擊日志構造 query 和對應的正負 樣本(實驗實際使用的是 的 title),輸入 DSSM 模型進行訓練。文中與 TF-IDF、BM25、WTM、LSA、PLSA 等模型進行了對比實驗,NDCG@N 指標表明,DSSM 模型在語義匹配方面效果提升明顯,當時達到了 SOTA 的水平。
2. Shen, et al, 2014, A Model with - for
這篇文章出自 ,是對上述 DSSM 模型的改進工作。在 DSSM 模型中,輸入層是文本的 bag-of-words 向量,丟失詞序特征,無法捕捉前后詞的上下文信息。基于此,本文提出一種基于卷積的隱語義模型( model, CLSM),結構如下圖所示。
CLSM 模型原理簡述如下:
先用滑窗構造出 query 或 的一系列 n-gram terms(圖中是 ),然后通過 word 變換將 word terms 表示成對應的 - 向量形式(主要目的是降維),接著對每個 - 向量做卷積,由此得到「Word-n-gram-Level 」,接著借助 max 層得到「-Level 」,最后對 max 的輸出做 tanh 變換,得到一個固定維度的向量作為文本的隱語義向量。Query 和 借助 CLSM 模型得到各自的語義向量后,構造損失函數做監督訓練。訓練樣本同樣是通過挖掘搜索點擊日志來生成。
文中與 BM25、PLSA、LDA、DSSM 等模型進行了對比實驗,NDCG@N 指標表明,CLSM 模型在語義匹配上達到了新的 SOTA 水平。文中的實驗和結果分析詳細且清晰,很贊的工作。
3. Lu & Hang Li, 2013, A Deep for Short Texts
這篇文章出自華為諾亞方舟實驗室,針對短文本匹配問題,提出一個被稱為 的神經網絡語義匹配模型。該模型的提出基于文本匹配過程的兩個直覺:1),也即,兩個語義相關的文本應該存在詞級別的共現模式(co- of words);2),也即,共現模式可能在不同的詞抽象層次中出現。
模型實現時,并不是直接統計兩段短文本是否有共現詞,而是先用(Q, A)語料訓練 LDA 主題模型,得到其 topic words,這些主題詞被用來檢測兩個文本是否有共現詞,例如,若文本 X 和文本 Y 都可以歸類到某些主題詞,則意味著它們可能存在語義相關性。而詞抽象層次則體現在,每次指定不同的 topic 個數,訓練一個 LDA 模型,最終會得到幾個不同分辨率的主題模型,高分辨率模型的 topic words 通常更具體,低分辨率模型的 topic words 則相對抽象。在高分辨率層級無共現關系的文本,可能會在低分辨率層級存在更抽象的語義關聯。不難看到文本語義相似度計算方法研究,借助主題模型反映詞的共現關系,可以避免短文本詞稀疏帶來的問題,且能得到出不同的抽象層級,是本文的創新點。
文中提出的 模型結構如下圖所示:
上圖比較抽象,但限于篇幅,這里不詳細解釋。提供幾點說明,相信對理解模型細節有幫助。
1)不同抽象層級的 topic words 可以構造出一系列 ,兩個文本 X, Y 在某 patch 上的共現關系構成那個抽象層次的 local 。
2)上圖左側 Input 部分,不同的顏色代表不同的 topic 抽象層級,這一點要注意,否則很容易被圖中的"偷懶"畫法搞暈。
總之,最終的 score 可以構成監督信號來訓練模型。文中在給定領域的 QA 語料和新浪微博語料上的實驗都表明,與 PLS、 等模型相比, 模型在文本語義匹配上,達到了 SOTA 的效果。
(PS: 個人感覺 在構造神經網絡結構時略 ,不夠簡潔。)
4. Ji, et al., 2014, An to Short Text
這篇文章出自華為諾亞方舟實驗室,針對的問題是基于檢索的短文本對話,但也可以看做是基于檢索的問答系統。主要思路是,從不同角度構造 特征,作為 模型的特征輸入。構造的特征包括:1)Query-;2)Query-Post ;3)Query- in Space;4)-based Model;5)Deep ;6)Topic-Word Model;7)其它匹配特征。
文中的實驗對比了不同的 組合對應的 效果,且對每個 特征的作用做了分析,比較有參考價值。
5. Hu, et al., 2015, for
這篇文章出自華為諾亞方舟實驗室,采用 CNN 模型來解決語義匹配問題,文中提出 2 種網絡架構,分別為 ARC-I 和 ARC-II,如下圖所示:
上圖所示的 ARC-I 比較直觀,待匹配文本 X 和 Y 經過多次一維卷積和 MAX 池化,得到的固定維度向量被當做文本的隱語義向量,這兩個向量繼續輸入到符合 網絡架構的 MLP 層,最終得到文本的相似度分數。需要說明的是,MAX 層在由同一個卷積核得到的 maps 之間進行兩兩 MAX 池化操作,起到進一步降維的作用。
作者認為 ARC-I 的監督信號在最后的輸出層才出現,在這之前,X 和 Y 的隱語義向量相互獨立生成,可能會丟失語義相關信息,于是提出 ARC-II 架構。
上圖所示的 ARC-II 在第 1 層卷積后就把文本 X 和 Y 做了融合,具體的融合方式是,分別對 X 和 Y 做 1D 卷積,然后針對兩者卷積得到的 maps,構造其所有可能的組合(在兩個方向上拼接對應的 map),這樣就構造出一個 2D 的 map,然后對其做 2D MAX ,多次 2D 卷積和池化操作后,輸出固定維度的向量,接著輸入 MLP 層,最終得到文本相似度分數。
文中的實驗結果表明,與 、(即直接累加 word 得到 )、SENNA+MLP 等模型相比,ARC-I 和 ARC-II 都明顯提升了文本語義匹配效果,其中 ARC-II 又明顯優于 ARC-I。文中的實驗還表明, 作為一種簡單的處理方法,通常也能得到不錯的匹配效果。
6. Lei Yu, et al., 2014, Deep for
這篇文章出自 of 和 ,提出基于 和 的語義匹配模型,其中, 模型通過累加句中所有詞(去掉停用詞)的 word ,然后求均值得到句子的語義向量; 模型則先構造句子的 word 矩陣,接著用 窗口對輸入矩陣做 1D 卷積,然后做 池化,用 n 個 卷積核對輸入矩陣分別做「1D 卷積+ 池化」后,會得到一個 n 維向量,作為文本的語義向量。文中提出的基于 CNN 的文本語義表示模型如下圖所示。
對(,)文本分別用上述 模型生成語義向量后,計算其語義相似度并用 變換成 0~1 的概率值作為最終的 score。該 score 可作為監督信號訓練模型。
文中用 TREC QA 數據集測試了提出的 2 個模型文本語義相似度計算方法研究,實驗結果的 MAP 和 MRR 指標表明, 和 模型都有不錯的語義匹配效果,其中 模型要優于 模型。特別地,在語義向量基礎上融入 idf- word co- count 特征后,語義匹配效果會得到明顯提升。文中還將提出的 和 模型與幾個已有模型進行了效果對比,結果表明在同樣的數據集上,融入共現詞特征的 模型達到了 SOTA 的效果。
7. , et al., 2015, to Rank Short Text Pairs with Deep
這篇文章出自 of (in Italy),是在上述第 6 篇 Paper 基礎上做的改進工作,也是用 CNN 模型對文本進行語義表示。與第 6 篇文章提出的 和 模型相比,本文的改進點包括:1)使用 n-gram 窗口,可以捕捉更長的上下文語義;2)將 query 和 的語義向量及其相似度拼接成新的特征向量輸入 MLP 層進行 to rank;3)可以在 模型的輸入向量中方便地融入外部特征;4)支持 end-to-end 的 + 任務。模型結構如下圖所示。
上述模型的邏輯很直觀:先分別對 query 和 做 wide 1D 卷積和 MAX 池化,得到文本的語義向量,接著通過 M 矩陣變換得到語義向量的相似度,然后把 query 語義向量、query& 的語義相似度、 語義向量、外部特征拼接成 n 維向量,輸入一個非線性變換隱層,最終用 做概率歸一化。用 的輸出作為監督信號,采用 cross- 作為損失函數進行模型訓練。
文中使用 TREC QA 數據集進行了實驗,并與第 6 篇 Paper 的模型做了對比,結果表明,本文的模型在 MAP 和 MRR 指標上效果提升顯著,達到了新的 SOTA 效果。此外,為測試模型的 效果,文中還用 TREC 數據集做了另一組實驗,結果表明本文模型比已有模型有明顯效果提升。
8. Ryan Lowe, et al., 2016, The : A Large for in Multi-Turn
這篇文章出自 和 兩所大學,針對基于檢索的多輪對話問題,提出了 dual- 模型對 和 進行語義表示,該思路也可用于檢索式問答系統。Dual- 模型結構如下圖所示。
該模型思路直觀:通過對偶的 RNN 模型分別把 和 編碼成語義向量,然后通過 M 矩陣變換計算語義相似度,相似度得分作為監督信號在標注數據集上訓練模型。
文中在 對話語料庫上的實驗結果表明,dual- 模型在捕捉文本語義相似度上的效果相當不錯。
總結
從上面 8 篇論文可知,與關鍵詞匹配(如 TF-IDF 和 BM25)和淺層語義匹配(如隱語義模型,詞向量直接累加構造的句向量)相比,基于深度學習的文本語義匹配模型在問答系統的匹配效果上有明顯提升。