深度學習解決 NLP 問題語義相似度計算_第1頁
深度學習解決 NLP 問題語義相似度計算_第2頁
深度學習解決 NLP 問題語義相似度計算_第3頁
深度學習解決 NLP 問題語義相似度計算_第4頁
深度學習解決 NLP 問題語義相似度計算_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、導語在NLP領域,語義相似度的計算一直是個難題:搜索場景下query和Doc的語 義相似度、feeds場景下Doc和Doc的語義相似度、機器翻譯場景下A句子和 B句子的語義相似度等等。本文通過介紹DSSM、CNN-DSSM、LSTM-DSSM 等深度學習模型在計算語義相似度上的應用,希望給讀者帶來幫助。0.提綱背景DSSMCNN-DSSMLSTM-DSSM后記引用1.背景以搜索引擎和搜索廣告為例,最重要的也最難解決的問題是語義相似度,這里主 要體現在兩個方面:召回和排序。在召回時,傳統(tǒng)的文本相似性如BM25,無法有效發(fā)現語義類query-Doc結 果對,如”從北京到上海的機票與攜程網的相似性、

2、快遞軟件與菜鳥裹裹 的相似性。在SE序時,一些細微的語言變化往往帶來巨大的語義變化,如”小寶寶生病怎么 辦”和”狗寶寶生病怎么辦”、”深度學習”和”學習深度”。DSSM( Deep Structured Semantic Models)為計算語義相似度提供了一種 思路。本文的最后,筆者結合自身業(yè)務,對DSSM的使用場景做了一些總結,不是所 有的業(yè)務都適合用DSSM。2. DSSMDSSM 1( Deep Structured Semantic Models)的原理很簡單,通過搜索引 擎里Query和Title的海量的點擊曝光日志,用DNN把Query和Title 表達為低緯語義向量,并通過co

