基於神經網路模型實現語義匹配的典型工作

  1. Po-Sen Huang, et al., 2013, Learning Deep Structured Semantic Models for Web Search using Clickthrough Data

這篇文章出自 UIUC 和 Microsoft Research,針對搜索引擎 query/document 之間的語義匹配問題 ,提出了基於 MLP 對 query 和 document 做深度語義表示的模型(Deep Structured SemanticModels, DSSM),結構如下圖所示。

DSSM 模型原理簡述如下:

先把 query 和 document 轉換成 BOW 向量形式,然後通過 word hashing 變換做降維得到相對低維的向量(備註:除了降維,word hashing 還可以很大程度上解決單詞形態和 OOV 對匹配效果的影響),餵給 MLP 網路,輸出層對應的低維向量就是 query 和 document 的語義向量(假定為 Q 和 D)。計算(D, Q)的 cosinesimilarity 後,用 softmax 做歸一化得到的概率值是整個模型的最終輸出,該值作為監督信號進行有監督訓練。

通過挖掘搜索點擊日誌構造 query 和對應的正負 document 樣本(實驗實際使用的是 document 的 title),輸入 DSSM 模型進行訓練。文中與 TF-IDF、BM25、WTM、LSA、PLSA 等模型進行了對比實驗,NDCG@N 指標表明,DSSM 模型在語義匹配方面效果提升明顯,當時達到了 SOTA 的水平。

  1. Yelong Shen, et al, 2014, A Latent Semantic Model with Convolutional-Pooling Structure for Information Retrieval

這篇文章出自 Microsoft Research,是對上述 DSSM 模型的改進工作。在 DSSM 模型中,輸入層是文本的 bag-of-words 向量,丟失詞序特徵,無法捕捉前後詞的上下文信息。基於此,本文提出一種基於卷積的隱語義模型(convolutional latent semantic model, CLSM),結構如下圖所示。

CLSM 模型原理簡述如下:

先用滑窗構造出 query 或 document 的一系列 n-gram terms(圖中是 trigram),然後通過 word hashing 變換將 word trigram terms 表示成對應的 letter-trigram 向量形式(主要目的是降維),接著對每個 letter-trigram 向量做卷積,由此得到「Word-n-gram-Level Contextual Features」,接著藉助 max pooling 層得到「Sentence-Level Semantic Features」,最後對 max pooling 的輸出做 tanh 變換,得到一個固定維度的向量作為文本的隱語義向量。Query 和 document 藉助 CLSM 模型得到各自的語義向量後,構造損失函數做監督訓練。訓練樣本同樣是通過挖掘搜索點擊日誌來生成。

文中與 BM25、PLSA、LDA、DSSM 等模型進行了對比實驗,NDCG@N 指標表明,CLSM 模型在語義匹配上達到了新的 SOTA 水平。文中的實驗和結果分析詳細且清晰,很贊的工作。

3. Zhengdong Lu & Hang Li, 2013, A Deep Architecture for Matching Short Texts

這篇文章出自華為諾亞方舟實驗室,針對短文本匹配問題,提出一個被稱為 DeepMatch 的神經網路語義匹配模型。該模型的提出基於文本匹配過程的兩個直覺:1)Localness,也即,兩個語義相關的文本應該存在詞級別的共現模式(co-ouccurence pattern of words);2)Hierarchy,也即,共現模式可能在不同的詞抽象層次中出現。

模型實現時,並不是直接統計兩段短文本是否有共現詞,而是先用(Q, A)語料訓練 LDA 主題模型,得到其 topic words,這些主題詞被用來檢測兩個文本是否有共現詞,例如,若文本 X 和文本 Y 都可以歸類到某些主題詞,則意味著它們可能存在語義相關性。而詞抽象層次則體現在,每次指定不同的 topic 個數,訓練一個 LDA 模型,最終會得到幾個不同解析度的主題模型,高解析度模型的 topic words 通常更具體,低解析度模型的 topic words 則相對抽象。在高解析度層級無共現關係的文本,可能會在低解析度層級存在更抽象的語義關聯。不難看到,藉助主題模型反映詞的共現關係,可以避免短文本詞稀疏帶來的問題,且能得到出不同的抽象層級,是本文的創新點。

