推薦策略產(chǎn)品經(jīng)理必讀系列—第二講推薦系統(tǒng)的架構(gòu)

1 評論 9317 瀏覽 98 收藏 12 分鐘

編輯導(dǎo)語:推薦系統(tǒng)是如何做到向用戶推薦他感興趣的物料的,這個取決于我們的推薦系統(tǒng)架構(gòu)。作者對推薦系統(tǒng)的架構(gòu)進行了詳細的闡析,總結(jié)了7大搭建架構(gòu)環(huán)節(jié),希望對你有所幫助。

上一篇為大家介紹了作為一個推薦策略產(chǎn)品必須了解的行業(yè)里發(fā)生的大事以及行業(yè)整體未來的趨勢,本篇就為大家詳細介紹推薦系統(tǒng)的架構(gòu),推薦系統(tǒng)是如何把我們感興趣的物料推薦到我們面前的。

一、整體架構(gòu)

將推薦系統(tǒng)架構(gòu)里面主要的部分整體如上圖,用戶打開APP看到為自己推薦的物料,正常都是需要經(jīng)過5-6個環(huán)節(jié)。常見的流程從建立物料索引,再到召回、粗排、精排、重排到過濾層,最終展示在了APP前段,為用戶推薦了感興趣的物料。

二、物料索引

APP里有哪些物料是可以推薦給用戶,會有一個總的物料池,物料池本身存儲在數(shù)據(jù)庫中。同時為了查詢時更加方便快捷,我們需要提前構(gòu)建好物料索引。尤其是很多召回路是基于一些標簽進行召回的,更加需要提前構(gòu)建好倒排索引。物料的清洗和索引的構(gòu)建是推薦系統(tǒng)的第一步基礎(chǔ)工作。

三、召回層

構(gòu)建完物料索引后,推薦系統(tǒng)是如何挑選出用戶感興趣的物料了。推薦算法發(fā)展到現(xiàn)在,我們可以稱之為4.0時代。4.0時代的推薦算法都是以預(yù)估用戶的點擊率(CTR)為核心,基于用戶對于每個物料的預(yù)估點擊率(Predicted-CTR)來進行排序,按照Predicted-CTR值進行倒排。以上介紹的是最理想的方式,但是實際卻無法執(zhí)行也沒必要。

原因一:無法實現(xiàn)

物料庫的量級太大,比如像淘寶這種平臺物料幾十億商品,如果用戶的每次請求都去預(yù)估幾十億商品的Predicted-CTR,需要大量的機器資源,同時時延會非常高。大家打開淘寶首頁可能需要幾十個小時,且不一定能加載出來。

原因二:沒有必要

幾十億的商品,有很多商品是非常冷門商品,99%以上的商品和用戶毫無關(guān)聯(lián),完全沒有必要如此精細化去預(yù)估用戶對于幾十億商品的興趣度。

所以推薦系統(tǒng)演變成先通過召回層初步篩選出用戶可能感興趣的一些物料,比如800個。然后再進入粗排和精排,其他幾十億的物料直接在召回階段就被過濾了。這樣的架構(gòu)設(shè)計大大降低了推薦系統(tǒng)的計算壓力,同時也不影響推薦系統(tǒng)的整體效果。

而召回階段,市面上最先進的模式就是針對不同的用戶進行分層,然后不同層級的用戶使用的召回路數(shù)不一樣,核心都是多路召回,每一路召回返回的物料個數(shù)以及對應(yīng)的權(quán)重都是和用戶本身的分層有很大關(guān)系,實現(xiàn)非常精細化的用戶和召回路數(shù)的管理。

常見的召回方法有基于熱銷商品的召回、基于歷史高點擊商品的召回、用戶歷史看過商品的召回,還有一些常見的協(xié)同過濾算法比如Item-CF、User-CF。關(guān)于召回階段常用的策略和算法后面會有專門的文章進行講解。

四、粗排層

大家可以看到召回階段會有非常多的召回策略,那我們?nèi)绾螌⑦@些各路召回的商品匯總在一起進行一個統(tǒng)一排序了。比如熱銷路的召回,召回了Top 100的商品;歷史高點擊的召回,同樣召回Top 100的商品。這兩路召回的商品可能還會有重疊的。

在召回層里,每一路的召回都需要將物料的分數(shù)進行歸一化。比如說熱銷路的召回,如何召回Top 100的商品,首先需要計算每一個商品的熱銷分數(shù),然后取Top 100的商品。歷史高點擊的召回路也是一樣,并且每一路的分數(shù)都需要歸到【0,1】之間,這樣各個路之間才能比較。

同時不同場景下每一路召回的重要性也完全不一樣,可以再設(shè)置一個對應(yīng)的系數(shù)。比如熱銷路召回為0.5,歷史高點擊路召回為0.7,假設(shè)商品A在熱銷路召回分數(shù)為0.8,歷史高點擊路召回分數(shù)為0.3,那么最終這個商品的總召回分數(shù)為:0.5 X 0.8 + 0.7 X 0.3 = 0.61。粗排層就需要將每一個召回的商品進行上述計算方式進行處理后,匯總得到一個總的List,然后選擇Top K的商品給到精排層。

五、精排層

