推薦策略產(chǎn)品必備技能之推薦系統(tǒng)框架(上)

1 評(píng)論 19581 瀏覽 122 收藏 10 分鐘

編輯導(dǎo)語:推薦策略產(chǎn)品的必備技能之一:推薦系統(tǒng)框架,可能有的同學(xué)還不太了解,作者簡(jiǎn)單地分享了一些相關(guān)知識(shí),我們一起來看一下。

本模塊的目標(biāo):

  1. 了解推薦系統(tǒng)框架,以及這套架構(gòu)的演進(jìn)
  2. 了解推薦系統(tǒng)框架中的各個(gè)模塊的功能
  3. 了解推薦系統(tǒng)的數(shù)據(jù)流

一、推薦系統(tǒng)架構(gòu)組成模塊

一個(gè)經(jīng)典的推薦系統(tǒng)的架構(gòu),主要包括如下四部分:

  1. 推薦服務(wù):該服務(wù)從服務(wù)器獲取推薦請(qǐng)求,然后返回推薦結(jié)果。
  2. 存儲(chǔ)系統(tǒng):這些系統(tǒng)存儲(chǔ)用戶畫像、物品畫像和模型參數(shù)。
  3. 離線學(xué)習(xí)(Offline learning):該組件從用戶行為數(shù)據(jù)中學(xué)習(xí)模型參數(shù),然后按照一定的周期將參數(shù)更新后的模型推送到在線存儲(chǔ)系統(tǒng)中;物品畫像學(xué)習(xí);用戶畫像學(xué)習(xí)。
  4. 在線學(xué)習(xí)(Online learning):實(shí)時(shí)更新模型。

1. 推薦服務(wù)

“推薦服務(wù)”的功能是對(duì)來自業(yè)務(wù)的request進(jìn)行預(yù)測(cè)。

比如,我這會(huì)打開抖音,抖音后臺(tái)會(huì)發(fā)送一個(gè)request給推薦服務(wù)所在的服務(wù)器,服務(wù)器接收到這個(gè)request之后,會(huì)根據(jù)過去我在抖音上的行為偏好,為我推薦我可能感興趣的短視頻。

2. 存儲(chǔ)系統(tǒng)

“存儲(chǔ)系統(tǒng)”的功能是存儲(chǔ)用戶畫像、物品畫像、以及模型參數(shù)。

3. 離線學(xué)習(xí)

“離線學(xué)習(xí)”的功能包括:模型訓(xùn)練、物品畫像、用戶畫像計(jì)算。

  • 模型訓(xùn)練是指給定用戶和物品,以及用戶對(duì)該物品的響應(yīng)數(shù)據(jù),來訓(xùn)練模型參數(shù),這個(gè)過程一般需要耗費(fèi)好幾個(gè)小時(shí)的時(shí)間。
  • 物品特征是比如對(duì)于非結(jié)構(gòu)化數(shù)據(jù),經(jīng)常需要對(duì)這些數(shù)據(jù)進(jìn)行TF_IDF計(jì)算,這個(gè)也是在離線層進(jìn)行。
  • 用戶特征也是。

4. 在線學(xué)習(xí)

“在線學(xué)習(xí)”的功能是利用用戶的即時(shí)數(shù)據(jù)進(jìn)行預(yù)估。

二、經(jīng)典的推薦系統(tǒng)架構(gòu)

每研究任意一款產(chǎn)品,我第一個(gè)想法,都是去看看世界上經(jīng)典、優(yōu)秀的產(chǎn)品他們是怎么設(shè)計(jì)的,以及為什么要這樣設(shè)計(jì)。我的關(guān)注目標(biāo)很簡(jiǎn)單:

  • 這套架構(gòu)的設(shè)計(jì)目標(biāo)是什么?
  • 為什么是這些目標(biāo)?

從目標(biāo)開始,以終為始,同時(shí)know how。

know- how(或know- how,或程序性知識(shí))是一個(gè)關(guān)于如何完成某事的實(shí)踐知識(shí)的術(shù)語,相對(duì)于“know-what”(事實(shí))、“know-why”(科學(xué))或“know who”(溝通)。

