天天看點

小白産品必看的推薦系統四步指南一、産品屬性分析二、特征工程(标簽系統)三、推薦政策四、模型的持續優化

作者:人人都是産品經理

編輯導語:網際網路使得資訊傳播從傳統的紙媒到如今去中心化的UGC方式。當海量的資訊進行分發時,作為産品設計者,我們需要考慮的問題是如何做好内容分發系統。今日頭條為我們提供的一個方向——算法推薦。那麼,作為一個新産品,該如何從0到1完成一個推薦系統,作者總結了四步,與你分享。

小白産品必看的推薦系統四步指南一、産品屬性分析二、特征工程(标簽系統)三、推薦政策四、模型的持續優化

網際網路使資訊傳播從傳統的中心化紙媒逐漸變成了去中心的UGC方式。在這個時代每個人都可以是資訊生産者,可以是資訊傳播者,更是資訊消費者。

而當海量被生産,資訊發生過載時,我們應該如何分發和消費内容。張一鳴和他的今日頭條給了我們一個方案-算法推薦。而如何做好算法推薦,也被看做産品裡最具挑戰的事情。

那作為一個新産品,應該如何從0到1完成一個推薦系統?我分為以下四步為大家講解:

<h1 toutiao-origin="h2">一、産品屬性分析</h1>

首先你要明白的是,并非所有産品都需要做推薦系統,不同産品的推薦政策也并非一緻,畢竟每個算法工程師都是移動的金庫(= =),優秀的推薦系統需要的成本也是相當高。

了解你的産品屬性和使用者需求是最重要的一步。普遍認為資源量大的産品更需要個性化推薦,如淘寶、抖音、新浪新聞等這些資訊分發型産品,而微信、WPS這類工具型産品卻鮮少需要做推薦。我們将産品屬性分為使用者屬性和資源屬性:

<h2 toutiao-origin="h3">1. 使用者屬性</h2>

我們需要了解平台的使用者組成和他們需要什麼,比如使用者隻想用你的軟體編輯文檔,那你為他推薦再多視訊也沒用。

<h2 toutiao-origin="h3">2. 資源屬性</h2>

資源屬性是指平台的資源組成,就是你的産品都有什麼,可以是虛拟産品(優質文章、問答等),也可以是實體産品(手機、音響等)。

而當這兩者組合起來,不同的使用者需要不同的資源時,這時候我們就需要推薦政策了。

小白産品必看的推薦系統四步指南一、産品屬性分析二、特征工程(标簽系統)三、推薦政策四、模型的持續優化

如果你能了解這部分,你也大緻能明白為什麼大多數工具型産品不需要推薦了。工具型産品為了確定産品深度,大多提供的功能需求都是收斂且單一的,多數使用者用相同的服務,是以也不存在什麼個性化推薦了。

你以為産品屬性分析隻是讓你了解推薦嗎?No,其實産品屬性分析有着更大的價值,因為它決定了推薦政策的具體目标。比如你是視訊網站,那目标也許是提升使用者觀看時長。那在整個算法政策中,都要圍繞這觀看時長去進行拆分和優化。如果是電商平台,那就要圍繞下單量優化推薦政策了。

<h1 toutiao-origin="h2">二、特征工程(标簽系統)</h1>

接下來讓我們更進一步,在開展推薦政策前我們必須打好基礎。我們需要了解使用者更具體的需求,也需要了解平台都有哪些資源。這樣才有可能實作使用者和資源的比對,這個過程我們稱之為打标簽,實際工作中也稱為“特征工程”。

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

<h2 toutiao-origin="h3">1. 使用者标簽</h2>

一般使用者标簽包含基本屬性、活躍屬性和興趣标簽三種:

小白産品必看的推薦系統四步指南一、産品屬性分析二、特征工程(标簽系統)三、推薦政策四、模型的持續優化

基本屬性常指“性别”、“年齡”、“常駐地”、“手機裝置型号”、“職業層次”等使用者自然屬性,是使用者未使用産品時便客觀擁有的基本屬性。

活躍屬性指使用者在使用産品時留下的行為資料,根據計算方式,又分為統計類和規則類兩種。統計類是指可以直接進行統計計算的資料,如使用者活躍天數、累計付費金額、活動參與數等;而規則類标簽則指某些相對複雜的标簽,需要先針對制定規則模型,再進行計算的資料。比如使用者活躍等級(高、中、低),使用者參與意願等都需要提前明确計算規則。使用者的活躍資料也常被用來評估使用者粘性和周期價值。

興趣标簽屬于挖掘類标簽,一般依賴于資源标簽。指使用者在浏覽具體的内容資源時,将資源本身的标簽貼給使用者,使用者使用行為越多,興趣标簽就越多越精準。并且根據不同行為各标簽的分值也不同(比如搜尋作為使用者主動提出需求,其所占分值會較高),抖音越看越想看就是同理。其根據應用場景又分為短期标簽(線上計算,一般為2天内标簽)和長期标簽(離線計算,指曆史累計标簽)。

<h2 toutiao-origin="h3">2. 資源标簽</h2>

指産品内各類資源的标簽,分“類别”和“關鍵詞”兩種次元。

