國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp

banq發表於2021-03-12

本文個人研究。有些內容可能並非100%準確,但我已盡力保持其準確性,資訊量和價值。
 

1. Uber系統設計

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
Uber的技術可能看起來很簡單,但是當使用者從應用程式請求乘車,而駕駛員到達將他們帶到目的地時,遊戲就在幕後開始
Uber的基礎設施由數千個服務和TB級資料組成,支援平臺上的每一次旅行。
該系統主要是用Python編寫的,並使用SQLAlchemy作為資料庫的ORM層。實際的體系結構適合在一些城市中進行相對少量的旅行。
該公司的後端現在不僅可以處理計程車,還可以處理計程車,送餐,貨運等等。
 

2. YouTube影片推薦演算法

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
圖片來源:KDNuggets
當使用者在YouTube上發現影片時,會在裝置的下方或右側丟擲使用者可能會按特定順序喜歡的推薦影片列表。
本文中描述的模型著重於兩個主要目標。使用了寬和深模型架構,該架構將寬模型線性模型(儲存)的功能與深層神經網路(泛化)結合在一起。廣泛和深入的模型將為每個已定義的目標(參與度和滿意度)生成預測。
 

3. Twitter系統設計

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
圖片來源:程式碼karle
 

4.哈佛商學院的Spotify音樂推薦演算法

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
圖片來源:哈佛商學院
Spotify如何使用機器學習來推薦音樂?
該公司同時使用三種推薦模型和其他技術。哈佛商學院描述的三種模式是
-CF(又名協作過濾):用於分析您的行為並將其與其他使用者的行為進行比較的模型
-NLP aka自然語言處理模型-掃描網際網路並分析有關Spotify目錄的文字
-音訊分析:用於分析原始音訊檔案的模型
 

5. Netflix系統設計

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
圖片來源:Medium / Narendra L
Netflix在兩個雲中執行:AWS和Open Connect。兩種雲必須協同工作,才能提供無數小時的客戶滿意影片。
扮演主要角色的三個主要元件:CDN,後端和客戶端
任何不涉及提供影片的內容都將在AWS中處理。播放後發生的所有事情都由Open Connect處理。Open Connect是Netflix的自定義全球內容交付網路(CDN)。
 

6.個性化和推薦的Netflix系統架構

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
圖片來源:Netflix Tech Blog
儘管未指定每種模型的體系結構細節,但Netflix使用了其論文中提到的各種等級。以下是它們的摘要:
個性化影片排名(PVR)-此演算法是一種通用演算法,通常會按特定條件(例如暴力電視節目,美國電視節目,浪漫史等)過濾目錄,並結合包括使用者功能和受歡迎程度在內的其他功能。
Top-N影片分級程式—與PVR相似,不同之處在於,它僅檢視排名的頭並檢視整個目錄。使用檢視目錄排名首位的指標(例如MAP @ K,NDCG)進行了最佳化。
 

7. Flipkart / Amazon系統設計

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
圖片來源:程式碼karle
設計類似Amazon或flipkart的平臺時的功能要求:
-應該提供帶有交付E他的搜尋功能
-應提供所有產品的目錄
-應該提供購物車和收藏夾功能
-應順利處理付款流程
-應該提供所有先前訂單的檢視
-還有更多
非功能性要求
-低延遲
- 高可用性
-高一致性
 

8.Signal系統架構

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
圖片來源:scc
Signal是適用於Android和iOS的端到端加密通訊應用程式,類似於WhatsApp,但是開源的。它使用TCP / IP(Internet)傳送一對一的訊息和組訊息,其中可以包括文字,檔案,語音註釋,影像和影片,以及進行一對一的語音和視訊通話。為了使用者識別,使用標準蜂窩移動號碼。
 

9.BookMyShow系統設計

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
圖片來源:GFG
在這篇文章中,我們將學習“如何設計像BookMyShow這樣的線上票務預訂系統”。
BookMyShow建立在微服務架構上。讓我們分別看一下這些元件。在著手設計票務預訂系統之前,請先了解一下Book My Show使用的服務和技術。
Bookmyshow使用的技術
-使用者介面:ReactJS和BootStrapJS
-伺服器語言和框架:Java,Spring Boot,Swagger,Hibernate
-安全性:Spring Secrutiy
-資料庫:MySQL
-伺服器:Tomcat
-快取:在記憶體快取中進行Hazelcast。
-通知:RabbitMQ。用於推送通知的分散式訊息佇列。
-付款API:最受歡迎的是Paypal,Stripe,Square
-部署:Docker和Ansible
-程式碼儲存庫:Git
-記錄:Log4J
-日誌管理:Logstash,ELK堆疊
-負載均衡器:Nginx
 