文中提出的 DeepMatch 模型結構如下圖所示:

上圖比較抽象,但限於篇幅,這裡不詳細解釋。提供幾點說明,相信對理解模型細節有幫助。

1)不同抽象層級的 topic words 可以構造出一系列 patches,兩個文本 X, Y 在某 patch 上的共現關係構成那個抽象層次的 local decision。

2)上圖左側 Input 部分,不同的顏色代表不同的 topic 抽象層級,這一點要注意,否則很容易被圖中的"偷懶"畫法搞暈。

總之,最終的 matching score 可以構成監督信號來訓練模型。文中在給定領域的 QA 語料和新浪微博語料上的實驗都表明,與 PLS、SIAMESE NETWORK 等模型相比,DeepMatch 模型在文本語義匹配上,達到了 SOTA 的效果。

4. Zongcheng Ji, et al., 2014, An Information Retrieval Approach to Short Text Conversation

這篇文章出自華為諾亞方舟實驗室,針對的問題是基於檢索的短文本對話,但也可以看做是基於檢索的問答系統。主要思路是,從不同角度構造 matching 特徵,作為 ranking 模型的特徵輸入。構造的特徵包括:1)Query-ResponseSimilarity;2)Query-Post Similarity;3)Query-Response Matching in Latent Space;4)Translation-based Language Model;5)Deep MatchingModel;6)Topic-Word Model;7)其它匹配特徵。

文中的實驗對比了不同的 matching features 組合對應的 ranking 效果,且對每個 matching 特徵的作用做了分析,比較有參考價值。

5. Baotian Hu, et al., 2015, Convolutional Neural Network Architectures for Matching Natural Language Sentences

這篇文章出自華為諾亞方舟實驗室,採用 CNN 模型來解決語義匹配問題,文中提出 2 種網路架構,分別為 ARC-I 和 ARC-II,如下圖所示:

上圖所示的 ARC-I 比較直觀,待匹配文本 X 和 Y 經過多次一維卷積和 MAX 池化,得到的固定維度向量被當做文本的隱語義向量,這兩個向量繼續輸入到符合 Siamese 網路架構的 MLP 層,最終得到文本的相似度分數。需要說明的是,MAX POOLING 層在由同一個卷積核得到的 feature maps 之間進行兩兩 MAX 池化操作,起到進一步降維的作用。

作者認為 ARC-I 的監督信號在最後的輸出層才出現,在這之前,X 和 Y 的隱語義向量相互獨立生成,可能會丟失語義相關信息,於是提出 ARC-II 架構。

上圖所示的 ARC-II 在第 1 層卷積後就把文本 X 和 Y 做了融合,具體的融合方式是,分別對 X 和 Y 做 1D 卷積,然後針對兩者卷積得到的 feature maps,構造其所有可能的組合(在兩個方向上拼接對應的 feature map),這樣就構造出一個 2D 的 feature map,然後對其做 2D MAX POOLING,多次 2D 卷積和池化操作後,輸出固定維度的向量,接著輸入 MLP 層,最終得到文本相似度分數。

文中的實驗結果表明,與 DeepMatch、WordEmbed(即直接累加 word vector 得到 sentence vector)、SENNA+MLP 等模型相比,ARC-I 和 ARC-II 都明顯提升了文本語義匹配效果,其中 ARC-II 又明顯優於 ARC-I。文中的實驗還表明,WordEmbed 作為一種簡單的處理方法,通常也能得到不錯的匹配效果。

6. Lei Yu, et al., 2014, Deep Learning for Answer Sentence Selection

