推薦系統(tǒng)總結(jié)6(系統(tǒng)架構(gòu))

23 內(nèi)容架構(gòu)

內(nèi)容架構(gòu)

日志收集奶甘、內(nèi)容發(fā)布、機(jī)器學(xué)習(xí)祭椰、信息流服務(wù)臭家、監(jiān)控。

日志收集方淤,是所有排序訓(xùn)練的數(shù)據(jù)來(lái)源钉赁,要收集的最核心數(shù)據(jù)就是用用戶在信息流上產(chǎn)生的行為,用于機(jī)器學(xué)習(xí)更新排序模型携茂;

內(nèi)容發(fā)布橄霉,就是用推或者拉的模式把信息流的內(nèi)容從源頭發(fā)布到受眾端;

機(jī)器學(xué)習(xí)邑蒋,從收集的用戶行為日志中訓(xùn)練模型,然后為每一個(gè)用戶即將收到的信息流內(nèi)容提供打分服務(wù)按厘;

信息流服務(wù)医吊,為信息流的展示前端提供 Rest API;

監(jiān)控逮京,這是系統(tǒng)的運(yùn)維標(biāo)配卿堂,保證系統(tǒng)的安全和穩(wěn)定等。


24 系統(tǒng)架構(gòu)


1.離線:不用實(shí)時(shí)數(shù)據(jù),不提供實(shí)時(shí)服務(wù)草描;

2.近線:使用實(shí)時(shí)數(shù)據(jù)览绿,不保證實(shí)時(shí)服務(wù);

3.在線:使用實(shí)時(shí)數(shù)據(jù)穗慕,要保證實(shí)時(shí)服務(wù)饿敲。

24.1 在線層

?在線層常常展現(xiàn)出的形式就是 Rest API 形式,后端則通常是 RPC 服務(wù)內(nèi)部互相調(diào)用逛绵,以用戶 ID怀各、場(chǎng)景信息去請(qǐng)求,通常就在 ms 響應(yīng)時(shí)間內(nèi)返回Json 形式的推薦結(jié)果术浪。那么哪些計(jì)算邏輯適合放在在線層呢.瓢对?

1.簡(jiǎn)單的算法邏輯;2.模型的預(yù)測(cè)階段胰苏;3.商業(yè)目標(biāo)相關(guān)的過(guò)濾或者調(diào)權(quán)邏輯硕蛹;4.場(chǎng)景有關(guān)的一些邏輯;5.互動(dòng)性強(qiáng)的一些算法硕并。

比如說(shuō)當(dāng)用戶訪問(wèn)一個(gè)物品詳情頁(yè)法焰,需要做相關(guān)推薦,那么在線階段給在線服務(wù)的 Rest API 傳入用戶身份及當(dāng)前的物品 ID鲤孵,實(shí)時(shí)地取出物品 ID 對(duì)應(yīng)的相關(guān)物品ID 做一些重排和過(guò)濾壶栋,就可以輸出了,整個(gè)過(guò)程都是在 ms 級(jí)別完成普监。這個(gè)實(shí)時(shí)響應(yīng)的過(guò)程中贵试,如果發(fā)生意外,比如說(shuō)這個(gè)物品 ID 就沒(méi)有相關(guān)的物品凯正,那么這時(shí)候服務(wù)就需要降級(jí)毙玻,所謂的降級(jí)就是不能達(dá)到最好的效果了,但是不能低于最低要求廊散,這里的最低要求就是必須要返回東西桑滩,不能開(kāi)天窗。就降級(jí)為取出熱門排行榜返回允睹。雖然不是個(gè)性化的相關(guān)結(jié)果运准,但是總比開(kāi)天窗要好。同時(shí)缭受,還需要不斷的使用產(chǎn)品過(guò)程中產(chǎn)生的用戶行為胁澳,實(shí)時(shí)報(bào)送有關(guān)模塊,例如不能重復(fù)推薦米者。

24.2 離線層

批量韭畸、周期性地執(zhí)行一些計(jì)算任務(wù)宇智。其特點(diǎn)是“不用實(shí)時(shí)數(shù)據(jù),不提供實(shí)時(shí)服務(wù)”胰丁。


通過(guò) Pig 或者 Hive 等工具随橘,從全量日志中按照算法要求抽取出不同的數(shù)據(jù),再加上其他數(shù)據(jù)變成了不同算法所需的數(shù)據(jù)源锦庸。

離線階段的任務(wù)主要是兩類:模型訓(xùn)練和推薦結(jié)果計(jì)算机蔗。通常機(jī)器學(xué)習(xí)類模型,尤其是監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí)酸员,都需要大量的數(shù)據(jù)和多次迭代蜒车,這類型的模型訓(xùn)練任務(wù)最適合放在離線階段

大多數(shù)推薦算法幔嗦,實(shí)際上都是在離線階段產(chǎn)生推薦結(jié)果的酿愧。離線階段的推薦計(jì)算和模型訓(xùn)練,如果要用分布式框架邀泉,通虫业玻可以選擇 Spark 等。


24.3 近線層

近線層的特點(diǎn)是“使用實(shí)時(shí)數(shù)據(jù)汇恤,不保證實(shí)時(shí)服務(wù)”庞钢。雖然這看上去蠻不講理,但實(shí)際上這是一個(gè)非常重要的一層因谎,它結(jié)合了離線層和在線層的好處基括,摒棄了兩者的不足。近線層财岔,也叫做準(zhǔn)實(shí)時(shí)層风皿,所謂“準(zhǔn)實(shí)時(shí)”,就是接近實(shí)時(shí)匠璧,但不是真的實(shí)時(shí)桐款。

