




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 完整的IT推薦系統(tǒng)架構(gòu)設(shè)計和算法目 錄 TOC o 1-3 h z u HYPERLINK l _Toc21946375 一、什么是推薦系統(tǒng) PAGEREF _Toc21946375 h 3 HYPERLINK l _Toc21946376 二、總體架構(gòu) PAGEREF _Toc21946376 h 3 HYPERLINK l _Toc21946377 2.1 離線推薦 PAGEREF _Toc21946377 h 4 HYPERLINK l _Toc21946378 2.2 在線訓(xùn)練 PAGEREF _Toc21946378 h 7 HYPERLINK l _Toc21946379 三、特
2、征數(shù)據(jù) PAGEREF _Toc21946379 h 8 HYPERLINK l _Toc21946380 四、協(xié)同過濾算法 PAGEREF _Toc21946380 h 10 HYPERLINK l _Toc21946381 4.1 基于物品的協(xié)同過濾(ItemCF) PAGEREF _Toc21946381 h 10 HYPERLINK l _Toc21946382 4.2 基于用戶的協(xié)同過濾(UserCF) PAGEREF _Toc21946382 h 12 HYPERLINK l _Toc21946383 4.3 矩陣分解 PAGEREF _Toc21946383 h 13 HYPER
3、LINK l _Toc21946384 五、隱語義模型 PAGEREF _Toc21946384 h 15 HYPERLINK l _Toc21946385 5.1 基本思想 PAGEREF _Toc21946385 h 15 HYPERLINK l _Toc21946386 5.2 模型理解 PAGEREF _Toc21946386 h 16 HYPERLINK l _Toc21946387 六、排序算法 PAGEREF _Toc21946387 h 17 HYPERLINK l _Toc21946388 七、評估測試 PAGEREF _Toc21946388 h 21 HYPERLINK
4、l _Toc21946389 7.1 A/B測試 PAGEREF _Toc21946389 h 21 HYPERLINK l _Toc21946390 7.2 其它評估方法 PAGEREF _Toc21946390 h 22 HYPERLINK l _Toc21946391 八、推薦系統(tǒng)冷啟動問題 PAGEREF _Toc21946391 h 23 HYPERLINK l _Toc21946392 8.1 用戶冷啟動 PAGEREF _Toc21946392 h 23 HYPERLINK l _Toc21946393 8.2 物品冷啟動 PAGEREF _Toc21946393 h 24 HY
5、PERLINK l _Toc21946394 8.3 系統(tǒng)冷啟動 PAGEREF _Toc21946394 h 24一、什么是推薦系統(tǒng)推薦系統(tǒng)是利用電子商務(wù)網(wǎng)站向客戶提供商品信息和建議,幫助用戶決定應(yīng)該購買什么產(chǎn)品,模擬銷售人員幫助客戶完成購買過程。個性化推薦是根據(jù)用戶的興趣特點(diǎn)和購買行為,向用戶推薦用戶感興趣的信息和商品。隨著電子商務(wù)規(guī)模的不斷擴(kuò)大,商品個數(shù)和種類快速增長,顧客需要花費(fèi)大量的時間才能找到自己想買的商品。這種瀏覽大量無關(guān)的信息和產(chǎn)品過程無疑會使淹沒在信息過載問題中的消費(fèi)者不斷流失。為了解決這些問題,個性化推薦系統(tǒng)應(yīng)運(yùn)而生。個性化推薦系統(tǒng)是建立在海量數(shù)據(jù)挖掘基礎(chǔ)上的一種高級商務(wù)智
6、能平臺,以幫助電子商務(wù)網(wǎng)站為其顧客購物提供完全個性化的決策支持和信息服務(wù)。常見的推薦欄位例如:淘寶的猜你喜歡、看了又看、推薦商品,美團(tuán)的首頁推薦、附近推薦等。推薦系統(tǒng)是比較偏向于工程類的系統(tǒng),要做得更加的精確,需要的不僅僅是推薦算法,還有用戶意圖識別、文本分析、行為分析等,是一個綜合性很強(qiáng)的系統(tǒng)。二、總體架構(gòu)本節(jié)介紹的幾種推薦系統(tǒng)架構(gòu),并不是互相獨(dú)立的關(guān)系,實際的推薦系統(tǒng)可能會用到其中一種或者幾種的架構(gòu)。在實際設(shè)計的過程中,讀者可以把本文介紹的架構(gòu)作為一個設(shè)計的起點(diǎn),更多地結(jié)合自身業(yè)務(wù)特點(diǎn)進(jìn)行獨(dú)立思考,從而設(shè)計出適合自身業(yè)務(wù)的系統(tǒng)。根據(jù)響應(yīng)用戶行為的速度不同,推薦系統(tǒng)可以大致分為基于離線訓(xùn)練和
7、在線訓(xùn)練的推薦系統(tǒng)。2.1 離線推薦于離線訓(xùn)練的推薦系統(tǒng)架構(gòu)是最常見的一種推薦系統(tǒng)架構(gòu)。這里的“離線”訓(xùn)練指的是使用歷史一段時間( 比如周或者幾周 )的數(shù)據(jù)進(jìn)行訓(xùn)練,模型迭代的周期較長(一般以小時為單位 )。模型擬合的是用戶的中長期興趣。如下圖所示, 一個典型的基于離線訓(xùn)練的推薦系統(tǒng)架構(gòu)由數(shù)據(jù)上報、離線訓(xùn)練、在線存儲、實時計算和 A/B 測試這幾個模塊組成。其中,數(shù)據(jù)上報和離線訓(xùn)練組成了監(jiān)督學(xué)習(xí)中的學(xué)習(xí)系統(tǒng),而實時計算和 A/B 測試組成了預(yù)測系統(tǒng)。另外,除了模型之外,還有一個在線存儲模塊,用于存儲模型和模型需要的特征信息供實時計算模塊調(diào)用。圖中的各個模塊組成了訓(xùn)練和預(yù)測兩條數(shù)據(jù)流,訓(xùn)練的數(shù)據(jù)
8、流搜集業(yè)務(wù)的數(shù)據(jù)最后生成模型存儲于在線存儲模塊;預(yù)測的數(shù)據(jù)流接受業(yè)務(wù)的預(yù)測請求,通過 A/B 測試模塊訪問實時計算模塊獲取預(yù)測結(jié)果。數(shù)據(jù)上報:據(jù)上報模塊的作用是搜集業(yè)務(wù)數(shù)據(jù)組成訓(xùn)練樣本。一般分為收集、驗證、清洗和轉(zhuǎn)換幾個步驟。將收集的數(shù)據(jù)轉(zhuǎn)化為訓(xùn)練所需要的樣本格式,保存到離線存儲模塊。離線訓(xùn)練:線訓(xùn)練模塊又細(xì)分為離線存儲和離線計算。實際業(yè)務(wù)中使用的推薦系統(tǒng)一般都需要處理海量的用戶行為數(shù)據(jù),所以離線存儲模塊需要有一個分布式的文件系統(tǒng)或者存儲平臺來存儲這些數(shù)據(jù)。離線計算常見的操作有:樣本抽樣、特征工程、模型訓(xùn)練、相似度計算等。在線存儲:因為線上的服務(wù)對于時延都有嚴(yán)格的要求。比如,某個用戶打開手機(jī)
9、APP ,他肯定希望APP 能夠快速響應(yīng),如果耗時過長,就會影響用戶的體驗。一般來說,這就要求推薦系統(tǒng)在幾十毫秒以內(nèi)處理完用戶請求返回推薦結(jié)果,所以,針對線上的服務(wù),需要有一個專門的在線存儲模塊,負(fù)責(zé)存儲用于線上的模型和特征數(shù)據(jù)。實時推薦:實時推薦模塊的功能是對來自業(yè)務(wù)的新請求進(jìn)行預(yù)測。1.獲取用戶特征;2.調(diào)用推薦模型;3.結(jié)果排序。在實際應(yīng)用中,因為業(yè)務(wù)的物品列表太大,如果實時計算對每個物品使用復(fù)雜的模型進(jìn)行打分,就有可能耗時過長而影響用戶滿意度。所以,一種常見的做法是將推薦列表生成分為召回和排序兩步。召回的作用是從大量的候選物品中(例如上百萬)篩選出一批用戶較可能喜歡的候選集(一般是幾百
10、)。排序的作用是對召回得到的相對較小的候選集使用排序模型進(jìn)行打分。更進(jìn)一步,在排序得到推薦列表后,為了多樣性和運(yùn)營的一些考慮,還會加上第三步重排過濾,用于對精排后的推薦列表進(jìn)行處理。A/B測試:對于互聯(lián)網(wǎng)產(chǎn)品來說, A/B 測試基本上是一個必備的模塊,對于推薦系統(tǒng)來說也不例外,它可以幫助開發(fā)人員評估新算法對客戶行為的影響。除了離線的指標(biāo)外,一個新的推薦算法上線之前般都會經(jīng)過 A/B 測試來測試新算法的有效性。下圖是與之對應(yīng)的實際系統(tǒng)中各個組件的流轉(zhuǎn)過程。需要注意的是生成推薦列表就已經(jīng)做完了召回和排序的操作,業(yè)務(wù)層直接調(diào)用API就可以得到這個推薦列表。2.2 在線訓(xùn)練對于業(yè)務(wù)來說,我們希望用戶對
11、于上個廣告的反饋(喜歡或者不歡,有沒有點(diǎn)擊,可以很快地用于下一個廣告的推薦中。這就要求我們用另種方法來解決這個問題,這個方法就是在線訓(xùn)練?;谠诰€訓(xùn)練的推薦系統(tǒng)架構(gòu)適合于廣告和電商等高維度大數(shù)據(jù)量且對實時性要求很高的場景相比較基于離線訓(xùn)練的推薦系統(tǒng),基于在線訓(xùn)練的推薦系統(tǒng)不區(qū)分訓(xùn)練和測試階段,每個回合都在學(xué)習(xí),通過實時的反饋來調(diào)整策略。方面,在線訓(xùn)練要求其樣本、特征和模型的處理都是實時的,以便推薦的內(nèi)容更快地反映用戶實時的喜好;另一方面,因為在線訓(xùn)練井不需要將所有的訓(xùn)練數(shù)據(jù)都存儲下來,所以不需要巨大的離線存儲開銷,使得系統(tǒng)具有很好的伸縮性,可以支持超大的數(shù)據(jù)量和模型。樣本處理:和基于離線訓(xùn)練的
12、推薦系統(tǒng)相比,在線訓(xùn)練在數(shù)據(jù)上報階段的主要不同體現(xiàn)在樣本處理上。,對于離線訓(xùn)練來說,上報后的數(shù)據(jù)先是被存儲到一個分布式文件系統(tǒng),然后等待離線計算任務(wù)來對樣本進(jìn)行處理;對于在線訓(xùn)練來說,對樣本的去重、過濾和采樣等計算都需要實時進(jìn)行。實時特性:實時特征模塊通過實時處理樣本數(shù)據(jù)拼接訓(xùn)練需要的特征構(gòu)造訓(xùn)練樣本,輸入流式訓(xùn)練模塊用于更新模型。該模塊的主要的功能是特征拼接和特征工程。流式訓(xùn)練:、流式訓(xùn)練模塊的主要作用是使用實時訓(xùn)練樣本來更新模型。推薦算法中增量更新部分的計算,通過流式計算的方式來進(jìn)行更新。在線訓(xùn)練的優(yōu)勢之一,是可以支持模型的稀疏存儲。訓(xùn)練方面,在線模型不一定都是從零開始訓(xùn)練,而是可以將離線
13、訓(xùn)練得到的模型參數(shù)作為基礎(chǔ),在這個基礎(chǔ)上進(jìn)行增量訓(xùn)練。模型存儲和加載:模型一般存儲在參數(shù)服務(wù)器中。模型更新后,將模型文件推送到線上存儲,并由線上服務(wù)模塊動態(tài)加載。三、特征數(shù)據(jù)要訓(xùn)練推薦模型,就需要先收集用戶的行為數(shù)據(jù)生成特征向量以后才能進(jìn)行訓(xùn)練,而一個特征向量由特征以及特征的權(quán)重組成,在利用用戶行為計算特征向量時需要考慮以下因素。用戶行為的種類:在一個網(wǎng)站中,用戶可以對物品產(chǎn)生很多不同種類的行為。用戶可以瀏覽物品、單擊物品的鏈接、收藏物品、給物品打分、購買物品、評論物品、給物品打上不同的標(biāo)簽、和好友分享物品、搜索不同的關(guān)鍵詞等。這些行為都會對物品特征的權(quán)重產(chǎn)生影響,但不同行為的影響不同,大多時
14、候很難確定什么行為更加重要,一般的標(biāo)準(zhǔn)就是用戶付出代價越大的行為權(quán)重越高。用戶行為產(chǎn)生的時間:一般來說,用戶近期的行為比較重要,而用戶很久之前的行為相對比較次要。因此,如果用戶最近購買過某一個物品,那么這個物品對應(yīng)的特征將會具有比較高的權(quán)重。用戶行為的次數(shù):有時用戶對一個物品會產(chǎn)生很多次行為。比如用戶會聽一首歌很多次,看一部電視劇的很多集等。因此用戶對同一個物品的同一種行為發(fā)生的次數(shù)也反映了用戶對物品的興趣,行為次數(shù)多的物品對應(yīng)的特征權(quán)重越高。物品的熱門程度:如果用戶對一個很熱門的物品產(chǎn)生了行為,往往不能代表用戶的個性,因為用戶可能是在跟風(fēng),可能對該物品并沒有太大興趣,特別是在用戶對一個熱門物
15、品產(chǎn)生了偶爾幾次不重要的行為(比如瀏覽行為)時,就更說明用戶對這個物品可能沒有什么興趣,可能只是因為這個物品的鏈接到處都是,很容易點(diǎn)到而已。反之,如果用戶對一個不熱門的物品產(chǎn)生了行為,就說明了用戶的個性需求。因此,推薦引擎在生成用戶特征時會加重不熱門物品對應(yīng)的特征的權(quán)重。數(shù)據(jù)去噪:對樣本做去噪。對于數(shù)據(jù)中混雜的刷單等類作弊行為的數(shù)據(jù),要將其排除出訓(xùn)練數(shù)據(jù),否則它會直接影響模型的效果;樣本中的缺失值也要做處理。正負(fù)樣本均衡:一般我們收集用戶的行為數(shù)據(jù)都是屬于正樣本,造成了嚴(yán)重的不平衡。所以對于一個用戶,從他沒有過行為的物品中采樣出一些物品作為負(fù)樣本,但采樣時,保證每個用戶的正負(fù)樣本數(shù)目相當(dāng)。特征
16、組合:我們需要考慮特征與特征之間的關(guān)系。例如在美團(tuán)酒店搜索排序中,酒店的銷量、價格、用戶的消費(fèi)水平等是強(qiáng)相關(guān)的因素,用戶的年齡、位置可能是弱相關(guān)的因素,用戶的ID是完全無關(guān)的因素。在確定了哪些因素可能與預(yù)測目標(biāo)相關(guān)后,我們需要將此信息表示為數(shù)值類型,即為特征抽取的過程。除此之外,用戶在App上的瀏覽、交易等行為記錄中包含了大量的信息,特征抽取則主要是從這些信息抽取出相關(guān)因素,用數(shù)值變量進(jìn)行表示。常用的統(tǒng)計特征有計數(shù)特征,如瀏覽次數(shù)、下單次數(shù)等;比率特征,如點(diǎn)擊率、轉(zhuǎn)化率等;統(tǒng)計量特征,如價格均值、標(biāo)準(zhǔn)差、分位數(shù)、偏度、峰度等。四、協(xié)同過濾算法協(xié)同過濾算法起源于 1992 年,被 Xerox 公
17、司用于個性化定制郵件系統(tǒng)。Xerox 公司的用戶需要在數(shù)十種主題中選擇三到五種主題,協(xié)同過濾算法根據(jù)不同的主題過濾郵件,最終達(dá)到個性化的目的。協(xié)同過濾算法分為基于物品的協(xié)同過濾和基于用戶的協(xié)同過濾,輸出結(jié)果為 TOPn 的推薦列表。4.1 基于物品的協(xié)同過濾(ItemCF)基于物品的協(xié)同過濾算法的核心思想:給用戶推薦那些和他們之前喜歡的物品相似的物品?;谖锲返膮f(xié)同過濾算法首先計算物品之間的相似度,計算相似度的方法有以下幾種:基于共同喜歡物品的用戶列表計算在此,分母中 N(i) 是購買物品 i 的用戶數(shù),N(j) 是購買物品 j 的用戶數(shù),而分子 N(i)N(j)是同時購買物品i 和物品 j
18、的用戶數(shù)??梢娚鲜龅墓降暮诵氖怯嬎阃瑫r購買這件商品的人數(shù)比例。當(dāng)同時購買這兩個物品人數(shù)越多,他們的相似度也就越高。另外值得注意的是,在分母中我們用了物品總購買人數(shù)做懲罰,也就是說某個物品可能很熱門,導(dǎo)致它經(jīng)常會被和其他物品一起購買,所以除以它的總購買人數(shù),來降低它和其他物品的相似分?jǐn)?shù)?;谟嘞业南嗨贫扔嬎闵厦娴姆椒ㄓ嬎阄锲废嗨贫仁侵苯邮雇瑫r購買這兩個物品的人數(shù)。但是也有可能存在用戶購買了但不喜歡的情況所以如果數(shù)據(jù)集包含了具體的評分?jǐn)?shù)據(jù) 我們可以進(jìn)一步把用戶評分引入到相似度計算中。其中 nki 是用戶 k 對物品 i 的評分,如果沒有評分則為 0。熱門物品的懲罰對于熱門物品的問題,可以用如下公
19、式解決:當(dāng) (0,0.5)時,N(i) 越小,懲罰得越厲害,從而會使熱物品相關(guān)性分?jǐn)?shù)下降。4.2 基于用戶的協(xié)同過濾(UserCF)基于用戶的協(xié)同過濾(User CF )的原理其實是和基于物品的協(xié)同過濾類似的。所不同的是,基于物品的協(xié)同過濾的原理是用戶 U 購買了 A 物品,推薦給用戶 U 和 A 相似的物品 B、C、D。而基于用戶的協(xié)同過濾,是先計算用戶 U 與其他的用戶的相似度,然后取和 U 最相似的幾個用戶,把他們購買過的物品推薦給用戶U。為了計算用戶相似度,我們首先要把用戶購買過物品的索引數(shù)據(jù)轉(zhuǎn)化成物品被用戶購買過的索引數(shù)據(jù),即物品的倒排索引:建立好物品的倒排索引后,就可以根據(jù)相似度公
20、式計算用戶之間的相似度:其中 N(a) 表示用戶 a 購買物品的數(shù)量,N(b) 表示用戶 b 購買物品的數(shù)量,N(a)N(b) 表示用戶 a 和 b 購買相同物品的數(shù)量。有了用戶的相似數(shù)據(jù),針對用戶 U 挑選 K 個最相似的用戶,把他們購買過的物品中,U 未購買過的物品推薦給用戶 U 即可。4.3 矩陣分解上述計算會得到一個相似度矩陣,而這個矩陣的大小和緯度都是很大的,需要進(jìn)行降維處理,用到的是SVD的降維方法,具體可以參考我之前寫的降維方法:2.5 降維方法基于稀疏自編碼的矩陣分解矩陣分解技術(shù)在推薦領(lǐng)域的應(yīng)用比較成熟,但是通過上一節(jié)的介紹,我們不難發(fā)現(xiàn)矩陣分解本質(zhì)上只通過一次分解來對原矩陣進(jìn)
21、行逼近,特征挖掘的層次不夠深入。另外矩陣分解也沒有運(yùn)用到物品本身的內(nèi)容特征,例如書本的類別分類、音樂的流派分類等。隨著神經(jīng)網(wǎng)絡(luò)技術(shù)的興起,筆者發(fā)現(xiàn)通過多層感知機(jī),可以得到更加深度的特征表示,并且可以對內(nèi)容分類特征加以應(yīng)用。首先,我們介紹一下稀疏自編碼神經(jīng)網(wǎng)絡(luò)的設(shè)計思路?;A(chǔ)的自編碼結(jié)構(gòu)最簡單的自編碼結(jié)構(gòu)如下圖,構(gòu)造個三層的神經(jīng)網(wǎng)絡(luò),我們讓輸出層等于輸入層,且中間層的維度遠(yuǎn)低于輸入層和輸出層,這樣就得到了第一層的特征壓縮。簡單來說自編碼神經(jīng)網(wǎng)絡(luò)嘗試學(xué)習(xí)中間層約等于輸入層的函數(shù)。換句話說,它嘗試逼近一個恒等函數(shù)。如果網(wǎng)絡(luò)的輸入數(shù)據(jù)是完全隨機(jī)的,比如每一個輸入都是一個跟其他特征完全無關(guān)的獨(dú)立同分布高
22、斯隨機(jī)變 ,那么這一壓縮表示將會非常難于學(xué)習(xí)。但是如果輸入數(shù)據(jù)中隱含著 些特定的結(jié)構(gòu),比如某些輸入特征是彼此相關(guān)的,那么這一算法就可以發(fā)現(xiàn)輸入數(shù)據(jù)中的這些相關(guān)性。多層結(jié)構(gòu)基于以上的單層隱藏層的網(wǎng)絡(luò)結(jié)構(gòu),我們可以擴(kuò)展至多層網(wǎng)絡(luò)結(jié)構(gòu),學(xué)習(xí)到更高層次的抽象特征。五、隱語義模型5.1 基本思想推薦系統(tǒng)中一個重要的分支,隱語義建模。隱語義模型LFM:Latent Factor Model,其核心思想就是通過隱含特征聯(lián)系用戶興趣和物品。過程分為三個部分,將物品映射到隱含分類,確定用戶對隱含分類的興趣,然后選擇用戶感興趣的分類中的物品推薦給用戶。它是基于用戶行為統(tǒng)計的自動聚類。隱語義模型在Top-N推薦中的
23、應(yīng)用十分廣泛。常用的隱語義模型,LSA(Latent Semantic Analysis),LDA(Latent Dirichlet Allocation),主題模型(Topic Model),矩陣分解(Matrix Factorization)等等。首先通過一個例子來理解一下這個模型,比如說有兩個用戶A和B,目前有用戶的閱讀列表,用戶A的興趣涉及偵探小說,科普圖書以及一些計算機(jī)技術(shù)書,而用戶B的興趣比較集中在數(shù)學(xué)和機(jī)器學(xué)習(xí)方面。那么如何給A和B推薦圖書呢?對于UserCF,首先需要找到和他們看了同樣書的其他用戶(興趣相似的用戶),然后在給他們推薦那些用戶喜歡的其他書。對于ItemCF,需要給
24、他們推薦和他們已經(jīng)看的書相似的書,比如用戶B 看了很多數(shù)據(jù)挖掘方面的書,那么可以給他推薦機(jī)器學(xué)習(xí)或者模式識別方面的書。還有一種方法就是使用隱語義模型,可以對書和物品的興趣進(jìn)行分類。對于某個用戶,首先得到他的興趣分類,然后從分類中挑選他可能喜歡的物品。5.2 模型理解如何給物品進(jìn)行分類?如何確定用戶對哪些類的物品感興趣,以及感興趣的程度?對于一個給定的類,選擇哪些屬于這個類的物品推薦給用戶,以及如何確定這些物品在一個類中的權(quán)重?為了解決上面的問題,研究人員提出:為什么我們不從數(shù)據(jù)出發(fā),自動地找到那些類,然后進(jìn)行個性化推薦,隱語義分析技術(shù)因為采取基于用戶行為統(tǒng)計的自動聚類,較好地解決了上面的問題。
25、隱語義分析技術(shù)從誕生到今天產(chǎn)生了很多著名的模型和方法,其中和推薦技術(shù)相關(guān)的有pLSA,LDA,隱含類別模型(latent class model), 隱含主題模型(latent topic model), 矩陣分解(matrix factorization)。LFM通過如下公式計算用戶 u 對物品 i 的興趣:用戶 u 的興趣和第 k 個隱類的關(guān)系,而 qi,k 度量了第 k 個隱類和物品 i 之間的關(guān)系。那么,下面的問題就是如何計算這兩個參數(shù)。對最優(yōu)化理論或者機(jī)器學(xué)習(xí)有所了解的讀者,可能對如何計算這兩個參數(shù)都比較清楚。這兩個參數(shù)是從數(shù)據(jù)集中計算出來的。要計算這兩個參數(shù),需要一個訓(xùn)練集,對于每
26、個用戶u,訓(xùn)練集里都包含了用戶u喜歡的物品和不感興趣的物品,通過學(xué)習(xí)這個數(shù)據(jù)集,就可以獲得上面的模型參數(shù)。六、排序算法在工業(yè)應(yīng)用中,推薦系統(tǒng)通常可分為兩部分,召回和排序。協(xié)同過濾屬于召回的算法,從召回中得到一個比較小的推薦列表,然后經(jīng)過排序之后才會輸出到最終的推薦列表里,是一個有序的推薦列表。這個過程會從幾千萬 item 中篩選出幾百或者上千的候選集,然后在排序階段選出30個給到每位用戶。這個排序可理解為一個函數(shù),F(xiàn)(user, item, context),輸入為用戶、物品、環(huán)境,輸出一個0到1之間的分?jǐn)?shù),取分?jǐn)?shù)最高的幾首。這一過程通常稱為 CTR 預(yù)估。那么 F 函數(shù)常見的運(yùn)作形式有:Lo
27、gistic Regression最簡單的是邏輯回歸(Logistic Regression),一個廣義線性模型。拿某 user 的用戶畫像(一個向量)比如3, 1,拼接上某 item 的物品畫像比如4, 0,再加上代表 context 的向量0, 1, 1后得到3, 1, 4, 0, 0, 1, 1,若該 user 曾與該 item 發(fā)生過聯(lián)系則 label 為1,這些加起來是一個正樣本,同時可以將用戶“跳過”的 item 或熱門的卻沒有與用戶產(chǎn)生過聯(lián)系的 item 作為負(fù)樣本,label 為0。按照這樣的輸入和輸出就可以訓(xùn)練出排序算法了。詳細(xì)模型見:2. 邏輯回歸(/NLP-LOVE/ML
28、-NLP/blob/master/Machine%20Learning/2.Logistics%20Regression/2.Logistics%20Regression.md)GBDT使用梯度提升決策樹(GBDT) 的方案也可以解決這個排序的問題,只是模型與 LR 不一樣。GBDT作為集成模型,會使用多棵決策樹,每棵樹去擬合前一棵樹的殘差來得到很好的擬合效果。一個樣本輸入到一棵樹中,會根據(jù)各節(jié)點(diǎn)的條件往下走到某個葉子節(jié)點(diǎn),將此節(jié)點(diǎn)值置為1,其余置為0。詳細(xì)模型算法見:3.2 GBDT(/NLP-LOVE/ML-NLP/tree/master/Machine%20Learning/3.2%20
29、GBDT)GBDT+LRGBDT與LR的stacking模型相對于只用GBDT會有略微的提升,更大的好處是防止GBDT過擬合。升級為GBDT+LR后,線上效果提升了約5%,并且因為省去了對新特征進(jìn)行人工轉(zhuǎn)換的步驟,增加特征的迭代測試也更容易了。GBDT+FMGBDT是不支持高維稀疏特征的,如果將高維特征加到LR中,一方面需要人工組合高維特征,另一方面模型維度和計算復(fù)雜度會是O(N2)級別的增長。所以設(shè)計了GBDT+FM的模型如圖所示,采用Factorization Machines模型替換LR。Factorization Machines(FM)模型如下所示:具有以下幾個優(yōu)點(diǎn)前兩項為一個線性模
30、型,相當(dāng)于LR模型的作用第三項為一個二次交叉項,能夠自動對特征進(jìn)行交叉組合通過增加隱向量,模型訓(xùn)練和預(yù)測的計算復(fù)雜度降為了O(N)支持稀疏特征。幾個優(yōu)點(diǎn),使得GBDT+FM具有了良好的稀疏特征支持,F(xiàn)M使用GBDT的葉子結(jié)點(diǎn)和稀疏特征(內(nèi)容特征)作為輸入,模型結(jié)構(gòu)示意圖如下,GBDT+FM模型上線后相比GBDT+LR在各項指標(biāo)的效果提升在4%6%之間。DNN+GBDT+FMGBDT+FM模型,對embedding等具有結(jié)構(gòu)信息的深度特征利用不充分,而深度學(xué)習(xí)(Deep Neural Network)能夠?qū)η度胧剑╡mbedding)特征和普通稠密特征進(jìn)行學(xué)習(xí),抽取出深層信息,提高模型的準(zhǔn)確性,
31、并已經(jīng)成功應(yīng)用到眾多機(jī)器學(xué)習(xí)領(lǐng)域。因此我們將DNN引入到排序模型中,提高排序整體質(zhì)量。DNN+GBDT+FM的ensemble模型架構(gòu)如圖所示,F(xiàn)M層作為模型的最后一層,即融合層,其輸入由三部分組成:DNN的最后一層隱藏層、GBDT的輸出葉子節(jié)點(diǎn)、高維稀疏特征。DNN+GBDT+FM的ensemble模型架構(gòu)介紹如下所示,該模型上線后相對于GBDT+FM有4%的效果提升。使用分布式的TensorFlow進(jìn)行訓(xùn)練,使用基于TensorFlow Serving的微服務(wù)進(jìn)行在線預(yù)測,DNN+GBDT+FM的ensemble模型使用的是Adam優(yōu)化器。Adam結(jié)合了The Adaptive Gradi
32、ent Algorithm(AdaGrad)和Root Mean Square Propagation(RMSProp)算法。具有更優(yōu)的收斂速率,每個變量有獨(dú)自的下降步長,整體下降步長會根據(jù)當(dāng)前梯度進(jìn)行調(diào)節(jié),能夠適應(yīng)帶噪音的數(shù)據(jù)。實驗測試了多種優(yōu)化器,Adam的效果是最優(yōu)的。工業(yè)界DNN ranking現(xiàn)狀Youtube于2016年推出DNN排序算法。上海交通大學(xué)和UCL于2016年推出Product-based Neural Network(PNN)網(wǎng)絡(luò)進(jìn)行用戶點(diǎn)擊預(yù)測。PNN相當(dāng)于在DNN層做了特征交叉,我們的做法是把特征交叉交給FM去做,DNN專注于深層信息的提取。Google于2016
33、年推出Wide And Deep Model,這個也是我們當(dāng)前模型的基礎(chǔ),在此基礎(chǔ)上使用FM替換了Cross Feature LR,簡化了計算復(fù)雜度,提高交叉的泛化能力。阿里今年使用attention機(jī)制推出了Deep Interest Network(DIN)進(jìn)行商品點(diǎn)擊率預(yù)估,優(yōu)化embedding向量的準(zhǔn)確性,值得借鑒。七、評估測試7.1 A/B測試新的推薦模型上線后要進(jìn)行A/B測試,將它和舊的算法進(jìn)行比較。AB測試是一種很常用的在線評測算法的實驗方法。它通過一定的規(guī)則將用戶隨機(jī)分成幾組,并對不同組的用戶采用不同的算法,然后通過統(tǒng)計不同組用戶的各種不同的評測指標(biāo)比較不同算法,比如可以統(tǒng)計不同組用戶的點(diǎn)擊率,通過點(diǎn)擊率比較不同算法的性能。對AB測試感興趣的讀者可以瀏覽一下網(wǎng)站/,該網(wǎng)站給出了很多通過實際AB測試提高網(wǎng)站用戶滿意度的例子,從中我們可以學(xué)習(xí)到如何進(jìn)行合理的AB測試。切分流量是AB測試中的關(guān)鍵,不同的層以及控制這些層的團(tuán)隊需要從一個統(tǒng)一的地方獲得自己AB測試的流量,而不同層之間的流量應(yīng)該是正交的?!罢恍浴笔菑膸缀沃薪鑱淼男g(shù)語。如果兩條直線相交成直角,他們就是正交的。用向量術(shù)語來說,這兩條直線互不依賴。下圖是一個簡單的AB測試系統(tǒng)。用戶進(jìn)入網(wǎng)站后,流量分配系統(tǒng)決定用戶是否需要被進(jìn)行AB測試,如果需要的話,流量
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年消防設(shè)施操作員之消防設(shè)備基礎(chǔ)知識押題練習(xí)試題A卷含答案
- 小學(xué)重點(diǎn)考試試題及答案
- AI智慧城市建設(shè)與城市管理優(yōu)化研究
- 辦公系統(tǒng)使用簡明教程與操作手冊
- 個人辦公用品采購合同規(guī)范
- 現(xiàn)代物理學(xué)理論前沿探討閱讀題集
- 數(shù)字化圖書館建設(shè)協(xié)議
- 中醫(yī)藥兒童知識培訓(xùn)課件
- 馬匹買賣合同
- 物理光學(xué)及量子力學(xué)考點(diǎn)復(fù)習(xí)題集
- 結(jié)直腸癌免疫治療
- 電力計量人員培訓(xùn)課件
- 富氫水完整課件
- 國家臨床版3.0手術(shù)操作編碼(ICD-9-CM3)
- JGT454-2014 建筑門窗、幕墻中空玻璃性能現(xiàn)場檢測方法
- A320飛機(jī)空調(diào)系統(tǒng)非正常操作A要點(diǎn)分析
- 我的家鄉(xiāng)湖北襄陽介紹
- 邏輯判斷課件
- 社會心理學(xué):社會心理學(xué)的研究方法完整版
- 預(yù)防住院患者跌倒墜床的防范措施及宣教
- 地坪漆施工合同地坪漆施工合同范本
評論
0/150
提交評論