為了支撐這個(gè)目標(biāo),creator都做了哪些設(shè)計(jì)?是否存在好的「設(shè)計(jì)模式」值得我學(xué)習(xí)?

設(shè)計(jì)模式是我嘗試通過學(xué)習(xí)行業(yè)經(jīng)典的產(chǎn)品,從而發(fā)掘出可復(fù)用的知識(shí)結(jié)構(gòu)。

這類復(fù)雜產(chǎn)品設(shè)計(jì)師是如何做到快速深入業(yè)務(wù),做到設(shè)計(jì)驅(qū)動(dòng),達(dá)到業(yè)務(wù)與專業(yè)雙成長(zhǎng),是否存在好的「設(shè)計(jì)工作模式」、「設(shè)計(jì)思維」值得我學(xué)習(xí)?

業(yè)務(wù)專業(yè)雙成長(zhǎng):雙成長(zhǎng)指的就是如何在消耗大量時(shí)間深入業(yè)務(wù)的同時(shí),在專業(yè)深度上也能保持精進(jìn)。

1. 為什么選擇Netfix的推薦系統(tǒng)架構(gòu)

這是Netflix的推薦系統(tǒng)架構(gòu),分為離線、近線和在線層。這樣的設(shè)計(jì)模式,在當(dāng)前依然是主流模式。

2. Netflix的設(shè)計(jì)目標(biāo)是什么?

這是Netflix的推薦系統(tǒng)架構(gòu),這個(gè)架構(gòu)的設(shè)計(jì)目標(biāo)是:

  • 支持好的用戶體驗(yàn),且能支持新的推薦策略開展實(shí)驗(yàn)。
  • 針對(duì)用戶的行為,作出快速的響應(yīng)。
  • 能處理海量數(shù)據(jù)。

《個(gè)性化和推薦的系統(tǒng)架構(gòu)》中提到:

開發(fā)一個(gè)能夠處理大量現(xiàn)有數(shù)據(jù)、能夠響應(yīng)用戶交互并易于試驗(yàn)新的推薦方法的軟件體系結(jié)構(gòu)并不是一項(xiàng)簡(jiǎn)單的任務(wù)。

在這個(gè)架構(gòu)中,計(jì)算被分為了離線、近線和在線。

計(jì)算可以離線進(jìn)行、近線進(jìn)行、也可以在線進(jìn)行。對(duì)于用戶產(chǎn)生的最新行為,在線計(jì)算能更好地進(jìn)行反饋,但是在線必須實(shí)時(shí)進(jìn)行反饋。

這樣的話,就對(duì)算法的計(jì)算復(fù)雜性有很大的限制,同時(shí),也會(huì)限制能處理的數(shù)據(jù)量。

離線訓(xùn)練能處理較大的數(shù)據(jù)量,且不要求必須是實(shí)時(shí)相應(yīng)的。

模型的更新一般是離線進(jìn)行的,在模型的前后兩次更新這個(gè)時(shí)間窗口中,由于沒有進(jìn)入新的數(shù)據(jù),所以這個(gè)模型一直使用的是舊的數(shù)據(jù)。

對(duì)于推薦系統(tǒng)架構(gòu)最關(guān)鍵的因素是如何將在線和離線計(jì)算無縫結(jié)合。

近線計(jì)算是在上述兩者之間,在近線計(jì)算,我們可以執(zhí)行類似在線的計(jì)算,但不要求實(shí)時(shí)響應(yīng)。

再簡(jiǎn)單理解一下離線、近線和在線。

  1. 離線:不用實(shí)時(shí)數(shù)據(jù),不提供實(shí)時(shí)服務(wù);
  2. 近線:使用實(shí)時(shí)數(shù)據(jù),不保證實(shí)時(shí)服務(wù);
  3. 在線:使用實(shí)時(shí)數(shù)據(jù),要保證實(shí)時(shí)服務(wù)。

3. 推薦系統(tǒng)的用例

