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