本次分享一篇NLP文本匹配的經典文章,主要思路是借鑑圖像識別的思路來解決NLP文本匹配問題,畢竟計算機視覺技術的發展在當時異常迅猛。
個人心得:
文本匹配問題可轉化為二分類問題,輸出概率則為相似度將圖像識別的思路應用於文本匹配任務中,利用卷積抽取文本特徵論文地址:
https://arxiv.org/pdf/1602.06359.pdf
1. 背景文本匹配廣泛用於搜尋引擎、問答系統、信息流相關文章推薦等場景中,目的是為了在文本庫中找出與目標文本類似或相關的文本。本文即將介紹的TextMathcing模型是一種端到端的文本匹配方法,將計算機視覺領域圖像識別任務的解決方案思路引入文本匹配模型中,讓我們一起來看看作者是如何設計和實現的。
2. 模型架構TextMatching模型架構如圖所示。
我們將模型架構拆解為如下幾個步驟:
文本嵌入本文方法首先利用詞向量模型得到文本或者句子中的每個詞的embedding向量,這一步也是非常通用的步驟,目前主流的詞向量模型為word2vec/fastText/glove/bert等,本文選用glove。
計算相似度矩陣對待匹配的文本(具體而言是一個二維數組,每一維是文本中每個詞的embedding向量)進行外積,得到每個詞之間的相似度得分。如果兩個文本分別由M,N個詞組成,那麼,相似度矩陣大小為M*N。作者提供了三種詞與詞之間的相似度得分計算方法:
a. 0-1類型,對應的詞相同為1,否則為0。這種方法的缺點在於無法捕獲相似詞間的語義匹配關係。
b. cosine相似度
c. 點積
經實驗,方案3的效果最佳。
CNN特徵提取
為什麼說本文的思路是像圖像識別一樣做文本匹配呢?關鍵一步就是作者使用了圖像識別中常用的CNN卷積層來提取文本特徵。TextMatching模型使用了兩層CNN從相似度矩陣中抽取特徵。這裡需要注意的一點是,不同的文本對產生的文本相似度矩陣大小是不一致的,為了讓CNN抽取的feature map在輸入到全連接層時能夠在尺寸上保持一致,作者在第一層CNN後使用了一層動態pooling層來動態調整feature map尺寸。
全連接層
經CNN抽取特徵後,TextMatching將特徵送入兩層全連接層,再經softmax得到模型推理結果,輸出的概率值即可認為是文本對的匹配程度。
3. 模型評估作者將本文模型與其他主流文本匹配模型進行對比,可以看出,本文提出的TextMatching模型效果還是優於當時的主流模型的。
4. 總結本文介紹了一種文本匹配的經典工作,其思路是將基於CNN的圖像識別思路引入文本匹配模型中,進而提升文本匹配效果。