線上場(chǎng)景:
首頁(yè)推薦
場(chǎng)景特點(diǎn):
業(yè)務(wù)形態(tài)多樣、消費(fèi)場(chǎng)景多樣;推薦系統(tǒng),需要準(zhǔn)確捕獲用戶的興趣點(diǎn)或用戶的實(shí)時(shí)意圖。而且我們推薦的場(chǎng)景也會(huì)隨著用戶興趣、地點(diǎn)、環(huán)境、時(shí)間等變化而變化。
美團(tuán)場(chǎng)景:于地理位置息息相關(guān);日志比資訊少;
相比于資訊類推薦:資訊類推薦用戶行為日志更多,用戶注意力更分散。
相比于搜索排序:有明確的query 輸入,個(gè)性化需求相對(duì)較少。
相對(duì)于購(gòu)物類推薦:用戶注意力 短期集中,介于 搜索與咨詢中間。
總體架構(gòu):
召回層;排序?qū)印?/p>
1. 召回層:我們通過(guò)用戶行為、場(chǎng)景等進(jìn)行實(shí)時(shí)判斷,通過(guò)多個(gè)召回策略召回不同候選集。再對(duì)召回的候選集進(jìn)行融合。候選集融合和過(guò)濾層有兩個(gè)功能,一是提高推薦策略的覆蓋度和精度;另外還要承擔(dān)一定的過(guò)濾職責(zé),從產(chǎn)品、運(yùn)營(yíng)的角度制定一些人工規(guī)則,過(guò)濾掉不符合條件的Item。召回策略主要有:
1)協(xié)同過(guò)濾型: N個(gè)相似用戶對(duì)item的召回;歷史item 對(duì)item 的召回;直接將user 和item 向量化的召回。
2)Query意圖:Query中包含的實(shí)時(shí)信息(如地理位置信息、WiFi到店、關(guān)鍵詞搜索、導(dǎo)航搜索等)對(duì)用戶的意圖進(jìn)行抽象,從而觸發(fā)的策略。
3)地理位置:根據(jù)用戶的實(shí)時(shí)地理位置、工作地、居住地等地理位置觸發(fā)相應(yīng)的策略。
2. 排序?qū)樱?/p>
1)離線計(jì)算層:離線計(jì)算層主要包含了算法集合、算法引擎,負(fù)責(zé)數(shù)據(jù)的整合、特征的提取、模型的訓(xùn)練、以及線下的評(píng)估。
2)近線實(shí)時(shí)數(shù)據(jù)流:主要是對(duì)不同的用戶流實(shí)施訂閱、行為預(yù)測(cè),并利用各種數(shù)據(jù)處理工具對(duì)原始日志進(jìn)行清洗,處理成格式化的數(shù)據(jù),落地到不同類型的存儲(chǔ)系統(tǒng)中,供下游的算法和模型使用。
3)在線實(shí)時(shí)打分:根據(jù)用戶所處的場(chǎng)景,提取出相對(duì)應(yīng)的特征,并利用多種機(jī)器學(xué)習(xí)算法,對(duì)多策略召回的結(jié)果進(jìn)行融合和打分重排。
歷史迭代:
點(diǎn)評(píng)推薦排序系統(tǒng)嘗試了多種線性、非線性、混合模型等機(jī)器學(xué)習(xí)方法,如邏輯回歸、GBDT、GBDT+LR等。通過(guò)線上實(shí)驗(yàn)發(fā)現(xiàn),相較于線性模型,傳統(tǒng)的非線性模型如GBDT,并不一定能在線上AB測(cè)試環(huán)節(jié)對(duì)CTR預(yù)估有比較明顯的提高。而線性模型如邏輯回歸,因?yàn)樽陨矸蔷€性表現(xiàn)能力比較弱,無(wú)法對(duì)真實(shí)生活中的非線性場(chǎng)景進(jìn)行區(qū)分,會(huì)經(jīng)常對(duì)歷史數(shù)據(jù)中出現(xiàn)過(guò)的數(shù)據(jù)過(guò)度記憶。系統(tǒng)在非??壳暗奈恢猛扑]了一些遠(yuǎn)距離的商戶,因?yàn)檫@些商戶曾經(jīng)被用戶點(diǎn)過(guò),其本身點(diǎn)擊率較高,那么就很容易被系統(tǒng)再次推薦出來(lái)。但這種推薦并沒(méi)有結(jié)合當(dāng)前場(chǎng)景給用戶推薦出一些有新穎性的Item。為了解決這個(gè)問(wèn)題,就需要考慮更多、更復(fù)雜的特征,比如組合特征來(lái)替代簡(jiǎn)單的“距離”特征。怎么去定義、組合特征,這個(gè)過(guò)程成本很高,并且更多地依賴于人工經(jīng)驗(yàn)。
而深度神經(jīng)網(wǎng)絡(luò),可以通過(guò)低維密集的特征,學(xué)習(xí)到以前沒(méi)出現(xiàn)過(guò)的一些Item和特征之間的關(guān)系,并且相比于線性模型大幅降低了對(duì)于特征工程的需求。
實(shí)踐:
1. 數(shù)據(jù)角度:
1)樣本:在訓(xùn)練時(shí)對(duì)于購(gòu)買過(guò)的樣本進(jìn)行一定程度的加權(quán);為了防止過(guò)擬合/欠擬合,我們將正負(fù)樣本的比例控制在10%;訓(xùn)練樣本清洗,去除掉Noise樣本(特征值近似或相同的情況下,分別對(duì)應(yīng)正負(fù)兩種樣本)。
2)特征:
用戶畫像:性別、常駐地、價(jià)格偏好、Item偏好等。
Item畫像:包含了商戶、外賣、團(tuán)單等多種Item。其中商戶特征包括:商戶價(jià)格、商戶好評(píng)數(shù)、商戶地理位置等。外賣特征包括:外賣平均價(jià)格、外賣配送時(shí)間、外賣銷量等。團(tuán)單特征包括:團(tuán)單適用人數(shù)、團(tuán)單訪購(gòu)率等。
場(chǎng)景畫像:用戶當(dāng)前所在地、時(shí)間、定位附近商圈、基于用戶的上下文場(chǎng)景信息等。
2)特征預(yù)處理:特征組合;歸一化。
3)模型角度:Optimizer 選擇 Adam。?損失函數(shù) 選擇 交叉熵。
在離線階段,我們采用基于Theano、Tensorflow的Keras作為模型引擎。在訓(xùn)練時(shí),我們分別對(duì)樣本數(shù)據(jù)進(jìn)行清洗和提權(quán)。在特征方面,對(duì)于連續(xù)特征,我們用Min-Max方法做歸一化。在交叉特征方面,我們結(jié)合業(yè)務(wù)需求,提煉出多個(gè)在業(yè)務(wù)場(chǎng)景意義比較重大的交叉特征。在模型方面我們用Adam做為優(yōu)化器,用Cross Entropy做為損失函數(shù)。在訓(xùn)練期間,與Wide & Deep Learning論文中不同之處在于,我們將組合特征作為輸入層分別輸入到對(duì)應(yīng)的Deep組件和Wide組件中。然后在Deep部分將全部輸入數(shù)據(jù)送到3個(gè)ReLU層,在最后通過(guò)Sigmoid層進(jìn)行打分。我們的Wide&Deep模型在超過(guò)7000萬(wàn)個(gè)訓(xùn)練數(shù)據(jù)中進(jìn)行了訓(xùn)練,并用超過(guò)3000萬(wàn)的測(cè)試數(shù)據(jù)進(jìn)行線下模型預(yù)估。我們的Batch-Size設(shè)為50000,Epoch設(shè)為20。隨著隱藏層寬度的增加,線下訓(xùn)練的效果也會(huì)隨著逐步的提升。但考慮到線上實(shí)時(shí)預(yù)測(cè)的性能問(wèn)題,我們目前采用256->128->64的框架結(jié)構(gòu)。
從線上效果來(lái)看,寬深度學(xué)習(xí)模型一定程度上解決了歷史點(diǎn)擊過(guò)的團(tuán)單在遠(yuǎn)距離會(huì)被召回的問(wèn)題。同時(shí),寬深度模型也會(huì)根據(jù)當(dāng)前的場(chǎng)景推薦一些有新穎性的Item。
寬深度模型中的寬線性部分可以利用交叉特征去有效地記憶稀疏特征之間的相互作用,而深層神經(jīng)網(wǎng)絡(luò)可以通過(guò)挖掘特征之間的相互作用,提升模型之間的泛化能力。在線實(shí)驗(yàn)結(jié)果表明,寬深度模型對(duì)CTR有比較明顯的提高。同時(shí),我們也在嘗試將模型進(jìn)行一系列的演化:將RNN融入到現(xiàn)有框架。現(xiàn)有的Deep & Wide模型只是將DNN與線性模型做融合,并沒(méi)有對(duì)時(shí)間序列上的變化進(jìn)行建模。樣本出現(xiàn)的時(shí)間順序?qū)τ谕扑]排序同樣重要,比如當(dāng)一個(gè)用戶按照時(shí)間分別瀏覽了一些異地酒店、景點(diǎn)時(shí),用戶再次再請(qǐng)求該異地城市,就應(yīng)該推出該景點(diǎn)周圍的美食。引入強(qiáng)化學(xué)習(xí),讓模型可以根據(jù)用戶所處的場(chǎng)景,動(dòng)態(tài)地推薦內(nèi)容。
地址:https://www.mtyun.com/library/dl