推薦系統(tǒng)解構(gòu)
分享嘉賓:姚凱飛 觀變科技 CEO
編輯整理:陳家輝
出品平臺:DataFunTalk
導讀:由于移動互聯(lián)網(wǎng)時代用戶每時每刻都會產(chǎn)生海量信息,伴隨著大數(shù)據(jù)技術(shù)的快速發(fā)展,使得企業(yè)能夠迎合用戶的痛點,分析用戶喜好,進行商品推薦。推薦系統(tǒng)誕生的益處:從用戶角度,推薦系統(tǒng)可以緩解信息過載帶來的時間成本;從企業(yè)角度,可以幫助企業(yè)進行精準營銷,解決長尾營銷,最大化收益。因此推薦系統(tǒng)的好壞對于互聯(lián)網(wǎng)企業(yè)來說至關(guān)重要。
本次分享主要是以電商平臺為例,從以下幾個方面對推薦系統(tǒng)進行解構(gòu):
01
1. 工作思路
對于電商平臺來講,一套完整的電商流程應該包含以下完整流程:
推薦系統(tǒng)作為電商平臺的一個子系統(tǒng),其價值體現(xiàn)在商品與用戶的匹配上,而匹配的效率與質(zhì)量對于電商平臺至關(guān)重要。
2. 推薦系統(tǒng)面臨的挑戰(zhàn)
多場景、多目標、考慮生態(tài)、場景間目標的差異
電商推薦系統(tǒng)的優(yōu)化往往是多目標的,這個體現(xiàn)在場景和優(yōu)化時效維度;在不同場景間, 推薦系統(tǒng)的目標側(cè)重點也是不一樣的,比如有的目標是提高用戶在頁面的停留時間,有的是提高用戶短時間內(nèi)的消費,比如猜你喜歡、購物車、商品詳情頁的推薦坑位。而從優(yōu)化的時效維度來看,比如從短期來講,目標有點擊率、轉(zhuǎn)化率和客單價等,從長期來講,目標需要考慮留存、復購等指標。不僅如此,電商平臺需要兼顧用戶、商家、平臺三者的利益,構(gòu)建長期健康的生態(tài)。由于電商業(yè)務的購物鏈路較長,往往用戶需要先瀏覽、點擊、加購、下單、支付、履約配送、收貨、評價/退貨等環(huán)節(jié)構(gòu)成,所以推薦系統(tǒng)往往需要將各個環(huán)節(jié)納入其中。當然在其它業(yè)務類型的推薦系統(tǒng)中,也存在著鏈路長的挑戰(zhàn)。如招聘行業(yè)的推薦系統(tǒng),給候選人推薦合適工作只是第一步,后面還會伴隨著長時間的簡歷投遞,招聘人員的審核和邀請,參加面試,最終入職或者進行下一家的應聘。社交場景也類似,這種推薦系統(tǒng)存在這雙向匹配,比電商平臺的單項匹配鏈路更長,挑戰(zhàn)也更大。
數(shù)據(jù)閉環(huán)
對于電商企業(yè)來說,數(shù)據(jù)是核心,是驅(qū)動業(yè)務迭代的關(guān)鍵點,從用戶、商品、商家維度,需要持續(xù)積累和采集。從用戶的角度,存在瀏覽、點擊、成交、評價、物流全鏈路閉環(huán)數(shù)據(jù)。從商品角度,有潛力、新品、老品、衰落、下架等信息。從商家角度,也有價值、非價值和灰黑商家等。
3. 推薦系統(tǒng)中的關(guān)鍵因素建模
我們以電商推薦場景為例,用戶的行為旅程包括瀏覽、點擊、加購、購買以及長期的復購行為,大致可以由下圖表示:
推薦系統(tǒng)首先需要在點擊(也即流量的轉(zhuǎn)化)這一環(huán)節(jié)進行建模,引導用戶進入商品詳情頁,同時對詳情頁的加購/購買建模,依次引導后續(xù)行為。
另一個角度,從上面PPT下半部分的公式出發(fā),產(chǎn)品運營可以被結(jié)構(gòu)為以上三個模塊,流量、轉(zhuǎn)化、x因素(回訪、復購)等;長期來講, X因素非常關(guān)鍵,即復購回訪的長期價值,只有長期生命周期價值高才能給企業(yè)帶來持久收益(n為時間/天,x的少許增長可以帶來長期巨大復利)。
結(jié)合上述用戶旅程和公式拆解,如果想將V做大,自然的,我們需要構(gòu)建轉(zhuǎn)化率-訪購率-毛GMV-凈GMV-留存率-復購等關(guān)鍵節(jié)點的建模,并且這個也是推薦系統(tǒng)的觀測指標。
在系統(tǒng)更大維度,我們需要關(guān)注長短期收益、用戶/商家個體滿意度和總體滿意度以及興趣探索成本、流量效率與商品/商家成長等維度。
02
1. 基本架構(gòu)
我這里拿一個前幾年我剛開始入門推薦系統(tǒng)時候的架構(gòu):
最開始的階段是召回過程,分為多個模塊;實時模塊會拿到用戶實時的信息,比如用戶實時點擊、收藏、加購的商品,并獲取這些商品的相似商品;歷史模塊會獲取用戶的歷史信息,如歷史的購買行為;畫像模塊則會獲取用戶的靜態(tài)信息和偏好標簽,如用戶的設(shè)備型號、年齡、性別、類目偏好等;最后還會包括現(xiàn)在以及過去的熱門商品等。
在經(jīng)過這些召回的過程后,我們會進行一層過濾。比如曝光過濾,即某個類目已經(jīng)曝光了一定次數(shù),但是用戶都沒有點擊,隱式表明用戶不感興趣。還有用戶購買過濾,即已經(jīng)購買過的短期內(nèi)不再推薦。同時還有購買率過濾、性別過濾等等。
經(jīng)過過濾階段后,我們可以對過濾后的商品進行一定的預估。如點擊率、轉(zhuǎn)化率預估等。同時可以考慮單價,多樣性以及新品率等影響進行排序。隨后我們可以通過規(guī)則或者模型,將這些粗排后的物品統(tǒng)一得分進行融合,最后再經(jīng)過精排階段給出最終得分,這個階段還會增加一些業(yè)務規(guī)則進行強控,比如考慮多樣性的打散、出于運營需求的置頂?shù)取?/span>
上述是大致推薦系統(tǒng)的簡單介紹,不同的業(yè)務和團隊,在構(gòu)建過程中也存在模塊的差異,推薦系統(tǒng)沒有特別強的標準存在。
2. 召回策略
主要策略包括:
① 實時行為召回:在線實時捕捉用戶對商品的點擊,收藏,加購,購買等反饋行 為,并召回相似商品,迅速抓住用戶的短期購物需求。
② 歷史行為召回:離線分析用戶對商品的歷史點擊,收藏,加購,購買等反饋行為,并召回相似商品,兼顧用戶的長期購物需求。
③ profile召回:從性別,年齡段,設(shè)備等多個維度,在線和離線同時對用戶進行
畫像,并召回相對應的熱門商品。不要小看這個召回,非常關(guān)鍵,往往新用戶需要用這些靜態(tài)信息和標簽來做召回,往往可以快速圈定其圈層進行精準的探索和數(shù)據(jù)反饋,比如5-6線城市和北京西二旗的用戶往往大概率興趣差異較大。這層召回是全局熱門召回的更精細化拆解。
④ 熱銷&趨勢召回:分析商品的長期和短期銷量變化,召回爆款和近期熱點商品。
-
召回模塊特別重要,因為召回的來源/相似分可以作為排序特征(推薦日志落盤-回看/溯源機制)
-
召回作為漏斗的頂部,好壞對漏斗底部(排序)的影響很大。
3. 排序策略
排序階段的影響因子較多,可以作為特征,也可以獨立在外作為排序因子存在。比如以下的一些因子:Ctr Cvr Price、Ctr Ts、Match Score、Trigger score time decay、Match type ctr cvr、Match type score、...
當然針對不同的產(chǎn)品有不同的側(cè)重點,比如電商的內(nèi)容差異較大,甚至同是內(nèi)容也會因為產(chǎn)品形態(tài)存在差異,比如快手的雙列可以考慮點擊率建模,而抖音單列下滑不需要考慮點擊率建模。甚至還需要考慮多樣性,驚喜性,新穎性等更多的指標。并且建模過程可以嘗試end2end或單獨建模的方式,這里面需要考慮的是稀疏性、正負比例、預估不準等問題。
如果一個指標不夠,還可以考慮多個指標的結(jié)合,形成新的指標。如電商場景下,gmv這個指標,可以用CTRα*CVRβ*Priceγ代表gmv,那為什么還需要α、β、γ呢?因為如果ctr和cvr估計是準確的, α、β、γ均為1的排序公式是可解釋的,你把這幾個指標的分子分母拆開就看到了,相乘以后就是gmv。但是由于模型各自的準確率差異,導致了我們需要學習這幾個參數(shù),理論上建模越準確的指標系數(shù)越大。而這三個系數(shù)如果相對穩(wěn)定可以通過離線統(tǒng)一參數(shù)學習的情況完成;如果不穩(wěn)定,可通過強化學習來解決這個超參的設(shè)定。
可參看下圖的電商場景建模的相關(guān)排序因子,當然部分因子作為特征可納入排序模型。
4. 排序階段還有一些常見的原則
① 針對不同的召回策略,主要秉持“短期行為優(yōu)先,兼顧長期行為”,“保證多樣性,避免過度個性化”原則。算法上主要通過長短期用戶行為密度建模,正負反饋反向調(diào)節(jié)等手段來實現(xiàn)。
② 不同排序因子(商家質(zhì)量/分發(fā)寬度及強度等等)可共用一套底層表征。
③ 覆蓋率:通過類目,品牌,頻道,場景等多粒度的打散重排,最大化各個維度的個性化覆蓋率。
④ 疲勞度:通過引入一定的隨機因子,針對不同個性化程度,建立合理的輪轉(zhuǎn)機制,保證一定的新穎性。
⑤ 轉(zhuǎn)化能力:通過對用戶,商品,會場等多維度采集特征數(shù)據(jù),訓練點擊轉(zhuǎn)化和交易轉(zhuǎn)化模型。大促期間 根據(jù)不同的階段,采取差異化的處理策略。比如預熱期強化點擊轉(zhuǎn)化,正式售賣期則強調(diào)交易轉(zhuǎn)化。
5. 更加精細化的排序
① 考慮到召回和排序的壓力,可以再精排和召回中間加一層,少量核心特征+簡單模型進行粗排。
② 多過程建模:如直接購買還是收藏比價使用模型判斷。舉個例子,在購物車推薦中,用模型來操控推薦策略。在購物的流程中,通過數(shù)據(jù)分析可以發(fā)現(xiàn),有一部分用戶是希望通過加入購物車來進行比價, 還有一部分用戶加入購物車是直接購買。通過模型來判斷用戶的行為,比如用戶一直添加同類目的商品,那么比價的概率就高一些。如果判斷出用戶是直接購買,那么就盡量推薦相關(guān)商品,如果是比價用戶,就推薦相似物品。
③ 粗粒度召回:離線產(chǎn)出不同類目下的精品數(shù)據(jù),作為召回補充和兜底
④ E&E探索解決低置信度預估模型問題
6. 模型演進
模型的演進路線可以由下圖表示:
而模型的時效性也從天級別,慢慢演化成小時(一天幾次), 再演化成近實時級別,而目前主流的推薦系統(tǒng)都是實時級別。
目前模型的演進已經(jīng)進入到深度學習時代,各個大廠提出的新的深度學習架構(gòu)也層出不窮:
這里不對于模型具體結(jié)構(gòu)過過多展開,主要趨勢就是通過時序、行為特征的使用,通過embedding、LSTM、attention、tansformor等結(jié)構(gòu)提取特征信息,擬合用戶興趣,提高預測精度。
7. 特征構(gòu)建
這里主要解構(gòu)一下電商推薦系統(tǒng)中特征的構(gòu)建方式:
初級的方式,一般大家會對用戶和商品進行一些用戶畫像,然后作為特征加入模型。但是長期來看,匹配類的特征非常重要,比如待排序的商品和用戶歷史行為的一個關(guān)系,上面提到的模型中,DIN和DIEN都很好的使用了這種行為序列。匹配特征一般是與點擊特征結(jié)合在一起的,比如用戶對于某個商品的點擊,對于某個類別的點擊,某類用戶對于商品的點擊等等??梢钥偨Y(jié)為下圖:
8. 評估方式
針對于召回的評估方式,絕大部分都是通過命中率、準確率、覆蓋率、F1-score等方式評估,參考下圖:
但是因為推薦系統(tǒng)是串聯(lián)的,我們往往需要考慮到前置模塊對后置模塊的影響,比如召回對于排序的影響,下圖是LinkedIn的方式。
03
做一個推薦功能之前,我們需要對這個產(chǎn)品功能的作用進行一定的決策,如:
-
推薦功能對該產(chǎn)品有無價值 ( 可以 )
-
價值多大 ( 值得 )
-
成本和收益 ( 現(xiàn)在 )
-
優(yōu)先級 ( 怎樣 )
同時還要對推薦功能的工程上的要求進行決策,如推薦系統(tǒng)的實時性做到毫秒級是否有必要。是否是毫秒級,應該以用戶的使用習慣來決定,如80%的用戶其實都是秒級需求,沒有必要做到毫秒級的響應。
2. 場景串聯(lián)與用戶旅程
不同的場景需要兼顧業(yè)務定位,進行場景間差異化。場景單獨優(yōu)化時往往召回、排序策略會趨同,帶來局部增益與全局增益最優(yōu)的沖突,解法往往是產(chǎn)品業(yè)務層的干預與算法場景通信兩種手段。
3. 方向&外圍
從系統(tǒng)和生態(tài)全局來看,建設(shè)推薦系統(tǒng)既要考慮短期的gmv等指標,更要考慮長期的發(fā)展 ( 回訪、復購、netGMV ) 。因此需要從更多的層面考慮推薦系統(tǒng)的建設(shè),如:
① 供應商、seller等級建設(shè),流量分配,運營機制。對于高登記的seller需要有更好的流量,但是對于等級較低的seller,也應該分配流量,幫助其提高等級。
② 商品理解&建設(shè): 良好的后備力量。每個商品都有生命周期,雖然可能舊款的商品質(zhì)量很高,但是我們在推薦的時候也要對新品進行流量分配,進行新品測試、流量扶持。
③ 智能投放: 低延時、高效率展現(xiàn)。在考慮商品的流量分配時,還需要對用戶的意圖、興趣、負反饋、視覺窄化進行考慮,不能不顧用戶的體驗。
④ 生態(tài)多目標,包括用戶體驗,如回訪、活躍度、復購率、分群傾斜等,也包括商家層級、價值、收益、良性競爭等目標,同時還需兼顧平臺收益。在增長過程中,一定需要兼顧上述若干指標,若置之不理,則最終用戶、商家都會流失,最終讓產(chǎn)品僵化。
4. 生態(tài)多目標
從推薦系統(tǒng)的構(gòu)建之初,我們就需要從以下角度去關(guān)注系統(tǒng),設(shè)定合理的目標和觀測指標。不能什么都是先污染后治理,兩眼一抹黑。在增長過程中,一定需要兼顧上述若干指標,若置之不理,則最終用戶、商家都會流失,最終使產(chǎn)品僵化。從用戶體驗角度,我們需要關(guān)注回訪、活躍度、復購率、分群傾斜等;從商家角度,需要考慮商家層級、價值、收益、良性競爭;最后我們還需要關(guān)注平臺收益。
04
下面我們在逐個結(jié)合業(yè)務展開一些相關(guān)探討,這些探討想要讓大家了解到推薦系統(tǒng)構(gòu)建過程中,對業(yè)務拆解的重要性。
1. 分群
根據(jù)用戶的活躍度及行為密度進行分群,并對分群后的用戶投放對應的熱銷進行兜底補足,或者作為主召回源。其中用戶行為較多(交互過的物料個數(shù)和品類/主題較多)時,作為兜底召回做補足;而部分用戶行為過少(新用戶或剛進入APP行為數(shù)較少的),可以作為主召回策略,這時候可以做更精細化地數(shù)據(jù)集。
比如針對國家/地區(qū)、性別、設(shè)備這些新用戶也可收集的靜態(tài)標簽分別做熱銷數(shù)據(jù);比如印度、男性、IOS 的用戶A和印度、女性、Android用戶B,使用的熱銷列表是不一樣的。其實其它分群策略也非常有用,比如購買力分群、興趣分群;群體對類目的強偏好和弱偏好均可以在推薦中使用。強偏好基本就是喜歡看、喜歡買什么品類就具有這類偏好;弱偏好就是某類人群從來不會交互或者交互過低的類目,利用統(tǒng)計概率進行顯著性檢驗,可以挑出群體顯著不關(guān)心的品類,在推薦過程中少推薦或不推薦。
2. 電商同店鋪用戶行為
-
做一下分析,看一下進入店鋪頁的用戶后續(xù)的行為,可以酌情加重同店鋪商品trigger的權(quán)重(實時獲?。?,往往很多店鋪有包郵門檻,這時候同店鋪召回是滿足包郵訴求。
-
同店x2i(i2i、c2i、b2i等)可以做一個很好的實時上下文強化,這里trigger數(shù)量和召回數(shù)量都需要進行控制。
-
考慮在rank的時候?qū)γ總€召回源和召回分數(shù)進行埋點,在訓練模型是考慮進行,這樣就可以進行很好的多召回源融合,當然這個不是同店的情形也可以用。
3. 購物車推薦策略
在購物車場景,通過數(shù)據(jù)分析你會發(fā)現(xiàn)用戶加購商品基本有2種用戶,一種是對比,另一種是馬上要買了再湊個單。這時候引入意圖建模,通過實時的數(shù)據(jù)收集,對于用戶加入購物車的商品進行意圖預測,然后在i2i召回策略中使用不同的召回控制,比如召回相似和相關(guān)搭配。
這里推薦的策略可以考慮用加權(quán)融合的方式,對于相似和相關(guān)搭配召回源,根據(jù)預測的意圖強弱進行比例調(diào)整;如果有埋點支持,還可以結(jié)合實時埋點,在排序?qū)涌紤]上述融合。
05
需要明確的是,業(yè)務效果好的并不一定是復雜算法, 建立推薦系統(tǒng)需要遵循“假設(shè)->分析->策略->效果”的流程。在出現(xiàn)的badcase中,需要回顧案發(fā)現(xiàn)場,在產(chǎn)品增加埋點,跟著數(shù)據(jù)走(實時) 。迭代模型需要跟著業(yè)務走,在badcase中發(fā)現(xiàn)新的思路。系統(tǒng)化地思考全局收益、場景串聯(lián)、局部與全局最優(yōu)的情況。最重要的是合理的指標,從健康生態(tài)系統(tǒng)的定義出發(fā)。以上就是此次分享的主要內(nèi)容,謝謝大家閱讀。