推荐系统的架构图
推薦系統(tǒng)的架構(gòu)
????? 本文從互聯(lián)網(wǎng)收集并整理了推薦系統(tǒng)的架構(gòu),其中包括一些大公司的推薦系統(tǒng)框架(數(shù)據(jù)流存儲(chǔ)、計(jì)算、模型應(yīng)用),可以參考這些資料,取長(zhǎng)補(bǔ)短,最后根據(jù)自己的業(yè)務(wù)需求,技術(shù)選型來(lái)設(shè)計(jì)相應(yīng)的框架。后續(xù)持續(xù)更新并收集。。。
? ? ? 圖1
? ? ? ?界面UI那一塊包含3塊東西:1) 通過(guò)一定方式展示推薦物品(物品標(biāo)題、縮略圖、簡(jiǎn)介等);2) 給的推薦理由;3) 數(shù)據(jù)反饋改進(jìn)個(gè)性化推薦;關(guān)于用戶數(shù)據(jù)的存放地方:1)數(shù)據(jù)庫(kù)/緩存用來(lái)實(shí)時(shí)取數(shù)據(jù);2) hdfs文件上面;
? ? ? 抽象出來(lái)的三種推薦方式
?
?
?
? 圖2? ? ? ?
?
?
? 圖3
? ? ? ?圖3中,推薦引擎的構(gòu)建來(lái)源于不同的數(shù)據(jù)源(也就是用戶的特征有很多種類,例如統(tǒng)計(jì)的、行為的、主題的)+不同的推薦模型算法,推薦引擎的架構(gòu)可以試多樣化的(實(shí)時(shí)推薦的+離線推薦的),然后融合推薦結(jié)果(人工規(guī)則+模型結(jié)果),融合方式多樣的,有線性加權(quán)的或者切換式的等
? 圖4
? ? ? ?圖4中,A模塊負(fù)責(zé)用戶各類型特征的收集,B模塊的相關(guān)表是根據(jù)圖3中的推薦引擎來(lái)生成的,B模塊的輸出推薦結(jié)果用來(lái)C模塊的輸入,中間經(jīng)過(guò)過(guò)濾模塊(用戶已經(jīng)產(chǎn)生行為的物品,非候選物品,業(yè)務(wù)方提供的物品黑名單等),排名模塊也根據(jù)預(yù)設(shè)定的推薦目標(biāo)來(lái)制定,最后推薦解釋的生成(這是可能是最容易忽視,但很關(guān)鍵的一環(huán),微信的好友推薦游戲,這一解釋已經(jīng)勝過(guò)后臺(tái)的算法作用了)
? ? ??HULU的推薦系統(tǒng)
? ? ??
? ? ? ?總結(jié):這個(gè)也就跟圖3有點(diǎn)類似了,葫蘆的推薦系統(tǒng),至少在他blog中寫(xiě)的比較簡(jiǎn)單。更多的是對(duì)推薦系統(tǒng)在線部分的一種描述,離線部分我猜想也是通過(guò)分布式計(jì)算或者不同的計(jì)算方式將算法產(chǎn)生的數(shù)據(jù)存儲(chǔ)進(jìn)入一種介質(zhì)中,供推薦系統(tǒng)在線部分調(diào)用。系統(tǒng)的整個(gè)流程是這樣的,首先獲取用戶的行為,包括(watch、subscribe、vote),這樣行為會(huì)到后臺(tái)獲取show-show對(duì)應(yīng)的推薦數(shù)據(jù)。同時(shí)這些行為也會(huì)產(chǎn)生對(duì)應(yīng)的topic,系統(tǒng)也會(huì)根據(jù)topic到后臺(tái)獲取topic-show對(duì)應(yīng)的推薦數(shù)據(jù)。兩種數(shù)據(jù)進(jìn)行混合,然后經(jīng)過(guò)fliter、explanation、ranking這一系列過(guò)程,最后生成用戶看到的推薦數(shù)據(jù)。
?
? ? ?淘寶的推薦系統(tǒng)(詳細(xì)跟簡(jiǎn)單版)
?
? ? ? ?總結(jié):淘寶的推薦系統(tǒng),描述了推薦引擎搭建的整體架構(gòu),包括離線的分布式計(jì)算和存儲(chǔ)、監(jiān)控、數(shù)據(jù)統(tǒng)計(jì)和分析、實(shí)驗(yàn)平臺(tái)等。給我們搭建推薦引擎提供了很好的建議。整體流程大致這樣。通過(guò)后臺(tái)的分布式計(jì)算,將算法產(chǎn)生的算法結(jié)果數(shù)據(jù)存儲(chǔ)進(jìn)入一種介質(zhì)中,首推hbase。然后,通過(guò)一種叫做云梯的機(jī)制將算法結(jié)果推入中間層介質(zhì)中,供推薦系統(tǒng)在線部分調(diào)用。在線部分提供引擎和實(shí)驗(yàn)分流,用戶的行為將存儲(chǔ)進(jìn)入hadoop中,數(shù)據(jù)統(tǒng)計(jì)分析平臺(tái)由hive來(lái)搭建,主要用來(lái)分析和統(tǒng)計(jì)hadoop中的用戶行為log。這張圖不僅講了,推薦系統(tǒng)的架構(gòu)流程,也講了跟這個(gè)平臺(tái)有關(guān)系的人,是怎么介入的,我覺(jué)得提供的信息可很好的參考。
?
? ? Netflix的推薦系統(tǒng)
? ? ? ?總結(jié):netflix的推薦系統(tǒng),描述了推薦引擎搭建的整體架構(gòu),采用了三種計(jì)算方式的結(jié)合。整體流程:用戶通過(guò)UI產(chǎn)生事件跟行為,然后分發(fā)給離線(我理解的是按天存儲(chǔ))、近線存儲(chǔ)(不提供歷史,存儲(chǔ)當(dāng)天用戶實(shí)時(shí)行為。不知道理解是否有誤),離線的計(jì)算利用離線的數(shù)據(jù)建好模型供實(shí)時(shí)調(diào)用,近線的計(jì)算利用用戶的實(shí)時(shí)行為計(jì)算得出規(guī)則供實(shí)時(shí)調(diào)用,最后在線的計(jì)算通過(guò)前兩種方式來(lái)得到最終的推薦結(jié)果,關(guān)鍵問(wèn)題,就是如何以無(wú)縫方式結(jié)合、管理在線和離線計(jì)算過(guò)程,當(dāng)然找到這些要求之間恰當(dāng)?shù)钠胶獠⒉蝗菀?#xff0c;需要深思熟慮的需求分析,細(xì)心的技術(shù)選擇,戰(zhàn)略性的推薦算法分解,最終才能為客戶達(dá)成最佳的結(jié)果。
?
?優(yōu)酷的推薦系統(tǒng)
? ?下圖來(lái)自優(yōu)酷數(shù)據(jù)挖掘工程師分享的內(nèi)容要點(diǎn):
? ?
?
模型前數(shù)據(jù)準(zhǔn)備(理解數(shù)據(jù)源,用戶,物品)
?
模型策略
其他考慮的場(chǎng)景
總結(jié)
- 上一篇: oracle varchar2转date
- 下一篇: matlab 二值化_基于MATLAB的