個性化推薦已經(jīng)成為現(xiàn)代人們生活的一部分, “猜你喜歡”、“相關(guān)閱讀”你一定并不陌生。計算機如何做到對用戶投其所好?企業(yè)在做個性化推薦時要如何精準(zhǔn)把握用戶興趣?如何解決冷啟動問題?如何避免推薦結(jié)果的單調(diào)與重復(fù)?在CSDN學(xué)院與AI科技大本營的公開課上,達觀數(shù)據(jù)聯(lián)合創(chuàng)始人于敬進行了《個性化推薦系統(tǒng)實踐》的主題分享,深入淺出的講解了個性化推薦的過程、難點及解決方法。本文為公開課內(nèi)容整理。
本文五大內(nèi)容:
二、搭建推薦系統(tǒng)的關(guān)鍵算法
三、推薦系統(tǒng)難點分析和解決方法
四、深度學(xué)習(xí)在推薦系統(tǒng)中的應(yīng)用
五、進階資源推薦
常見的推薦系統(tǒng)主要有以下三種場景:
1.個性化推薦?例如打開今日頭條時最先看到一個推薦頁面,這是一個FEED流,還有像電商網(wǎng)站有猜你喜歡的推薦位置。
2.相關(guān)推薦? 通常文章或視頻的下方會出現(xiàn)一個相關(guān)推薦,有的也叫“看了還看”、“買了還買”等。
?3.熱門推薦?很多會出現(xiàn)在首頁的熱點位置。
?
推薦系統(tǒng)其實對于用戶來說有其核心的價值。比如:
?
-
幫用戶便捷的篩選出感興趣的內(nèi)容
-
在用戶面對陌生領(lǐng)域時提供參考意見
-
當(dāng)用戶需求不明確時,作用戶的“貼心助手”
-
滿足用戶的好奇心,比如很多短視頻的APP
?
當(dāng)用戶有這么多訴求時候,推薦系統(tǒng)做的事情是什么?
?
-
首先它基于用戶的興趣,根據(jù)用戶的歷史行為做興趣的挖掘,把物品和用戶的個性化偏好進行匹配。
-
然后通過推薦算法或者技術(shù)把信息進行過濾,解決用戶的過載問題。
-
當(dāng)用戶有新的行為發(fā)生時,比如點擊或者搜索之后,能及時進一步捕捉用戶的興趣。
-
選擇合適的場景,個性化或者相關(guān),或者熱門,來給用戶進行推薦。
?
對于企業(yè)來說,個性化帶來的效果也非常顯著。電商巨頭亞馬遜每年30%的收入來自個性化推薦;自2008 年起,推薦算法為 YouTube 每天增加了數(shù)十萬小時的觀看時長,每年視頻點擊量增幅都達到50% ;Linkedin通過propensitymodel提供機器學(xué)習(xí),最終為公司帶來了數(shù)十倍的持續(xù)穩(wěn)定的增長;我們進入京東、淘寶app或者網(wǎng)頁端,每個用戶的首頁展示都是依據(jù)行為偏好進行精準(zhǔn)推薦。
?
?
什么是個性化推薦系統(tǒng)?
?
個性化推薦系統(tǒng)解決的是用戶和內(nèi)容中間的關(guān)聯(lián)關(guān)系,它是二者之間的橋梁。基于用戶的興趣偏好,把用戶感興趣的物品或者視頻、資訊等推薦給用戶,給用戶帶來沉浸式的體驗,讓用戶感到一定的滿足感,優(yōu)化用戶的體驗。
???
推薦系統(tǒng)從它的初始來說主要是解決兩大問題:信息過載和長尾問題。
?
信息過載是當(dāng)用戶面對大量信息時并不明確自己喜歡什么,但又確實有需求想看到喜歡的東西。從紛繁復(fù)雜的商品和內(nèi)容中如何發(fā)現(xiàn)自己感興趣的東西?對于用戶來說是一種選擇的困難。
?
另一方面來說,企業(yè)有新物品上線時,如何展示給喜歡它的用戶?
?
根據(jù)達觀數(shù)據(jù)服務(wù)的客戶經(jīng)驗,我們發(fā)現(xiàn)物品沒有曝光并不代表沒有人喜歡它,而是沒有在合適的時機曝光給對物品感興趣的用戶,推薦系統(tǒng)剛好能解決這方面的問題。
?
一方面系統(tǒng)基于大量的用戶行為數(shù)據(jù)來分析挖掘用戶的偏好;另外一方面,基于物品數(shù)據(jù)及物品自身的特點,把商品和用戶的興趣進行匹配,從而達到個性化推薦。用戶可以找到自己感興趣的東西,商家的一些商品或內(nèi)容也能有更多曝光的機會。
?
推薦系統(tǒng)設(shè)計的目標(biāo)主要有下面三個部分:
?
首先,功能要盡可能全面,剛才提到推薦個性化推薦、相關(guān)推薦和熱門推薦,有些商家也包括一些混合推薦,一般在詳情頁里面下叫關(guān)聯(lián)推薦,但有的產(chǎn)品會在關(guān)聯(lián)推薦中放一個無限下拉的功能,這時候就要夾雜一部分個性化推薦在其中。
??
其次是效果要精準(zhǔn),即推薦的東西一定是用戶感興趣的。另外推薦的結(jié)果要盡可能豐富,內(nèi)容或物品有更多的曝光機會。
?
第三是性能,當(dāng)刷新一個頁面的推薦結(jié)果,如果沒有很快返回會帶來很差的用戶體驗。從另一方面來說,我們的結(jié)果不一定是非常好的,但它絕對不能留白,就是無論怎么樣推薦結(jié)果一定有返回,這是最基礎(chǔ)的要求。
?
在實際的推薦場景里,功能、效果、性能三者相輔相成、也彼此互相影響,很多時候要進行折中的考慮。
?
?
上圖是達觀推薦的是總體架構(gòu)。
???
達觀數(shù)據(jù)有自己的運算平臺、存儲平臺和傳輸平臺。在此之上是組件層,很多推薦依賴于NLP做了進一步的分析挖掘。在此之上是模型層,模型有很多,比如用戶畫像就是對一個用戶有全方位的刻畫,同時也有物品畫像,包括收益、點擊、收藏,預(yù)估的收益,增長趨勢等。
?
模型之上是算法層,包括矩陣分解、協(xié)同過濾,深度學(xué)習(xí)算法也是達觀的一部分,同時還有基于統(tǒng)計的模型,包括點擊反饋、關(guān)聯(lián)規(guī)則挖掘等,還有比較重要的是基于內(nèi)容的推薦。
?
算法層上面是組合層,單一的推薦算法有二三十種,基于單一的推薦算法會有機器學(xué)習(xí)的融合排序,基于不同業(yè)務(wù)場景會自適應(yīng)選擇一部分模型進行效果優(yōu)化。
?
組合層上面是應(yīng)用層,主要提供四種服務(wù):
?
1.?? 個性化推薦,這是千人千面的推薦結(jié)果;
2.?? 相關(guān)推薦是以物推物,當(dāng)看到商品、視頻或文章會有一個關(guān)聯(lián)的推薦;
3.?? 熱門推薦,其實是熱點分析;
4.?? 推薦理由,是推薦結(jié)果的解釋。對于推薦理由的使用在PC中用得比較多。
?
推薦流程分為三部分:離線、近線和在線。
離線一般說召回,要從很多推薦的物品里進行召回。大的推薦客戶每天會新增物品可能幾十萬,在推薦候選集中有幾千萬時并不是所有的每次都要重新計算一遍。離線模塊的處理就是先做一個推薦結(jié)果的召回,這種召回一般叫重量級的算法,比如說做協(xié)同過濾、決策分解、深度學(xué)習(xí)等,這些會依賴于大數(shù)據(jù)的集群。由于數(shù)據(jù)量比較大,一般我們使用最近半年或者幾個月的數(shù)據(jù),跑一次的時間一般在幾個小時,快的話是半小時。從幾十萬、幾百萬、幾千萬的候選集里面得到的候選集在幾千這個維度。
?
經(jīng)過離線模塊的召回之后是近線的處理,也叫粗排,粗排是一些輕量級算法,比如剛剛提到在組合層達觀有各種各樣組合的模型,基于單一的推薦算法進行融合,一般使用的方式是內(nèi)存+RDB。這部分處理時間非???,一般在秒級,就是說當(dāng)一個用戶的行為發(fā)生改變后,他的推薦結(jié)果會做到實時更新。經(jīng)過粗排之后,這個推薦結(jié)果一般是在百的量級。
?
最后一步在線主要做精排。當(dāng)新的請求過來,通過這個用戶的ID,根據(jù)離線找到近線模塊處理的結(jié)果。拿到基于粗排之后的結(jié)果后做一些業(yè)務(wù)規(guī)則的處理,比如在一次推薦里要求多樣性和時效性等。這里很多處理方式是基于加載內(nèi)存的方式,處理時間是在毫秒級,返回的結(jié)果一般在10這個量級。
?
?
就熱門推薦簡單的方式可生成多維度的熱門數(shù)據(jù),熱門數(shù)據(jù)有各種排行榜,比如點擊的排行榜,購買排行榜等。當(dāng)客戶需要熱門推薦的場景時可把熱門推薦生成的結(jié)果直接返回給客戶。另一方面,熱門推薦也可以捕捉一些場景,比如處理冷啟動和做一些基于問題探索時。
?
熱門推薦的結(jié)果通常有一定理論依據(jù),比如按購買、銷量排序其實也是很多人容易接受的方式,在這部分也可以夾雜人工編輯的分析。所以首先基于用戶行為(包括物品數(shù)據(jù),用戶本身的數(shù)據(jù))生成不同維度的排行榜,在不同的時機推薦給用戶。
???
?
一個物品一般會有各種維度的使用信息,比如商品有標(biāo)題、品牌、價格、折扣等,基于使用信息可以推薦標(biāo)題上語意相似的商品。處理基于內(nèi)容推薦時不僅是基于簡單使用方面的匹配,會考慮到其他組合條件。比如服裝類的商品加上不同的價格會得到不同的結(jié)果,這種找物方式是單純拿到物品屬性時的處理,但在實際場景下還有各種擴展,比如會做做類別和語義的擴展。
類別擴展:比如男生關(guān)注的是科技,是否可以推薦一下體育或軍事等相關(guān)內(nèi)容?類別擴展也是避免內(nèi)容推薦過于單一的方式。
語義擴展:當(dāng)你關(guān)注一個標(biāo)簽時,我們會把它相應(yīng)的標(biāo)簽也拿到,基于你相關(guān)的標(biāo)簽也可以做其他方面的召回。比如當(dāng)看歐冠時,是不是可以推薦西甲相關(guān)的新聞?一個用戶關(guān)注梅西,但梅西的新聞有時比較有限,是不是可以給他推薦C羅的內(nèi)容?語義擴展也可以解決推薦內(nèi)容太過單一的問題。
?
主題模型的推薦可以充分利用一個物品的文本特征,比如標(biāo)題、描述或內(nèi)容等。一篇文章拿到標(biāo)題后,基于主題模型,基于LDA或者LSI可以把它生成一個向量。
基于這個向量得到關(guān)于主題的分布,計算它的相似度,基于這個相似度我們?nèi)opN可以得到一個推薦結(jié)果。
這種推薦結(jié)果比單純基于文本和字面匹配的效果更好。
?
?
協(xié)同過濾有兩種,基于用戶的協(xié)同過濾和基于物品的。基于用戶的協(xié)同過濾首先計算用戶之間的相似度,把相似的用戶感興趣的物品推薦給當(dāng)前這個用戶。基于物品的協(xié)同過濾先計算物品的相似度,基于相似度進行排序,最終得到當(dāng)前這個物品比較相似的其他物品。
一個熱門的商品會很容易影響到用戶或者物品之間的相似度。比如今天有一社會熱點事件,很多媒體跟蹤除了爆款新聞,即使我平時是一個關(guān)注體育或科技領(lǐng)域的讀者,也會點擊看一下。這種情景下如果基于物品的相似度來處理得到的結(jié)果往往不好。所以在計算相似度時要做很多變形,比如對熱門進行特別處理,對冷門的物品也需要做特殊處理和過濾等。
?
也要考慮用戶有一些作弊行為,比如用戶刷了某一領(lǐng)域很多東西,其他用戶只是刷了部分,很多的用戶和其他用戶計算相似度時,可能都會在其他用戶計算的候選集中,這也不符合實際場景。所以在實際處理時要對這部分做一些特殊的控制。
???
?
基于潛在因子分析是完全由數(shù)學(xué)的方式、更好的模型來處理。他的輸入是一個用戶的行為矩陣,通過矩陣分解得到兩個矩陣,基于這兩個矩陣進一步復(fù)原,通過矩陣相乘的方式,就可以把原來用戶沒有操作過的物品的得分給預(yù)測出來。
單純依賴用戶行為數(shù)據(jù)進行預(yù)測有很多不足,給物品的打分和用戶本身的打分差異可能很大。在上面的實驗?zāi)P椭锌梢猿浞挚紤]用戶的bias信息。比如在電影場景中,由一個大牌明星主演,因為它的市場預(yù)期好所以容易得到好評。但當(dāng)是小眾電影或者很多新人主演,大家接受度不高,得分可能會相對低。也許它得到了3分,可能已經(jīng)相當(dāng)于大牌明星主演電影的5分。這就會導(dǎo)致物品和用戶之間有各種bias信息。在做潛在因子模型時,可以把用戶的bias信息和物品的bias信息加進來。
?
同時還要考慮很多特征要進行組合,男生加上體育和女生加上娛樂,往往是一個更好的特征。對這塊來說,通過潛在因子模型可以把這些信息充分考慮進來。
?
?
用戶模型構(gòu)建也是用戶畫像。在實際場景中如果精準(zhǔn)挖掘用戶興趣偏好,個性化推薦能做得更好。用戶畫像有多種信息,基于注冊信息有年齡、性別、地域等,還有另一種數(shù)據(jù)——用戶的偏好,同時還有各種分類的場景,比如在電商里會判斷一個用戶他對價格是否敏感,是否喜歡小眾的東西等。
這個分析牽涉到各種技術(shù),比如基于概率統(tǒng)計可以得到一部分數(shù)據(jù),另一部分,很多用戶之間的興趣有一定的關(guān)聯(lián)性,可以做用戶群體的聚類。預(yù)測用戶對價值的喜好可借助一些常見的分類模型來處理。對于用戶模型構(gòu)建,我們一方面給推薦系統(tǒng)來使用,另外一部分也提供用戶畫像這種服務(wù),當(dāng)企業(yè)拿到用戶畫像后,可以做老用戶的關(guān)懷、流失用戶的召回等。
???
?
上面提到的都是單一推薦算法,比如基于內(nèi)容的,基于熱門的,包括基于協(xié)同過濾、矩陣分解、深度學(xué)習(xí)等,單一算法會得到一些推薦候選集,拿到推薦候選集后要做一個融合,將最后結(jié)果返回給用戶。我們會將單一推薦候選集輸入到融合模型里,讓模型預(yù)測,按照用戶偏好的高低排序,然后取得TOPN返回給用戶。
???
推薦的整體流程有以上這幾點,首先是各種單一算法召回,召回完進行融合,單一算法里又分了不同維度,比如協(xié)同過濾、矩陣分解,包括用戶畫像等。
?
?
構(gòu)建推薦系統(tǒng)有下面四個難點:?
?
用戶興趣不僅存在多樣性,而且會隨著時間的變化而變化;其次對用戶興趣的挖掘需要海量數(shù)據(jù),如何合理建模?以及不同算法模型對用戶興趣的刻畫結(jié)果不同,如何優(yōu)化模型?
?
?
冷啟動包括新用戶的冷啟動和物品的冷啟動。新用戶是當(dāng)一個用戶沒有任何行為數(shù)據(jù)和輔助信息的情況下,如何給他做好推薦?物品的冷啟動即長尾問題——如何將新的物品快速推薦給可能對它感興趣的用戶?
?
?
這包括數(shù)據(jù)量膨脹快,且冷熱不均;如果用戶興趣變化快,我們的深度學(xué)習(xí)、矩陣分解模型如何跟得上用戶興趣的變化也是一個考驗;算法調(diào)優(yōu)時效果越調(diào)越差如何處理?以及在機器資源有限、存儲有限常出現(xiàn)性能瓶頸。
?
推薦里面有個叫回聲室效應(yīng),為了滿足用戶的興趣,推薦的內(nèi)容越來越窄如何處理?第二部分是重復(fù),如果依賴于內(nèi)容標(biāo)簽或者內(nèi)容分類,對于標(biāo)簽或者類目來不斷地召回新的推薦結(jié)果,這會導(dǎo)致推薦結(jié)果沒有新鮮感。
?
基于這四點,和大家分享一下達觀推薦系統(tǒng)對上述問題的解決方案(重點來了)
?
?
通過引入時間因子,基于不同的時間周期做用戶畫像。比如基于最近半年的或更久的數(shù)據(jù)做長期用戶畫像,基于近一個月或三個月做短期用戶畫像,同時還會有實時用戶畫像,基于這三種類型用戶畫像之間的差異化,能夠感知用戶的興趣變更。
?
基于用戶畫像后做一個過濾機制,把推薦過或者質(zhì)量不佳先過濾。這樣做排序時會引入一個時間因子做一個衰減,另外也會做機器學(xué)習(xí)的預(yù)測,可以方便地調(diào)整推薦順序。
?
接下來做優(yōu)化,隨著時間的推移,對于用戶的刻畫會更清晰準(zhǔn)確。
?
對于物品的冷啟動,達觀數(shù)據(jù)使用CLUB算法。先給它合適的探索機會,初期時讓物品有一定的曝光,曝光后我們會有一個更快的預(yù)期收益機制,加快模型的迭代。當(dāng)在一段時間內(nèi)觀察預(yù)期的收益沒有達到要求時,會把這部分的曝光逐漸降低。如果預(yù)期收益比較好,會增大一部分曝光。通過這種自學(xué)的機制來調(diào)整物品之間的曝光問題,新的物品便總是有曝光的機會。
???
對于用戶的冷啟動,即使用戶沒有任何數(shù)字信息,用戶手機登陸APP時是否有其他可以采集的信息?比如地域,手機型號,基于這些東西可以做一些離線的挖掘。比如一線城市或四線城市,很大程度上會有一個偏好的差異。用Iphone手機和用其他品牌手機,基于歷史的數(shù)據(jù)也會分析出差異點,然后進行針對性的調(diào)整。
?
有一種極端情況,拿不到上述數(shù)據(jù)時如何做推薦?當(dāng)拿到用戶的ID,基于一些歷史行為經(jīng)驗挖掘一些高質(zhì)量的物品,同時在生成推薦結(jié)果時盡量考慮到多樣性。相當(dāng)于當(dāng)一個用戶進入一個飯館,雖然不知道他喜歡什么,但我們提供了種類豐富的菜單讓用戶選擇。當(dāng)用戶選擇自己感興趣的內(nèi)容,和推薦系統(tǒng)有交互時,無論是點擊、收藏、點贊,借助我們的秒級反饋機制,推薦的結(jié)果就可以實時更新,我們會對實時的畫像把握得越來越準(zhǔn)。
?
此外達觀數(shù)據(jù)借助自然語言處理技術(shù),當(dāng)新的物品進來,基于它的標(biāo)題、類別等語義信息可以做預(yù)估,通過深度挖掘構(gòu)建新物品的畫像,輔助接下來是增加推薦還是減少曝光。
???
達觀系統(tǒng)架構(gòu)分為三級火箭:由Offline-Nearline-Online三級依次銜接構(gòu)成,融合了各類推薦算法和數(shù)據(jù)。
?
離線使用的是大量的集群方式,比如說Spark、Kafka跑一些重量級的算法,矩陣分解、協(xié)同過濾,包括深度學(xué)習(xí)等都屬于離線模塊來做的,這部分運算時間比較久。
?
在最上面叫在線模塊,當(dāng)用戶有一次推薦請求他希望反饋推薦結(jié)果時,要保證快速毫秒級地返回推薦結(jié)果,不能做更多重量級算法。這部分往往是一些業(yè)務(wù)規(guī)則處理,可以基于內(nèi)存或內(nèi)存的數(shù)據(jù)庫Redis的方式,實時返回給用戶推薦結(jié)果。
?
在離線和在線模塊之間,它們從小時級到毫秒級中間有很大的gap,用戶行為發(fā)生變化后如何感知?接下來交給近線模塊處理。近線模塊可以做到當(dāng)用戶每一次行為變化后,系統(tǒng)都可以感知這種變化,然后把用戶的推薦結(jié)果重新計算一遍,這時候結(jié)果往往是一些融合算法。融合排序輸入的就是離線的各種挖掘,包括用戶畫像信息、他的場景畫像和實質(zhì)畫像等?;诮€來說,它對各種單一推薦算法進行融合排序,最終存到內(nèi)存數(shù)據(jù)庫中。當(dāng)在線模塊接到新請求時,可以從這里面讀取對用戶近線計算好的結(jié)果,然后做業(yè)務(wù)規(guī)則返回給用戶。
?
這就是“三層火箭”架構(gòu),它主要借鑒了搜索引擎的部分機制,包括隊列、實時計算等。我們可以滿足用戶的興趣和變化,同時也在高并發(fā)的情況下毫秒級返回給用戶推薦結(jié)果,目前達觀服務(wù)了上百家客戶,三層火箭架構(gòu)是一個有效的方式。
?
?
解決推薦結(jié)果的單調(diào)性問題,達觀做了很多自然語言處理(NLP)相關(guān)的東西,包括語義理解、詞性標(biāo)注等。例如做直播推薦時,基于評論信息可以分析情感是正面的還是反面的,判斷用戶對當(dāng)前主播是否感興趣。
另外一個是重要性排序,可以基于物品本身的標(biāo)題、標(biāo)簽、描述等信息做語義方面重要性的排序。基于文本處理可以有效解決推薦系統(tǒng)的冷啟動問題。?
???
?
Embedding主要有兩種方式。首先會做詞Embedding,來完善內(nèi)容多樣性。當(dāng)拿到item標(biāo)簽時,業(yè)界一般使用Word2vec方式進行專項的擴展。比如當(dāng)用戶關(guān)注歐冠這個標(biāo)簽時,是否可以找到西甲、意甲進行詞粒度的擴展。這樣在實際推薦中可以避免推薦結(jié)果太過單一。
?
另一個itemEmbedding主要應(yīng)用于召回階段。對于item Embedding,相當(dāng)于我們把一個用戶行為數(shù)據(jù)作為一個詞粒度,然后輸入到Word2vec得到itemEmbedding,基于item Embedding進行相似度計算方式可以得到相似的物品。然后作為一個結(jié)果的召回進入融合排序。
??
在第三種是做Embedding中做特征工程,得到一個物品或者一個用戶的Embedding后,做featurevector的方式來使用,基于feature vector做machine learning。
?
2017年谷歌發(fā)布了一篇論文《Deep Neural Networks for YouTube Recommendations》主要做YouTube的視頻推薦,這個場景達觀也在使用。
?
在YouTube發(fā)布這篇論文的時候分了兩個階段來實現(xiàn)推薦結(jié)果,第一層是上面圖片列的候選集生成的階段。這個階段DNN的處理方式它可以從百萬量級直接降到百的量級。第二層是Ranking階段,做一些重排序的方式。DNN把我們的推薦問題轉(zhuǎn)化成分類問題,相當(dāng)于對每一個觀看的視頻做一個分類。
?
另外一方面,論文中也提到DNN模型并沒有用到原始的用戶日志,而是對每個用戶提取了等量的訓(xùn)練樣本,這種方式主要有好處是可以減少高度活躍用戶對loss函數(shù)的影響。
?
?
DKN主要是基于知識圖譜,應(yīng)用在Feed流推薦中。DKN是基于內(nèi)容的深度推薦的框架下進行點擊率的預(yù)測。比如每條新聞通過KCNN對標(biāo)題進行處理,最終產(chǎn)生一個向量。同時我們引用注意力機制機做用戶的Embedding,最終再結(jié)合深度神經(jīng)網(wǎng)絡(luò)做點擊的預(yù)估。
???
?
2016年谷歌在一篇論文提出了Wide&Deep模型,這個模型里主要同時學(xué)習(xí)低階和高階的特征。
Wide模型是線性模型+特征組合,記憶性好、可解釋性強。Deep是Deeplearning,這塊特征工程較少,往往可以學(xué)習(xí)到更高層次的隱藏特征。但它需要較專業(yè)的領(lǐng)域知識來做特征工程,所以進一步產(chǎn)生了Deep FM。
?
Deep FM的主要優(yōu)點是不需要預(yù)訓(xùn)練,也不需要人工的特征工程,同時可以學(xué)習(xí)一些低階和高階的特征,并且進行組合的共享。這樣可以更快的訓(xùn)練,同時得到更精確的訓(xùn)練學(xué)習(xí)。下圖為一個DeepFM論文里提到的各種參數(shù)設(shè)置。
?
對于達觀來說,模型排序有下述這些方式。
(1)線性模型,依賴于人工特征工程,
(2)FM/GBDT+LR或Xgboost+LR,它主要是非線性的,達觀做了特征融合。在很多場景下推薦效果會更好。
(3)模型的進一步演進,使用到DeepFM和Wide&Deep借助于深度學(xué)習(xí),減少很多人工的特征工程。這部分的工作主要在調(diào)參上。
?
在達觀服務(wù)的眾多行業(yè)里,從線性、非線性,包括深度學(xué)習(xí)模型都在使用。每個行業(yè)自己的特點,不同的客戶有自己的數(shù)據(jù)量和用戶群體,達觀會基于客戶的推薦效果來選擇對應(yīng)比較好的模型。
???
2018年微軟發(fā)布了一個模型XDeepFM,它其實是對DCN的改進,主要由linear、DNN、CIN組成。引入的CIN機制可以自動學(xué)習(xí)顯式的高階特征交互,該模型在幾個數(shù)據(jù)集上都取得了超過DeepFM模型的效果。這部分達觀推薦也正在探索和嘗試中。
?
和大家分享一些做推薦的心得:
-
一切從用戶出發(fā),避免本末倒置
-
搭建一個推薦系統(tǒng)不難,如何持之以恒地提升效果是關(guān)鍵
-
沒有壞的方法,只有壞的用法,因地制宜、對癥下藥
-
沒有最好,只有更好,體驗和效果需要兼顧
最后推薦兩本書給大家,一本是《web 智能算法》,一本是推薦界圣經(jīng)《推薦系統(tǒng)》,感謝大家的聆聽。
