从DSSM语义匹配到Google的双塔深度模型召回和广告场景中的双塔模型思考
▼
相關(guān)推薦
▼
1、基于DNN的推薦算法介紹
2、傳統(tǒng)機(jī)器學(xué)習(xí)和前沿深度學(xué)習(xí)推薦模型演化關(guān)系
3、論文|AGREE-基于注意力機(jī)制的群組推薦(附代碼)
4、論文|被“玩爛”了的協(xié)同過濾加上神經(jīng)網(wǎng)絡(luò)怎么搞?
? ?
本文包含(文章較長(zhǎng),建議先收藏再閱讀,點(diǎn)擊文末的閱讀原文,查看更多推薦相關(guān)文章):
-
DSSM
-
DSSM的變種
-
MV-DNN
-
Google Two Tower Model
-
廣告場(chǎng)景中的DSSM雙塔模型
-
總結(jié)
基于深度學(xué)習(xí)的召回近些年已經(jīng)得到了長(zhǎng)足的發(fā)展,其中雙塔模型更是作為經(jīng)典的深度學(xué)習(xí)召回模型被各大公司應(yīng)用,回顧雙塔模型的發(fā)展可以追溯到2013年微軟發(fā)布的DSSM模型,本篇文章將會(huì)從DSSM開始介紹幾篇論文,看一下DSSM模型是怎么發(fā)展成為雙塔模型并應(yīng)用在推薦系統(tǒng)中做召回的。
DSSM
DSSM模型是2013年微軟發(fā)布的,其論文全稱為:Learning Deep Structured Semantic Models for Web Search using Clickthrough Dara(https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/cikm2013_DSSM_fullversion.pdf )。其發(fā)表的本意是用來語義相似度計(jì)算。通過對(duì)用戶的Query歷史和Document進(jìn)行embedding編碼,使用余弦相似度計(jì)算用戶query的embedding和document的相似度,繼而達(dá)到語義相似度計(jì)算的目的。
論文首先介紹了已有的語義分析模型,比如
-
LSA、PLSA、LDA,但是因?yàn)樗麄儾捎玫亩际菬o監(jiān)督的學(xué)習(xí)方法,因此在實(shí)際的場(chǎng)景中表現(xiàn)的并不好。
-
通過用戶查詢和點(diǎn)擊序列進(jìn)行建模的BLTMs和DPMs,BLTMs不僅要求共享主題分布,而且還給每個(gè)主題分配相似的詞組;DPMs則使用S2Net算法并結(jié)合LTR中的piarwise方法。在實(shí)驗(yàn)中他們的效果表現(xiàn)要比LSA、PLSA、LDA效果好。然后雖然BLTMs使用了點(diǎn)擊數(shù)據(jù)進(jìn)行訓(xùn)練,但其使用的是最大似然方法優(yōu)化目標(biāo),該方法對(duì)于排序來講并不是最優(yōu)的。DPMs則會(huì)產(chǎn)生一個(gè)巨大的稀疏矩陣,雖然可以通過刪除詞匯減小維度,但相應(yīng)的效果也會(huì)減弱
-
結(jié)合深度自編碼的方法,雖然表現(xiàn)較傳統(tǒng)的LSA效果好,但由于其采用的是無監(jiān)督的學(xué)習(xí)方法,模型參數(shù)的優(yōu)化是基于重建文檔,而不是區(qū)分相關(guān)性,因此基于深度自編碼的方法在效果上并沒有顯著優(yōu)于關(guān)鍵詞匹配。
因此作者們提出了深層結(jié)構(gòu)化語義模型(Deep Structured Semantic Model,DSSM)。相比之前的提到幾個(gè)模型DSSM的主要區(qū)別在于:
-
有監(jiān)督,使用最大似然函數(shù)進(jìn)行優(yōu)化
-
使用word-hashing方法解決大規(guī)模且稀疏的詞典問題
-
將用戶的Query行為和Document映射到同一語義空間中,通過余弦相似度計(jì)算相似性
DSSM模型的結(jié)構(gòu)如下圖所示:
DSSM模型結(jié)構(gòu)
從上圖可以看出,輸入DSSM的是一個(gè)高維的向量,經(jīng)過若干層的神經(jīng)網(wǎng)絡(luò),輸出一個(gè)低維的向量,分別用來表示user的query意圖和document,最后通過余弦相似度計(jì)算Q和D的相似度。
每一層的輸出可以表示為:
其中:
-
?表示第層的權(quán)重矩陣
-
?表示第層的偏置,特別的第一層的偏置為0
最終輸出的結(jié)果為:
這里采用的激活函數(shù)為tanh,其表達(dá)形式為:
余弦相似度的計(jì)算公式為:
其中:
-
、分別表示用戶查詢低維向量和文檔低維向量
論文的另一個(gè)出色的點(diǎn)在于拋棄了傳統(tǒng)的Bag-of-word模型,因?yàn)槠鋾?huì)帶來高維度的向量特征,這里使用word hashing技術(shù)來代替詞袋模型,word hashing基于n-gram,比如一個(gè)單詞,使用word hashing技術(shù)進(jìn)行拆分,首先在其兩端補(bǔ)充標(biāo)記符 “#”,假設(shè)n=3,則“#good#” 可以表示為:#go、goo、ood、od#。
但采用word hashing技術(shù)會(huì)帶來一個(gè)問題就是:詞匯沖突,即兩個(gè)表達(dá)含義不同的詞擁有相同的n-gram向量表示。但是論文作者也提到了這種概率很小,沖突的概率在0.0044%,如下圖所示:
詞匯沖突統(tǒng)計(jì)
在用戶的一次查詢中,我們假設(shè)用戶點(diǎn)擊的doc是和query相關(guān)的,這樣就可以使用有監(jiān)督的方法進(jìn)行模型的訓(xùn)練,這里采用的是最大似然函數(shù)(maximize the conditional likelihood),其中要學(xué)習(xí)的參數(shù)是權(quán)重矩陣和偏置。
這里通過softmax函數(shù)計(jì)算用戶query doc之后被點(diǎn)擊的后驗(yàn)概率,表達(dá)式如下:
其中:
-
?表示的是平滑因子
-
?表示的整個(gè)候選文檔庫(其中用戶在一次查詢中點(diǎn)擊的結(jié)果用表示,未點(diǎn)擊的結(jié)果用表示,這里對(duì)未點(diǎn)擊的進(jìn)行負(fù)采樣,比例為1:4)
論文中特意提到采用不同的采樣比例對(duì)結(jié)果影響不大
模型訓(xùn)練采用最大似然函數(shù),優(yōu)化目標(biāo)是最小化下列損失函數(shù):
其中
-
?表示神經(jīng)網(wǎng)絡(luò)的參數(shù)
關(guān)于一些實(shí)驗(yàn)的細(xì)節(jié)
-
將準(zhǔn)備好的數(shù)據(jù)集分為兩部分(訓(xùn)練集和驗(yàn)證集),且沒有交叉
-
DNN網(wǎng)絡(luò)使用三個(gè)隱藏層結(jié)構(gòu),第一層是word hashing 層,大約30K個(gè)節(jié)點(diǎn),第二、第三層有300個(gè)節(jié)點(diǎn),輸出層128個(gè)節(jié)點(diǎn)
-
網(wǎng)絡(luò)權(quán)重初始化使其符合分布,其中、分別表示輸入和輸出單元數(shù)
-
實(shí)驗(yàn)對(duì)比,分層預(yù)訓(xùn)練并沒有比直接訓(xùn)練效果好
-
優(yōu)化算法采用的是隨機(jī)梯度下降(SGD)
-
訓(xùn)練的批大小 batch-size=1024
-
前向和反向傳播過程中單個(gè)批樣本迭代次數(shù) epochs=20
-
實(shí)驗(yàn)評(píng)估指標(biāo)為NDCG,同時(shí)結(jié)合t-test和p-value,進(jìn)行分析,使結(jié)果更嚴(yán)謹(jǐn)
實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)結(jié)果如下表所示,9-12 表示的是使用不同配置的DSSM
-
9:DSSM但沒有使用word hashing + 有監(jiān)督訓(xùn)練
-
10:DSSM + word hashing + 有監(jiān)督訓(xùn)練 + 線性激活函數(shù)
-
11:DSSM + word hashing + 有監(jiān)督訓(xùn)練 + 非線性激活函數(shù)
-
12:DSSM + word hashing + 有監(jiān)督訓(xùn)練 + 非線性激活函數(shù) + 細(xì)節(jié)上的一些優(yōu)化
11 和 12 有一些模糊,看了好幾遍說明,也沒有看懂具體的區(qū)別在哪
實(shí)驗(yàn)結(jié)果
DSSM的變種
關(guān)于DSSM有很多演變模型,這里主要還是針對(duì)語義匹配模型。其主要的變種有:
-
LSTM-DSSM:https://arxiv.org/pdf/1412.6629.pdf ,2014年提,主要思路是將DSSM換成了LSTM
LSTM-DSSM
-
CNN-DSSM:http://www.iro.umontreal.ca/~lisa/pointeurs/ir0895-he-2.pdf ,2015年提出,主要思路是將DSSM換成了CNN
CNN-DSSM
-
MV-DNN【2015年提出】:https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/frp1159-songA.pdf
另外附上兩篇關(guān)于語義匹配的實(shí)踐文章:
-
百度|語義匹配中的技術(shù)實(shí)踐:https://www.jiqizhixin.com/articles/2017-06-15-5
-
阿里|深度語義模型以及在淘寶搜索中的應(yīng)用:https://developer.aliyun.com/article/422338
這里主要說一下MV-DSSM,因?yàn)镸V-DSSM將DSSM應(yīng)用在推薦上,并取得了不錯(cuò)的效果。
MV-DNN
Multi-View-DNN聯(lián)合了多個(gè)域的豐富特征,使用multi-view DNN模型構(gòu)建推薦,包括app、新聞、電影和TV,相比于最好的算法,老用戶提升49%,新用戶提升110%。并且可以輕松的涵蓋大量用戶,很好的解決了冷啟動(dòng)問題。但其使用前提是統(tǒng)一個(gè)主體公司下有很多APP,不同APP之間的用戶數(shù)據(jù)是可以互相使用的,從其設(shè)計(jì)思路上講就很容易的將該算法的使用限定在了為數(shù)不多的公司里。
MV-DSSM的五點(diǎn)貢獻(xiàn):
-
使用豐富的用戶特征,建立了一個(gè)多用途的用戶推薦系統(tǒng)
-
針對(duì)基于內(nèi)容的推薦,提出了一種深度學(xué)習(xí)方法。并學(xué)習(xí)不同的技術(shù)擴(kuò)展推薦系統(tǒng)
-
結(jié)合不同領(lǐng)域的數(shù)據(jù),提出了Multi-View DNN模型建立推薦系統(tǒng)
-
Multi-View DNN模型可以解決用戶冷啟動(dòng)問題
-
在四個(gè)真實(shí)的大規(guī)模數(shù)據(jù)集,通過嚴(yán)格的實(shí)驗(yàn)證明所提出的推薦系統(tǒng)的有效性
訓(xùn)練模型使用的數(shù)據(jù)集:
-
User Features:用戶在Bing搜索引擎中搜索的關(guān)鍵詞和點(diǎn)擊的鏈接數(shù)據(jù)(這里使用TF-IDF剔除掉不重要的詞匯特征數(shù)據(jù))
-
News Features:用戶在Bing News中的新聞點(diǎn)擊數(shù)據(jù),每篇新聞選擇了三部分特征(新聞的標(biāo)題且使用letter tri-gram技術(shù)進(jìn)行編碼、新聞的類別數(shù)據(jù)編碼為二進(jìn)制的特征、新聞的命名實(shí)體詞提取然后使用letter tri-gram技術(shù)進(jìn)行編碼)
-
App Features:用戶在Windows AppStore中的下載歷史數(shù)據(jù),每個(gè)APP的的標(biāo)題(通過letter tri-gram技術(shù)進(jìn)行編碼)和APP的類別數(shù)據(jù)(編碼為二進(jìn)制的特征)
-
Movie/TV Features:用戶在XBOX上的瀏覽數(shù)據(jù),主要利用的是標(biāo)題、描述、流派
在MV-DNN中,userfeatures 被用來作為user view,其余的特征映射到不同的view中,訓(xùn)練時(shí)一個(gè)user features中的樣本和一個(gè)其他的樣本形成樣本對(duì),為了達(dá)到這個(gè)訓(xùn)練目的,使用微軟公司的唯一用戶ID進(jìn)行關(guān)聯(lián),News Features、App Features、Movie/TV Features分別和User Features中的進(jìn)行關(guān)聯(lián),能夠關(guān)聯(lián)上的數(shù)據(jù)條數(shù)如下表所示:
訓(xùn)練數(shù)據(jù)關(guān)聯(lián)
MV-DNN 里面的 MV 為 Multi-View ,一般可以理解為多視角的 DSSM ,在原始的DSSM中需要訓(xùn)練的有 Query 和 Doc這兩類的embedding,同時(shí)里面DNN的所有權(quán)重都是共享的,而MV-DSSM他可以訓(xùn)練不止兩類的訓(xùn)練數(shù)據(jù),同時(shí)里面的深度模型的參數(shù)是相互獨(dú)立:
MV-DNN
基于Multi-View的DSSM的參數(shù)變多了,由于是多視角的訓(xùn)練,輸入的語料也變得不同,自由度更大,但是訓(xùn)練時(shí)也會(huì)變得更加困難。
MV-DNN的訓(xùn)練過程為:
MV-DNN的訓(xùn)練過程
訓(xùn)練目標(biāo)為:
論文中提到的幾種降低特征維度的方法:
-
通過TF-IDF選取top K ?features
-
使用KMeans將相似度的特征劃分到一個(gè)cluster中,并結(jié)合最終的clusters生成新的特征
-
局部敏感哈希:通過一個(gè)隨機(jī)的矩陣將數(shù)據(jù)映射到低維向量空間中,并且保持原始空間上的pairwise cos距離再新的空間上仍然獲得保留
假設(shè)原始維度為,降維為,那么映射矩陣,即包含了個(gè)映射,每個(gè)映射都將映射為,輸出為,計(jì)算的公式為:
計(jì)算、的cos相似度近似表示為:,其中表示漢明距離
-
減小訓(xùn)練樣本數(shù):每個(gè)用戶在每個(gè)域都有大量的日志數(shù)據(jù),每個(gè)用戶在每個(gè)域只選擇一個(gè)<user, item>對(duì),具體為用戶特征-用戶在此域喜歡的所有item的平均分?jǐn)?shù)
Google Two Tower Model
雙塔模型是應(yīng)用非常普遍的深度學(xué)習(xí)召回模型,但是其本身也存在一些問題,比如使用softmax函數(shù)計(jì)算后驗(yàn)概率會(huì)帶來采樣偏差,popular item在負(fù)采樣時(shí)出現(xiàn)的頻率也會(huì)比較高等。
而Google2019年提出的雙塔模型則主要是為了解決softmax帶來的采樣偏差問題和popular item的修正問題,主要是通過兩種方法進(jìn)行修正:
-
in-batch softmax
-
streaming frequency estimation
該論文的主要貢獻(xiàn)點(diǎn):
-
提出流數(shù)據(jù)頻率估計(jì)方法(streaming frequency estimation):針對(duì)流數(shù)據(jù)來估計(jì)item出現(xiàn)的頻率,并利用實(shí)驗(yàn)分析估計(jì)結(jié)果的偏差與方差,模擬實(shí)驗(yàn)證明該方法在數(shù)據(jù)動(dòng)態(tài)變化時(shí)的功效
-
提出模型架構(gòu):提供了一個(gè)針對(duì)大規(guī)模的檢索推薦系統(tǒng),包括了in-batch softmax損失函數(shù)與流數(shù)據(jù)頻率估計(jì)方法,減少了負(fù)采樣在每個(gè)batch中可能會(huì)出現(xiàn)的采樣偏差問題
-
YouTube推薦:在YouTube上應(yīng)用了該模型框架,實(shí)現(xiàn)了端到端的推薦
-
線下和真實(shí)實(shí)驗(yàn):利用兩個(gè)數(shù)據(jù)集實(shí)驗(yàn),檢驗(yàn)?zāi)P托Ч?/p>
算法原理
利用雙塔模型構(gòu)架推薦系統(tǒng),Queries特征向量?item特征向量?,目標(biāo)是給定一個(gè)query,檢索到一系列item子集用于后續(xù)排序推薦任務(wù)。模型結(jié)構(gòu)如圖所示:
首先建立兩個(gè)參數(shù)embedding函數(shù),??,把query和候選item映射到維向量空間,模型的輸出為二者的embedding內(nèi)積,即:$s(x,y) =?,我們的目標(biāo)是根據(jù)訓(xùn)練集T:= \left \{ (x_i, y_i, r_i) \right \}_{i=1}^{T}來學(xué)習(xí)參數(shù)\theta其中r_i$ 為用戶反饋,比如說用戶花在一個(gè)視頻上的時(shí)間等)
in-batch loss function
檢索問題可以看作是一個(gè)多分類問題,給定query?,從結(jié)果M個(gè)結(jié)果中得到,概率通過softmax函數(shù)得到:
結(jié)合用戶的反饋,對(duì)數(shù)似然損失函數(shù)加權(quán)得到:
當(dāng)非常大時(shí),我們通常可以利用負(fù)采樣算法進(jìn)行計(jì)算。然而對(duì)于流數(shù)據(jù),我們考慮在同一個(gè)batch中采樣負(fù)樣本,batch-softmax函數(shù)為:
在每個(gè)batch中,由于存在冪律分布現(xiàn)象,即如果在每個(gè)batch中隨機(jī)采樣負(fù)樣本,會(huì)使熱門商品更容易被采樣到,在損失函數(shù)中就“過度”懲罰了這些熱門商品,因此考慮用頻率對(duì)采樣進(jìn)行修正,即:
其中是在每個(gè)batch中隨機(jī)采樣到item j的概率(下文會(huì)有說明),因此修正后的條件概率函數(shù)為:
則損失函數(shù)為:
即為batch loss function,然后可以利用SGD來更新參數(shù)?。
兩個(gè)技巧
-
最近鄰搜索:當(dāng)embedding映射函數(shù)u和v學(xué)習(xí)好后,預(yù)測(cè)包含兩步:
考慮到耗時(shí)問題,此處利用hash技術(shù)采用近鄰搜索等方法進(jìn)行處理
-
1、計(jì)算query的向量
-
2、從事先訓(xùn)練好的函數(shù)v中找到最鄰近的item。
-
-
歸一化:經(jīng)驗(yàn)表明,對(duì)函數(shù)歸一化效果更好
即:,對(duì)每個(gè)logit函數(shù),利用超參數(shù)??進(jìn)行處理:
Streaming Frequency Estimaton
此方法用來估計(jì)流數(shù)據(jù)中,batch 數(shù)據(jù)下 item 出現(xiàn)的概率。如果一個(gè)item每隔50步出現(xiàn)一次,則對(duì)應(yīng)的概率為1/50=0.02,按照這樣的想法,針對(duì)流數(shù)據(jù),利用哈希序列來記錄采樣id(暫時(shí)不考慮hash collision的問題)。
定義兩個(gè)大小為H的數(shù)組A,B,哈希函數(shù)h可以把每個(gè)item映射為[H]內(nèi)的整數(shù)。
-
A[h(y)]表示item y上次被采樣到的時(shí)刻
-
B[h(y)]表示每多少步item y可以被采樣一次
則,當(dāng)?shù)趖步y(tǒng)被采樣到時(shí),利用迭代可更新A,B:
可看作學(xué)習(xí)率。通過上式更新后,則在每個(gè)batch中item y出現(xiàn)的概率為??。
直觀上,上式可以看作利用SGD算法和固定的學(xué)習(xí)率??來學(xué)習(xí)“可以多久被采樣到一次”這個(gè)隨機(jī)變量的均值。
具體證明和推斷過程參考論文。
模型結(jié)構(gòu)
Google在YouTube上進(jìn)行了模型的測(cè)試,模型結(jié)構(gòu)如下圖所示,其中:
-
訓(xùn)練標(biāo)簽:點(diǎn)擊并進(jìn)行了完整觀看的為1,只點(diǎn)擊或者觀看很少的認(rèn)為是0
-
Video特征:視頻ID、頻道ID,轉(zhuǎn)化為Embedding,對(duì)于一些多值特征(比如視頻的主題)采用Embedding加權(quán)平均
-
User特征:歷史觀看視頻的平均Embedding(這里選取的是過去的一段時(shí)間)
-
對(duì)于同一個(gè)ID的embedding在雙塔模型的左側(cè)和右側(cè)是共享的
模型結(jié)構(gòu)
廣告場(chǎng)景中的DSSM雙塔模型
模型整體結(jié)構(gòu)如下圖所示,也分成三層:輸入層、表示層和匹配層。
輸入層
模型訓(xùn)練分成兩座不同的“塔”分別進(jìn)行,其實(shí)也就是兩個(gè)不同的神經(jīng)網(wǎng)絡(luò)。其中一座塔是用于生成user embedding。輸入用戶特征訓(xùn)練數(shù)據(jù),用戶特征包括用戶稠密特征和用戶稀疏特征,其中用戶稠密特征進(jìn)行one-hot編碼操作,用戶稀疏特征進(jìn)行embedding降維到低維空間(64或者32維),然后進(jìn)行特征拼接操作。廣告?zhèn)群陀脩魝?cè)類似。關(guān)于里面的特征,不在于你要什么,而在于你有什么。整個(gè)工程超級(jí)復(fù)雜的就是這塊的特征工作。這里不再贅述。
表示層
得到拼接好的特征之后會(huì)提供給各自的深度學(xué)習(xí)網(wǎng)絡(luò)模型。用戶特征和廣告特征經(jīng)過各自的兩個(gè)全連接層后轉(zhuǎn)化成了固定長(zhǎng)度的向量,這里得到了維度相同的user embedding和ad embedding。各塔內(nèi)部的網(wǎng)絡(luò)層數(shù)和維度可以不同,但是輸出的維度必須是一樣的,這樣才能在匹配層進(jìn)行運(yùn)算。項(xiàng)目中user embedding和ad embedding 維度都是32。
匹配層
模型訓(xùn)練好了之后會(huì)分別得到user embedding和ad embedding,將它們存儲(chǔ)到redis這一類內(nèi)存數(shù)據(jù)庫中。如果要為某個(gè)特定的廣告推薦人群,則將該廣告的ad embedding分別和所有人群的user embedding計(jì)算cos相似度。選擇距離最近的N個(gè)人群子集作為廣告投放人群,這樣就完成了廣告推薦任務(wù)。模型訓(xùn)練過程中將cos函數(shù)得到的結(jié)果進(jìn)入sigmoid函數(shù)和真實(shí)標(biāo)簽計(jì)算logloss,查看網(wǎng)絡(luò)是否收斂。模型評(píng)估主要使用auc指標(biāo)。小結(jié)下,本節(jié)講了下我們使用DSSM雙塔模型完成廣告推薦任務(wù)。模型整體結(jié)構(gòu)分成輸入層、表示層和匹配層。首先在輸入層處理數(shù)據(jù)獲取特征;然后在表示層通過深度學(xué)習(xí)網(wǎng)絡(luò)得到user embedding和ad embedding;最后在匹配層進(jìn)行廣告推薦。
一些思考
DSSM雙塔模型有很多變種,比如CNN-DSSM、LSTM-DSSM等等。項(xiàng)目中表示層使用了兩層全連接網(wǎng)絡(luò)來作為特征抽取器。現(xiàn)在深度學(xué)習(xí)領(lǐng)域公認(rèn)最強(qiáng)的特征抽取器是Transformer,后續(xù)是否可以加入Transformer。
總結(jié)
至此,從DSSM語義匹配模型到雙塔模型召回的整體演變過程已經(jīng)介紹完畢,在整理該篇內(nèi)容的過程中看了好幾篇論文,雖然追求認(rèn)真和無錯(cuò),但還是會(huì)存在錯(cuò)誤的地方,歡迎在評(píng)論區(qū)指正一起交流。
同時(shí)也參考了很多優(yōu)秀的文章和思路,如下:
-
深度召回模型在QQ看點(diǎn)推薦中的應(yīng)用實(shí)踐
-
深度語義模型以及在淘寶搜索中的應(yīng)用
-
百度NLP | 神經(jīng)網(wǎng)絡(luò)語義匹配技術(shù)
-
【推薦系統(tǒng)經(jīng)典論文(九)】谷歌雙塔模型
-
廣告行業(yè)中那些趣事系列10:推薦系統(tǒng)中不得不說的DSSM雙塔模型?
總結(jié)
以上是生活随笔為你收集整理的从DSSM语义匹配到Google的双塔深度模型召回和广告场景中的双塔模型思考的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 旅行场景下的个性化营销平台揭秘
- 下一篇: 超越用户embedding矩阵:用哈希对