推薦策略產(chǎn)品必備技能之推薦系統(tǒng)框架(中)
編輯導(dǎo)語:推薦系統(tǒng)中包含著許多模塊,數(shù)據(jù)流是其中的一個(gè)重要模塊。在上篇文章里,作者闡述了推薦策略產(chǎn)品中的系統(tǒng)框架及模塊演進(jìn);本篇文章里,作者總結(jié)了推薦系統(tǒng)框架中的數(shù)據(jù)流模塊,讓我們一起來看一下。
在本章節(jié),我們來了解推薦系統(tǒng)框架的數(shù)據(jù)流。
一、概括
為什么要了解數(shù)據(jù)流?
對于一款非常復(fù)雜的產(chǎn)品,比如像推薦系統(tǒng)這塊由多個(gè)模塊組成的產(chǎn)品,只有了解了其數(shù)據(jù)流,才能知道這個(gè)系統(tǒng)是如何運(yùn)作的。
對于產(chǎn)品經(jīng)理自身而言,只有了解了整體數(shù)據(jù)流,才能增強(qiáng)自己對復(fù)雜產(chǎn)品設(shè)計(jì)的把控能力。
二、推薦系統(tǒng)數(shù)據(jù)流
1. 背景Brief
要了解推薦系統(tǒng)的數(shù)據(jù)流,首先需要知道,對于一個(gè)推薦系統(tǒng),主要的數(shù)據(jù)模塊??梢詫⑵涑橄蟪?個(gè)模塊:用戶數(shù)據(jù)、物料數(shù)據(jù)、用戶行為。
2. 推薦系統(tǒng)目標(biāo)
對于一個(gè)推薦系統(tǒng),它的目標(biāo)是什么?通過兩個(gè)case來了解。
1)Case 1:資訊場景
比如資訊場景業(yè)務(wù)目標(biāo)是點(diǎn)擊率。點(diǎn)擊率的計(jì)算邏輯 = click / show。
那為了提升點(diǎn)擊率,我們需要哪些數(shù)據(jù)實(shí)現(xiàn)目標(biāo)?
- 靜態(tài)數(shù)據(jù):用戶表、物料表。
- 用戶行為數(shù)據(jù):用戶行為數(shù)據(jù)。
聚焦到用戶行為數(shù)據(jù),如何定義哪些是正樣本、哪些是負(fù)樣本。
需要注意的是,在行為數(shù)據(jù)定義時(shí)候(樣本定義時(shí)候),經(jīng)常出現(xiàn)的幾個(gè)show虛報(bào)的問題:
- 推薦結(jié)果即show。推薦結(jié)果即show的意思是,比如一個(gè)相關(guān)推薦場景,后臺(tái)服務(wù)器一次給出的預(yù)測結(jié)果是10條數(shù)據(jù),客戶端只展現(xiàn)了4條。為了圖方便,客戶的上報(bào)show的邏輯是將所有的返回推薦結(jié)果都上報(bào)為show。
- 加載即show。在信息流場景,往往需要預(yù)加載。但是很多預(yù)加載的item,實(shí)際上尚未被展示。客戶的埋點(diǎn)邏輯是加載即上報(bào)show,因此會(huì)導(dǎo)致show虛高。
- 信息流上下滑動(dòng)。在信息流場景,還經(jīng)常出現(xiàn)的一個(gè)問題是,用戶經(jīng)常上下刷動(dòng),所以同一物料會(huì)有多次曝光,建議上報(bào)時(shí)候做去重設(shè)置。
2)Case 2:小視頻場景
比如小視頻場景,建模目標(biāo)是完播率,即視頻的播放時(shí)長/視頻的總時(shí)長。
3. 推薦系統(tǒng)如何實(shí)現(xiàn)業(yè)務(wù)目標(biāo)
將推薦系統(tǒng)實(shí)現(xiàn)業(yè)務(wù)目標(biāo)拆分成兩條數(shù)據(jù)流來理解,在線數(shù)據(jù)流和離線數(shù)據(jù)流。
1)在線數(shù)據(jù)流
在線數(shù)據(jù)流是指一個(gè)請求進(jìn)入到推薦系統(tǒng)到給出預(yù)估結(jié)果的流程,參考下述示例圖。
接著進(jìn)一步了解在線數(shù)據(jù)流。
用戶來到APP,打開APP,這個(gè)時(shí)候前端會(huì)像服務(wù)器后端發(fā)送請求,接著服務(wù)器后端會(huì)像推薦系統(tǒng)(SaaS服務(wù))發(fā)送請求。
推薦服務(wù)接受到這個(gè)請求,會(huì)先進(jìn)行l(wèi)oad balance,接著后端處理,在后端處理分為算法和規(guī)則,算法即召回和排序,規(guī)則即rerank。
根據(jù)2.2的描述,我們知道,對于一個(gè)推薦系統(tǒng)來說,都有其特定的目標(biāo),當(dāng)我們完成目標(biāo)確認(rèn)后,比如提升點(diǎn)擊率或者完播率。
接著就可以開始建模了。假設(shè)模型已經(jīng)ready。來看一下推薦系統(tǒng)的在線流程~
- 召回(Recall):召回的作用是從整個(gè)物料庫中,通過某一種/多種策略,快速召回一小批物料,供后續(xù)模型打分使用。
- 排序(Rank):排序是將前一個(gè)階段召回的物料進(jìn)行模型排序。
- 重排(Rerank)
重排是什么?
重排是基于排序環(huán)節(jié)的打分結(jié)果,對上述結(jié)果再次進(jìn)行排序。
為什么需要重排?
在上一個(gè)環(huán)節(jié),排序做的事本質(zhì)上是預(yù)測用戶對物品該興趣的概率,考慮的只是物品與用戶之間的關(guān)系,但是忽略掉了物品之間的相關(guān)性。
如何理解呢?分享一個(gè)極端的case,小紅最近酷愛刷電影剪輯類小視頻,模型學(xué)習(xí)的話,很可能學(xué)出來最后給用戶推薦的都是同一個(gè)publisher的10條item。
這樣肯定是不行的,試想,如果你正在刷抖音,連續(xù)10條都給你推薦同一個(gè)博主的內(nèi)容,這個(gè)體驗(yàn)?zāi)芎脝??所以需要rerank。
重排環(huán)節(jié)一般會(huì)做什么?
重排階段是個(gè)策略出沒之地,就是集中了各種業(yè)務(wù)和技術(shù)策略。比如為了更好的推薦體驗(yàn),這里會(huì)加入去除重復(fù)、結(jié)果打散增加推薦結(jié)果的多樣性、強(qiáng)插某種類型的推薦結(jié)果等等不同類型的策略。
2)離線
什么是離線數(shù)據(jù)流呢?模型訓(xùn)練以及模型的更新都是離線數(shù)據(jù)流完成的事。
離線模型的訓(xùn)練以及模型的更新,涉及到多個(gè)數(shù)據(jù)模塊的配合,包括用戶畫像、物料畫像、行為日志,離線數(shù)據(jù)流,我們下章節(jié)見~
#專欄作家#
一顆西蘭花,人人都是產(chǎn)品經(jīng)理專欄作家。關(guān)注AI產(chǎn)業(yè)與寫作工具,擅長數(shù)據(jù)分析,產(chǎn)品研發(fā)管理。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
科普得深入淺出,期待這系列的下篇,能再多舉些實(shí)例嗎,就能理解得更透徹了
沒有下篇了嗚嗚嗚嗚
sf 講的很棒 期待下篇了