10. Airbnb系統設計

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
圖片來源:程式碼karle
諸如Airbnb,Booking.com和OYO之類的度假租賃巨頭如何工作以提供如此平穩的流程,從房地產上市,預訂到付款?一切都沒有任何小故障
 

11. TikTok的ML支援的推薦引擎

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
圖片來源:TDS
TikTok推薦系統設計的原型是以使用者為中心的設計。簡單來說,TikTok只會推薦您喜歡的內容,從冷啟動調整到對活躍使用者的明確推薦。
TikTok從未向公眾或技術界透露其核心演算法。但是,基於透過公司釋出的零散資訊,以及極客使用反向工程師技術發現的蹤跡,完成了此推薦工作流程。
讓我們將此工作流程分為多個部分
步驟0:用於使用者生成內容(UGC)的Duo-Audit系統
步驟2:基於指標的稱量
步驟3:使用者設定檔放大器
第4步:精品趨勢池
其他步驟:延遲點火
 

12. Google Maps系統設計

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
圖片來源:程式碼karle
設計類似Google Maps的系統的功能要求:
-能夠識別道路和路線
-在2點之間旅行時查詢距離和預計到達時間
-應該是可插拔的模型,以防我們希望在那些有需求的產品上建立基礎
非功能性要求
-高可用性-該系統永遠不會當機。我們不希望我們的使用者在茫茫人海中迷路。
-準確性-我們預計的預計到達時間(ETA)不應與實際旅行時間相差太大。
-及時響應-應在幾秒鐘內準備好響應。
-可擴充套件-像Google Maps這樣的系統每秒接收大量請求,因此應以一種能夠處理這些請求以及請求數量激增的方式進行設計。
 

13.亞馬遜產品推薦演算法

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
圖片來源:python的AI
該演算法包含5個不同的主要概念:
-多個檢視–顯示多個元件,所有專案都顯示在此處
-使用者檢視–顯示有關會話中當前使用者的特定資訊
-專案檢視–顯示有關當前專案的詳細資訊
-推薦檢視–顯示基於當前專案的推薦專案
-資料檢視–視覺化推薦演算法使用的資料結構
 

14. Dropbox系統設計

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
圖片來源:Medium / Narendra L
您是否想知道這些服務在內部如何提供檔案上載,更新,刪除和下載等功能?
-檔案版本控制
-檔案和資料夾同步
-這是這些系統如何在後臺執行的高階解釋
 

15. Google檔案系統設計

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
圖片來源:Medium / Narendra L
Google文件系統的設計分為兩個影片。在第一個影片中,您將學習操作轉換和差分同步。在第二部分中,您將學習具有微服務架構和API閘道器的系統元件。
 

16.Zoom系統設計

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
圖片來源:程式碼karle
現在誰還沒有使用過Zoom或Microsoft團隊或WebEx或某種視訊會議平臺!這些天,甚至都在Zoom上課。如果您正在閱讀本文,我相信您會對它的工作方式感到好奇。
 

17. Yelp系統設計

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
圖片來源:Medium / Narendra L
讓我們設計任何基於位置的服務,例如Yelp或Trip Advisor,在該服務中,使用者可以搜尋附近的地方,例如旅遊景點,飯店,劇院或市場等,使用者還可以登入,還可以新增/檢視評論,照片和評論。的地方。
 

18. Cricbuzz系統設計

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
 

19. 證券交易所繫統設計

國外各大網際網路巨頭的推薦演算法和系統設計 - theinsaneapp
系統設計目標:
-兩個股票型別每秒兩次次訂單匹配(供參考,納斯達克每秒處理超過60k訊息。)
-高可用,可擴充套件,可靠和耐用
-SLA /延遲
-容忍1個資料中心故障
-為特定的地理使用者提供服務將減少延遲

相關文章