小白產(chǎn)品必看的推薦系統(tǒng)四步指南!

3 評論 6599 瀏覽 37 收藏 15 分鐘

編輯導語:互聯(lián)網(wǎng)使得信息傳播從傳統(tǒng)的紙媒到如今去中心化的UGC方式。當海量的信息進行分發(fā)時,作為產(chǎn)品設(shè)計者,我們需要考慮的問題是如何做好內(nèi)容分發(fā)系統(tǒng)。今日頭條為我們提供的一個方向——算法推薦。那么,作為一個新產(chǎn)品,該如何從0到1完成一個推薦系統(tǒng),作者總結(jié)了四步,與你分享。

互聯(lián)網(wǎng)使信息傳播從傳統(tǒng)的中心化紙媒逐漸變成了去中心的UGC方式。在這個時代每個人都可以是信息生產(chǎn)者,可以是信息傳播者,更是信息消費者。

而當海量被生產(chǎn),信息發(fā)生過載時,我們應(yīng)該如何分發(fā)和消費內(nèi)容。張一鳴和他的今日頭條給了我們一個方案-算法推薦。而如何做好算法推薦,也被看做產(chǎn)品里最具挑戰(zhàn)的事情。

那作為一個新產(chǎn)品,應(yīng)該如何從0到1完成一個推薦系統(tǒng)?我分為以下四步為大家講解:

一、產(chǎn)品屬性分析

首先你要明白的是,并非所有產(chǎn)品都需要做推薦系統(tǒng),不同產(chǎn)品的推薦策略也并非一致,畢竟每個算法工程師都是移動的金庫(= =),優(yōu)秀的推薦系統(tǒng)需要的成本也是相當高。

了解你的產(chǎn)品屬性和用戶需求是最重要的一步。普遍認為用戶和資源量大的產(chǎn)品更需要個性化推薦,如淘寶、抖音、新浪新聞等這些信息分發(fā)型產(chǎn)品,而微信、WPS這類工具型產(chǎn)品卻鮮少需要做推薦。我們將產(chǎn)品屬性分為用戶屬性和資源屬性:

1. 用戶屬性

首先我們需要了解產(chǎn)品的用戶組成和他們需要什么,比如用戶只想用你的軟件編輯文檔,那你為他推薦再多視頻也沒用。

2. 資源屬性

資源屬性是指平臺的資源組成,就是你的產(chǎn)品服務(wù)都有什么,可以是虛擬產(chǎn)品(文章、短視頻、課程等),也可以是實體產(chǎn)品(手機、音響等)。

而當這兩者組合起來,當不同的用戶需要不同的資源時,這時候我們就需要推薦系統(tǒng)了。

如果你能理解這部分,你也大致能明白為什么大多數(shù)工具型產(chǎn)品不需要推薦了。工具型產(chǎn)品為了確保服務(wù)深度,大多提供的功能需求都是收斂且聚焦的,多數(shù)用戶用相同的服務(wù),所以也不存在什么個性化推薦了。

你以為產(chǎn)品屬性分析只是讓你了解推薦嗎?No,其實產(chǎn)品屬性分析有著更大的價值,因為它決定了推薦策略的具體目標。比如你是視頻網(wǎng)站,那目標也許是提升用戶觀看時長。那后面的整個算法策略中,都要圍繞著觀看時長去進行拆分和優(yōu)化。如果是電商平臺,那就要圍繞下單量優(yōu)化推薦策略了,不同的產(chǎn)品屬性其應(yīng)用的推薦策略實際上千差萬別。

二、特征工程(標簽系統(tǒng))

接下來讓我們更進一步,在開展推薦策略前我們必須打好基礎(chǔ)。我們需要了解用戶更具體的需求,也需要了解平臺都有哪些資源。這樣才有可能實現(xiàn)用戶和資源的匹配,這個過程我們稱之為打標簽,實際工作中也稱為“特征工程”。

標簽類型多種多樣,從概念上我們主要分為“用戶標簽”和“資源標簽”兩種。

1. 用戶標簽