3、sine距離來計算兩個語義向量的距離,最終訓 練出語義相似度模型。該模型既可以用來預測兩個句子的語義相似度,又可以獲 得某句子的低緯語義向表達。DSSM從下往上可以分為三層結構:輸入展、表示展、匹配展QueryTitle匹配層表示層 (BOW/CNN/RNN)表示層 (BOW/CNN/RNN)輸入層輸入層匹配得分2.1輸入層輸入層做的事情是把句子映射到一個向量空間里并輸入到DNN中,這里英文和中文的處理方式有很大的不同。英文 英文的輸入層處理方式是通過word hashing。舉個例子,假設用 letter-trigams來切分單詞(3個字母為一組,#表示開始和結束符),boy這 個單詞會被切

4、為#-b-o, b-o-y, o-y-#這樣做的好處有兩個:首先是壓縮空間,50萬個詞的one-hot向量空間可以范化能力通過letter-trigram壓縮為一個3萬維的向量空間。其次是增!個字母的表達往往能代表英文中的前綴和后綴,而前綴后綴往往具有通用的語 義。這里之所以用3個字母的切分粒度,是綜合考慮了向量空間和單詞沖突:Letter-BigiamLetter-Tri gramWordSizeTokenSizeCollisionTokenSizeCollision40k110718103062500k160711923062122以50萬個單詞的詞庫為例,2個字母的切分粒度的單詞沖突為1

5、192(沖突的 定義:至少有兩個單詞的letter-bigram向量完全相同),而3個字母的單詞 沖突降為22效果很好,且轉化后的向量空間3萬維不是很大,綜合考慮選擇 3個字母的切分粒度。(2 )中文中文的輸入層處理方式與英文有很大不同,首先中文分詞是個讓所有NLP從業(yè) 者頭疼的事情,即便業(yè)界號稱能做到95%左右的分詞準確性,但分詞結果極為 不可控,往往會在分詞階段引入誤差。所以這里我們不分詞,而是仿照英文的處 理方式,對應到中文的最小粒度就是單字了。(曾經有人用偏旁部首切的,感興 趣的朋友可以試試)由于常用的單字為1.5萬左右,而常用的雙字大約到百萬級別了,所以這里出 于向量空間的考慮,采用

6、字向量(one-hot)作為輸入,向量空間約為1.5萬 維。2.2表示層DSSM的表示層采用BOW( Bag of words)的方式,相當于把字向量的位置 信息拋棄了,整個句子里的詞都放在一個袋子里了,不分先后順序。當然這樣做 會有問題,我們先為CNN-DSSM和LSTM-DSSM埋下一個伏筆。緊接著是一個含有多個隱層的DNN,如下圖所示:Posterior probability computed by so ft maxRelevance measured by cosine similaritySemantic featureMulti-layer nonlinear projecti

7、onTerm VectorWord HashingDi用Wi表示第i層的權值矩陣,bi表示第i層的bias項。則第一隱層向量11 ( 300維),第i個隱層向量li ( 300維),輸出向量y(128維)可以分別表示為:h = Wtxli=f(Wili_l + bii = 2N-1y = f(盼 nt + bN)用tanh作為隱層和輸出層的激活函數:最終輸出一個128維的低緯語義向量。2.3匹配層Query和Doc的語義相似性可以用這兩個語義向量(128維)的cosine距離來表示:R(Wne(M)=忠贏通過softmax函數可以把Query與正樣本Doc的語義相似性轉化為一個后驗概率:P(D

8、+|Q)exp(KR(Q,D+)Ed 包 exp(yH(QQ)其中r為softmax的平滑因子,D為Query下的正樣本,D-為Query下 的負樣本(采取隨機負采樣),D為Query下的整個樣本空間。在訓練階段,通過極大似然估計,我們最小化損失函數:JL(A) = -log Y 尹BQ)兩+)殘差會在表示層的DNN中反向傳播,最終通過隨機梯度下降(SGD )使模型收斂,得到各網絡層的參數Wi,bi。2.4優(yōu)缺點 優(yōu)點:DSSM用字向量作為輸入既可以減少切詞的依賴,又可以提高模型的范 化能力,因為每個漢字所能表達的語義是可以復用的。另一方面,傳統(tǒng)的輸入層 是用Embedding的方式(如Wor

9、d2Vec的詞向量)或者主題模型的方式(如 LDA的主題向量)來直接做詞的映射,再把各個詞的向量累加或者拼接起來, 由于Word2Vec和LDA都是無監(jiān)督的訓練,這樣會給整個模型引入誤差, DSSM采用統(tǒng)一的有監(jiān)督訓練,不需要在中間過程做無監(jiān)督模型的映射,因此 精準度會比較高。缺點:上文提到DSSM采用袋模型(BOW),因此喪失了語序信息和上下 文信息。另一方面,DSSM采用弱監(jiān)督、端到端的模型,預測結果不可控3. CNN-DSSM針對DSSM詞袋模型丟失上下文信息的缺點,CLSM2( convolutional latent semantic model)應運而生,又叫 CNN-DSSM。C

10、NN-DSSM 與 DSSM 的 區(qū)別主要在于輸入層和表示層。3.1輸入層(1)英文 英文的處理方式,除了上文提到的letter-trigram,CNN-DSSM還在輸入層增加了 word-trigramQU6ry、docLlmmnT s=d一ng window wordng#m -averLettETiz.gQJm -OJyw CQn4s序 STS斗(word5.gram -eseTir 一 gram )申丹)4丹*媽、H甘涵 4丹腳舞丑Nwordngram 苗麻料rt畫首mNnJbi調、fi湖陪aletter-trigram又把向量空間降到可控級別,只有3*30K (9萬)。而中文如 果用

11、word-trigram,那向量空間就是百萬級的了,顯然還是字向量(15萬維) 比較可控。3.2表示層CNN-DSSM的表示層由一個卷積神經網絡組成,如下圖所示:Relevance measured TOC o 1-5 h z HYPERLINK l bookmark69 o Current Document Semantic layerh HYPERLINK l bookmark66 o Current Document , Max pooling layerv HYPERLINK l bookmark63 o Current Document Convolutional layerctWo

12、rd hashing layerfr卜X,(1) onvolutional layer卷積層的作用是提取滑動窗口下的上下文特征。以下圖為例,假設輸入層是一個 302*90000( 302行,9萬列)的矩陣,代表302個字向量(query的和Doc 的長度一般小于300,這里少了就補全,多了就截斷),每個字向量有9萬維。 而卷積核是一個3*90000的權值矩陣,卷積核以步長為1向下移動,得到的feature map是一個300*1的矩陣,feature map的計算公式是(輸入層維數302-卷積核大小3步長1)/步長1=300。而這樣的卷積核有300個,所以形成了 300 個 300*1 的 f

13、eature map 矩陣。wait for the video and do nt rentFigure 1: Model architecture with two channels for an example sConvolufional layer with multiple fiilter widths and feature mapsMax-over-limepoolingnxk representation of sentence witti static andnon-static channels(2 )池化 Max pooling layer池化層的作用是為句子找到全局的

14、上下文特征。池化層以Max-over-time pooling的方式,每個feature map都取最大值,得到一個300維的向量。 Max-over-pooling可以解決可變長度的句子輸入問題(因為不管Feature Map中有多少個值,只需要提取其中的最大值)。不過我們在上一步已經做了 句子的定長處理(固定句子長度為302),所以就沒有可變長度句子的問題。最終池化層的輸出為各個Feature Map的最大值,即一個300*1的向量。這里多提一句,之所以Max pooling層要保持固定的輸出維度,是因為下一層全鏈接層要求有固定的輸入層數,才能進行訓練。(3 )Semantic layer

15、最后通過全連接層把一個300維的向量轉化為一個128維的低維語義向量。全連接層采用tanh函數:一 F 2xE(x) = 1 + e_2x3.3匹配層CNN-DSSM的匹配層和DSSM的一樣,這里省略。3.4優(yōu)缺點優(yōu)點:CNN-DSSM通過卷積層提取了滑動窗口下的上下文信息,又通過池化 層提取了全局的上下文信息,上下文信息得到較為有效的保留。缺點:對于間隔較遠的上下文信息,難以有效保留。舉個例子,I grew叩inFrance. I speak fluent French 顯然 France 和 French 是具有上下文依賴 關系的,但是由于CNN-DSSM滑動窗口(卷積核)大小的限制,導致

16、無法捕 獲該上下文信息。4. LSTM-DSSM針對CNN-DSSM無法捕獲較遠距離上下文特征的缺點,有人提出了用LSTM-DSSM 3( Long-Short-Term Memory)來解決該問題。不過說 LSTM 之前,要先介紹它的”爸爸RNN。4.1 RNNRNN( Recurrent Neural Networks)可以被看做是同一神經網絡的多次復制,每個神經網絡模塊會把消息傳遞給下一個。如果我們將這個循環(huán)展開:假設輸入xi為一個query中幾個連續(xù)的詞,hi為輸出。那么上一個神經元的輸出h(t-1)與當前細胞的輸入Xt拼接后經過tanh函數會輸出ht,同時把ht傳遞給下一個細胞。不幸

17、的是,在這個間隔不斷增大時,RNN會逐漸喪失學習到遠距離信息的能力。 因為RNN隨著距離的加長,會導致梯度消失。簡單來說,由于求導的鏈式法 則,直接導致梯度被表示為連乘的形式,以至梯度消失(幾個小于1的數相乘 會逐漸趨向于0)。4.2 LSTMLSTM4( Long-Short-Term Memory)是一種 RNN 特殊的類型,可以學 習長期依賴信息。我們分別來介紹它最重要的幾個模塊:(0 )細胞狀態(tài)細胞狀態(tài)這條線可以理解成是一條信息的傳送帶,只有一些少量的線性交互。在 上面流動可以保持信息的不變性。Ct-y遺忘門遺忘門5由Gers提出,它用來控制細胞狀態(tài)cell有哪些信息可以通過,繼 續(xù)往

18、下傳遞。如下圖所示,上一層的輸出h(t-1) concat上本層的輸入xt,經 過一個sigmoid網絡(遺忘門)產生一個從0到1的數值ft,然后與細胞 狀態(tài)C(t-1)相乘,最終決定有多少細胞狀態(tài)可以繼續(xù)往后傳遞。ft =十 bf)輸入門輸入門決定要新增什么信息到細胞狀態(tài),這里包含兩部分:一個sigmoid輸入 門和一個tanh函數。sigmoid決定輸入的信號控制,tanh決定輸入什么內 容。如下圖所示,上一層的輸出h(t-1) concat上本層的輸入xt,經過一個 sigmoid網絡(輸入門)產生一個從0到1的數值it,同樣的信息經過tanh網絡做非線性變換得到結果Ct,sigmoid

19、的結果和tanh的結果相乘,最終決 定有哪些信息可以輸入到細胞狀態(tài)里。(3 )輸出門輸出門決定從細胞狀態(tài)要輸出什么信息,這里也包含兩部分:一個sigmoid輸 出門和一個tanh函數。sigmoid決定輸出的信號控制,tanh決定輸出什么 內容。如下圖所示,上一層的輸出h(t-1) concat上本層的輸入xt,經過一個 sigmoid網絡(輸出門)產生一個從0到1的數值Ot,細胞狀態(tài)Ct經過 tanh網絡做非線性變換,得到結果再與sigmoid的結果Ot相乘,最終決定 有哪些信息可以輸出,輸出的結果ht會作為這個細胞的輸出,也會作為傳遞個 下一個細胞。ot = a (VO 知_“卻 + 如)

20、ht = 0( * tanh (Ct)4.2 LSTM-DSSMLSTM-DSSM其實用的是LSTM的一個變種加入了 peephole 6的LSTM。如下圖所示:看起來有點復雜,我們換一個圖,讀者可以看的更清晰:ft = t(Wf - Ct1?4- &/)it = a+ bi)ot =(7 (Wo lCt.hxt + 如)這里三條黑線就是所謂的peephole,傳統(tǒng)的LSTM中遺忘門、輸入門和輸出 門只用了 h(t-1)和xt來控制門縫的大小,peephole的意思是說不但要考慮 h(t-1)和xt,也要考慮Ct-1和Ct,其中遺忘門和輸入門考慮了 Ct-1,而輸 出門考慮了 Ct??傮w來說需

21、要考慮的信息更豐富了。好了,來看一個LSTM-DSSM整體的網絡結構:Semanticdocument紅色的部分可以清晰的看到殘差傳遞的方向。representation of the5.后記介紹完了 DSSM及其幾個變種,還要給讀者潑點冷水,DSSM就一定適合所有的業(yè)務嗎?這里列出DSSM的2個缺點以供參考:DSSM是端到端的模型,雖然省去了人工特征轉化、特征工程和特征組合, 但端到端的模型有個問題就是效果不可控。對于一些要保證較高的準確率的場 景,用有監(jiān)督人工標注的query分類作為打底,再結合無監(jiān)督的word2vec、 LDA等進行語義特征的向量化,顯然比較可控(至少query分類的準確

22、率可 以達到95%以上)。DSSM是弱監(jiān)督模型,因為弓I擎的點擊曝光日志里Query和Title的語義 信息比較弱。舉個例子,搜索引擎第一頁的信息往往都是Query的包含匹配, 筆者統(tǒng)計過,完全的語義匹配只有不到2%。這就意味著幾乎所有的標題里都包 含用戶Query里的關鍵詞,而僅用點擊和曝光就能作為正負樣例的判斷?顯然 不太靠譜,因為大部分的用戶進行點擊時越靠前的點擊的概率越大,而引擎的排 序又是由pCTR、CVR、CPC等多種因素決定的。從這種非常弱的信號里提取 出語義的相似性或者差別,那就需要有海量的訓練樣本。DSSM論文中提到, 實驗的訓I練樣本超過1億。筆者和同事也親測過,用傳統(tǒng)CT

23、R預估模型千萬 級的樣本量來訓練,模型無法收斂。可是這樣海量的訓練樣本,恐怕只有搜索引 擎才有吧?普通的搜索業(yè)務query有上千萬,可資源頂多只有幾百萬,像論文 中說需要挑出點擊和曝光信度比較高且資源熱度也比較高的作為訓練樣本,這 樣就過濾了 80%的長尾query和Title結果對,所以也只有搜索引擎才有這 樣的訓練語料了吧。另一方面,超過1億的訓練樣本作為輸入,用深度學習模 型做訓練,需要大型的GPU集群,這個對于很多業(yè)務來說也是不具備的條件。6.引用. Huang P S, He X, Gao J, et al. Learning deep structured semantic models for web search using clickthrough dataC/ ACM International Conference on Conference on Information & Knowledge Management. ACM, 2013:2333-2338. Sh

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論