閱讀735 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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即可理解為學習從詞向量到句子向量的表達模型。
image.png

如下圖所示,是Wang發表在2016年COLING的文章[6],同樣應用於答案選擇任務,並在兩個公認基準數據集WikiQA和QASent上進行了測試。文章的核心想法是采用雙通道CNN來抽取輸入問題和答案之間的相似性與不相似性,整合成最終的句子向量並計算相似性。
90079568121f50d5444c3bc961fcfd0e.png

3.2 基於詞語粒度的相似度矩陣直接學習並計算文本相似度

如下圖,Meng在其文章中[7]直接基於詞向量計算輸入文本對兒在單詞粒度上的相似度(計算方式有多種:歐式距離、餘弦距離、參數化的相似矩陣),並以此為後續深層卷積神經網絡的輸入,最終學習得到的向量經過全連接層和softmax層進行預測。
屏幕快照 2017-07-18 下午4.50.19.png

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計算短文本相似度問題上取得了非常好的效果。

屏幕快照 2017-07-18 下午5.15.54.png

下圖展示了LSF-SCNN的整體框架圖,自底向上,LSF-SCNN模型由3個模塊組成:(1)對於輸入的問題和候選答案,我們利用詞匯語義特征技術為每個單詞計算LSF特征值,以此來表征問題與答案之間的語義交互特征。LSF特征會和詞嵌入拚接在一起構成詞語粒度上更加豐富的特征表達,表達詞的向量再次拚接構成句子矩陣。(2)問題和候選答案的句子矩陣經過跳躍卷積層和K-Max均值采樣層,最終形成對問題和答案各自的向量表達,記作Xq和Xa 。(3)Xq和Xa會根據學習得到的相似度計算矩陣M得到一個相似度分數。最後,相似度分數和Xq、Xa整合一起作為分類器的輸入,最終得到輸入候選答案a被預測為正確答案和錯誤答案的概率。接下來,我將一一介紹三個優化技術的實現細節。
屏幕快照 2017-07-18 下午5.17.57.png

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正是回答該問題的正確答案,
    image.png

  • LSF特征怎樣計算得到?
    問題和答案中的每一個單詞都會有一個LSF特征,具體來說是一個[0,t]上的整數值。LSF的計算過程可通過下麵一個例子說明,當我們想要求解問題中general一詞的LSF特征時,第一步我們需要計算general與答案中每一個詞的餘弦相似度並選取其中的最大值,因此chief被選取出來。第二步,餘弦相似度值的最大值0.79將通過一個映射函數映射為一個[0,t]區間的整數,當我們假定t=10,最終計算得到general的LSF特征為3。這是合理的,general和chief一定程度上是近義詞。
    image.png

4.2 跳躍卷積技術(Skip Convolution,SC)

  • SC技術核心想法: 在短語粒度上,我們提出跳躍卷積SC技術。下圖展示了以the cat sat on the mat為例,設定卷積窗口長度為4時,且步長為1跳躍一次,跳躍卷積方式在傳統卷積方式上的改進: 屏幕快照 2017-07-18 下午6.04.04.png
  • 傳統卷積方式將取得如下短語特征:{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 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設計全麵的實驗。下圖展示了兩個數據集的一些統計信息。
8235d0f6c60385d7af807885a4117c67.png
兩個數據集有以下兩方麵區別:

  • 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的提升效果還是非常顯著的。

e628eff06d795d227df0a31833ef0307.png

dc19389269787f93b43137661ec82daa.png

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 [下載鏈接]

參考文獻

最後更新:2017-08-13 22:37:25

  上一篇:go  人臉識別技術在智慧城市中九大應用盤點
  下一篇:go  人臉識別技術國內機場發展簡史