北京2021年8月12日 /美通社/ -- 推薦系統(tǒng)作為一種高效的信息發(fā)現工具,可以很好地解決用戶精準高效獲取信息的問題,尤其在人們需求不明確時,借助推薦系統(tǒng)獲取信息是非常重要甚至是不可或缺的一種手段。同時就商業(yè)價值而言,推薦系統(tǒng)在內容分發(fā)、用戶體驗、商業(yè)化變現等方面也已經獲得了廣泛的認可。推薦系統(tǒng)目前已經成為互聯網to C產品的標配技術,用來高效地解決用戶的信息匹配問題。
筆者是算法工程師背景,曾在國內最大的短視頻平臺參與推薦系統(tǒng)核心算法模塊研發(fā),先后經歷五款千萬級以上日活內容分發(fā)產品從0到1階段的推薦系統(tǒng)架構設計,踩過各種產品/內容/算法/運營的坑。之后在做推薦算法to B服務過程中,經歷了各種推薦應用的場景,比如:短視頻、長視頻、新聞資訊、音頻應用、社交社區(qū)、直播、電商、游戲等幾乎所有需要個性化算法的產品。通過本文,筆者希望基于以往經歷過的失敗或成功的案例,與業(yè)界同仁探討在搭建工業(yè)級推薦系統(tǒng)過程中必須深入思考的五個關鍵性問題。
問題1:算法是否有用?
根據業(yè)界主流定義,推薦算法是指建立在機器學習基礎之上的一套包含模型訓練/預測功能的決策系統(tǒng)。廣義的算法其實包含各種計算策略、方法和技巧,不限于機器學習方法,比如一些求解技巧或者是結合業(yè)務特點的先驗假設。
如前文所述,推薦系統(tǒng)目前已經成為to C互聯網產品的標配技術,但是,你有沒有認真思考過:你的產品或者系統(tǒng),有沒有必要利用推薦算法?推薦算法有多大的空間?
筆者經常見到一些初入門算法工程師,面對具體推薦場景時,沒有做好充分的評估建模,一上來就三段式:樣本生成、模型訓練、上線預測,最終折騰半天沒有任何效果,甚至不如人工推薦的效果。之所以會出現各種結果,是因為這些算法工程師沒有做好前期建模,分析數據基本面,確認面對的應用場景是不是屬于“用戶”和“事物(Item)”的雙邊充分消費市場。這里面,事物(Item)可以是人、信息、商品、服務等,雙邊基數越大推薦算法作用越大,雙邊消費越頻繁,推薦效果越好。
在2020年中量質子曾經接觸過一個做小游戲推薦的客戶。他們在產品早期有幾個策略工程師基于一些業(yè)務策略做了一版推薦系統(tǒng),相對于完全沒有策略的狀態(tài)推薦效果好了很多,公司決策層于是認為算法效果立竿見影、大有可為,高成本從抖音、百度等大廠挖了20多個高級算法工程師。算法同學加入之后沒有充分理解小游戲場景的用戶行為特點和產品指標評估體系,而是把內容類產品的建模方法和模型算法應用在App上,評估指標體系是用戶人均使用時長和用戶留存,結果做了半年嘗試了各種模型算法都沒有任何進展,團隊信心喪失,人員流失嚴重,這時公司決策層又開始懷疑算法的價值。那么究竟是哪里出了差錯呢?
其實,這個案例的核心問題出在建模目標、模型拆解、樣本生成、評估體系上。小游戲場景和內容分發(fā)類產品差別很大。內容分發(fā)類產品一個最大的特點是:推薦內容都是新的不重復的(工業(yè)級內容推薦系統(tǒng)都有展現消重模塊),用戶對老內容會本能排斥。而小游戲則不同,相比內容消費,玩小游戲是一個中度決策的場景,用戶一個時段傾向于玩相同游戲直到興趣消退,對新游戲發(fā)現需求不如內容分發(fā)強。因此,就需要仔細權衡新老游戲分發(fā)權重、冷啟動策略如何制定、多目標如何拆解、模型樣本怎么定義等等關鍵節(jié)點。如果這些關鍵點沒有做到位,那么后續(xù)怎么調參都不會有效果。同時,在產品宏觀指標算法效果評估上也要能反應出產品大目標,比如人均消費游戲數量、人均新游戲打開數,并綜合考慮留存和人均時長指標。
中量質子團隊在2020年還曾經服務過一個做藝術品的社區(qū)社交的客戶,其產品UI類小紅書??蛻舻漠a品從UI形式上看非常適合推薦,然而我們嘗試了一段時間,效果始終做的不好。經過深度復盤,我們終于發(fā)現核心原因是用戶數量太少,每天的用戶行為非常少,導致模型學習非常不充分預測不準;而且,用戶的消費行為不像內容消費那么高頻度。這些用戶對一個藝術品會反復瀏覽,是一個重度決策過程,更接近一個電商商品推薦。此外,這家客戶設定的評估指標是人均消費金額,相比與時長留存,這是一個行為更稀疏的指標,更難做多目標的拆解和模型算法的充分學習。最終,我們給客戶的建議是:這個階段的產品更適合基于策略做熱門運營半自動推薦,先做好用戶增長。記不記得前面我曾經講過,在“用戶”和“事物”的雙邊消費市場里,雙邊基數越大推薦算法作用越大,雙邊消費越頻繁推薦效果越好。
其實,對于算法硬實力筆者認為不必過分強調,反而對于理解業(yè)務場景、建模問題、定義模型目標等等推薦系統(tǒng)團隊的軟實力,大家應該給予更多的重視。
問題2:特征工程該怎么做?
在確認了產品的場景適合用算法提升匹配效率,并且評估了產品和數據基本面,完成了建模后,“特征工程”是下一個決定模型能否充分訓練學習、精準預測的關鍵環(huán)節(jié)。不知道你對于特征工程是否熟悉。據筆者的觀察,目前行業(yè)里系統(tǒng)性介紹特征工程的技術文章不多,也不如算法受重視程度高,特征的重要性往往被忽視。
什么是特征?特征是影響模型預測的輸入因子,而模型是預測時基于輸入因子的計算方法。從兩者間的相互關系,你立刻就會意識到特征的重要性有多么大。在深度學習算法時代來臨之前,以邏輯回歸為代表的線性寬度模型是業(yè)界主要應用的模型,那時特征工程幾乎對算法效果具有決定性的作用。時至今日,在深度學習模型廣泛應用的大背景下,特征工程依然是推薦系統(tǒng)的核心前置工程,復雜的特征工程和復雜的深度模型結構都是主流工業(yè)級推薦引擎必不可少的基石性的組成部分。
那么,特征工程是什么?是如何影響模型的?具體而言,特征工程屬于建模的一部分,指用哪些因子(特征)去支持模型做決策判斷。特征和行為埋點、畫像系統(tǒng)密切關聯,行為埋點是最原始的數據來源,畫像字段一般是用行為埋點和用戶以及事物的元信息生成的。特征工程的關鍵是找到一系列判定模型目標的決策因子,并且在工程上有一套標準化的特征抽取和表示方法,一般可以分為單維特征(比如各畫像字段維度)、多維組合特征(比如用戶和事物的特征組合)、機器學習特征(比如用戶和事物的embedding特征)。特征是模型的原始輸入,工業(yè)級推薦系統(tǒng)優(yōu)化到一定階段,特征工程就成為算法工程師最主要的工作。
在特征工程領域,中量質子團隊在“行業(yè)級最佳實踐”和“工程實現”兩個關鍵領域積累了深厚的實力。
行業(yè)級最佳實踐,是一種準確判斷在不同的產品場景應用哪些特征能夠獲得最優(yōu)效果的能力。特征工程也遵循28原則,你需要找到在每個領域起核心作用的那些少數特征。中量質子團隊在內容、短視頻、新聞資訊、社區(qū)社交、電商、直播等應用領域已經積累了大量的最佳特征體系實踐,比如電商領域哪些是核心特征、怎么構建用戶側特征、特征字段計算方法和更新頻率等等。
關于工程實現,有三個維度你需要給予特別的關注:
由于文字篇幅所限,筆者在本文中重點分享了從零開始搭建工業(yè)級推薦系統(tǒng)的過程中,最為關鍵的兩大問題?!八惴ā焙汀疤卣鞴こ獭?,這兩個話題一個在行業(yè)內為大家所津津樂道,而另一個則名聲不顯。但是,通過筆者實戰(zhàn)經歷的分享,相信大家一定已經認識到了他們在工業(yè)級推薦系統(tǒng)中的基石性的作用。在接下來的文章中,筆者將就對于搭建工業(yè)級推薦系統(tǒng)另外三個至關重要的問題跟大家做進一步的分享。