1. 程式人生 > >個性化推薦系統(二)---構建推薦引擎

個性化推薦系統(二)---構建推薦引擎

架構 商品 素材 業務開發 jpeg 用戶體驗 rom 機器學習 微信

當下推薦系統包含的層級特別的多,整個線上推薦系統包含:最上層線上推薦服務、中層各個推薦數據召回集(數據主題、分類池子)、底層各種推薦模型。

推薦系統介入線上各種業務,推薦系統當下已經介入內容方面:文章、問答、評論等各個業務系統,商品sku:純商品、消息push、素材,混合多個業務同時推薦。如此多得業務每個業務開發一套相似的代碼也是可以的但缺點是投入極大,並且每個業務代碼都差不多,對大家能力提高也很不友好,開發推薦引擎就是一件既能提升大家技術水平,又能很好的應對各個推薦頻道快速發展。

推薦引擎是一定要搞得了,業務發展極快,哪個業務都要接入個性化推薦。構建推薦引擎沒什麽好探討的了,現在需要思考和探討的是怎麽構建推薦引擎。

從哪個角度思考呢?杉楓是從個性化推薦系統、廣告投放系統、搜索引擎三個既存在相似又有差異的系統著手思考的。搜索引擎有極好的開源實現以及大量的架構分享文章,確定從搜索引擎入手,借鑒搜索引擎打造屬於我們自己推薦引擎。

有了搜索引擎可以借鑒,但推薦系統雖然像搜索引擎,但畢竟不是搜索,推薦比搜索多得是,召回流程更多、更廣泛,並且需要召回的範圍是基於用戶畫像來構建的,搜索核心是輸入詞與文章之間的匹配程度,搜索引擎核心到今天依然是,在搜索架構基礎上需要擴展的是增加召回流程以及召回次數,後邊再根據召回集拉取特征集進行打分排序。

技術分享

整個推薦引擎核心流程就是第一步拉取類別召回集,線上服務收到用戶請求,根據用戶請求拉取主題、標簽、素材、品類召回集,再根據當前召回集拉取偏好、相似召回集,完成第一步類別拉取,構建類別過濾集合包含但不僅僅是已購買、已曝光、已點擊,其中每種過濾集合都包含實時、離線,對類別召回集進行過濾。

第二步根據已拉取類別召回集,拉取素材召回集,例如:文章、sku等等,構建素材過濾集合,已購買、已曝光、已點擊等等。通過過濾集合過濾素材召回集。

第三步如是策略算法,根據策略對類別、品牌、品類進行隔斷,提升用戶體驗,對結果進行返回。另外一種是基於當下機器學習、深度學習進行CTR打分預估。這種場景下就要根據素材,拉取幾十個維度的特征,將特征實時傳入模型進行點擊量預估,根據機器學習模型、深度學習模型實時打分,對素材進行排序,並對排序結果進行類別、品牌、品類進行隔斷,隔斷的目的提升用戶展現時的體驗,至於為什麽隔斷?可以想象一下如果今日頭條一次刷新給你推得內容全是手機、或是淘寶下拉給你返回全是筆記本,種種情況下一定會讓你抓狂的。

第四步每個業務拉取的集合均不相同,需要每個召回集合都是可以通過配置平臺靈活配置的。機器學習、深度學習模型通過模型管理平臺進行管理,實現對於模型的動態加載、模型靈活動態更新。隔斷策略平臺配置化,能夠按每個業務定制靈活配置策略。

通過以上這些服務、配置化、平臺初步實現一般推薦引擎,從而使大部分業務不用每次去重復開發一次相似又有差異的代碼,階段性提升小組每個人的技術水平。

個性化推薦是一個正在蓬勃發展的技術,推薦引擎會不斷吸收內部、外部,以及其他領域的結果不斷進行完善。

非偏好用戶怎麽進行推薦、熱門集合、通用集合、實時新聞構建等,後續會寫篇文章詳細介紹下。

微信搜索:debugme123

掃描二維碼關註:技術分享

個性化推薦系統(二)---構建推薦引擎