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