精排層的核心任務(wù)就是預(yù)估用戶對于召回層返回的Top K商品的Predicted-CTR。召回和粗排只是選擇出了用戶可能感興趣的物料,但是每一個物料具體的預(yù)估CTR是多少并不知道。

精排層就需要基于用戶歷史點擊過的物料作為正樣本,曝光未點擊的物料作為負樣本,然后構(gòu)建CTR預(yù)估模型,預(yù)估用戶對于每一個物料的Predicted-CTR。在精排層核心要做的幾件事情:數(shù)據(jù)清洗構(gòu)建正負樣本,選擇合適的排序算法,構(gòu)建特征工程、模型訓(xùn)練與效果評估。

最終基于精排模型預(yù)估出的CTR對于召回的物料再重新進行一次排序。精排模型的預(yù)估是整個推薦系統(tǒng)中耗時最多的,因為特征十分復(fù)雜,特征維度很多。如果針對幾十億物料全部進行CTR預(yù)估,系統(tǒng)直接崩潰,這也是需要先進行召回的原因。

六、重排層

那是不是精排過的物料,直接按照精排后的順序直接展示在了APP前端了。很多時候推薦系統(tǒng)仍然有一些其他業(yè)務(wù)規(guī)則進行干預(yù)。比如在電商推薦系統(tǒng)里面,就會有以下的一些策略:

1. 類目打散

對于給用戶推薦的商品如果類目集中度過高,會進行一定程度的打散。比如精排模型給用戶返回的前10個商品全部都是鞋子,可能該用戶偏好鞋子,但前10個商品全部是鞋子此種集中度還是過高了,重排層就會將后面其他類目的商品插入到這10個商品中。具體按照類目打散的規(guī)則每家不一樣,核心是基于業(yè)務(wù)場景。打散不是目的,目的是為了提升推薦系統(tǒng)的點擊率。

2. 不同類型物料混合

比如淘寶,淘寶推薦場景里面有的內(nèi)容類型有:店鋪、活動、直播、商品、視頻等等。那這些不同類型內(nèi)容之間如何進行混合。能否可以出現(xiàn)連續(xù)4個全部都是直播,或者4個全部都是視頻。為了降低用戶的審美疲勞,很多時候針對不同類型的內(nèi)容推薦系統(tǒng)也會進行重新打散。但同樣打散不是目的,目的是為了提升推薦系統(tǒng)的點擊率。

3. 全局最優(yōu)

重排層還有一個核心的邏輯就是實現(xiàn)全局最優(yōu)。精排層是預(yù)估用戶對于單個物料的CTR,這是一種局部最優(yōu)的思想。但是用戶在瀏覽時正常都會一次性瀏覽多個,怎么樣的物料組合可以實現(xiàn)全局最優(yōu)而不是局部最優(yōu)。同樣4個坑位,有可能精排排序在1,3,5,7的四個物料組合比精排排序在1,2,3,4的四個物料組合整體CTR更高。

總的來說重排層是推薦系統(tǒng)最后一道策略和模型的調(diào)整了。

七、過濾層

重排層調(diào)整完的物料順序還會再進行一些業(yè)務(wù)規(guī)則和策略的干預(yù),比如電商領(lǐng)域會進行以下的過濾:

1. 未上架過濾

當(dāng)前已經(jīng)上架的商品不展示在APP前端。

2. 缺貨過濾

當(dāng)前已經(jīng)缺貨的商品不展示在APP前端。

包括還有同圖過濾等等策略。過濾層很多時候我們會做在了粗排和精排之間,確保進入到精排的物料后續(xù)都是能夠直接在APP前端展示的,這樣后續(xù)的精排和重排層的價值才更高。原本重排挑選出的最優(yōu)組合,結(jié)果全部在過濾層被過濾了,那么整體推薦系統(tǒng)的效果就會大打折扣。

八、APP前端

經(jīng)過過濾層的物料順序是不會再發(fā)生變化,但還是有最后一步工作要做,而很多推薦系統(tǒng)的文章都沒有介紹。就是內(nèi)容樣式和創(chuàng)意。比如電商平臺里面同樣都是店鋪的內(nèi)容,到底應(yīng)該展示哪一種樣式。大家打開淘寶首頁經(jīng)常會覺得花里胡哨,就是因為內(nèi)容的樣式太多了。

APP前端選擇最合適的一種內(nèi)容樣式進行展示,具體關(guān)于內(nèi)容樣式和創(chuàng)意的選擇后續(xù)也會有專門文章進行介紹。

經(jīng)過7個大的環(huán)節(jié),推薦系統(tǒng)也就在APP推薦場景為用戶推薦了他可能感興趣的物料。以上就是關(guān)于推薦系統(tǒng)架構(gòu)的一個完整介紹。下一期為大家詳細介紹推薦系統(tǒng)的召回策略,歡迎大家持續(xù)關(guān)注。

 

本文由 @King James 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自 Unsplash,基于 CC0 協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 收貨頗豐!想請教一下,內(nèi)容策略經(jīng)理(音視頻類產(chǎn)品)實戰(zhàn)中,在進行推薦策略的制定時,具體的顆粒度大概是什么呢?因為要涉及到跟算法工程師的對接

    來自北京 回復(fù)