新浪微博王傳鵬:微博推薦架構的演進(1)
2016-02-20 19:33:33 來源: 王傳鵬 51CTO 評論:0 點擊:
3 平臺式的3.0
上節中描述2.0的時候提到了一個重要不足是“和推薦核心有一定的距離,并沒有完全為推薦量身定做”,我們希望能夠在推薦3.0中解決它,這個不足會帶來什么問題,以及為何在已經滿足業務需求的同時推薦的架構再次往前發展呢?那么接下來為各位展現微博推薦平臺式的3.0設計,我們還是先看看所處的環境。
3.1 環境
微博推薦3.0的時間段是2014年底至今,當前的內部環境因素是:
1) 推薦產品不在擴張,對效果更為看重,將工作重點從業務開發和迭代轉化為以效果為目標的技術迭代。
2) 新項目或者迭代推薦業務的時候發現重復的事情很多,而架構沒有解決,工作存在冗余。
而外部因素是:
1) 公司也從業務擴展轉變為效率為先,提升用戶體驗以及內容質量上來。
2) 微博推薦在推薦技術環節距離領域內有一定距離,當下有條件進行追趕。
3.2架構組成與特點
當前的環境也能體現出3.0的技術目標:
1) 技術目標
與2.0不同,全覆蓋推薦流程已經不是3.0的目標,其目標是:
抽象出推薦流程中對于候選/排序/訓練/反饋的通用方法來
推薦是一個算法數據問題,應該以一個算法的角度構建推薦系統,因此需要更為貼近算法策略
2) 架構組成
如圖7所示,是微博推薦3.0的架構,也是當前實行的架構體系,大家其實可以發現,這是基于2.0 發展起來的,既然還保留了大量2.0中使用的分層體系以及工具框架。在這里重點描述幾個差異:
兩個標準:一個是針對應用層,作為整體框架輸出,應用層設定all in one 接口標準,其標準包含了輸入以及輸出參數;另外一個是針對動態輸入rin,由于離線計算我們可以確定結構,因此一個輸入層工具r9-interface不需要設定規范,但是rin是需要進行標準設定,從屬性/交互數據/日志等等層面進行劃分。
計算層增加對于候選的標準生成方法:Artemis內容候選模塊,item-cands用戶候選模塊、……,在項目開發中只需要選擇這些候選生成方法即可。
增加了策略平臺EROS,解決算法模型的問題。EROS主要的幾個功能是:1)訓練模型 2)特征選取 3)上線對比測試。
數據層中的r9-interface以及rin增加對于候選的生成方法,在線以及離線使用推薦通用策略生成結果。
圖7 微博推薦3.0的架構示意圖
3) 特點
主要描述其優勢:
繼承了原有2.0的特點,保留了其優勢
對于推薦理解更為深入,結合更為緊密
解決了推薦候選/排序/訓練的算法最重要問題
3.3 成果
微博推薦3.0的誕生,其成果如下:
1) 微博推薦的核心業務會逐步遷移到該體系下,以算法數據作為驅動,提升效果
2) 誕生了EROS的訓練流程,提出了訓練的標準方法
3) 針對推薦設定了標準的輸入輸出方法
4) 針對候選,產生了具有抽象意義的推薦方法集合
4 總結
上文中對微博推薦架構演進做了較為詳實的介紹,在這個演進的過程團隊以及個人收益很大,技術與業務的關系在架構中得到了很好的體現。有幾點可以跟大家分享的是:
1) 技術來源于業務同時提升業務發展,業務發展又反過來推動技術的前進,他們是一個相互影響相互促進的關系。和業務共同發展的技術才是有生命力的。
2) 技術架構的選型建議是尋找當前最短路徑,然后進行不斷優化迭代,一口氣吃撐是不現實的,也是不合理的。
3) 推廣某個框架和工具最好的方式不是行政命令也不是請客吃飯,而是的大家都是參與者,如同開源項目,每個人都是它的主人,這樣人人維護,人人使用。
4) 團隊崇尚簡單可依靠,它說起來容易做起來難,不過有一個好方法就是懂得自己不應該做什么,而不是應該做什么。
5) 說到推薦這個特殊領域上來,設定目標,跟蹤目標很重要,把數據和目標擺出來,產品、架構以及算法都會想辦法去解決的。
最后,跟大家推薦一下微博推薦的官方博客:http://www.wbrecom.com/ 歡迎大家提出建議和建議。感謝大家對于微博推薦以及微博的關心和愛護,謝謝!
