【實踐篇】推薦算法PaaS化探索與實踐
2023-08-03 22:48:34 來源:程序員客棧
(相關(guān)資料圖)
一、背景
目前,推薦算法部支持了主站、企業(yè)業(yè)務(wù)、全渠道等20+業(yè)務(wù)線的900+推薦場景,通過梳理大促運營、各垂直業(yè)務(wù)線推薦場景的共性需求,對現(xiàn)有推薦算法能力進行沉淀和積累,并通過算法PaaS化打造通用化的推薦能力,提升各業(yè)務(wù)場景推薦賦能效率,高效賦能業(yè)務(wù)需求。 為什么是PaaS化:首先,我們認為PaaS化是一個比較好的解決辦法和方案,因為它提供了一種解決超級公司復雜業(yè)務(wù)的可變化、可擴展、可復用能力的基礎(chǔ)框架,在這樣的框架下,可以極大地釋放重復勞動力,實現(xiàn)業(yè)務(wù)的高效提升;其次,我們也看到一些行業(yè)中的其它玩家,他們也是在自己的業(yè)務(wù)中臺基礎(chǔ)上進行PaaS化,并通過PaaS化提供的能力不斷的孵化自己的創(chuàng)新項目,去減少他們的人力投入,減少他們的投入成本,而且他們還推出了很多用于商用的PaaS化工具,為實現(xiàn)更大的社會價值去創(chuàng)造機會;因此,我們認為PaaS化應當是我們當前會選擇的一個比較好的解決問題方法; 如何助力推薦業(yè)務(wù)能力提升:通過梳理推薦場景下的共性需求,在可變化、可擴展、可復用能力的基礎(chǔ)框架內(nèi),我們對業(yè)務(wù)需求進行分類和能力抽象,提供階梯化的應對策略;針對通用類需求,我們提供一站式個性化推薦能力,滿足業(yè)務(wù)快速接入的訴求;針對定制類需求,通過打造高效易用的PaaS化工具,一方面,減少算法人力的投入,另一方面,縮短業(yè)務(wù)需求交付的周期;
二、方案設(shè)計
在對推薦業(yè)務(wù)需求梳理的過程中,我們將業(yè)務(wù)方訴求歸結(jié)為以下兩個大類: 新增推薦位類業(yè)務(wù)需求 依據(jù)推薦場景劃分,大致可以分為首推、我京、商詳、購物車、短視頻、直播、頻道等推薦場景的接入; 依據(jù)個性化推薦能力劃分,大致可以分為數(shù)據(jù)接入、召回、排序、過濾/調(diào)權(quán)、多樣性、渲染等推薦算法模塊以及AB實驗、數(shù)據(jù)分析能力; 依據(jù)運營訴求劃分,大致可以分為提權(quán),定投,非定投,定坑等扶持能力; 已有推薦位推薦策略迭代優(yōu)化類業(yè)務(wù)需求 效果提升類業(yè)務(wù)需求:大致可以分為新增商品底池、召回新增數(shù)據(jù)源、業(yè)務(wù)標簽/特征因子接入模型、扶持類、數(shù)據(jù)分析等; 用戶體驗類業(yè)務(wù)需求:大致可以分為調(diào)權(quán)/過濾、負反饋、多樣性排序、新穎性、多素材穿插等; 可運營類需求:大致可以分為特殊商品流量扶持、賽馬機制、提權(quán),定投,定坑等可運營能力; 為了更高效地支持上述業(yè)務(wù)需求,推薦算法PaaS化圍繞數(shù)據(jù)/算法組件/數(shù)據(jù)分析/算子/場景模板/服務(wù)6個PaaS化方向進行建設(shè),以縮短需求交付周期為目標進行建設(shè),切實提升使用者感知。 2.1 推薦算法PaaS化能力分類 作為個性化推薦能力的提供者,我們希望通過業(yè)務(wù)賦能技術(shù),通過推薦算法PaaS化,將推薦系統(tǒng)透明的展示給大家,在重新認識推薦系統(tǒng)的基礎(chǔ)之上,更好的推演未來;我們將推薦算法PaaS化分為數(shù)據(jù)/算法組件/數(shù)據(jù)分析/算子/場景模板/服務(wù)共6個一級能力、20個二級能力,具體如下: 上述分類是基于我們現(xiàn)階段對業(yè)務(wù)需求的認知,隨著推薦算法PaaS化的不斷推進,定義及分類也會不斷遷移; 2.2 推薦算法PaaS化能力建設(shè) 2.2.1 推薦算法組件化 推薦算法組件化是平臺化、配置化的前置步驟,通過組件化,我們可以將算法能力可視化,讓沉淀在代碼中的一些信息展示在公眾面前,讓算法能力成為一種真正可傳承的資產(chǎn),高效賦能業(yè)務(wù)需求;具體而言,我們通過將算法能力抽象及封裝,集成在一個可運行的代碼包中,使用者通過算法組件的介紹及使用說明,就可以“插拔式”的應用在自己的業(yè)務(wù)領(lǐng)域; 算法組件化建設(shè)主要包含兩部分,一是推薦算法PaaS化能力建設(shè)者將推薦算法能力進行集成,二是推薦算法PaaS化能力使用者將算法組件應用在任何想應用的場景中,而且使用者自己就可以把握需求交付的節(jié)奏;
??推薦算法組件化示意圖
2.2.2 通用算法能力平臺化 平臺化的主要目的是簡化推薦算法組件使用的復雜度,因此,我們對平臺工具的要求是具備可用、可視、可改的特點;值得注意的是,平臺化這里我們可以分為兩個大類,其一是推薦能力全鏈路的平臺化,目的是能夠快速支持新增推薦位這類業(yè)務(wù)需求;其二是推薦算法模塊的平臺化,通過這樣的平臺工具,希望能夠快速支持已有推薦位推薦策略迭代優(yōu)化類業(yè)務(wù)需求; 針對推薦能力全鏈路的平臺化,我們和產(chǎn)品、架構(gòu)、平臺側(cè)合作,通過打造豐富的推薦場景模板,并提供通用的個性化分發(fā)能力,滿足業(yè)務(wù)快速接入的訴求;具體來說,對于業(yè)務(wù)方對不同推薦場景接入的不同訴求,PaaS化項目組已經(jīng)建設(shè)了諸如全站商品綜合推薦、主sku相似相關(guān)推薦、業(yè)務(wù)靈活底池推薦、全渠道門店+商品推薦、小助手商品推薦等多類通用模板,在這些模板上,推薦算法PaaS化依據(jù)可變化、可復用的基礎(chǔ)邏輯,通過提供豐富的推薦策略供業(yè)務(wù)方選擇使用,覆蓋更多新增推薦位需求;
??場景模板列表示意圖
針對推薦算法模塊的平臺化,我們計劃和平臺側(cè)合作,通過建設(shè)一批提效工具,提高算法同學的工作效率,縮短需求的交付周期; 2.2.3 通用算法策略配置化 為了提升算法人員支持業(yè)務(wù)需求的效率,立足目前的推薦系統(tǒng),同推薦架構(gòu)合作,完成建設(shè)通用算子庫,包括常用的取數(shù)、召回、排序、過濾、多樣性等算子;在未來,這批通用算子可以直接進入小流量實驗驗證效果,降低算子配置的成本,提高代碼的復用度,達到縮短需求交付周期的目標;
??實現(xiàn)通用算法策略配置化前后的流程對比
2.2.4 定制化算法策略低代碼開發(fā) 在支持業(yè)務(wù)需求的過程中,我們發(fā)現(xiàn)一個小小的算子開發(fā)也要耗費算法人員大量的時間,包括不限于:前期的開發(fā)溝通、策略的開發(fā)、環(huán)境部署、策略的驗證及算子上線等,我們希望將開發(fā)流程進行精簡,從而達到提效的目標,基于此,同推薦架構(gòu)、平臺達成共識,建設(shè)面向算法等專業(yè)人員的低代碼開發(fā)工具,使定制化需求能夠快速的通過低代碼環(huán)節(jié)進行快速開發(fā)和發(fā)布上線; ? 整體思路,參考大數(shù)據(jù)的 easy studio 系統(tǒng) 2.2.5 推薦算法PaaS化工具建設(shè) 這里我們主要考慮定制類需求,比如召回新增數(shù)據(jù)源、敏感商品過濾、case排查工具等;對于定制類需求,我們希望提供一些高效易用的PaaS化工具,一方面,解放算法的重復勞動力,另一方面,縮短業(yè)務(wù)需求交付的周期;
三、落地實施
3.1 案例一 場景模板個性化推薦能力建設(shè) 3.1.1 場景模板開發(fā) 場景模板作為承接新增推薦位需求的一種工具,直接開放給業(yè)務(wù)方使用,針對不同推薦場景,我們建設(shè)了豐富的模板供業(yè)務(wù)方選擇使用,包括:全站商品綜合推薦、商詳、購物車、直播、短視頻等,在每個模板上,我們配置了基礎(chǔ)的推薦分發(fā)策略,業(yè)務(wù)方可以根據(jù)自己的需求選擇使用哪些推薦策略;下面以商品聚合tab推薦為例,介紹模板個性化推薦能力的落地實施情況; 首先,在模板建設(shè)的前期,我們會和產(chǎn)品共同確認類似需求的量級,作為評估是否建設(shè)模板的依據(jù);比如說,我們評估商品聚合tab推薦這類需求在每個季度平均會存在3-4個,且該類需求對算法能力的要求基本相似,因此,我們認為商品聚合tab推薦是屬于通用類且比較頻繁的一類需求,需要建設(shè)模板高效承接該類需求; 其次,作為算法人員,我們需要針對該類需求進行算法能力的梳理,通過過去十幾個類似需求對推薦能力的要求,大致可以整理出一版功能完善,覆蓋度極高的算法方案;以商品聚合tab推薦為例,在數(shù)據(jù)接入時,大部分需求中,業(yè)務(wù)方提供的數(shù)據(jù)是包含商品池(did)、虛擬類目/品牌(vcateid)及真實類目/品牌(cate_id)的底池數(shù)據(jù),而在召回時,往往通過冷啟和畫像兩路召回完成虛擬類目/品牌及真實類目/品牌的召回,再通過一個線性排序模型完成rank階段的打分,輔以過濾、調(diào)權(quán)及多樣性策略完成整個推薦分發(fā)能力的搭建,通過上述描述不難發(fā)現(xiàn),如果大部分需求都是按照上述流程推進,那我們就可以設(shè)計完善的算法方案高效承接類似需求; 然后,在算法方案評審完成的基礎(chǔ)上,由架構(gòu)側(cè)完成功能的開發(fā),由平臺側(cè)完成前端頁面的開發(fā); 最后,當再存在類似業(yè)務(wù)需求時,我們對業(yè)務(wù)方開放模板能力,業(yè)務(wù)方自己就可以通過點選式的頁面完成需求,且這個過程的進度均由業(yè)務(wù)方自己把控; ??場景模板開發(fā)流程圖 3.1.2 全自動召回詞表/索引庫能力建設(shè) 在我們承接業(yè)務(wù)需求的過程中,大部分情況下,每個業(yè)務(wù)方都有自己的商品底池,面對不同的商品底池,我們需要根據(jù)商品底池的變化動態(tài)的調(diào)整召回詞表或者索引庫,假如我們想要個性化分發(fā)能力完全自動化,那就需要打造一套新的召回詞表/索引庫構(gòu)建工具,基于此,我們聯(lián)合平臺側(cè)共同提出了一鍵底池/索引庫創(chuàng)建落地方案,具體來說,算法人員將模板上所需的所有召回詞表/索引庫生產(chǎn)腳本進行抽象封裝,預留入?yún)⒓俺鰠ⅲ脚_側(cè)通過前端界面獲取具體召回詞表/索引庫創(chuàng)建的命令,并將該命令作為入?yún)⑤斎胨惴ㄈ藛T預先封裝好的代碼包,為了每天定時更新任務(wù),同時自動創(chuàng)建BDP調(diào)度任務(wù),代碼包的出參通過DUCC回傳給平臺側(cè),作為后續(xù)創(chuàng)建詞表/索引庫的依據(jù),從而完成召回詞表或者索引庫的全自動化創(chuàng)建; ? ??一鍵底池/索引庫創(chuàng)建落地實施 3.1.3 多業(yè)務(wù)排序模型支持 為了覆蓋更多業(yè)務(wù)需求,在排序模塊我們主要考慮不同業(yè)務(wù)模式下對排序能力的要求,比如,在下沉場景,更多的是需要提升UCVR指標,而主站的一些業(yè)務(wù)需求希望提升用戶的UCTR指標,因此,為了兼顧多樣的業(yè)務(wù)需求,我們梳理了三個常用的模型,分別是主站的多領(lǐng)域排序模型,特價版的下沉排序模型以及ToB的企業(yè)排序模型,將上述三個模型集成到每個模板里,并提供每個模型的介紹及使用說明,業(yè)務(wù)方可以根據(jù)需求的具體內(nèi)容進行選擇; ??排序模型選擇 3.2 案例二 打造高效易用的PaaS化工具 工具的合理使用,不僅可以提高我們的工作效率,還可以使我們的工作變得更加輕松;這里以我們在用戶體驗中打造的啄木鳥為例,為大家講解PaaS化工具在業(yè)務(wù)中的應用;(名詞解釋之啄木鳥:支持離線過濾/解禁自主配置的平臺化工具) 3.2.1 需求梳理 在用戶體驗模塊,常常有業(yè)務(wù)需求需要對商品、類目、敏感詞等進行過濾,或者在某一段時間內(nèi)進行過濾,時間過后要求再釋放出來;在沒有打造啄木鳥之前,我們接到類似需求后,會手動將商品、類目或者是敏感詞寫到一個文本中,然后再將文本push到hdfs的某一個路徑下,第二天的BDP調(diào)度任務(wù)執(zhí)行時,會更新數(shù)據(jù)表,達到過濾或者釋放的目的;觀察上述流程不難發(fā)現(xiàn),手動修改文本極易導致出錯,無心的刪除或者增加可能就會導致第二天的調(diào)度任務(wù)掛掉,不穩(wěn)定;另外,有新人接手這樣的需求后,培訓成本極高,需要手把手教幾遍才敢把這樣的工作交給他,操作難度大; 為了解決這樣的難題,我們計劃打造一款高效易用的PaaS化工具,這樣的工具可以提供穩(wěn)定的增刪改查,而且還要操作簡單,最好是一看就知道怎么操作,基于這樣的想法,我們聯(lián)合平臺一起打造了啄木鳥; 3.2.2 啄木鳥的設(shè)計及開發(fā) 設(shè)計思路: 通過jrec平臺,能夠?qū)⑺械碾x線過濾/釋放進行paas化配置,平臺需要具備如下能力: 啄木鳥平臺提供過濾、釋放配置入口,由jrec平臺提供; 在平臺配置的長期規(guī)則可以下沉至離線,降低對線上服務(wù)資源的占用; 離線過濾能夠靈活配置,且支持離線釋放,減少手工操作成本; 方案設(shè)計: 整體方案設(shè)計如下圖所示,通過平臺WEB界面配置后,數(shù)據(jù)經(jīng)DUCC流轉(zhuǎn)到離線計算任務(wù)部分,待離線計算任務(wù)完成后,導數(shù)到j(luò)imdb進行緩存,線上配置過濾服務(wù)或者ps的過濾算子后即可完成商品、類目或者是敏感詞的過濾與釋放;
?
啄木鳥落地實施
3.3.3 啄木鳥使用 啄木鳥建設(shè)好交付對應的算法人員進行使用,我們也提供了詳細的使用手冊供新人學習;
四、實踐經(jīng)驗總結(jié)
在推薦算法PaaS化探索與實踐的過程中,我們作為能力的提供者和能力的使用者,一方面從能力提供者的角度出發(fā),總結(jié)梳理出需要提供的PaaS化工具,另一方面,從能力使用者的角度出發(fā),去評估工具是否高效易用; 作為能力的提供者:通過對業(yè)務(wù)需求的梳理及PaaS化建設(shè)者長期的業(yè)務(wù)經(jīng)驗,立足現(xiàn)有推薦系統(tǒng),通過對推薦算法的組件化,重新認識系統(tǒng),重新規(guī)劃流程; 作為能力的使用者:從被動到主動,切實感知到工具對效率的提升,善于利用工具,通過PaaS化工具,輕輕松松完成復雜的業(yè)務(wù)需求,只要想干,就可以自己把握需求交付的節(jié)奏;
五、未來工作展望
我們希望在長期主義的復利下,將推薦算法PaaS化積累成一個奇跡;基于我們目前對業(yè)務(wù)需求的認知,未來,我們將從如下幾個方面不斷深耕: 5.1 場景模板分層個性化推薦能力建設(shè) 在未來一段時間里,我們會針對模板的個性化能力進行升級,基于現(xiàn)在基礎(chǔ)版的現(xiàn)狀下,提供進階版及高階版能力,滿足業(yè)務(wù)更多樣的訴求; 5.2 打造高效易用的PaaS化工具 5.2.1 單素材服務(wù)能力建設(shè) 首先需要闡述一下我們?yōu)槭裁匆ㄔO(shè)單素材服務(wù)能力,一個重要的原因是場景模板僅能支持新增推薦位需求,且該類需求不能很復雜,而對于復雜的新增推薦位需求或者是已有推薦位的迭代優(yōu)化場景模板無法提供支持;基于此,我們提出了服務(wù)復用的概念,具體來說,我們計劃將單素材打造成一個一個的服務(wù),算法人員專注的對服務(wù)進行全方位優(yōu)化,而需要進行效果優(yōu)化的新增推薦位需求以及已有推薦位的迭代優(yōu)化則通過服務(wù)進行賦能,此舉不僅可以減少算法人力的投入,還可縮短業(yè)務(wù)需求交付的周期; 5.2.2 算法組件平臺化進一步升級 為了提升推薦算法PaaS化能力使用者的使用體驗,我們計劃將部分通用的算法能力平臺化,以擺脫目前仍然需要算法人員手動復制的操作工作,真正實現(xiàn)點選式的操作方法,因此,后續(xù)我們也會聯(lián)合平臺側(cè),共同打造這樣的平臺能力,進一步釋放算法人員的重復勞動力。 ?-end-
關(guān)鍵詞: