【NLP-语义匹配】详解深度语义匹配模型DSSM
所謂語義匹配,就是在語義上衡量文本的相似度,在產業界有很多的應用需求。例如,在FAQ場景中需要計算用戶輸入與標問之間的相似度來尋找合適的答案。本文介紹一種經典的語義匹配技術,DSSM,主要用于語料的召回和粗排。
作者&編輯 | 小Dream哥
1 DSSM的提出?
較早期的語義匹配模型都是基于關鍵詞的匹配,例如LSA等,無法匹配語義層面的信息。基于此,DSSM(Deep Structured Semantic Models)提出深度語義匹配模型,期望能夠在語義層面匹配query之間的相似性。
顧名思義,DSSM是一種用于語義相似度計算的深度網絡,我們來看看它的廬山真面目到底是怎么樣的。
2? 整體看結構
我們先來整體來看一下DSSM的網絡結構,以整體上對它有一個把握和感覺。如下圖所示,是DSSM的網絡架構圖:
論文原文:https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/cikm2013_DSSM_fullversion.pdf
整體上來看,DSSM網絡總共有6層:
1.第一層是輸入層,DSSM用的詞袋模型,后面再詳細介紹;
2.第二層經過word hashing,將維度由500K降為30K;
3.第三,四,五層是3個全連接層,通過這三個全連接層,進行語義特征的提取,并降維度降低到128維;
4.第六層為輸出層,計算Q和D之間的余弦相似度之后,輸出他們之間的相似度。
3 輸入層及word hashing??
DSSM的輸入層結合了詞哈希(word hashing)和語義匹配,我們在講詞向量的時候詳細介紹了詞袋模型,忘記的同學可以點擊如下鏈接先了解:
【NLP-詞向量】詞向量的由來及本質
總的來說詞袋模型就是把文本看成是一個裝著詞的袋子,記錄一個文本中,有這個詞幾個,那個詞幾個。前提到過,當詞典非常大時,用詞袋模型會造成維度災難。所以DSSM還引入了word hashing。
Word hashing主要目的是為了減少維度,在英文里,采用letter-ngams來對單詞進行切分,如下圖所示,加入采用letter-trigams來對詞進行切分,則boy這個詞可以切分為(#bo,boy,oy#)三個。按這個方法,再將上述詞袋里的進行轉化。因為英文只有26個字母,這樣可以極大的減少維度,如論文中所示將維度從500K轉化為30K。
也許反應快的同學很快就會問,英文可以這樣做,但是好像中文沒有辦法這樣處理呀?總不能按照偏旁來拆吧?當然不會按照偏旁來拆了,加入漢字部首偏旁特征的研究目前還不很成功。
那么中文怎么處理呢?其實很簡單,在單純的DSSM模型中,中文是按照“字袋模型”來處理的,參考詞袋模型,也就是將文本轉化成,有幾個某某字,有幾個某某字。因為中文字個數是有限的,常用的字大概有15K左右,因此這種做法不會有維度過大的問題。
4? 特征提取層和相似度計算
熟悉深度學習的朋友,應該很容易看明白DSSM的特征抽取層,其實就是3個全連接層串行的連接起來。看看數學:
可以看出,在DSSM中采用tanh作為激活函數。
通過計算各個Q及D的特征表征,得到了一些128維的特征向量。隨后在DSSM中,通過計算Q和D之間的余弦距離來評價他們之間相似度,計算公式如下圖所示:
5? DSSM的訓練
那么DSSM訓練的過程是怎么樣的呢?細心的同學會發現,DSSM網絡結構圖中,DSSM的輸入是一個Querry和一個文本集D,D中包含正樣本和負樣本。
其中 r 為 softmax 的平滑因子,D 為 Query 下的正樣本,D 為 Query 下的整個樣本空間。
上述公式,計算一個樣本空間內正樣本的平滑概率,R(Q,D)為兩個文本之間余弦距離。
在訓練階段,通過極大似然估計,最小化損失函數為:
總結
DSSM的優點在于能夠快速的計算多個query和Doc對之間的語義相似度;相對于詞向量的方式,它采用有監督的方法,準確度要高很多。
但是DSSM也有它的缺點,首先,它采用詞袋模型,沒有考慮詞的位置關系,這對語義理解是一個大的損失;此外,采用弱監督、端到端的模型,預測結果不可控。
基于DSSM的上述特點,它最適合應用的場景就是召回和粗排。例如在FAQ中,因為標問會非常多,將標問和用戶輸入一一匹配時幾乎不可能的事情。通常的做法就是,首先基于ES和DSSM做一遍召回和粗排,得到一定數目的標問后再用精排模型得到答案。
除了使用它,更關鍵的是albert模型的實現和理論。我們會在知識星球討論相關的內容,感興趣的話可以掃描下面的二維碼了解。
讀者們可以留言,或者加入我們的NLP群進行討論。感興趣的同學可以微信搜索jen104,備注"加入有三AI NLP群"。
下期預告:暫無
知識星球推薦
掃描上面的二維碼,就可以加入我們的星球,助你成長為一名合格的自然語言處理算法工程師。
知識星球主要有以下內容:
(1) 聊天機器人。包括對話系統,FAQ以及閑聊型機器人。
(2) 知識圖譜。介紹知識圖譜的理論和世紀搭建。
(3) NLP預訓練模型,包括BERT,ALBERT等模型的理論及實踐。
轉載文章請后臺聯系
侵權必究
往期精選
【完結】 12篇文章帶你完全進入NLP領域,掌握核心技術
【年終總結】2019年有三AI NLP做了什么,明年要做什么?
【NLP-詞向量】詞向量的由來及本質
【NLP-詞向量】從模型結構到損失函數詳解word2vec
【NLP-NER】什么是命名實體識別?
【NLP-NER】命名實體識別中最常用的兩種深度學習模型
【NLP-NER】如何使用BERT來做命名實體識別
【NLP-ChatBot】我們熟悉的聊天機器人都有哪幾類?
【NLP-ChatBot】搜索引擎的最終形態之問答系統(FAQ)詳述
【NLP-ChatBot】能干活的聊天機器人-對話系統概述
【知識圖譜】人工智能技術最重要基礎設施之一,知識圖譜你該學習的東西
【知識圖譜】知識表示:知識圖譜如何表示結構化的知識?
【知識圖譜】如何構建知識體系:知識圖譜搭建的第一步
【知識圖譜】獲取到知識后,如何進行存儲和便捷的檢索?
【知識圖譜】知識推理,知識圖譜里最“人工智能”的一段
【NLP實戰】tensorflow詞向量訓練實戰
【NLP實戰系列】樸素貝葉斯文本分類實戰
【NLP實戰系列】Tensorflow命名實體識別實戰
【NLP實戰】如何基于Tensorflow搭建一個聊天機器人
【NLP實戰】基于ALBERT的文本相似度計算
【每周NLP論文推薦】從預訓練模型掌握NLP的基本發展脈絡
【每周NLP論文推薦】 NLP中命名實體識別從機器學習到深度學習的代表性研究
【每周NLP論文推薦】 介紹語義匹配中的經典文章
【每周NLP論文推薦】 對話管理中的標志性論文介紹
【每周NLP論文推薦】 開發聊天機器人必讀的重要論文
【每周NLP論文推薦】 掌握實體關系抽取必讀的文章
【每周NLP論文推薦】 生成式聊天機器人論文介紹
【每周NLP論文推薦】 知識圖譜重要論文介紹
總結
以上是生活随笔為你收集整理的【NLP-语义匹配】详解深度语义匹配模型DSSM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【年终总结】有三AI至今在人脸图像算法领
- 下一篇: 【文本信息抽取与结构化】目前NLP领域最