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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【推荐算法】DSSM双塔模型:Deep Structured Semantic Models for Web Search using Clickthrough Data

發(fā)布時(shí)間:2023/12/29 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【推荐算法】DSSM双塔模型:Deep Structured Semantic Models for Web Search using Clickthrough Data 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、DSSM背景

DSSM,全稱Deep Structured Semantic Model,就是我們通常所說的雙塔模型,是微軟公司提出的一種基于深度神經(jīng)網(wǎng)絡(luò)的語義模型,其核心思想是將query和doc映射到到共同維度的語義空間中,通過最大化query和doc語義向量之間的余弦相似度,從而訓(xùn)練得到隱含語義模型,達(dá)到檢索的目的。

潛在語義模型的意圖是在語義級映射一個(gè)query到它的相關(guān)documents中,然而這種基于關(guān)鍵詞的匹配經(jīng)常失敗。為此,一系列的新的基于深度結(jié)構(gòu)的潛在語義模型被提出,這類模型能夠映射query和documents到共同的低維空間中,而且給定query對應(yīng)的document的相關(guān)性可以通過距離的方式計(jì)算出來。提出的DSSM模型可以通過”使用點(diǎn)擊數(shù)據(jù)最大化給定query點(diǎn)擊過的documents的條件概率“進(jìn)行訓(xùn)練。為了使模型適用于更大規(guī)模的網(wǎng)絡(luò)檢索,DSSM使用了一種詞哈希的方法,該方法能夠有效地縮減語義模型的規(guī)模。DSSM模型通過一個(gè)真實(shí)數(shù)據(jù)集的網(wǎng)絡(luò)文檔排序?qū)嶒?yàn)進(jìn)行了評估,結(jié)果表明DSSM模型明顯優(yōu)于當(dāng)前階段的其他潛在語義模型。

雖然DSSM的提出是為了解決搜索問題,但是在推薦系統(tǒng)領(lǐng)域,DSSM也表現(xiàn)出了強(qiáng)大的競爭力,其效果不錯并且對工業(yè)界十分友好,所以被各大廠廣泛應(yīng)用于推薦系統(tǒng)中。通過構(gòu)建user和item兩個(gè)獨(dú)立的子網(wǎng)絡(luò),將訓(xùn)練好的兩個(gè)“塔”中的user embedding 和item embedding各自緩存到內(nèi)存數(shù)據(jù)庫中。線上預(yù)測的時(shí)候只需要在內(nèi)存中計(jì)算相似度運(yùn)算即可。DSSM雙塔模型是推薦領(lǐng)域中非常值得掌握的一個(gè)重要模型。

論文的introduction部分首先介紹其他模型的一些不足:PLSA模型和LDA模型通過一個(gè)松散耦合的目標(biāo)函數(shù)以一種無監(jiān)督的方式進(jìn)行訓(xùn)練,很難達(dá)到符合預(yù)期的表現(xiàn)。其次,給出了潛在語義模型的兩條研究線:基于點(diǎn)擊數(shù)據(jù)、基于深度自編碼。基于點(diǎn)擊數(shù)據(jù)的BLTM模型和DPM模型,前者在文檔排序上并不能達(dá)到最佳表現(xiàn),后者在訓(xùn)練過程中涉及一個(gè)大規(guī)模矩陣乘法問題,因此訓(xùn)練時(shí)間會很大。基于深度學(xué)習(xí)的模型采樣的是無監(jiān)督訓(xùn)練的方法,其表現(xiàn)不能過明顯優(yōu)于基于關(guān)鍵詞匹配的baseline召回方法,同時(shí)這些模型也面臨著同樣的矩陣乘法問題。

綜合上述兩條研究線,解決文檔排序的DSSM模型問世了。

首先,通過一個(gè)非線性投影將query和documents映射到一個(gè)共同的語義空間。其次,對于給定query和每個(gè)documents的相關(guān)性,通過語義空間下向量間的一個(gè)余弦相似度計(jì)算出。神經(jīng)網(wǎng)絡(luò)模型使用點(diǎn)擊數(shù)據(jù)進(jìn)行訓(xùn)練,因此給定query的點(diǎn)擊documents的條件概率能夠最大化。不同于之前的一些無監(jiān)督方式學(xué)習(xí)的潛在語義模型,DSSM直接針對網(wǎng)絡(luò)文檔排序進(jìn)行優(yōu)化,因此得到了不錯的表現(xiàn)。而且在處理大規(guī)模詞匯表時(shí),DSSM采用了一種詞哈希的方法,在沒有任何損失的情況下,將高維的queries和documents向量映射到低維letter-n-gram向量。在語義模型中增加了這一層,詞哈希方法能夠支持大規(guī)模詞匯表,這在網(wǎng)絡(luò)檢索中尤為重要。

