DSSM Deep Structured Semantic Models
原理
通過(guò) Query 和 Title 的海量的點(diǎn)擊曝光日志,用 DNN 把 Query 和 Title 表達(dá)為低緯語(yǔ)義向量贩猎,并通過(guò) cosine 距離來(lái)計(jì)算兩個(gè)語(yǔ)義向量的距離齿风,最終訓(xùn)練出語(yǔ)義相似度模型和二。
訓(xùn)練階段分別用復(fù)雜的深度學(xué)習(xí)網(wǎng)絡(luò)構(gòu)建query側(cè)特征的query embedding和doc側(cè)特征的doc embedding先较,線上infer時(shí)通過(guò)計(jì)算兩個(gè)語(yǔ)義向量的cos距離來(lái)表示語(yǔ)義相似度洞就,最終獲得語(yǔ)義相似模型棍厌。這個(gè)模型既可以獲得語(yǔ)句的低維語(yǔ)義向量表達(dá)sentence embedding肾胯,還可以預(yù)測(cè)兩句話的語(yǔ)義相似度竖席。
結(jié)構(gòu)
DSSM 從下往上可以分為三層結(jié)構(gòu):輸入層、表示層敬肚、匹配層
輸入層
英文 英文的輸入層處理方式是通過(guò)word hashing毕荐,例如 boy 這個(gè)單詞會(huì)被切為 #-b-o, b-o-y, o-y-#
word-trigram三個(gè)詞一組,順序滑動(dòng)
中文 采用字向量(one-hot)作為輸入艳馒,向量空間約為 1.5 萬(wàn)維憎亚。
表示層 bow ,cnn ,rnn
bow 詞袋模型: 3層 nonlinear projection(wx+b) , 300維 ,300維弄慰,128維 最后輸出128維
CNN-DSSM: 卷積層c pooling層v 語(yǔ)義層 h
舉例:
卷積層:302個(gè)字向量 302*90000 -> 300*1 而卷積核是一個(gè) 3*90000 的權(quán)值矩陣
而這樣的卷積核有 300 個(gè)第美,所以形成了 300 個(gè) 300*1 的 feature map 矩陣
池化層: 每個(gè) feature map 都取最大值,得到一個(gè) 300 維的向量陆爽。Max
(3)全連接層
個(gè) 300 維的向量轉(zhuǎn)化為一個(gè) 128 維的低維語(yǔ)義向量什往。全連接層采用 tanh 函數(shù)
匹配層
用doc,query 的128維做cosine相似度比較
殘差會(huì)在表示層的 DNN 中反向傳播,最終通過(guò)隨機(jī)梯度下降(SGD)使模型收斂慌闭,得到各網(wǎng)絡(luò)層的參數(shù){Wi,bi}别威。
通過(guò)softmax 函數(shù)可以把Query 與正樣本 Doc 的語(yǔ)義相似性轉(zhuǎn)化為一個(gè)后驗(yàn)概率:
正負(fù)樣本
輸入 Qury 例如是一個(gè)用戶特征,然后我們將推薦給用戶一系列物品驴剔,假設(shè)是一系列房源省古,然后用戶點(diǎn)擊的房源就是有可能用戶想要看的,其實(shí)這個(gè)也不一定是用戶真正意圖丧失。那么用戶點(diǎn)擊就是正樣本豺妓,反之其他的就是樣本。
優(yōu)缺點(diǎn)分析
優(yōu)點(diǎn):DSSM 用字向量作為輸入既可以減少切詞的依賴利花,又可以提高模型的泛化能力
缺點(diǎn):上文提到 DSSM 采用詞袋模型(BOW),因此喪失了語(yǔ)序信息和上下文信息