文本匹配-dssm
文章目錄
- 論文鏈接地址
- github
- 前言
- 整體模型結構
- 輸入層
- 表示層
- 匹配層
- 訓練階段
- 優缺點
- 模型改進
- 歡迎指正
論文鏈接地址
Learning Deep Structured Semantic Models for Web Search using Clickthrough Data
github
https://github.com/KATEhuang920909/deep_text_match
前言
傳統文本相似性如BM25、tf-idf等,無法發現語義的query-doc相似對,因此DSSM為計算語義相似度提供了一種方法。
整體模型結構
DSSM模型結構如下:
輸入層
在輸入層用到了word hashing操作,這里用了n-grams方式進行hash,例如trigram將boy切分:#-b-o, b-o-y, o-y-#。這樣可以將將50萬個單詞壓縮到三萬個,bigram可以壓縮到1607個,但是會產生更多碰撞沖突,即不同單詞會用同一個n-gram形式表示,paper中做了一些統計如下:
因此作者選擇了tri-gram,然后one-hot。中文可以以字為最小單位,常用字為1.5萬左右,因此可以直接one-hot。
表示層
表示層為多層DNN,隱藏層神經元大小均為300,最后一層為128,激活函數tanh。
匹配層
匹配層用余弦距離得出相似分數,然后接入softmax將query和doc之間的相似性轉化為一個概率值,公式如下:
,
其中,γ\gammaγ為平滑引子,D∈(D+,D?)D \in (D^+ ,D^-)D∈(D+,D?),D為整個樣本空間,D+為正樣本,D-為負樣本。
訓練階段
極大似然估計
利用隨機梯度下降(SGD)使模型收斂。
優缺點
DSSM用字向量,減少切詞產生的誤差,同時送入模型的編碼方式為one-hot,最大程度上減少了基于詞向量累加或者拼接這種方式所帶來的誤差,缺點就是未考慮語序上下文信息
模型改進
CDSSM:1.添加word-trigram,即構建大小為3的滑動窗口,然后拼接起來,維度大小為90K;2.在word-hash層后面接入卷積層和池化層,這樣可以一定程度保留了上下文信息。整體結構如下:
圖中feature map 為 300*1,采用max-pooling,然后接128維輸出層。
優缺點: 上下文信息有效的保存,間隔較遠的上下文信息無法保留
歡迎指正
總結
- 上一篇: 国赛VS美赛,前排速来观战
- 下一篇: 借助Android Studio生成图标