這一層的數(shù)據(jù)來(lái)源是實(shí)時(shí)的行為事件隊(duì)列,但是計(jì)算的結(jié)果并不是沿著輸入數(shù)據(jù)的方向原路返回夷恍,而是進(jìn)入了在線數(shù)據(jù)庫(kù)中魔眨,得到用戶真正發(fā)起請(qǐng)求時(shí),再提供服務(wù)酿雪。一個(gè)典型的近線計(jì)算任務(wù)是這樣的:從事件隊(duì)列中獲取最新的一個(gè)或少許幾個(gè)用戶反饋行為遏暴,首先將這些用戶已經(jīng)反饋過(guò)的物品從離線推薦結(jié)果中剔除,進(jìn)一步指黎,用這幾個(gè)反饋行為作為樣本朋凉,以小批量梯度下降的優(yōu)化方法去更新融合模型的參數(shù)。這兩個(gè)計(jì)算任務(wù)都不會(huì)也不需要立即對(duì)用戶做出響應(yīng)袋励,也不必須在下一次用戶請(qǐng)求時(shí)就產(chǎn)生效果,就是說(shuō)當(dāng)用戶實(shí)時(shí)請(qǐng)求時(shí),不需要去等待近線任務(wù)的最新結(jié)果茬故,因?yàn)閮烧呤钱惒降母蔷摹=€計(jì)算任務(wù)一個(gè)核心的組件就是流計(jì)算,因?yàn)樗幚淼膶?shí)時(shí)數(shù)據(jù)流磺芭。常用的流計(jì)算框架有 Storm赁炎,SparkStreaming,F(xiàn)Link 等钾腺,Netflix 采用的內(nèi)部流計(jì)算框架 Manhattan徙垫,這和 Storm 類似。略有區(qū)別的是 Spark Streaming放棒,實(shí)際上并不是實(shí)時(shí)流計(jì)算姻报,而是小批量計(jì)算。


24.4 簡(jiǎn)化


完全舍棄掉近線層间螟;避免使用分布式系統(tǒng)吴旋。

在一個(gè)新產(chǎn)品的場(chǎng)景下, 當(dāng)數(shù)據(jù)量還沒(méi)有那么大時(shí)厢破,使用分布式存儲(chǔ)或者計(jì)算框架荣瑟,非常不劃算。



總結(jié)


25 數(shù)據(jù)采集


推薦算法形形色色摩泪,但是他們所需要的數(shù)據(jù)可以概括為兩個(gè)字:矩陣笆焰。

基于這個(gè)分析,可以給要收集的數(shù)據(jù)歸納成下面幾種见坑。例如物品id嚷掠,注意區(qū)分物品與物品之間的不同。

有幾種方式可以獲取數(shù)據(jù)

1.用SDK:友盟鳄梅,google analytics叠国,得到一些統(tǒng)計(jì)數(shù)據(jù),但意義不大戴尸,可以自己仿照采集一些數(shù)據(jù)粟焊。

2.可視化:用開(kāi)源的解決方案 mixpanel,指定收集

3.按自己自己方法


數(shù)據(jù)之外考慮的內(nèi)容:

1.事件的設(shè)備信息孙蒙,地理位置

2.從什么事件而來(lái)(上下文)

3.什么頁(yè)面而來(lái)

4.事件發(fā)生的用戶相關(guān)屬性项棠,物品相關(guān)屬性。


總結(jié)挎峦,基本的推薦系統(tǒng)需要數(shù)據(jù)香追,如下,不會(huì)出錯(cuò)坦胶。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末透典,一起剝皮案震驚了整個(gè)濱河市晴楔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌峭咒,老刑警劉巖税弃,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異凑队,居然都是意外死亡则果,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門漩氨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)西壮,“玉大人,你說(shuō)我怎么就攤上這事叫惊】钋啵” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵赋访,是天一觀的道長(zhǎng)可都。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蚓耽,這世上最難降的妖魔是什么渠牲? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮步悠,結(jié)果婚禮上签杈,老公的妹妹穿的比我還像新娘。我一直安慰自己鼎兽,他們只是感情好答姥,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著谚咬,像睡著了一般鹦付。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上择卦,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天敲长,我揣著相機(jī)與錄音,去河邊找鬼秉继。 笑死祈噪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的尚辑。 我是一名探鬼主播辑鲤,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼杠茬!你這毒婦竟也來(lái)了月褥?” 一聲冷哼從身側(cè)響起弛随,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宁赤,沒(méi)想到半個(gè)月后撵幽,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡礁击,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了逗载。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哆窿。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖厉斟,靈堂內(nèi)的尸體忽然破棺而出挚躯,到底是詐尸還是另有隱情,我是刑警寧澤擦秽,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布码荔,位于F島的核電站,受9級(jí)特大地震影響感挥,放射性物質(zhì)發(fā)生泄漏缩搅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一触幼、第九天 我趴在偏房一處隱蔽的房頂上張望硼瓣。 院中可真熱鬧,春花似錦置谦、人聲如沸堂鲤。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)瘟栖。三九已至,卻和暖如春谅阿,著一層夾襖步出監(jiān)牢的瞬間半哟,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工奔穿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留镜沽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓贱田,卻偏偏與公主長(zhǎng)得像缅茉,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子男摧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容