自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

企業(yè)級推薦系統(tǒng)為什么拆解為召回、排序兩個階段?

開發(fā) 架構(gòu)
我們知道推薦系統(tǒng)是一個偏工程的計算機與機器學習的交叉學科,那么軟件工程的一些思路和做法也是適合推薦系統(tǒng)的。將推薦算法流程拆分為召回和排序兩個階段,那么推薦算法就分解為兩個相對獨立的子系統(tǒng)了。

 [[431017]]

 大家好,我是強哥。一個熱愛暴走、讀書、寫作的人!

推薦算法從業(yè)者肯定知道,在企業(yè)級推薦系統(tǒng)中,一般將推薦算法業(yè)務(wù)流程拆分為召回和排序兩個階段(有些公司還將排序分為粗排和精排,我們這里不加區(qū)分了,見下面圖)。為什么這么做呢?這樣做有什么好處嗎?將推薦算法流程分為召回和排序兩個階段,好處是非常多的,本文我們就從多個角度來解釋這么做的價值主要體現(xiàn)在哪里。

在講解之前,簡單說一個召回和排序這兩個階段分別解決的問題,方便大家更好地理解下面的講述。召回就是采用比較多的方法和策略從物品庫中將用戶可能喜歡的物品挑選出來,一般召回的是幾十到幾百個物品。排序階段是將不同召回算法獲得的結(jié)果采用一個統(tǒng)一的模型進行重新打分排序,將得分最高的幾十個作為最終的物品推薦給用戶。通過召回,我們事先就從海量的全物品庫中過濾出了少量的用戶可能喜歡的物品了,這大大減少了排序階段需要處理的物品數(shù)量。

講解完了召回和排序兩個階段的作用,下面我們從4個維度來說明企業(yè)級推薦算法流程為什么拆解為召回和排序兩個階段。

1. 推薦算法流程解耦合

我們知道推薦系統(tǒng)是一個偏工程的計算機與機器學習的交叉學科,那么軟件工程的一些思路和做法也是適合推薦系統(tǒng)的。將推薦算法流程拆分為召回和排序兩個階段,那么推薦算法就分解為兩個相對獨立的子系統(tǒng)了。我們可以分別對每個子系統(tǒng)進行迭代、優(yōu)化、升級,出了問題也方便我們?nèi)シ治?、定位、排查、修復、?yōu)化??傊?,拆分為兩個系統(tǒng),更易于進行系統(tǒng)開發(fā)與維護。軟件工程的思路就是分而治之的思路,這個做法是跟軟件工程的思路一脈相承的。

2. 有利于團隊的分工協(xié)作

將推薦算法流程拆分為召回、排序兩個階段,這對于規(guī)模比較大的算法團隊,也方便進行更精細化的任務(wù)安排和人員職能分派。讓不同的人聚焦在某一個小的領(lǐng)域,這樣更容易讓員工在這個方向上做到極致。畢竟召回、排序的思路、方法、策略還有有差異的,讓不同的人分工做不同的模塊,更聚焦。

3. 可實現(xiàn)性上的考慮

隨著深度學習技術(shù)的發(fā)展,我們知道深度學習技術(shù)等復雜推薦模型可以達到比傳統(tǒng)模型好得多的推薦效果。因此,大家肯定愿意去嘗試更復雜的模型。但是復雜的模型在特征預處理、推斷時間花費、推薦服務(wù)延遲等方面相對傳統(tǒng)簡單的模型有更高的要求。這里舉個推斷時間花費的例子,在一個用戶規(guī)模和物品規(guī)模都非常大的應(yīng)用場景中(比如抖音、淘寶等),用一個復雜的深度學習模型去對每個用戶物品組合進行打分是非常耗時的,也是不現(xiàn)實的。如果召回階段事先篩選出了少量的用戶可能喜歡的物品,那么排序階段的工作量就小了很多了。

