LSF-SCNN:一種基於CNN的短文本表達模型及相似度計算的全新優化模型
本篇文章是我在讀期間,對自然語言處理中的文本相似度問題研究取得的一點小成果。如果你對自然語言處理 (natural language processing, NLP) 和卷積神經網路(convolutional neural network, CNN)有一定的了解,可以直接看摘要和LSF-SCNN創新與技術實現部分。如果能啟發靈感,應用於更多的現實場景中帶來效果提升,那才是這篇文章閃光的時刻。如果你沒有接觸過NLP和CNN,也不在擔心,可以從頭到尾聽我娓娓道來。有任何問題,歡迎交流。
1. 摘要
LSF-SCNN,即基於辭彙語義特徵的跳躍卷積模型 (Lexical Semantic Feature based Skip Convolution neural network ),基於卷積神經網路模型引入三種優化策略:辭彙語義特徵 (Lexical Semantic Feature, LSF)、跳躍卷積 (Skip Convolution, SC)和K-Max均值採樣 (K-Max Average Pooling, KMA) ,分別在辭彙粒度、短語粒度、句子粒度上抽取更加豐富的語義特徵,從而更好的在向量空間構建短文本語義表達模型,並廣泛的適用於問答系統 (question answering)、釋義識別 (paraphrase identification) 和文本蘊含 (textual entailment)等計算成對兒出現的短文本的相似度的任務中。
2. 從詞向量到文本向量
人類的語言,是人類獨有的進化千百萬年後形成的信息表達方式。相比於具有原始信號輸入的圖像(像素)和語音(聲譜),符號化的自然語言屬於更加高層認知的抽象實體。因此,自然語言處理的第一步也是至關重要的一步就是怎樣將符號化的自然語言表示成計算機可以理解的數值形式。
對於自然語言的理解,在語言粒度上遵循著自底向上從字、詞、句、段落最後到篇章的研究思路。在對最小粒度的字的符號化表達上,基本可以分為兩種:one-hot representation和word distributed representation。
one-hot representation是將所有的詞構建成一個詞典,每個詞對應一個索引,該詞對應的索引位為1,其他位為0。例如,詞典為{welcome to taobao},那麼welcome就可以表示為[1,0,0],taobao就表示成[0,0,1]。這種方式有兩個缺點:一是維數災難;二是語義鴻溝,任意兩個單詞都是正交且孤立的,無法表徵詞語間的相似性。即便如此,配合傳統的最大熵、SVM等演算法也很好的實現了NLP中各種主流任務。
word distributed representation在深度學習 (Deep Learning)方法中較常用,通常中文翻譯成詞向量,或者詞嵌入 (word embedding)。它用低維實數變數(常用的有50維,100維,300維)來表示詞典中的每一個詞。這種方式相比於one-hot representation最大的優點是在向量空間上,可以將詞語之間的語義相關關係映射成如歐式距離等距離量度上的大小關係。現有的詞向量訓練的方法都是在用神經網路訓練語言模型的同時,順便得到了詞向量。如果對詞向量非常感興趣,可以參考[1]
在大多數NLP的任務中,如情感分類、機器翻譯、問答系統等,都需要以自然語句作為輸入。那麼,怎樣以詞向量為基礎,表達一個短語或一句話的語義呢?短語或者句子能否也通過向量的形式表達?答案是肯定的。在深度學習框架下,有許多神經網路,如卷積神經網路CNN[2]、遞歸神經網路Recursive NN[3]、循環神經網路Recurrent NN[4]等,都可以將詞向量序列有效的編碼成短語或句子向量。
Recursive NN通常自底向上地基於語法解析樹的結構逐層生成短語、句子的向量表達,同時受限於生成語法解析樹的準確率。
Recurrent NN通常應用於具有時序關係的序列問題,並假設一個序列當前的輸出與之前的輸出有關,神經網路會對前面的信息進行記憶並應用於當前輸出的計算中。
CNN在多種NLP任務中,被證實在同時從語法和語義兩個層面學習句子向量表達上表現突出,獨有的卷積操作使其可以學習到在文本長序列中具有穩定表達方式的短序列的特徵,而與其出現位置無關。
3. 短文本相似度計算的現有解決方案
通過神經網路學習到的短語或句子向量就可以進一步應用於以短文本相似度計算為核心的多種任務中,如問答系統中的答案選擇問題 (Answer Selection,AS),即從輸入問題的特定候選答案列表中,篩選可以回答問題的正確答案,本質是一個二分類問題(預測為正確的答案標記為1,錯誤的答案標記為0。)再如,釋義識別任務,即判斷兩句話是否表達同一種語義。
目前,基於CNN模型的短文本相似度的計算方法可以大致分為兩類:一類是基於Siamese結構的神經網路模型,先分別學習輸入的文本對兒的句子向量表達,再基於句子向量計算相似度;另一類是直接以詞語粒度的相似度矩陣作為輸入,學習並計算文本相似度。下面將分別展開介紹。
3.1 基於Siamese結構的神經網路模型
這裡列舉最近兩年比較有代表性的兩篇文章。
如下圖所示,是Severyn發表在2015年SIGIR上的文章[5],並用於TREC上的兩個NLP任務:答案選擇和微博檢索。以答案選擇任務為例,從左至右,作者採用上下並行的雙通道淺層CNN模型來分別學習輸入的問題和答案的句子向量表達,然後經過相似度矩陣M計算相似度,全連接層和隱藏層進行特徵整合和非線性變換,最後softmax層來輸出輸入候選答案被預測為正確或者錯誤的概率。左半部分的雙通道CNN即可理解為學習從詞向量到句子向量的表達模型。
如下圖所示,是Wang發表在2016年COLING的文章[6],同樣應用於答案選擇任務,並在兩個公認基準數據集WikiQA和QASent上進行了測試。文章的核心想法是採用雙通道CNN來抽取輸入問題和答案之間的相似性與不相似性,整合成最終的句子向量並計算相似性。
3.2 基於詞語粒度的相似度矩陣直接學習並計算文本相似度
如下圖,Meng在其文章中[7]直接基於詞向量計算輸入文本對兒在單詞粒度上的相似度(計算方式有多種:歐式距離、餘弦距離、參數化的相似矩陣),並以此為後續深層卷積神經網路的輸入,最終學習得到的向量經過全連接層和softmax層進行預測。
4. LSF-SCNN模型創新與技術實現
有了前面在深度學習框架下,文本向量學習的背景和基於CNN短文本相似度的現有方法的總結和介紹,終於進入本篇文章的重頭戲,LSF-SCNN模型的介紹。LSF-SCNN模型延續了基於Siamese結構神經網路模型構建短文本表達模型的總體思路[5],但通過引入三種優化策略:辭彙語義特徵 (Lexical Semantic Feature, LSF)、跳躍卷積 (Skip Convolution, SC)和K-Max均值採樣 (K-Max Average Pooling, KMA) ,分別在辭彙粒度、短語粒度、句子粒度上抽取更加豐富的語義特徵,並在答案選擇AS計算短文本相似度問題上取得了非常好的效果。
下圖展示了LSF-SCNN的整體框架圖,自底向上,LSF-SCNN模型由3個模塊組成:(1)對於輸入的問題和候選答案,我們利用辭彙語義特徵技術為每個單詞計算LSF特徵值,以此來表徵問題與答案之間的語義交互特徵。LSF特徵會和詞嵌入拼接在一起構成詞語粒度上更加豐富的特徵表達,表達詞的向量再次拼接構成句子矩陣。(2)問題和候選答案的句子矩陣經過跳躍卷積層和K-Max均值採樣層,最終形成對問題和答案各自的向量表達,記作Xq和Xa 。(3)Xq和Xa會根據學習得到的相似度計算矩陣M得到一個相似度分數。最後,相似度分數和Xq、Xa整合一起作為分類器的輸入,最終得到輸入候選答案a被預測為正確答案和錯誤答案的概率。接下來,我將一一介紹三個優化技術的實現細節。
4.1 辭彙語義特徵技術(Lexical Semantic Feature,LSF)
LSF技術提出的原因:
基於Siamese的神經網路結構有個缺點就是將輸入的文本對兒看做互不相關的句子,相互獨立的用同一套神經網路結構去學習文本的向量表達。但是在短文本相似度相關任務中,如問題和候選答案,往往是文本對兒間在語義、詞語表達、語序等方面存在關聯,而前人方法忽略了這點。少部分學者注意到了這點,但目前所用方法局限於:藉助額外知識標記近義詞/反義詞、上位詞/下位詞等關係;或者引入字元串匹配信息,嚴格匹配標記為1,其餘為0。因此,本文提出的LSF技術是一項用來構建問題與答案之間的語義交互特徵的技術。
LSF核心想法:
LSF技術將詞語粒度上的相似性量化細分為t個相似度,從而建立輸入文本對兒之間的語義關聯,為後續神經網路提供更加豐富的語義特徵輸入。
LSF技術可行性分析:
LSF技術將詞語粒度上的相似性量化細分為t個相似度,不僅可以包含前人提出的近義詞、反義詞關係,如chairman和chief的LSF為1, 字元串匹配如welch和welch被標記為1,也可以涵蓋更多的相似性。
例如,april和when不是近義詞,在字元串上也無法匹配,但LSF可以捕捉到他們之間有6的相似度,而april正是回答該問題的正確答案,
LSF特徵怎樣計算得到?
問題和答案中的每一個單詞都會有一個LSF特徵,具體來說是一個[0,t]上的整數值。LSF的計算過程可通過下面一個例子說明,當我們想要求解問題中general一詞的LSF特徵時,第一步我們需要計算general與答案中每一個詞的餘弦相似度並選取其中的最大值,因此chief被選取出來。第二步,餘弦相似度值的最大值0.79將通過一個映射函數映射為一個[0,t]區間的整數,當我們假定t=10,最終計算得到general的LSF特徵為3。這是合理的,general和chief一定程度上是近義詞。
4.2 跳躍卷積技術(Skip Convolution,SC)
SC技術核心想法: 在短語粒度上,我們提出跳躍卷積SC技術。下圖展示了以the cat sat on the mat為例,設定卷積窗口長度為4時,且步長為1跳躍一次,跳躍卷積方式在傳統卷積方式上的改進:
傳統卷積方式將取得如下短語特徵:{the cat sat on, cat sat on the, sat on the mat}
跳躍卷積將取得如下短語特徵{the cat sat on, the cat sat the, the cat on the, the sat on the, cat sat on the, cat sat on mat, cat sat the mat, cat on the mat, sat on the mat }。
SC的技術實現:
如上圖所示,左側傳統卷積方式將卷積窗口作為一個整體,自左向右每次移動一個單詞的步長進行卷積操作。相比而言,跳躍卷積則是同樣自左向右每次移動一個單詞的步長,但移動的並非卷積窗口的整體,而是整體中的一列。例如,上圖右側,初始卷積抽取了短語「the cat sat on」(紫色框)的特徵;而後將覆蓋在「on」上的卷積窗口的那一列向右移動一個單詞的步長,從而得到短語「the cat sat the」(藍色框)的特徵;接著,將覆蓋在「sat」上的一列向右移動一個單詞的步長,從而得到短語「the cat on the」(綠色框)的特徵,以此類推。
SC技術可行性分析:
傳統卷積方式只允許在特定大小的卷積窗口中對相鄰的詞語進行卷積,而跳躍卷積可以通過跳躍停用詞如the、形容詞等,在特定大小的卷積窗口中將抽取到包含更完整更濃縮的主體語義信息的短語特徵如『cat sat on mat』,從而提升了短語粒度上特徵的豐富性。雖然,跳躍卷積相比於傳統卷積方式,也會額外抽取到許多無用的短語的特徵。但實驗結果證明,跳躍卷積技術對增加短語特徵豐富性的幫助,要大於額外增加的無用短語特徵帶來的噪音的影響。
SC技術實現可以參考[8]。Lei的文章應用於情感分類 (sentiment classification) 和新聞分類 (news categorization) 任務,而本文應用於答案選擇任務。
4.3 K-Max均值採樣技術(K-Max Average Pooling,KMA)
K-Max均值採樣提出的背景:
卷積神經網路中的池化層,也稱採樣層,主流有兩種方法:最大值採樣 (max pooling) 和均值採樣 (average pooling)。但上述兩種方法也存在一定的局限性,由此,Zeiler and Fergus[9]提出了對於最大值採樣的一些改進技術,Kalchbrenner[10]提出了動態k-max採樣技術。
K-Max均值採樣的核心思想:
本文提出的K-max均值採樣技術結合了最大值採樣和均值採樣。具體而言,對於卷積層傳入的特徵矩陣
(feature map),K-Max採樣技術選取其中最大的前K個值,並取其平均值作為最終的採樣結果。K-Max均值採樣的好處,一方面可以減少異常噪音點的影響,另一方面可以保留表現比較強的特徵的強度。雖然想法簡單,但實驗證明對模型的提升效果較好。
5. 實驗結果
5.1 實驗數據
本文在兩個公認標準數據集QASent和WikiQA設計全面的實驗。下圖展示了兩個數據集的一些統計信息。
兩個數據集有以下兩方面區別:
QASent候選答案從文檔庫中抽取出來,而WikiQA候選答案來自Bing日誌(被查詢的問題所返回的鏈接列表,篩選出被五個不相同的用戶點擊過的鏈接,並從選中鏈接的摘要中抽取答案),因此WikiQA更加真實、更能反映用戶的真實查詢意圖。
QASent候選答案要求至少與問題有一個非停用單詞,而WikiQA中20.3%的答案與問題不存在相同單詞,因此WikiQA對LSF技術提出了更高的挑戰。
5.2 實驗結果:
下面兩個表格分別展示了LSF-SCNN模型與前人方法在QASent和WikiQA兩個數據集上的效果對比,由此可見,LSF-SCNN模型相比於當前最好的方法,在MAP和MRR兩個指標上,對QASent數據集提升了3.5%,對WikiQA數據集提升了1.2%。答案選擇問題的baseline比較高,所以LSF-SCNN的提升效果還是非常顯著的。
6. 總結
本文主要介紹了LSF-SCNN模型,即基於辭彙語義特徵的跳躍卷積模型 (Lexical Semantic Feature based Skip Convolution neural network ),基於卷積神經網路模型引入三種優化策略:辭彙語義特徵 (Lexical Semantic Feature, LSF)、跳躍卷積 (Skip Convolution, SC)和K-Max均值採樣 (K-Max Average Pooling, KMA) ,分別在辭彙粒度、短語粒度、句子粒度上抽取更加豐富的語義特徵,從而更好的在向量空間構建短文本語義表達模型,並在答案選擇 (Answer Selection) 問題上進行了實驗驗證。
其中辭彙語義特徵LSF技術可以更廣泛的應用於基於神經網路結構學習文本對兒間向量表達的相關任務。跳躍卷積SC技術和K-Max均值採樣技術更廣泛的使用於存在卷積層和採樣層的神經網路結構中。三種技術既可以根據需要單獨使用,也可以相互助益共同提升模型整體效果。
如果對更加詳細的實現細節感興趣,隨時歡迎交流。
本篇論文參見:An Enhanced Convolutional Neural Network Model for Answer Selection [下載鏈接]
參考文獻
1 Deep Learning in NLP 詞向量和語言模型
2 Deep learning for answer sentence selection. Lei Yu, Karl Moritz Hermann, Phil Blunsom, and Stephen Pulman. 2014. In NIPS Deep Learning Workshop.
3 Recursive deep models for semantic compositionality over a sentiment treebank. Richard Socher, Alex Perelygin, Jean Y Wu, Jason Chuang, Christopher D Manning, Andrew Y Ng, and Christopher Potts. 2013. In Proceedings of the conference on empirical methods in natural language processing (EMNLP), pages 1631–1642.
4 Neural variational inference for text processing. Yishu Miao, Lei Yu, and Phil Blunsom. 2016. In International Conference on Machine Learning, pages 1727–1736.
5 Learning to rank short text pairs with convolutional deep neural networks Aliaksei Severyn and Alessandro Moschitti. 2015. In Proceedings of the 38th International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR), pages 373–382.
6 Sentence similarity learning by lexical decomposition and composition Zhiguo Wang, Haitao Mi, and Abraham Ittycheriah. In Proceedings of the 26th International Conference on Computational Linguistics.
7 M2S-Net: Multi-Modal Similarity Metric Learning based Deep Convolutional Network for Answer Selection
8 Molding CNNs for text: non-linear, non-consecutive convolutions
9 Stochastic pooling for regularization of deep convolutional neural networks Matthew D. Zeiler and Rob Fergus. 2013. CoRR, abs/1301.3557.
10 A convolutional neural network for modelling sentences Nal Kalchbrenner, Edward Grefenstette, and Phil Blun- som. 2014. In Proceedings of the 52nd Annual Meeting of the Association for Computational Linguis- tics (ACL), pages 655–665.
※沉澱|訪談阿里孫偉光:多行善事莫問前程的他,將計算集群的CPU利用率從30%提升到70%+
※金融安全資訊精選 2017年第一期:雲戰略下的安全思維轉型與新認知
※如何使用(opencv/python)來實現OCR處理銀行票據?
※私人定製——使用深度學習Keras和TensorFlow打造一款音樂推薦系統
TAG:雲棲社區 |
※NLP之詞袋模型和TF-IDF模型
※效果驚艷!FAIR提出人體姿勢估計新模型,升級版Mask-RCNN
※靜岡模型展BANDAI SPIRITS 超多 GUNPLA展品,一次看個夠
※BLACKPINK LISA 「人體模型般的身材」成為話題
※比TD、MC、MCTS指數級快,性能超越A3C、DDQN等模型,這篇RL演算法論文在Reddit上火了
※超難NLP新基準SuperGLUE正式發布:橫掃SOTA模型BERT勉強過關
※解讀谷歌最強NLP模型BERT:模型、數據和訓練
※3分鐘看懂史上最強NLP模型BERT
※谷歌更強 NLP 模型 XLNet 開源:20 項任務全面碾壓 BERT
※圖解谷歌最強 NLP 模型--BERT
※NIKON RENDERING 尼康單反相機造型3D模型圖紙 Solidwokrs設計
※谷歌更強 NLP 模型 XLNet 開源:20 項任務全面碾壓 BERT!
※資訊:PLUM PLA-ACT 原創機體 牙王 無比例組裝模型
※Meta新增SOLIDWORKS集成,支持AR瀏覽CAD模型
※Chatito-使用簡單的DSL為AI聊天機器人、NLP任務、命名實體識別或文本分類模型生成數據集
※KAWS 宣布即將推出「ALONG THE WAY」搪膠模型
※資訊:《高達藍色命運RE》 RGM-79DO GM DOMINANCE模型化決定
※KAWS「ALONG THE WAY」搪膠模型即將上架
※性能超越A3C、DDQN等模型,這篇RL演算法論文在Reddit上火了
※NLP之Word2Vec模型和Doc2Vec模型