感謝分享~web
DSSM這篇paper發表在cikm2013,短小可是精煉,值得記錄一下
ps:後來跟了幾篇dssm的paper,一併記錄在這裏網絡
DSSM
最大的賣點在檢索場景下 使用點擊數據來訓練語義層次的匹配,簡單的來講,傳統檢索場景下的匹配主要有:架構
TFIDF
、 BM25
等LSA
類模型進行語義匹配,可是效果很差而DSSM訓練出來以後,檢索場景下用戶輸入query以後,能夠根據該query計算各個doc的語義類似度。app
這裏上圖最直接:dom
上面是 DSSM
訓練的架構圖:ide
query
和這個query相關的 doc
,這裏的輸入特徵能夠是最簡單的 one-hot
,而須要 train
的是這個query下各個doc的相關性( DSSM
裏面使用點擊率來代替相關性)因爲這種 one-hot
的輸入可能會有兩個問題:函數
vocabulary
太大會出現 oov
的問題優化
所以輸入特徵以後的第一層是作一個叫作 Word Hashinging
的操做spa
這裏的
f
是激活函數,文中使用$tanh$來計算:$f(x)=\frac{1-e^{-2x}}{1+e^{-2x}}$code
所以整個結構就能夠看作作了一層 Word Hashing
以後去訓練 DNN
網絡
Word Hashing
是paper很是重要的一個 trick
,以英文單詞來講,好比 good
,他能夠寫成 #good#
,而後按tri-grams來進行分解爲 #go goo ood od#
,再將這個tri-grams灌入到 bag-of-word
中,這種方式能夠很是有效的解決 vocabulary
太大的問題(由於在真實的web search中vocabulary就是異常的大),另外也不會出現 oov
問題,所以英文單詞才26個,3個字母的組合都是有限的,很容易枚舉光。
那麼問題就來了,這樣兩個不一樣的單詞會不會產出相同的tri-grams,paper裏面作了統計,說了這個衝突的機率很是的低,500K個word能夠降到30k維,衝突的機率爲0.0044%
可是在中文場景下,這個
Word Hashing
估計沒有這麼有效了
由於直接使用了word hashing,由於沒法記錄上下文信息
上面是前向計算過程,在進行訓練的時候須要計算給定 Query
下與 Doc
的相關性:
$$P(D|Q) = \frac{exp(\gamma R(Q,D))}{\sum_{d_i \in D} exp(\gamma R(Q,D))}$$
最終他須要優化的損失函數爲:
$$L(\Lambda) = - \text{log} \prod_{(Q,D^+)} P(D^+|Q)$$
$D^+$表示被點擊的文檔,這裏就是最大化點擊文檔的相關性的最大似然
CDSSM
(又稱 CLSM
:Convolutional latent semantic model)在必定程度上他能夠彌補 DSSM
會丟失上下文的問題,他的結構也很簡單,主要是將 DNN
替換成了 CNN
他的前向步驟主要計算以下:
1. 使用指定滑窗大小對輸入序列取窗口數據(稱爲 word-n-gram
)
2. 對於這些 word-n-gram
按 letter-trigram
進行轉換構成representation vector(其實就是 Word Hashing
)
3. 對窗口數據進行一次卷積層的處理(窗口裏面含有部分上下文)
4. 使用 max-pooling
層來取那些比較重要的 word-n-gram
5. 再過一次FC層計算語義向量
6. 他最終輸出的仍是128維
> 由於使用 CDSSM
來作語義匹配的工做也是比較合適的
## DSSM-LSTM
既然是爲了記錄輸入句子的上下文,這個無疑是 Lstm
這個模型更爲擅長,所以又有了一種 Lstm
來構造的 DSSM
模型
這篇相對於 CDSMM
來講改的更爲簡單,其實就是將原始 DSSM
的模型替換爲了 LSTM
模型…
MV-DSSM
裏面的 MV
爲 Multi-View
,通常能夠理解爲多視角的 DSSM
,在原始的DSSM中須要訓練的有 Query
和 Doc
這兩類的embedding,同時裏面DNN
的全部權重都是共享的,而 MV-DSSM
他能夠訓練不止兩類的訓練數據,同時裏面的深度模型的參數是相互獨立:
基於 Multi-View
的 DSSM
是的參數變多了,因爲多視角的訓練,輸入的語料也能夠變得不一樣,自由度也更大了,可是隨之帶來的問題就是訓練會變得愈來愈困難^_^
DSSM
類的模型其實在計算類似度的時候最後一步除了使用Cosine,可能再接入一個MLP會更加好,由於Cosine是徹底無參的。
DSSM
的優點:
DSSM
看起來在真實檢索場景下可行性很高,一方面是直接使用了用戶自然的點擊數據,出來的結果可行度很高,另外一方面文中的doc可使用title來表示,同時這個部分都是能夠離線進行語義向量計算的,而後最終query和doc的語義類似性也是至關誘人DSSM
出的結果不只能夠直接排序,還能夠拿中間見過作文章: semantic feature
能夠自然的做爲 word embedding
嘛DSSM
的劣勢:
MVDSSM
改造)