所謂語義匹配,,就是在語義上衡量文本的相似度,在產(chǎn)業(yè)界有很多的應(yīng)用需求,。例如,,在FAQ場景中需要計(jì)算用戶輸入與標(biāo)問之間的相似度來尋找合適的答案。本文介紹一種經(jīng)典的語義匹配技術(shù),,DSSM,,主要用于語料的召回和粗排。 作者&編輯 | 小Dream哥 1 DSSM的提出 較早期的語義匹配模型都是基于關(guān)鍵詞的匹配,,例如LSA等,,無法匹配語義層面的信息?;诖?,DSSM(Deep Structured Semantic Models)提出深度語義匹配模型,期望能夠在語義層面匹配query之間的相似性,。 顧名思義,,DSSM是一種用于語義相似度計(jì)算的深度網(wǎng)絡(luò),我們來看看它的廬山真面目到底是怎么樣的,。 2 整體看結(jié)構(gòu) 我們先來整體來看一下DSSM的網(wǎng)絡(luò)結(jié)構(gòu),,以整體上對它有一個(gè)把握和感覺。如下圖所示,,是DSSM的網(wǎng)絡(luò)架構(gòu)圖: 論文原文:https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/cikm2013_DSSM_fullversion.pdf 整體上來看,,DSSM網(wǎng)絡(luò)總共有6層: 1.第一層是輸入層,DSSM用的詞袋模型,后面再詳細(xì)介紹,; 2.第二層經(jīng)過word hashing,,將維度由500K降為30K; 3.第三,,四,,五層是3個(gè)全連接層,通過這三個(gè)全連接層,,進(jìn)行語義特征的提取,,并降維度降低到128維; 4.第六層為輸出層,,計(jì)算Q和D之間的余弦相似度之后,,輸出他們之間的相似度。 3 輸入層及word hashing DSSM的輸入層結(jié)合了詞哈希(word hashing)和語義匹配,,我們在講詞向量的時(shí)候詳細(xì)介紹了詞袋模型,,忘記的同學(xué)可以點(diǎn)擊如下鏈接先了解: 總的來說詞袋模型就是把文本看成是一個(gè)裝著詞的袋子,記錄一個(gè)文本中,,有這個(gè)詞幾個(gè),,那個(gè)詞幾個(gè)。前提到過,,當(dāng)詞典非常大時(shí),,用詞袋模型會(huì)造成維度災(zāi)難。所以DSSM還引入了word hashing,。 Word hashing主要目的是為了減少維度,,在英文里,采用letter-ngams來對單詞進(jìn)行切分,,如下圖所示,,加入采用letter-trigams來對詞進(jìn)行切分,則boy這個(gè)詞可以切分為(#bo,boy,oy#)三個(gè),。按這個(gè)方法,,再將上述詞袋里的進(jìn)行轉(zhuǎn)化。因?yàn)橛⑽闹挥?6個(gè)字母,,這樣可以極大的減少維度,,如論文中所示將維度從500K轉(zhuǎn)化為30K。 也許反應(yīng)快的同學(xué)很快就會(huì)問,,英文可以這樣做,,但是好像中文沒有辦法這樣處理呀?總不能按照偏旁來拆吧,?當(dāng)然不會(huì)按照偏旁來拆了,,加入漢字部首偏旁特征的研究目前還不很成功。 那么中文怎么處理呢,?其實(shí)很簡單,,在單純的DSSM模型中,中文是按照“字袋模型”來處理的,,參考詞袋模型,,也就是將文本轉(zhuǎn)化成,有幾個(gè)某某字,,有幾個(gè)某某字,。因?yàn)橹形淖謧€(gè)數(shù)是有限的,常用的字大概有15K左右,,因此這種做法不會(huì)有維度過大的問題,。 4 特征提取層和相似度計(jì)算 熟悉深度學(xué)習(xí)的朋友,應(yīng)該很容易看明白DSSM的特征抽取層,,其實(shí)就是3個(gè)全連接層串行的連接起來,。看看數(shù)學(xué): 可以看出,,在DSSM中采用tanh作為激活函數(shù),。 通過計(jì)算各個(gè)Q及D的特征表征,得到了一些128維的特征向量,。隨后在DSSM中,,通過計(jì)算Q和D之間的余弦距離來評(píng)價(jià)他們之間相似度,計(jì)算公式如下圖所示: 5 DSSM的訓(xùn)練 那么DSSM訓(xùn)練的過程是怎么樣的呢,?細(xì)心的同學(xué)會(huì)發(fā)現(xiàn),,DSSM網(wǎng)絡(luò)結(jié)構(gòu)圖中,DSSM的輸入是一個(gè)Querry和一個(gè)文本集D,,D中包含正樣本和負(fù)樣本,。 其中 r 為 softmax 的平滑因子,D 為 Query 下的正樣本,,D 為 Query 下的整個(gè)樣本空間,。 上述公式,計(jì)算一個(gè)樣本空間內(nèi)正樣本的平滑概率,,R(Q,D)為兩個(gè)文本之間余弦距離,。 在訓(xùn)練階段,通過極大似然估計(jì),,最小化損失函數(shù)為: DSSM的優(yōu)點(diǎn)在于能夠快速的計(jì)算多個(gè)query和Doc對之間的語義相似度,;相對于詞向量的方式,它采用有監(jiān)督的方法,,準(zhǔn)確度要高很多,。 但是DSSM也有它的缺點(diǎn),,首先,它采用詞袋模型,,沒有考慮詞的位置關(guān)系,,這對語義理解是一個(gè)大的損失;此外,,采用弱監(jiān)督,、端到端的模型,預(yù)測結(jié)果不可控,。 基于DSSM的上述特點(diǎn),,它最適合應(yīng)用的場景就是召回和粗排。例如在FAQ中,,因?yàn)闃?biāo)問會(huì)非常多,,將標(biāo)問和用戶輸入一一匹配時(shí)幾乎不可能的事情。通常的做法就是,,首先基于ES和DSSM做一遍召回和粗排,,得到一定數(shù)目的標(biāo)問后再用精排模型得到答案。 除了使用它,,更關(guān)鍵的是albert模型的實(shí)現(xiàn)和理論,。我們會(huì)在知識(shí)星球討論相關(guān)的內(nèi)容,感興趣的話可以掃描下面的二維碼了解,。 |
|