2、DSSM Related Work

論文的這部分主要介紹了“Latent Semantic Models and the Use of Clickthrough Data”和"Deep Learning"這兩類模型,沒啥干貨,pass了。

3、DSSM算法細(xì)節(jié)

3.1?DNN for Computing Semantic Features

首先給出DSSM結(jié)構(gòu)圖

DSSM網(wǎng)絡(luò)結(jié)構(gòu)解釋

  • Term Vector:表示文本的embedding向量。
  • Word Hashing:為解決term vector太大問題,對bag-of-word向量降維。
  • Multi-layer nonlinear projection:表示深度學(xué)習(xí)網(wǎng)絡(luò)的隱層。
  • Semantic feature:表示query和document最終的embedding向量。
  • Relevance measured by cosine similarity:表示query與document之間的余弦相似度。
  • Posterior probability computed by softmax:表示通過softmax函數(shù)把query與正樣本document的語義相似性轉(zhuǎn)化為一個(gè)后驗(yàn)概率。

DSSM使用一個(gè)DNN模型將語義空間中的高維稀疏文本特征映射到低維稠密特征。第一個(gè)隱藏層包含30k個(gè)神經(jīng)元,用于詞哈希操作。詞哈希特征然后經(jīng)過多層非線性映射,最后一層的神經(jīng)元生成了DNN模型的語義空間特征。

DNN模型的輸入(raw text features)是一個(gè)高維term vector,即一個(gè)query或者是一個(gè)未經(jīng)標(biāo)準(zhǔn)化的document,DNN模型的輸出是一個(gè)低維語義特征空間中的概念向量。

這樣的DNN模型可以用于網(wǎng)絡(luò)文檔排序:

  • 匹配term vector到對應(yīng)的語義概念向量
  • 計(jì)算query和document之間的相關(guān)性打分(通過對應(yīng)的語義概念向量的cosine相似度)

假設(shè):

  • x是輸入的term向量;
  • y是輸出向量;
  • 表示中間的隱藏層,i=1,2,... ,N-1;
  • 表示第i個(gè)權(quán)重矩陣;
  • 是第i個(gè)偏置項(xiàng)。

于是,結(jié)合神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),可以得到:

在輸出層和隱藏層使用tanh作為激活函數(shù),這樣一個(gè)query和一個(gè)document的語義相關(guān)性打分可以通過下面的公式計(jì)算得到:

這里,和分別表示query和document的概念向量。這樣的話,在網(wǎng)頁檢索任務(wù)中,給定一個(gè)query,documents可以被計(jì)算出來的語義相關(guān)性打分排序。

激活函數(shù)tanh的公式和曲線:

Term vector的大小,通常被當(dāng)作信息檢索領(lǐng)域的原始詞袋特征,其規(guī)模通常非常大。因此,當(dāng)使用term vector作為輸入時(shí),輸入層神經(jīng)網(wǎng)絡(luò)的規(guī)模對于計(jì)算和模型訓(xùn)練來說都變得難以處理。為了解決這個(gè)問題,DSSM針對DNN的第一層提出了一個(gè)“word hashing”的方法,這一層只由線性隱層單元(不需要學(xué)習(xí)大規(guī)模的權(quán)重矩陣)組成。

3.2?Word Hashing

word hashing方法意在減少詞袋term vector的維度,word hashing是在字母n-gram的基礎(chǔ)上為DSSM提出的一種新的方法:word hashing。word hashing方法優(yōu)點(diǎn)是可以降低term vector的維度,缺點(diǎn)是存在一定的沖突問題。

word hashing方法:給定一個(gè)詞,以單詞good為例,首先在該單詞上添加開始和結(jié)束標(biāo)記:#good#。然后將其轉(zhuǎn)換成字母n-gram的形式:letter trigrams: #go, goo, ood, od#。最后,這個(gè)詞將通過一個(gè)字母n-gram向量表示。

這樣的方法可能存在兩個(gè)不同的詞語有著相同的字母n-gram向量表示的問題,也就是沖突問題。與原始的one-hot向量表示相比,word hashing方法可以使用一個(gè)更低維度的向量來表示一個(gè)query或者一個(gè)document。

