日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Semantic Embedding】: CDSSM(CLSM)模型

發(fā)布時(shí)間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Semantic Embedding】: CDSSM(CLSM)模型 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章下載地址:https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/cikm2014_cdssm_final.pdf

DSSM模型的輸入是query和doc的詞袋模型生成的向量,所以模型丟失來文本的上下文結(jié)構(gòu)信息。而CDSSM模型則通過詞的n-gram和卷積池化操作來捕獲上下文關(guān)系,按文章說明的,該算法相比原始DSSM將近會(huì)有10%的效果提升。

直入主題

? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

按圖從上到下進(jìn)行講解

1. Query/document 是輸入模型的query和doc句子,這里分別對(duì)輸入的句子首尾用<s>進(jìn)行了填充,保證在n-gram和卷積的時(shí)候每個(gè)詞的前后都有詞。

這個(gè)不用多說了,就是輸入的句子。

2. Sliding window 是定義滑動(dòng)窗口對(duì)輸入的句子做n-gram,來獲取word-n-gram,文章用的tri-gram。

3.word-n-gram layer 是經(jīng)過滑窗處理后的word-n-gram 數(shù)據(jù)。

4.Letter-trigram layer 是對(duì)word-n-gram 按原始dssm說的那個(gè)把單詞用n-gram進(jìn)行切割的方式進(jìn)行處理,不過在進(jìn)行詞袋模型統(tǒng)計(jì)的時(shí)候統(tǒng)計(jì)的是word-n-gram了,不再是整個(gè)句子。

下面針對(duì)2,3,4進(jìn)行講解

letter-trigram based word-n-gram representation

一個(gè)單詞通常被表示為一個(gè)one-hot向量,但是因?yàn)樵~匯量過大,數(shù)據(jù)會(huì)很稀疏,所以這里的輸入也用到了word hashing 技術(shù)。比如把一個(gè)單詞 (boy)前后填充上詞邊界標(biāo)識(shí),變?yōu)?boy#,然后做letter-n-grams,比如做letter-tri-grams,就能獲得#bo,boy,oy#。然后我們就可以把單詞表示成letter-tri-grams多熱向量,如下所圖所示:

? ? ? ? ? ? ? ? ? ? ? ? ??

這樣就能大大減少單詞的向量的維度。

框架圖中的letter-trigram 矩陣就是將一個(gè)單詞轉(zhuǎn)化為對(duì)應(yīng)的letter-trigram向量。

然后一個(gè)word-n-gram里面會(huì)有多個(gè)詞,比如word-tri-gram按窗口為3將句子進(jìn)行切分的話,一個(gè)word-tri-gram里面就有三個(gè)單詞。那么這個(gè)word-tri-gram的表示就用每個(gè)單詞的letter-trigram拼接起來來表示。

比如句子的第t個(gè)word-n-gram就直接表示為:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

其中是第t個(gè)詞的letter-trigram表示,n=2d+1是滑動(dòng)窗口的大小。如果letter-trigram的詞匯量大小為30k的話,那么word-n-grams的向量表示就是n*30k。模型框架圖中的90k就是因?yàn)榇翱诖笮=3。

5.卷積矩陣?

可以理解為卷積模版

6.卷積層

其實(shí)5,6就是在做一個(gè)事情,把原始dssm的全連接網(wǎng)絡(luò)轉(zhuǎn)化成卷積網(wǎng)絡(luò),因?yàn)槭且痪S向量所以用的一維卷積,

其輸出就是上一層一個(gè)word-n-gram輸出的,輸出為:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

就是卷積矩陣,激活函數(shù)選擇的tanh()函數(shù)。

7.max-pooling 池化層也是經(jīng)常和卷積一起配合使用的操作了,這里之所以選擇max-pooling是因?yàn)?#xff0c;語義匹配的目的是為了找到query和doc之間的相似度,那么就需要去找到兩者相似的點(diǎn),max-pooling則可以找到整個(gè)特征圖中最重要的點(diǎn),而avg-pooling則容易把重要的信息平均掉。

但是為了讓最后不定長(zhǎng)句子的輸入也有定長(zhǎng)的向量輸出,這里的max-pooling是基于每個(gè)word-n-gram輸出向量,在每個(gè)向量的不同維度上的max-pooling。就是這么個(gè)意思:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

i是向量的第i個(gè)維度,這樣就能保證最后輸出的維度一致了。

其實(shí)到這里輸出的向量已經(jīng)可以作為潛在的語義向量使用了,

?不過作者還在這后面加了一個(gè)全連接網(wǎng)絡(luò),即

8.semantic matrix ? ?就是全連接矩陣

9.semantic layers 就是經(jīng)過全連接后的最后一層輸出。

? ? ? ? ? ? ? ? ? ? ? ? ?

之所以再加一層全連接無非是想對(duì)提取的向量再做一次非線性映射,讓輸出的向量能更好的在歐式空間內(nèi)進(jìn)行度量。

最后的損失函數(shù),相似度度量等,都和原始的dssm一毛一樣了。可以去看看我前面寫的那篇DSSM。

總結(jié)

以上是生活随笔為你收集整理的【Semantic Embedding】: CDSSM(CLSM)模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。