一般用戶標簽包含基本屬性、活躍屬性和興趣標簽三種:

  • 基本屬性常指“性別”、“年齡”、“常駐地”、“手機設(shè)備型號”、“職業(yè)層次”等用戶自然屬性,是用戶未使用產(chǎn)品時便客觀擁有的基本屬性。
  • 活躍屬性指用戶在使用產(chǎn)品時留下的行為數(shù)據(jù),根據(jù)計算方式,又分為統(tǒng)計類和規(guī)則類兩種。統(tǒng)計類是指可以直接進行統(tǒng)計計算的數(shù)據(jù),如用戶活躍天數(shù)、累計付費金額、活動參與數(shù)等;而規(guī)則類標簽則指某些相對復(fù)雜的標簽,需要先針對制定規(guī)則模型,再進行計算的數(shù)據(jù)。比如用戶活躍等級(高、中、低),用戶參與意愿等都需要提前明確計算規(guī)則。用戶的活躍數(shù)據(jù)也常被用來評估用戶粘性和周期價值。
  • 興趣標簽屬于挖掘類標簽,一般依賴于資源標簽。指用戶在瀏覽具體的內(nèi)容資源時,將資源本身的標簽貼給用戶,用戶使用行為越多,興趣標簽就越多越精準。并且根據(jù)不同行為各標簽的分值也不同(比如搜索作為用戶主動提出需求,其所占分值會較高),抖音越看越想看就是同理。其根據(jù)應(yīng)用場景又分為短期標簽(在線計算,一般為2天內(nèi)標簽)和長期標簽(離線計算,指歷史累計標簽)。

2. 資源標簽

指產(chǎn)品內(nèi)各類資源的標簽,分“類別”和“關(guān)鍵詞”兩種維度。

類別標簽是以某種指定規(guī)則將資源歸類,一般根據(jù)資源的復(fù)雜度分為2~5級不等,也有平臺分級更多。下圖是某瓣的類別標簽。

關(guān)鍵詞標簽則是在類別的基礎(chǔ)上更細一層,指具體的標簽詞。比如用戶對政治人物感興趣時,我們發(fā)現(xiàn)其主要體現(xiàn)在“特朗普”這個人名上,那關(guān)于特朗普的一些商業(yè)信息也可以做適當推薦。

通過特征工程我們會為每個用戶和資源都打上大量的標簽,然后再引入推薦策略。這兩類資源標簽一般是通過人工標注和機器學習兩種方式來添加。但機器學習需要大量的標注量才能達到一定準確度,所以在產(chǎn)品初期會更依賴于人工標注和詞庫拓展。到一定數(shù)據(jù)規(guī)模后,再訓練機器學習。最后通過持續(xù)的機器學習+人工修正,整個特征工程就能達到一定的識別準確度。

三、推薦策略

當我們將用戶標簽和資源標簽采集到后,接下來就是推薦策略的部分,推薦策略一般分為召回和排序兩大模塊。

1. 推薦系統(tǒng)組成

用戶訪問產(chǎn)品時,我們優(yōu)先從資源庫中召回符合用戶標簽的資源,這里通常是千/萬的數(shù)據(jù)量級,然后根據(jù)這些資源的標簽匹配度、時間等進行排序展示,成熟的產(chǎn)品還會涉及到精排和重排,根據(jù)用戶對每條資源的使用行為,實時改變后續(xù)資源的排序。實際工作中會由工程師將召回和排序封裝成一個推薦引擎,然后內(nèi)部各項環(huán)節(jié)都有相應(yīng)的算法人員跟進優(yōu)化,也就是所謂的模型調(diào)參。

2. 召回/排序具體策略

召回和排序是推薦算法中兩個相當龐大的工程,涉及方法眾多,這里僅和大家簡單分享下其中主要的策略組成。

1)召回

資源庫中的資源千千萬,但最終給用戶展示的只有幾十甚至十幾條,如果直接對所有物料計算排序不僅成本極高且響應(yīng)較差。所以我們需要對物料進行初篩,針對性召回用戶可能感興趣的一批候選集。傳統(tǒng)的標準召回結(jié)構(gòu)一般是多路召回,主要分為“個性化召回”和“非個性化召回”兩大類,個性化召回指針對用戶特征進行召回,主要有“興趣標簽召回”、“協(xié)同過濾召回”等;非個性化主要指“熱門召回”、“冷啟動召回”這類統(tǒng)一特征的召回。

實際應(yīng)用中會根據(jù)不同場景,選擇上述一種或多種召回策略進行。比如搜索場景下的召回排序,你在淘寶搜索某件商品后,再次訪問列表時便會發(fā)現(xiàn)該類商品排在首位。而召回的多樣性是很重要的,有時候多一路召回策略產(chǎn)生的效果也許會是驚人的,而召回質(zhì)量也很大程度上決定著推薦系統(tǒng)的上下限。