如果詞匯表的規(guī)模是40k,那么使用letter trigrams方法每個(gè)詞可以被一個(gè)10306維度的向量表示,四倍的維度減少。通常,詞匯表的規(guī)模越大,維度減少的意義越大。舉個(gè)列子,如果詞匯表的規(guī)模是500k,那么其中的每個(gè)詞可以被一個(gè)30621維度的向量表示,這是一個(gè)16倍的維度減少。然而,發(fā)生沖突的概率僅僅是0.0044%。

word hashing方法可以映射相同單詞的變種到letter n-gram空間中的近似的點(diǎn)上。當(dāng)一個(gè)單詞在訓(xùn)練數(shù)據(jù)集中從未出現(xiàn)時(shí),基于word的表示word hashing總會帶來一些問題,其原因不在于使用了基于letter n-gram的向量表示。唯一的風(fēng)險(xiǎn)在于沖突問題。基于word hashing的letter n-gram方法對于詞匯表之外的單詞也能表現(xiàn)出一定的魯棒性,這允許我們可以降低DNN的規(guī)模,

基于word hashing的letter n-gram方法可以被當(dāng)作是一種固定的線性變換,通過這個(gè)線性變換,輸入層的一個(gè)term vector可以被映射成一個(gè)網(wǎng)絡(luò)中下一層的letter n-gram向量。由于letter n-gram向量的維度通常很低,這就可以使得DNN模型能夠有效地學(xué)習(xí)。

補(bǔ)充說明:DSSM模型的輸入層主要的作用就是把文本映射到低維向量空間轉(zhuǎn)化成向量提供給深度學(xué)習(xí)網(wǎng)絡(luò)。然而在NLP領(lǐng)域里中英文的差異比較大,在輸入層處理方式也不同。

英文的輸入層可以通過word hashing方法處理,該方法基于字母的n-gram,主要作用是減少輸入向量的維度。

中文輸入層和英文有很大差別,首先要面臨的是分詞問題。如果要分詞推薦jieba或者北大 pkuseg,不過現(xiàn)在很多模型已經(jīng)不進(jìn)行分詞了,比如BERT中文的預(yù)訓(xùn)練模型就直接使用單字作為最小粒度了。

3.3?Learning the DSSM

點(diǎn)擊日志通常由一系列queries和點(diǎn)擊的documents組成。

假設(shè)一個(gè)query對應(yīng)的點(diǎn)擊過的documents是相關(guān)的。為了最大化給定query對應(yīng)的點(diǎn)擊的documents的條件概率,DSSM提出了一個(gè)有監(jiān)督訓(xùn)練的方法去學(xué)習(xí)模型參數(shù),模型參數(shù)即神經(jīng)網(wǎng)絡(luò)中的權(quán)重矩陣和偏置向量。

首先,我們根據(jù)query和document的語義相關(guān)性打分通過一個(gè)softmax函數(shù)來計(jì)算給定query的document的后驗(yàn)概率:

這里,

  • 是softmax函數(shù)的平滑因子,通常在held-out數(shù)據(jù)集上經(jīng)驗(yàn)設(shè)置;
  • D表示待排序的候選documents,理想狀態(tài)下,D應(yīng)該包含所有可能的documents;
  • Q表示一個(gè)query,表示被點(diǎn)擊過的document;
  • (Q,)表示query、clicked-document對。

DSSM估計(jì)D通過被點(diǎn)擊過的document和4個(gè)隨機(jī)選擇的未被點(diǎn)擊過的documents()。實(shí)驗(yàn)表明,選擇未被點(diǎn)擊過documents的采樣策略并不會影響訓(xùn)練結(jié)果。

模型參數(shù)的訓(xùn)練都是在訓(xùn)練集上最大化給定查詢queries的被點(diǎn)擊documents的概率來獲得,也即我們需要最小化下面的損失函數(shù)

這里,表示神經(jīng)網(wǎng)絡(luò)的參數(shù),其學(xué)習(xí)過程采用了一種基于梯度的數(shù)學(xué)優(yōu)化算法。

3.4?Implementation Details

為了確定訓(xùn)練參數(shù)并防止過擬合,實(shí)驗(yàn)將點(diǎn)擊數(shù)據(jù)分成不重疊的兩部分:訓(xùn)練集和驗(yàn)證集。實(shí)驗(yàn)過程中,模型在訓(xùn)練集上訓(xùn)練,訓(xùn)練參數(shù)在驗(yàn)證集上進(jìn)行優(yōu)化。