另外,目前信息流推薦是推薦系統(tǒng)的標配技術(shù)了,在實時推薦場景下,對時效性的要求就更高了。推薦算法進行拆解對于近實時完成推薦推斷過程是非常關(guān)鍵、必不可少的。

4. 提升推薦精準度上的考慮

將推薦算法流程拆分為召回和排序兩個階段。那么每個階段可以解決本階段的核心問題。最終可以更好地提升推薦的精準度。下面分別加以說明。

推薦系統(tǒng)召回階段的主要目標是將用戶可能喜歡的物品篩選出來,目的是不要漏掉用戶可能會喜歡的物品。一般召回階段可以采用很多的方法進行召回,比如基于內(nèi)容標簽的召回、基于用戶畫像的召回、基于用戶最近行為的召回、基于熱門的召回、基于地域(或者位置)的召回、基于特殊事件的召回、基于時間的召回、基于協(xié)同過濾的召回等等(參考下圖)。不同召回算法考慮的是用戶興趣點的某個方面,那么用多種召回算法就可以更好地覆蓋用戶更多樣化的興趣點,最終將用戶所有喜歡的物品篩選出來,避免遺漏掉重要的興趣點。

排序階段只對少量的、召回階段篩選出的物品進行打分,因而可以選擇效果好的、復雜的算法模型(比如深度學習模型等)。在這一階段我們可以將精力聚焦在模型的效果上。

如果用統(tǒng)計誤差的思路來看召回、排序這個拆解過程,那么每個召回算法相當于一次隨機變量的抽樣(抽樣的是用戶的興趣這個隨機變量),由于自身方法的原因,每個召回算法是有一定誤差的,不同的召回算法的誤差方向是不一樣的 。那么當我們在排序階段將所有召回算法的結(jié)果匯聚起來時,各個召回算法的誤差是可能相互抵消的,最終可以獲得更精準的推薦結(jié)果。

推薦系統(tǒng)將算法流程分解為召回排序兩個階段,這個做法也可以用集成學習的思路解釋:通過多個模型的集成,獲得整體更優(yōu)的效果。召回階段就是利用了多個模型,可能每個模型刻畫的是用戶興趣的某個方面,它不太準,但是沒關(guān)系,只要找準了用戶的某個興趣點就夠了。我們在排序階段會將這些召回算法的結(jié)果整合起來,獲得最終的最有利于描述用戶興趣的結(jié)果。

上面我們從4個角度來說明了為什么企業(yè)級推薦系統(tǒng)的推薦算法流程要拆解為召回、排序兩個階段。希望通過本文的學習,讀者可以更好地理解這種設(shè)計的哲學,同時,也希望讀者可以更加深入地理解推薦算法流程。

責任編輯:武曉燕 來源: 數(shù)據(jù)與智能
相關(guān)推薦

2010-07-02 12:26:51

LEACH協(xié)議

2014-11-13 09:39:50

2019-03-05 12:56:41

APP企業(yè)級應(yīng)用應(yīng)用程序

2009-12-29 10:43:31

PPPOE協(xié)議

2016-02-23 13:16:08

網(wǎng)絡(luò)監(jiān)控網(wǎng)絡(luò)可用性監(jiān)控系統(tǒng)

2022-03-28 10:44:51

MySQL日志存儲

2017-01-15 01:45:37

簡歷簡歷模板數(shù)據(jù)

2015-08-04 17:31:46

戴爾云計算anycloud

2009-02-10 09:38:41

2009-09-22 11:59:19

2013-03-28 09:35:31

企業(yè)級系統(tǒng)

2010-04-30 10:05:31

企業(yè)級Linux

2014-12-29 08:54:07

2009-11-30 12:28:29

2020-12-21 18:21:09

戴爾

2012-09-05 17:29:32

存儲系統(tǒng)華為

2011-05-19 10:57:47

架構(gòu)

2020-07-31 07:45:43

架構(gòu)系統(tǒng)企業(yè)級

2009-12-08 17:11:58

思科企業(yè)級路由器

2012-09-22 15:13:31

點贊
收藏

51CTO技術(shù)棧公眾號