下圖為其中“協(xié)同過濾召回”的示意圖:

2)排序

一般當候選集達到“千”這個數(shù)量級,我們就開始需要排序策略了,一般通過粗排和精排將候選集縮減在“百”級并進行打分,按分值top排序,再根據(jù)用戶的實時反饋進行重排序,將數(shù)據(jù)量縮至“十”這個級別進行排序展示。

排序的目標是根據(jù)業(yè)務(wù)目標來不斷變化的,最早期由于業(yè)務(wù)目標簡單,需要聚焦的時候,往往會選取?個指標來重點優(yōu)化排序。但隨著多路召回策略的增多,到中期就會發(fā)現(xiàn)單?指標對整體的提升已經(jīng)非常有限了。這時候我們就需要引入多目標排序來解決這些問題,比如結(jié)合時間、興趣、熱點、位置等眾多維度的數(shù)據(jù)進行綜合排序,這里應(yīng)需要注意不同的用戶場景其排序側(cè)重點不同,所以需要不同的排序策略來提高精度。比如興趣流中更注重興趣標簽,熱點信息流中更重視互動數(shù)據(jù)等。

常用的排序算法框架有pointwise、pairwise、listwise三類,下圖中x1,x2,… 代表的是訓練樣本1,2,… 的特征,y1,y2,s1,… 等是訓練集的label(目標函數(shù)值)。感興趣的同學可以自行深入了解下,這里不多贅述。

四、模型的持續(xù)優(yōu)化

當圍繞人和物建立起一套推薦模型后,工作并沒有結(jié)束。相反,它才剛剛開始。

多數(shù)產(chǎn)品首次上推薦時便需要面對較復(fù)雜的策略規(guī)則,但因缺少實際數(shù)據(jù)依托,往往是算法人員憑個人經(jīng)驗和競品來作參考給出初始模型(比如某feed中初始策略設(shè)置熱點權(quán)重4,時間權(quán)重2、興趣權(quán)重2等),所以導致效果也參差不齊。一般需要灰度上線后,拿到實際的用戶反饋數(shù)據(jù)(比如ctr、完播率、下單率等),才能針對模型持續(xù)進行調(diào)優(yōu)和完善。

我們針對某個模型進行數(shù)據(jù)驗證時主要分為兩步:

  • 離線評估:在離線準備好的新數(shù)據(jù)集和之前模型數(shù)據(jù)做對比,比如準確率、覆蓋率、多樣性等多方面,如該模型的綜合指標優(yōu)于線上模型,則可以進入線上實驗,這里一般由產(chǎn)品經(jīng)理把關(guān)。
  • 線上實驗:當評估模型效果較優(yōu)后,我們需要在線上進行A/B分桶實驗。一般實驗周期在2周左右,對比實驗組和對照組,如實驗數(shù)據(jù)為正向,則推到更多用戶量繼續(xù)監(jiān)測。如在某個階段為反向,則返回優(yōu)化模型策略,反復(fù)實驗直到逐步推向全量用戶。

“沒有最好,只有更好”這句話也算是推薦系統(tǒng)的真實寫照。算法推薦不像其他功能型需求,它也沒有絕對完成的那天。強如頭條和抖音的算法體系已如此健全,其每年還是花費大量成本來招聘算法崗。因為隨著社會發(fā)展,用戶習慣和興趣愛好時刻產(chǎn)生著不同程度的變化。所以讓推薦系統(tǒng)保持敏捷,長期持續(xù)的監(jiān)測和策略優(yōu)化才是整個推薦系統(tǒng)中的常態(tài)。

今天的分享到這里就結(jié)束了,共分為“產(chǎn)品屬性分析”、“特征工程”、“推薦策略”、“模型持續(xù)優(yōu)化”四部分,篇幅有限細節(jié)部分就有所忽略,希望大家多包含。路漫漫其修遠兮,相信隨著互聯(lián)網(wǎng)信息網(wǎng)絡(luò)的發(fā)展,更加完備更有想象力的推薦算法也會不斷地涌現(xiàn)和繁榮!

 

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

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

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 好文章,小白能看懂

    來自貴州 回復(fù)
  2. 干貨滿滿!感謝作者大大的分享,要把這篇文章收藏起來好好看!

    來自江西 回復(fù)
    1. 感謝支持~

      來自北京 回復(fù)