類别标簽是以某種指定規則将資源歸類,一般根據資源的複雜度分為2~5級不等,也有平台分級更多。下圖是某瓣的類别标簽。

小白産品必看的推薦系統四步指南一、産品屬性分析二、特征工程(标簽系統)三、推薦政策四、模型的持續優化

關鍵詞标簽則是在類别的基礎上更細一層,指具體的标簽詞。比如使用者對政治人物感興趣時,我們發現其主要展現在“特朗普”這個人名上,那關于特朗普的一些商業資訊也可以做适當推薦。

通過特征工程我們會為每個使用者和資源都打上大量的标簽,然後再引入推薦政策。這兩類資源标簽一般是通過人工标注和機器學習兩種方式來添加。但機器學習需要大量的标注量才能達到一定準确度,是以在産品初期會更依賴于人工标注和詞庫拓展。到一定資料規模後,再訓練機器學習。最後通過持續的機器學習+人工修正,整個特征工程就能達到一定的識别準确度。

<h1 toutiao-origin="h2">三、推薦政策</h1>

當我們将使用者标簽和資源标簽采集到後,接下來就是推薦政策的部分,推薦政策一般分為召回和排序兩大子產品。

<h2 toutiao-origin="h3">1. 推薦系統組成</h2>

使用者通路産品時,我們優先從資源庫中召回符合使用者标簽的資源,這裡通常是千/萬的資料量級,然後根據這些資源的标簽比對度、時間等進行排序展示,成熟的産品還會涉及到精排和重排,根據使用者對每條資源的使用行為,實時改變後續資源的排序。實際工作中會由工程師将召回和排序封裝成一個推薦引擎,然後内部各環節都有相應的算法人員跟進優化,也就是所謂的調參。

<h2 toutiao-origin="h3">2. 召回/排序具體政策</h2>

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

1)召回

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

實際應用中會根據不同場景,選擇上述一種或多種召回政策進行。比如搜尋場景下的召回排序,你在淘寶搜尋某件商品後,再次通路清單時便會發現該類商品排在首位。而召回的多樣性是很重要的,有時候多一路召回政策産生的效果也許會是驚人的,而召回品質也很大程度上決定着推薦系統的上下限。

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

小白産品必看的推薦系統四步指南一、産品屬性分析二、特征工程(标簽系統)三、推薦政策四、模型的持續優化

2)排序

一般當候選集達到“千”這個數量級,我們就開始需要排序政策了,一般通過粗排和精排将候選集縮減在“百”級并進行打分,按分值top排序,再根據使用者的實時回報進行重排序,将資料量縮至“十”這個級别進行排序展示。

排序的目标是根據業務目标來不斷變化的,最早期由于業務目标簡單,需要聚焦的時候,往往會選取⼀個名額來重點優化排序。但随着多路召回政策的增多,到中期就會發現單⼀名額對整體的提升已經非常有限了。這時候我們就需要引入多目标排序來解決這些問題,比如結合時間、興趣、熱點、位置等衆多元度的資料進行綜合排序,這裡因需要注意不同的使用者場景其排序側重點不同,是以需要不同的排序政策來提高精度。比如興趣流中更注重興趣标簽,熱點資訊流中更重視互動資料等。

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

<h1 toutiao-origin="h2">四、模型的持續優化</h1>

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

多數産品首次上推薦時便需要面對較複雜的政策規則,但因缺少實際資料依托,往往是算法人員憑個人經驗和競品來作參考給出初始模型(比如某feed中初始政策設定熱點權重4,時間權重2、興趣權重2等),是以導緻效果也參差不齊。一般需要灰階上線後,拿到實際的使用者回報資料(比如ctr、完播率、下單率等),才能針對模型持續進行調優和完善。

我們針對某個模型進行資料驗證時主要分為兩步:

離線評估:在離線準備好的新資料集和之前模型資料做對比,比如準确率、覆寫率、多樣性等多方面,如該模型的綜合名額優于線上模型,則可以進入線上實驗,這裡一般由産品經理把關。

線上實驗:當評估模型效果較優後,我們需要線上上進行A/B分桶實驗。一般實驗周期在2周左右,對比實驗組和對照組,如實驗資料為正向,則推到更多使用者量繼續監測。如在某個階段為反向,則傳回優化模型政策,反複實驗直到逐漸推向全量使用者。

“沒有最好,隻有更好”這句話也算是推薦系統的真實寫照。算法推薦不像其他功能型需求,它也沒有絕對完成的那天。強如頭條和抖音的算法體系已如此健全,其每年還是花費大量成本來招聘算法崗。因為随着社會發展,使用者習慣和興趣愛好時刻産生着不同程度的變化。是以讓推薦系統保持靈活,長期持續的監測和政策優化才是整個推薦系統中的常态。

今天的這裡就結束了,共分為“産品屬性分析”、“特征工程”、“推薦政策”、“模型持續優化”四部分,篇幅有限細節部分就有所忽略,希望大家多包含。路漫漫其修遠兮,相信随着各位的努力,更加完備更有想象力的推薦算法也會不斷地湧現和繁榮!

本文由 @許木 原創釋出于人人都是産品經理,未經作者許可,禁止轉載。

題圖來自Unsplash,基于CC0協定。

繼續閱讀