從零開始構建企業級推薦系統,推薦系統5W3H框架 思維導圖
why 產品需要推薦系統嗎
推薦系統目的是幫助人們解決信息過載的問題,推薦算法就是一種信息過濾的方法
產品提供的信息/服務足夠多,用戶沒有時間、沒有精力將所有信息/服務都查看一遍再選擇適合自己的
用戶規模足夠大,如果只有很少用戶,那么其實是可以通過專家提供專業建議的方式來提供服務的。
如果產品是面向C端用戶提供海量信息/服務的,就有做推薦的必要
推薦系統最大的優勢是千人千面、完全自動化、每天可以多次更新甚至實時更新推薦結果。
領導是否相信推薦技術可以更好地處理信息過濾問題、是否相信推薦系統能夠產生極大的商業價值
需要考慮ROI(Return On Investment,投入產出比、投資回報率),希望利用最小的資源投入產出最大的價值
who 讓誰來搭建推薦系統
自建推薦系統
自建推薦系統最大的優勢是整個系統的建設掌握在自己手上,可控性好,方便業務調整和快速迭代,另外算法可以更貼合自己產品的特質做定制化開發,部分開發資源也可以跟后端團隊共享
自建最大的問題是需要自己公司招聘推薦系統相關專業人員,因此有更多的固定人力成本
目前對推薦系統比較精通的人才是非常少的,價格也相對很高,小的創業公司也很難吸引優秀的人才,因此組建推薦團隊難度高
如果公司將推薦系統作為產品的核心功能點,甚至是公司的核心競爭力的話,那么一定要自建推薦系統,這是自己可以完全控制的,核心競爭力一定要掌握在自己手上
購買推薦系統雲服務
目前有很多雲服務廠商(如阿里雲、百度雲等)和一些做toB生意的AI創業公司(如神策數據等)都提供了推薦系統的SAAS或者PAAS服務
該方案最大的優勢是接入流程相對完善、標准化,可以快速構建一套可用的推薦服務
雲服務最大的問題是采用的推薦算法是行業通用的解決方案,模型、數據無法完美匹配自己公司的業務,而我們只能適配雲服務廠商提供的規范,比較死板,因此算法效果也不一定有他們鼓吹的那么好
雲計算一般提供標准化服務,因此,很難、甚至無法對推薦系統進行個性化的調整和裁剪
公司對第三方框架的熟悉度不高,二次開發難度也比較大,做不到自建那樣的靈活性
如果是期望產品具備推薦的能力,沒有將所有希望奇托於推薦系統,推薦只是作為人工運營的一個補充,可以采用雲服務的方式
先采用雲服務的方式,等招聘到合適的推薦系統人才或者產品更穩定了再自己搭建也是可行的方案
通過外包構建推薦系統
部分傳統的外包公司在大數據與人工智能大背景下,也拓展了業務范圍,開始提供搭建推薦系統方面的外包服務
將公司推薦業務范圍和目標定義好,外包給第三方團隊來開發是另外一個可行的方案
外包最大的問題是,第三方可能對你的業務不熟悉,理解不夠深刻,責任心也沒那么強,無法做出非常貼合業務及產品特色的推薦系統
外包代碼一般注釋少,代碼結構不清晰,因此后續的維護、迭代等等也是大問題
外包團隊離職率高,等你的系統需要優化了,可能對接的是另外一批人,這批人根本不熟悉原來的系統,無法進行優化
不建議的是外包的方式,不可控因素太多了,風險太大
when 在什么階段搭建推薦系統
建議在產品的起步階段和成長階段來構建推薦系統,這樣可以更早地利用AI技術的紅利,發揮推薦算法的優勢,提升內容的分發效率,提高用戶的參與度和粘性
越早想清楚推薦的價值,趁早做,可以盡快驗證推薦對產品的貢獻,及時決策調整
where 推薦內容放在那里
在產品中位置是非常重要的,要做好推薦,必須放到核心位置,推薦產品只有用戶看到了才知道它的存在
首頁是用戶打開產品就能第一個看的的頁面,所以一定是用戶觸點多的核心位置
個性化推薦可以安置在首頁等核心位置為用戶提供個性化的推薦服務
what 搭建什么樣的推薦系統
推薦系統主要有排行榜推薦、相似推薦、個性化推薦、流式推薦等
相似推薦和個性化推薦是強烈建議采用的
個性化推薦可以做成實時推薦的形式,即所謂的信息流推薦,實時個性化推薦也是未來的發展趨勢
由於人類普遍具有從眾效應,排行榜類推薦實際效果還是可以的。排行榜推薦一般也可以作為個性化推薦的默認推薦
how 怎么搭建推薦系統
建議盡量快速讓新的推薦業務上線,再逐步優化,提升算法效果
前期可以利用單台服務器、單進程部署一個推薦系統,而不用考慮后面當用戶多了之后的分布式計算,這樣算法可以先快速上線
當用戶足夠多,單機算不過來了可以再考慮利用Spark等分布式計算平台重構現有業務邏輯
how much 投入多少資源
人力投入
數據收集到推薦算法上線提供推薦服務整個過程中的人力投入
日志打點、數據收集、數據存儲、特征工程、模型訓練、推斷預測、前端接口開發、UI交互、產品設計、項目跟蹤等
最核心的人力資源就是特征工程、模型訓練、模型推斷預測這幾個算法核心工作。其他的可以復用公司前后端開發人員
前期推薦專業開發2-3人。招聘的原則:有經驗的專業的推薦開發人員或了解過推薦系統全流程的開發人員
計算資源(服務器)
目前雲計算已經非常成熟,這些資源都可以從雲平台購買,而不是自己搭建
在產品早期,用戶規模相對小,沒必要構建大數據平台,單機單線程就可以跑出一個推薦系統
當用戶足夠多、數據量足夠大時,再投入資源構建大數據平台
how feel 有多少價值預期
用戶增長方面:提升用戶留存、活躍、停留時長
千人千面、實時推薦用戶感興趣的內容,更容易擊中用戶的興趣點,讓用戶更好地留存下來,跟產品互動,提升用戶體驗
經濟價值方面:節省人力成本、促進"標的物"變現
有了個性化推薦,就不需要那么多人工運營的工作,甚至不需要那么多人工運營人員了
效率方面:提升內容分發效率、促進長尾內容分發
自動完成內容分發,實時、全天候無人管控的推薦,分發效率高
生態方面:促進“標的物”提供方的生態繁榮
推薦算法起到了擇優篩選的作用,促進平台上的商家生態越來越健康
從零搭建推薦系統必須做好的三件事
算法
算法是推薦系統的核心,好的算法才能夠更精准、更有效地將“標的物”分發給喜歡它的用戶
一定要結合產品當前的階段、產品具備的數據、現有資源情況等選擇一個合適的推薦算法作為構建的第一個算法
評估指標
轉化率、人均點擊次數、人均播放時長、客單價
需要對用戶操作行為進行日志打點,收集用戶對推薦標的物的反饋,才能統計出這些指標
AB測試
通過構建推薦系統的AB測試平台,我們可以讓推薦系統的迭代變得有據可依
開始不需要復雜的AB測試,能用就行,讓系統快速跑起來,當業務需求更加復雜時,再迭代優化AB測試支撐更復雜的場景
最簡單的AB測試可以根據用戶id進行hash,給做AB測試的不同組用戶展示不同的推薦結果
閉環迭代優化
構建了推薦算法,有了評估指標,有了對比測試的工具,就可以根據算法的效果來優化算法。將新老算法做對比測試,新的更好就用新的,這個過程可以無限閉環迭代優化下去
幾個具體實用的建議
新聞資訊、短視頻類產品建議采用基於內容標簽的算法
基於內容標簽的推薦算法可解釋性好,用戶立刻就明白給他這樣推薦的原因,用戶更容易接受和認可
盡量先使用簡單的推薦算法快速上線
從零開始構建推薦系統時,最重要的目標是讓系統快速上線,盡早跑起來,在使用過程中發現問題,快速迭代、逐步完善
構建推薦系統業務閉環最重要
首先需要量化業務價值,確定業務核心指標,並構建具備快速評估、快速迭代現有推薦系統和算法的能力。才能構建出一個推薦系統的業務閉環,不斷迭代、不斷優化
推薦系統專人負責制
專人負責整個推薦業務的落地,不光懂推薦算法,更應該有產品思維、有用戶思維、有業務意識