1. 文本相似度計算-文本向量化
2. 文本相似度計算-距離的度量
3. 文本相似度計算-DSSM算法
4. 文本相似度計算-CNN-DSSM算法
1. 前言
之前介紹了DSSM算法,它主要是用了DNN的結構來對數據進行降維度,本文用CNN的結構對數據進行降維。
2. CNN-DSSM
CNN-DSSM在DSSM的基礎上改進了數據的預處理和深度
2.1 CNN-DSSM架構
CNN-DSSM的架構圖如下:
輸入:\(Query\)是代表用戶輸入,\(document\)是數據庫中的文檔。
- word-n-gram層:是對輸入做了一個獲取上下文信息的窗口,圖中是word-trigram,取連續的3個單詞。
- Letter-trigram:是把上層的三個單詞通過3個字母的形式映射到3w維,然后把3個單詞連接起來成9w維的空間。
- Convolutional layer:是通過Letter-trigram層乘上卷積矩陣獲得,是普通的卷積操作。
- Max-pooling:是把卷積結果經過池化操作。
- Semantic layer:是語義層,是池化層經過全連接得到的。
獲得128維的語義后就可以計算文本之間的相似度了,計算相似度的過程和DNN-DSSM的過程是一樣的。可以發現CNN-DSSM和DNN-DSSM基本流程是差不多的,就是用卷積和池化的操作代替了DNN的操作。
2.2 優缺點
-
優點:CNN-DSSM 通過卷積層提取了滑動窗口下的上下文信息,又通過池化層提取了全局的上下文信息,上下文信息得到較為有效的保留。
-
缺點:CNN-DSSM 滑動窗口(卷積核)大小的限制,導致無法捕獲該上下文信息,對於間隔較遠的上下文信息,難以有效保留。
3. 總結
CNN-DSSM的結構可分為數據預處理(把文本向量化),在經過深度神經網絡,壓縮矩陣,最后拿壓縮后的矩陣進行相似度計算。和DNN-DSSM相比主要的變化在深度神經網絡這一層的處理方式,舉一反三那肯定也還有通過RNN來處理數據的過程,RNN-DSSM后面會載講解。