從0到1到無窮,vivo大規模機器學習實踐

tianxiaoxu發表於2018-05-07

相信大家都對IT大廠的機器學習應用的建設很感興趣,如果有技術大咖們能夠從零開始和大家詳細分享一下他們大規模機器學習實踐,是不是一件再好不過的事情了。2017年10月19日-21日,由IT168主辦的第九屆系統架構師大會,就邀請到了vivo網際網路演算法團隊負責人李珂和我們分享vivo從0到1再到無窮的機器學習實踐。

從0到1到無窮,vivo大規模機器學習實踐
vivo網際網路演算法團隊負責人 李珂

  機器學習演算法在vivo落地的時候,李珂團隊遇到了所有初創團隊都會遇到的問題——人少坑多技術弱。當時整個vivo網際網路演算法團隊只有李珂和應屆畢業生兩個人,但是他們克服了這些種種困難在2016年推出了第一代解決方案架構。

從0到1到無窮,vivo大規模機器學習實踐

  這個解決方案很好的利用了現有大資料架構,不僅對演算法團隊的技能要求單一,而且對於工程團隊的要求也很低,出錯的機率也較小。但是由於離線預測,很多實時特徵用不了,而且離線訓練,模型更新也較慢,使用Spark進行訓練,可選模型少,效率低,訓練資料的規模有瓶頸。

  為了解決第一代離線使用的弊端,vivo網際網路演算法團隊在2017年上半年推出了第二代解決方案。與第一代相比,第二代最顯著的特點就是實現了實時預測和線上訓練,不僅能夠使用上下文,時間等場景資訊,而且能夠學習新廣告,適應概念漂移。

從0到1到無窮,vivo大規模機器學習實踐

  但是第二代解決方案大量使用實時資料,工程端承擔線上預測部分開發,出錯的可能性增大,而且演算法迭代涉及大資料和工程改動,成本高週期長。李珂表示在第二代解決方案開發的過程中得到了重要的經驗,實時特徵工程一定要存原始資料,客戶端上傳日誌的時候要透傳預測的CTR和requestID,模型要先做線下驗證,不光是整體的,還要單個item的。

從0到1到無窮,vivo大規模機器學習實踐

  現在vivo使用的是第三代解決方案,這個方案主要增加了召回模組,支援多條拉鍊的並行召回,支援離線或者線上更新拉鍊,支援灰度拉鍊熱拔插。據李珂介紹該解決方案主要應用在vivo資訊流推薦、關聯廣告和搜尋廣告等業務中。

  李珂認為現在的解決方案也不是完美的,還存在很多不足,主要問題還是出在Spark上,Spark不支援FM,DNN等業界較先進的模型,而且因為沒有Parameter Server,executor的CPU利用率最多到30%。所以未來會考慮選擇TensorFlow CPU Cluster來做替補,通過Kubernetes+Docker彈性部署。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31137683/viewspace-2154041/,如需轉載,請註明出處,否則將追究法律責任。

相關文章