這篇文章出自 University of Oxford 和 DeepMind,提出基於 unigram 和 bigram 的語義匹配模型,其中,unigram 模型通過累加句中所有詞(去掉停用詞)的 word vector,然後求均值得到句子的語義向量;bigram 模型則先構造句子的 word embedding 矩陣,接著用 bigram 窗口對輸入矩陣做 1D 卷積,然後做 average 池化,用 n 個 bigram 卷積核對輸入矩陣分別做「1D 卷積+average 池化」後,會得到一個 n 維向量,作為文本的語義向量。文中提出的基於 CNN 的文本語義表示模型如下圖所示。

對(question,answer)文本分別用上述 bigram 模型生成語義向量後,計算其語義相似度並用 sigmoid 變換成 0~1 的概率值作為最終的 matching score。該 score 可作為監督信號訓練模型。

文中用 TREC QA 數據集測試了提出的 2 個模型,實驗結果的 MAP 和 MRR 指標表明,unigram 和 bigram 模型都有不錯的語義匹配效果,其中 bigram 模型要優於 unigram 模型。特別地,在語義向量基礎上融入 idf-weighted word co-occurence count 特徵後,語義匹配效果會得到明顯提升。文中還將提出的 unigram 和 bigram 模型與幾個已有模型進行了效果對比,結果表明在同樣的數據集上,融入共現詞特徵的 bigram 模型達到了 SOTA 的效果。

7. Aliaksei Severyn, et al., 2015, Learning to Rank Short Text Pairs with Convolutional Deep Neural Networks

這篇文章出自 University of Trento (in Italy),是在上述第 6 篇 Paper 基礎上做的改進工作,也是用 CNN 模型對文本進行語義表示。與第 6 篇文章提出的 unigram 和 bigram 模型相比,本文的改進點包括:1)使用 n-gram 窗口,可以捕捉更長的上下文語義;2)將 query 和 document 的語義向量及其相似度拼接成新的特徵向量輸入 MLP 層進行 learning to rank;3)可以在 learng2rank 模型的輸入向量中方便地融入外部特徵;4)支持 end-to-end 的 matching + ranking 任務。模型結構如下圖所示。

上述模型的邏輯很直觀:先分別對 query 和 document 做 wide 1D 卷積和 MAX 池化,得到文本的語義向量,接著通過 M 矩陣變換得到語義向量的相似度,然後把 query 語義向量、query&document 的語義相似度、document 語義向量、外部特徵拼接成 n 維向量,輸入一個非線性變換隱層,最終用 softmax 做概率歸一化。用 softmax 的輸出作為監督信號,採用 cross-entropy 作為損失函數進行模型訓練。

文中使用 TREC QA 數據集進行了實驗,並與第 6 篇 Paper 的模型做了對比,結果表明,本文的模型在 MAP 和 MRR 指標上效果提升顯著,達到了新的 SOTA 效果。此外,為測試模型的 reranking 效果,文中還用 TREC Microblog 數據集做了另一組實驗,結果表明本文模型比已有模型有明顯效果提升。

8. Ryan Lowe, et al., 2016, The Ubuntu Dialogue Corpus: A Large Dataset for Research in Unstructured Multi-Turn Dialogue Systems

這篇文章出自 McGill 和 Montreal 兩所大學,針對基於檢索的多輪對話問題,提出了 dual-encoder 模型對 context 和 response 進行語義表示,該思路也可用於檢索式問答系統。Dual-encoder 模型結構如下圖所示。

該模型思路直觀:通過對偶的 RNN 模型分別把 context 和 response 編碼成語義向量,然後通過 M 矩陣變換計算語義相似度,相似度得分作為監督信號在標註數據集上訓練模型。

文中在 Ubuntu 對話語料庫上的實驗結果表明,dual-encoder 模型在捕捉文本語義相似度上的效果相當不錯。

總結

從上面 8 篇論文可知,與關鍵詞匹配(如 TF-IDF 和 BM25)和淺層語義匹配(如隱語義模型,詞向量直接累加構造的句向量)相比,基於深度學習的文本語義匹配模型在問答系統的匹配效果上有明顯提升

推薦閱讀:

相关文章