DNN模型使用了3個(gè)隱藏層的結(jié)構(gòu)。

第一個(gè)隱層是word hashing層,包含30k個(gè)結(jié)點(diǎn),即letter-trigrams的大小是30k。

接下來的兩個(gè)隱藏層分別有300個(gè)隱藏結(jié)點(diǎn)。

輸出層有128個(gè)結(jié)點(diǎn),即輸出層的維度是128維。

word hashing是基于一個(gè)固定的投影矩陣,輸出層的維度是128維,128維向量用來計(jì)算相似性。在訓(xùn)練階段,模型的訓(xùn)練采用的是基于SGD的mini-batch方法,每個(gè)mini-batch包含1024個(gè)訓(xùn)練樣本。實(shí)驗(yàn)表明,DNN模型通常在整個(gè)數(shù)據(jù)集上迭代20輪之內(nèi)達(dá)到收斂。

4、?DSSM模型在推薦召回環(huán)節(jié)的應(yīng)用

DSSM模型的最大特點(diǎn)就是Query和Document是兩個(gè)獨(dú)立的子網(wǎng)絡(luò),后來這一特色被移植到推薦算法的召回環(huán)節(jié),即對用戶端(User)和物品端(Item)分別構(gòu)建獨(dú)立的子網(wǎng)絡(luò)塔式結(jié)構(gòu)。

DSSM雙塔模型結(jié)構(gòu)圖

雙塔模型兩側(cè)分別對(用戶,上下文)和(物品)進(jìn)行建模,并在最后一層計(jì)算二者的內(nèi)積。

其中:?

  • 為(用戶,上下文)的特征,為(物品)的特征。
  • 表示(用戶,上下文)最終的embedding向量表示,??表示(物品)最終的 embedding向量表示。
  • <,>表示(用戶,上下文)和(物品)的余弦相似度。

當(dāng)模型訓(xùn)練完成時(shí),item的embedding是可以保存成詞表的,線上應(yīng)用的時(shí)候只需要查找對應(yīng)的 embedding 可。因此線上只需要計(jì)算 (用戶,上下文) 一側(cè)的embedding,基于Annoy或Faiss 技術(shù)索引得到用戶偏好的候選集。

DSSM雙塔召回流程

DSSM模型首先將原始的文本特征映射到低維的語義空間。query和document

假設(shè):query?= 蘋果手機(jī) 價(jià)格,?document?= Iphone Xs 最低 售價(jià) 11399 元 Iphone X 價(jià)格 6999 元。

  • 首先將query和document表示為詞頻向量,該向量由每個(gè)單詞出現(xiàn)的詞頻組成。

構(gòu)建詞匯表:

蘋果手機(jī) Iphone x Xs 價(jià)格 最低 售價(jià) 6999 11399 元

得到query向量和document向量:

  • 然后將和分別映射到低維語義空間,分別得到query的語義向量和document的語義向量。
  • 計(jì)算和的相似度:

  • 給定query,計(jì)算所有document與它的相似度,并截取topK個(gè)document即可得到召回結(jié)果。

5、DSSM小結(jié)

DSSM在推薦、搜索和廣告領(lǐng)域都取得了廣泛的應(yīng)用,模型首先的一個(gè)用處即為Embedding化user和item,方便實(shí)時(shí)推薦計(jì)算,即通過兩個(gè)DNN,將user和item的特征各自輸入,訓(xùn)練出兩個(gè)k維的向量u(x)和v(y),存入到redis這樣的緩存數(shù)據(jù)庫中,線上系統(tǒng)開始推薦時(shí),獲取用戶的embedding,直接與各個(gè)item的embedding進(jìn)行計(jì)算,得到對應(yīng)的推薦序列。為了取得更好的推薦效果,很多公司都對模型結(jié)構(gòu)進(jìn)行了一些改進(jìn)(這里只給出網(wǎng)絡(luò)結(jié)構(gòu)圖不做詳細(xì)介紹):

百度的雙塔模型:

谷歌的雙塔模型:

6、參考資料

  • DSSM論文
  • OPPO互聯(lián)網(wǎng)技術(shù):推薦系統(tǒng)中不得不說的DSSM雙塔模型
  • 公眾號:推薦系統(tǒng)中不得不說的DSSM雙塔模型

總結(jié)

以上是生活随笔為你收集整理的【推荐算法】DSSM双塔模型:Deep Structured Semantic Models for Web Search using Clickthrough Data的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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