国外各大互联网巨头的推荐算法和系统设计 - theinsaneapp


本文个人研究。有些内容可能并非100%准确,但我已尽力保持其准确性,信息量和价值。
 
1. Uber系统设计

Uber的技术可能看起来很简单,但是当用户从应用程序请求乘车,而驾驶员到达将他们带到目的地时,游戏就在幕后开始
Uber的基础设施由数千个服务和TB级数据组成,支持平台上的每一次旅行。
该系统主要是用Python编写的,并使用SQLAlchemy作为数据库的ORM层。实际的体系结构适合在一些城市中进行相对少量的旅行。
该公司的后端现在不仅可以处理出租车,还可以处理出租车,送餐,货运等等。
 
2. YouTube视频推荐算法

图片来源:KDNuggets
当用户在YouTube上发现视频时,会在设备的下方或右侧抛出用户可能会按特定顺序喜欢的推荐视频列表。
本文中描述的模型着重于两个主要目标。使用了宽和深模型架构,该架构将宽模型线性模型(存储)的功能与深层神经网络(泛化)结合在一起。广泛和深入的模型将为每个已定义的目标(参与度和满意度)生成预测。
 
3. Twitter系统设计

图片来源:代码karle
 
4.哈佛商学院的Spotify音乐推荐算法

图片来源:哈佛商学院
Spotify如何使用机器学习来推荐音乐?
该公司同时使用三种推荐模型和其他技术。哈佛商学院描述的三种模式是
-CF(又名协作过滤):用于分析您的行为并将其与其他用户的行为进行比较的模型
-NLP aka自然语言处理模型-扫描互联网并分析有关Spotify目录的文本
-音频分析:用于分析原始音频文件的模型
 
5. Netflix系统设计

图片来源:Medium / Narendra L
Netflix在两个云中运行:AWS和Open Connect。两种云必须协同工作,才能提供无数小时的客户满意视频。
扮演主要角色的三个主要组件:CDN,后端和客户端
任何不涉及提供视频的内容都将在AWS中处理。播放后发生的所有事情都由Open Connect处理。Open Connect是Netflix的自定义全球内容交付网络(CDN)。
 
6.个性化和推荐的Netflix系统架构

图片来源:Netflix Tech Blog
尽管未指定每种模型的体系结构细节,但Netflix使用了其论文中提到的各种等级。以下是它们的摘要:
个性化视频排名(PVR)-此算法是一种通用算法,通常会按特定条件(例如暴力电视节目,美国电视节目,浪漫史等)过滤目录,并结合包括用户功能和受欢迎程度在内的其他功能。
Top-N视频分级程序—与PVR相似,不同之处在于,它仅查看排名的头并查看整个目录。使用查看目录排名首位的指标(例如MAP @ K,NDCG)进行了优化。
 
7. Flipkart / Amazon系统设计

图片来源:代码karle
设计类似Amazon或flipkart的平台时的功能要求:
-应该提供带有交付ETA的搜索功能
-应提供所有产品的目录
-应该提供购物车和收藏夹功能
-应顺利处理付款流程
-应该提供所有先前订单的视图
-还有更多
非功能性要求
-低延迟
- 高可用性
-高一致性
 
8.Signal系统架构

图片来源:scc
Signal是适用于Android和iOS的端到端加密通信应用程序,类似于WhatsApp,但是开源的。它使用TCP / IP(Internet)发送一对一的消息和组消息,其中可以包括文本,文件,语音注释,图像和视频,以及进行一对一的语音和视频通话。为了用户识别,使用标准蜂窝移动号码。
 
9.BookMyShow系统设计

图片来源: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系统设计

图片来源:代码karle
诸如Airbnb,Booking.com和OYO之类的度假租赁巨头如何工作以提供如此平稳的流程,从房地产上市,预订到付款?一切都没有任何小故障
 
11. TikTok的ML支持的推荐引擎

图片来源:TDS
TikTok推荐系统设计的原型是以用户为中心的设计。简单来说,TikTok只会推荐您喜欢的内容,从冷启动调整到对活跃用户的明确推荐。
TikTok从未向公众或技术界透露其核心算法。但是,基于通过公司发布的零散信息,以及极客使用反向工程师技术发现的踪迹,完成了此推荐工作流程。
让我们将此工作流程分为多个部分
步骤0:用于用户生成内容(UGC)的Duo-Audit系统
步骤2:基于指标的称量
步骤3:使用者设定档放大器
第4步:精品趋势池
其他步骤:延迟点火
 
12. Google Maps系统设计

图片来源:代码karle
设计类似Google Maps的系统的功能要求:
-能够识别道路和路线
-在2点之间旅行时查找距离和预计到达时间
-应该是可插拔的模型,以防我们希望在那些有需求的产品上建立基础
非功能性要求
-高可用性-该系统永远不会宕机。我们不希望我们的用户在茫茫人海中迷路。
-准确性-我们预计的预计到达时间(ETA)不应与实际旅行时间相差太大。
-及时响应-应在几秒钟内准备好响应。
-可扩展-像Google Maps这样的系统每秒接收大量请求,因此应以一种能够处理这些请求以及请求数量激增的方式进行设计。
 
13.亚马逊产品推荐算法

图片来源:python的AI
该算法包含5个不同的主要概念:
-多个视图–显示多个组件,所有项目都显示在此处
-用户视图–显示有关会话中当前用户的特定信息
-项目视图–显示有关当前项目的详细信息
-推荐视图–显示基于当前项目的推荐项目
-数据视图–可视化推荐算法使用的数据结构
 
14. Dropbox系统设计

图片来源:Medium / Narendra L
您是否想知道这些服务在内部如何提供文件上载,更新,删除和下载等功能?
-文件版本控制
-文件和文件夹同步
-这是这些系统如何在后台运行的高级解释
 
15. Google文件系统设计

图片来源:Medium / Narendra L
Google文档系统的设计分为两个视频。在第一个视频中,您将学习操作转换和差分同步。在第二部分中,您将学习具有微服务架构和API网关的系统组件。
 
16.Zoom系统设计

图片来源:代码karle
现在谁还没有使用过Zoom或Microsoft团队或WebEx或某种视频会议平台!这些天,甚至都在Zoom上课。如果您正在阅读本文,我相信您会对它的工作方式感到好奇。
 
17. Yelp系统设计

图片来源:Medium / Narendra L
让我们设计任何基于位置的服务,例如Yelp或Trip Advisor,在该服务中,用户可以搜索附近的地方,例如旅游景点,饭店,剧院或市场等,用户还可以登录,还可以添加/查看评论,照片和评论。的地方。
 
18. Cricbuzz系统设计

 
19. 证券交易所系统设计

系统设计目标:
-两个股票类型每秒两次次订单匹配(供参考,纳斯达克每秒处理超过60k消息。)
-高可用,可扩展,可靠和耐用
-SLA /延迟
-容忍1个数据中心故障
-为特定的地理用户提供服务将减少延迟