背景設(shè)置:這樣一個(gè)場(chǎng)景,西藍(lán)花資訊問答是一個(gè)基于多端(Web、APP、小程序)的文檔服務(wù)平臺(tái)。在這個(gè)平臺(tái),有兩個(gè)主要的角色,文檔發(fā)布者和文檔消費(fèi)者。

  • 發(fā)布者(publisher)會(huì)在這個(gè)平臺(tái)上不定期的上傳文檔內(nèi)容。
  • 消費(fèi)者(consumer)會(huì)在這個(gè)平臺(tái)上通過搜索獲取他們需要的文檔材料。

我們根據(jù)這樣一個(gè)場(chǎng)景,來初步分析一下推薦業(yè)務(wù)如何開展。對(duì)于任意一個(gè)推薦業(yè)務(wù),我們都可以先簡(jiǎn)單抽象成3張寬表:用戶表、物料表、用戶行為表。

該場(chǎng)景的用戶表,是所有consumer的信息集合。物料表是publisher發(fā)布的所有物料的集合。用戶行為表是用戶在這個(gè)平臺(tái)上產(chǎn)生的所有行為。

我們通過上述場(chǎng)景來理解推薦系統(tǒng)架構(gòu)。

3.1 存儲(chǔ)系統(tǒng)

存儲(chǔ)系統(tǒng)。存儲(chǔ)系統(tǒng)中飽含候選物品、用戶信息、特征和模型。

物品索引:在這個(gè)例子中,物品加入組件監(jiān)視一組生成新物品的物品源(例如:發(fā)布者)。當(dāng)新物品j產(chǎn)生時(shí),物品加入組件提取物品特征,并將物品以及其特征放入物品索引,以便按特征快速檢索物品。

這么說比較抽象,具體一點(diǎn)就是說,比如我們首頁相關(guān)推薦用的物料庫(kù),在2021年6月1日23點(diǎn)59分有物料更新,那么系統(tǒng)會(huì)監(jiān)測(cè)到這個(gè)時(shí)間點(diǎn)有物料更新,并且對(duì)這些更新的物料進(jìn)行特征抽取,計(jì)算完畢后會(huì)將這些特征存儲(chǔ)在我們的存儲(chǔ)系統(tǒng)中。

用戶數(shù)據(jù)存儲(chǔ)區(qū):用戶特征存在于用戶數(shù)據(jù)存儲(chǔ)區(qū)中。該存儲(chǔ)區(qū)是一個(gè)鍵-值存儲(chǔ)區(qū),支持通過給定一個(gè)鍵(比如:用戶ID)快速檢索出值(比如:用戶特征)。

模型存儲(chǔ)區(qū):離線學(xué)習(xí)組件按一定周期更新模型。

3.2 離線學(xué)習(xí)

給定用戶和物品的特征,以及用戶的行為數(shù)據(jù),也就是三表(用戶表、物料表、用戶行為表),離線訓(xùn)練模型。因?yàn)殡x線學(xué)習(xí)很容易耗費(fèi)好幾個(gè)小時(shí),因此在西藍(lán)花資訊文檔這個(gè)case中,我們每天執(zhí)行一次離線學(xué)習(xí)。

3.3 在線學(xué)習(xí)

實(shí)時(shí)更新模型,暫不展開。

3.4 推薦服務(wù)

每當(dāng)客戶發(fā)一個(gè)request,經(jīng)過網(wǎng)關(guān)、后臺(tái),返回對(duì)應(yīng)結(jié)果。

數(shù)據(jù)流部分下一篇講哦。

如果這篇文章對(duì)你有幫助,并且有興趣看接下來的更新~

#專欄作家#

一顆西蘭花,人人都是產(chǎn)品經(jīng)理專欄作家。關(guān)注AI產(chǎn)業(yè)與寫作工具,擅長(zhǎng)數(shù)據(jù)分析,產(chǎn)品研發(fā)管理。

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

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

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 贊贊??非算法的人學(xué)到了很多

    來自北京 回復(fù)