日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

回顾经典,Netflix的推荐系统架构

發布時間:2024/7/5 windows 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 回顾经典,Netflix的推荐系统架构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這篇文章我們回顧一篇經典博客,Netflix官方博客介紹的推薦系統架構,雖然文章發布已有六年, 但是現在回看起來我自己還是蠻驚訝的,因為Netflix的推薦系統架構居然到現在依然是主流。

當然,框架中的諸多技術在不斷的迭代更新,因為近期與Netflix的很多同行有過交流,也可以更新一下框架中一些模塊的最新進展。

Netflix推薦系統架構圖

Netflix推薦系統架構圖

Netflix的推薦系統從上至下依次分為離線(offline)、近線(nearline),在線(online)三部分。

離線(offline)

存儲離線數據,利用大數據查詢工具進行數據查詢和處理,離線模型訓練。離線部分對于數據數量和算法復雜度限制很少,以批量方式完成數據處理,但是數據處理的實時性非常差,無法做到數據和模型的即使更新。可以看到當時還是hive,pig等工具的天下,現在spark 是主流,但也有越來越多的offline job被合并到near line之中,可以說當前的offline和nearline的界限日漸模糊了。

近線(near line)

基于數據消息隊列,利用一些流計算平臺進行數據的準實時處理。它居于離線和在線之間,既可以以分鐘級別甚至秒級的延時來準實時地處理數據,也有一定的數據批量處理能力。

nearline可以說是近幾年大數據架構發展的重中之重了。當時Netflix開發了自己的流處理框架Manhattan,但現在已經是Flink一統天下的時候,Netflix內部的Flink平臺每天會運行上千個不同的流處理任務。涵蓋了特征實時計算、數據監控、BI、模型實時訓練等等。越來越多的offline任務被替代,也許Kappa架構徹底替代Lambda架構的日子不太遠了。

在線(online)

online部分的主要任務是進行用戶請求的實時處理,模型的在線服務。在線部分需要更快地響應最近的事件和用戶交互,因此對于延遲的要求比較苛刻,一般都要求在100ms以內完成所有處理,這會限制所用算法的復雜性和可處理的數據量。

正是online部分極高的響應延遲要求和相比離線、近線較弱的數據處理能力,要求online部分采用不同的高效的model serving方法去支持個性化推薦服務。這也是前段時間我們專欄花了幾篇文章介紹model serving的原因。

從阿里的User Interest Center看模型線上實時serving方法
如何解決推薦系統工程難題——深度學習推薦模型線上serving?

AWS

大家要注意架構圖右上角的AWS的標志,它意味著Netflix的所有服務器和大數據設施都是架構在amazon的云平臺上的,而且一直沿用至今。作為AWS的第一大用戶,Netflix服務的云化還是非常徹底的。

有的時候我也挺佩服美國這些互聯網公司的選擇,像Netflix、Pinterest這些公司,已經是不折不扣的互聯網巨頭,居然非常放心的使用AWS,AWS確實能夠提供非常專業安全的云服務。這樣開放的精神還是讓我挺感慨的。國內的阿里云發展當然也非常好,但是巨頭級別的公司完全依賴阿里云的案例還是不多,從這一點上,國內和國外整個互聯網的氛圍還是有一些微妙的區別。

不同層之間的配合與系統整體性

可以看到,從離線到在線,數據的實時性從上到下依次增強,而數據規模和處理能力從上到下依次減弱
但作為同一個系統之中的不同功能層,只有整合發揮不同層的優勢,才能夠讓系統整體發揮出最大的作用。所以我們可以在架構圖中看到很多躍層的調用。

比如從online 到nearline和offline通過用戶消息隊列(User Event Queue,現在基本都使用Kafka)來緩存數據流,這是連接online和其他層的接口。

而從nearline和offline中連接online的接口則是algorithm service,online data service,以及model到online層的接口。他們分別存儲了算法結果,數據特征和模型文件。

在架構圖正中央的存儲部分,也有不同的數據庫作為數據中心作為不同模塊的數據交換接口。比如cassandra更適宜存儲大數據量的nosql數據,mysql當然是適合結構化的小數據量數據,而EVcache則作為內存數據庫當作數據緩存使用。當然,技術的發展使得現在已經有更合適的技術選型,AWS的dynamoDB,以及redis都可以作為更好的替代方案。

總結

最后的總結就直接用netflix官方博客的總結吧。

We want the ability to use sophisticated machine learning algorithms that can grow to arbitrary complexity and can deal with huge amounts of data. We also want an architecture that allows for flexible and agile innovation where new approaches can be developed and plugged-in easily. Plus, we want our recommendation results to be fresh and respond quickly to new data and user actions. Finding the sweet spot between these desires is not trivial: it requires a thoughtful analysis of requirements, careful selection of technologies, and a strategic decomposition of recommendation algorithms to achieve the best outcomes for our members.

我們需要具備使用復雜機器學習算法的能力,這些算法要可以適應高度復雜性,可以處理大量數據。我們還要能夠提供靈活、敏捷創新的架構,新的方法可以很容易在其基礎上開發和插入。而且,我們需要我們的推薦結果足夠新,能快速響應新的數據和用戶行為。找到這些要求之間恰當的平衡并不容易,需要深思熟慮的需求分析,細心的技術選擇,戰略性的推薦算法分解,最終才能為客戶達成最佳的結果。

能讓我拍案叫絕的技術經驗不多,上面的標黑部分算是一句,寫的多好,我幾乎可以認為這是一個工程師乃至架構師的最高境界,與大家共勉。

照例跟大家討論一個問題:
Netflix的架構從大框架上看過時了嗎?業界還有其他的推薦系統工程架構方案嗎?

參考資料:
1.https://netflixtechblog.com/system-architectures-for-personalization-and-recommendation-e081aa94b5d8
2.https://www.infoq.cn/article/2013%2F04%2Fnetflix-ml-architecture

本文原創于公眾號「王喆的機器學習筆記」,是資深算法工程師,《深度學習推薦系統》《百面機器學習》作者王喆的個人公眾號,關注推薦系統、計算廣告、個性化搜索的業界前沿進展。

掃碼關注我們

認為文章有價值的同學,歡迎關注「王喆的機器學習筆記」(wangzhenotes),跟蹤計算廣告、推薦系統、個性化搜索等機器學習領域前沿。

王喆的機器學習筆記」近期優質內容

  • 見微知著,你真的搞懂Google的Wide&Deep模型了嗎?

  • 回顧經典,Netflix的推薦系統架構

  • 關于深度學習推薦系統領域的15個問題

  • 從阿里的User Interest Center看模型線上實時serving方法

  • 為什么有些深度學習網絡要加入Product層?

  • YouTube深度學習推薦模型最全總結

夕小瑤的賣萌屋

_

關注&星標小夕,帶你解鎖AI秘籍

訂閱號主頁下方「撩一下」有驚喜哦

總結

以上是生活随笔為你收集整理的回顾经典,Netflix的推荐系统架构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。