您当前的位置:首页 > 电脑百科 > 程序开发 > 算法

国外知名互联网公司的系统设计和推荐算法汇总

时间:2021-07-15 11:10:45  来源:  作者:技术联盟总坛

架构头条

国外知名互联网公司的系统设计和推荐算法汇总

 

作者 | theinsaneApp.com

译者 | 张健欣

策划 | 万佳

今天,我们会讨论一些不同的东西,例如 Spotify、YouTube、Signal Messenger、Amazon 等科技巨头的推荐算法,以及像 Uber、Twitter、Netflix、Airbnb、Dropbox、google Docs、Zoom 之类企业的系统设计

说明:本文基于我的个人研究。有些东西可能不是 100% 准确,但我已经尽力保证它的准确性、信息和价值。

Uber 系统设计

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:Geeks for Geeks

Uber 的技术可能看起来很简单,但当一个用户从应用程序发起一次乘车请求,一名司机到达将他们送往目的地的场景,这背后其实并不简单。

Uber 的基础设施由成千上万个服务和数兆字节的数据组成,来支持平台上的每次旅行。

这个系统主要是用 Python 编写的,使用 SQLAIchemy 作为数据库的 ORM 层。实际的架构对于少数城市中相对少量的旅行来说是不错的。

这个公司的后端现在不仅仅被设计来处理出租车,它还可以处理食品外卖、货物快递等等。

了解更多:https://medium.com/@
narengowda/uber-system-design-8b2bc95e2cfe

YouTube 视频推荐算法

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:KDNuggets

当用户看 YouTube 上的视频时,会在设备下方或右侧抛出一个推荐清单,用户可能会按照一定的顺序喜欢这些视频。

本文所描述的模型着重于两个主要目标。采用的广度 + 深度模型架构,结合了广度模型线性模型(记忆)的功能以及深度神经学习(泛化)的功能。广度 + 深度模型将为每个定义(参与度和满意度)的目标生成预测。

了解更多:
https://www.kdnuggets.com/2019/10/youtube-recommending-next-video.html

Twitter 系统设计

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:code karle

通过视频解说来获取更多细节:
https://youtu.be/EkudBdvbDhs

Spotify 音乐推荐算法

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:Harvard Business School

Spotify 是如何使用机器学习来推荐音乐的呢?

该公司同时使用了三种推荐模型和其它技术。哈佛商学院描述的这三种模型是:

  • CF 又名协作过滤(Collaborative Filtering)模型: 分析你的行为并与其它用户的行为进行比较
  • NLP 又名自然语言处理模型(Natural Language Processing Models)- 扫描互联网并分析有关 Spotify 的目录的文本
  • 音频分析(Audio Analysis)模型: 分析原始音频文件

了解更多:
https://digital.hbs.edu/platform-rctom/submission/discover-weekly-how-spotify-is-changing-the-way-we-consume-music/

Netflix 系统设计

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:Medium / Narendra L

Netflix 运行在两种云上:AWS 和 Open Connect。这两种云必须毫无差错地协同工作,从而提供无休止的让用户满意的视频。

三个主要的组件扮演了主要角色:CDN、后端和客户端。

任何不涉及视频服务的事务都在 AWS 中处理。在你点击播放之后发生的任何事都由 Open Connect 处理。Open Connect 是 Netflix 的定制全球化内容交付网络(CDN)。

了解更多:https://medium.com/@
narengowda/netflix-system-design-dbec30fede8d

Netflix 针对个性化和推荐的系统架构

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:Netflix Tech Blog

Netflix 使用了论文中提到的各种排名模型,但是没有具体说明每种模型的架构。下面是对它们的总结:

个性化视频排名(Personalised Video Ranking, PVR) — 这个算法是一种通用算法,通常根据特定标准(例如暴力电视节目、美国电视节目、浪漫爱情等)过滤目录,并结合用户特性和流行度等辅助特性。

Top-N 视频排名 — 与 PVR 类似,只是它只查看排名的最前面和整个目录。它用一些指标(即查看目录排名的头部,例如 MAP@K、 NDCG)进行优化。

了解更多:
https://medium.com/m/global-identity?redirectUrl=https%3A%2F%2Fnetflixtechblog.com%2Fsystem-architectures-for-personalization-and-recommendation-e081aa94b5d8

Flipkart / Amazon System Design

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:code karle

设计类似 Amazon 或 flipkart 这样的平台时的功能要求:

  • 应该提供一个用交货时间(delivery ETA)进行搜索的功能
  • 应该提供一个所有产品的目录
  • 应该提供购物车和愿望清单功能
  • 应该顺畅处理支付流程
  • 应该提供一个显示所有之前订单的页面
  • 还有许多其它功能

非功能性要求:

  • 低延迟
  • 高可用性
  • 高一致性

通过视频解释查看更多细节:
https://youtu.be/EpASu_1dUdE

Signal 系统架构

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:scc

Signal 是一个用于 AndroidIOS 的端到端加密通信应用程序,有点儿像 WhatsApp,但是是开源的。它使用 TCP/IP(互联网)来发送一对一和群组消息,包括文本、文件、语音信息、图片和视频,以及一对一语音和视频通话。使用标准蜂窝移动电话号码进行用户识别。

了解更多:
https://sorincocorada.ro/signal-messanger-architecture/)

Book My Show 系统设计

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:GFG

在这篇文章中,我们将了解“如何设计一个类似 BookMyShow 的在线订票系统”。

BookMyShow 基于微服务架构构建。我们可以单独查看各个组件。在我们开始设计一个在线订票系统之前,可以先看看 Book My Show 使用的服务和技术。

BookMyShow 使用的技术:

  • 用户界面:ReactJS & BootStrapJS
  • 服务器语言和框架: JAVA、 Spring Boot、 Swagger、 Hibernate
  • 安全: Spring Security
  • 数据库: MySQL
  • 服务器: Tomcat
  • 缓存: 内存缓存 Hazelcast
  • 通知: RabbitMQ,一个用于推送通知的分布式消息队列
  • 支付 API:流行的支付 API 有 Paypal、Stripe 和 Square
  • 部署: Docker & Ansible
  • 代码仓库: Git
  • 日志: Log4J
  • 日志管理: Logstash、 ELK Stack
  • 负载均衡: Nginx

了解更多:
https://www.geeksforgeeks.org/design-bookmyshow-a-system-design-interview-question/

Airbnb 系统设计

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:code karle

像 Airbnb、Booking.com 和 OYO 这样的度假租赁巨头,是如何提供这样顺畅的从信息展示,到预订再到支付的流程的?从头到尾没有一点问题!可以通过视频看看他们的系统设计、技术、工作等方方面面。

通过视频了解更多细节:
https://youtu.be/YyOXt2MEkv4

TikTok's 机器学习支持的推荐引擎

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:TDS

TikTok 的推荐系统设计的原型是以用户为中心的设计。简单来说是,TikTok 只会推荐你喜爱的内容,从冷启动调整到对活跃用户的明确推荐。

TikTok 从不向公众或技术社区透露其核心算法。但是,基于该公司发布的零碎信息,以及极客们使用逆向工程技术发现的线索,提出了这个推荐流程。

我们可以将这个工作流拆分成几个步骤

步骤 0: 针对用户生成内容(User Generated Content, UGC)的双重审计系统

步骤 1: 冷启动

步骤 2: 基于权重的指标

步骤 3: 用户画像投射

步骤 4: 时尚潮流池

其它步骤: 延迟点火(Delayed Ignition)

了解更多:
https://medium.com/m/global-identity?redirectUrl=https%3A%2F%2Ftowardsdatascience.com%2Fwhy-tiktok-made-its-user-so-obsessive-the-ai-algorithm-that-got-you-hooked-7895bb1ab423

Google Maps 系统设计

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:code karle

设计一个类似谷歌地图系统的功能要求:

  • 能够识别道路和路线
  • 在两点之间行驶时得出距离和预计到达时间(ETA)
  • 应该是一个可插拔的模型,以防我们想要建立在那些良好的需求

非功能性需求

  • 高可用性 - 这个系统永远不会宕机。我们不希望我们的用户中途迷失。
  • 良好的准确度 - 我们预估的预计到达时间应该与实际旅行时间之间偏差不会太大。
  • 迅速响应 - 响应应该在几秒内就绪。
  • 可伸缩性 - 像谷歌地图这样的系统每秒会收到巨量请求,因此它的设计方式应该能够处理这些请求,以及请求数量的任何激增。

通过视频查看更多细节:
https://youtu.be/jk3yvVfNvds

Amazon 产品推荐算法

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:AI with python

这个算法包含 5 个主要概念:

  • 多视图——显示多个组件,所有项目都显示在这里
  • 用户视图——显示会话中当前用户的特定信息
  • 产品视图——显示当前产品的详细信息
  • 推荐视图——显示基于当前产品的推荐产品
  • 数据视图——可视化推荐算法所使用的数据结构

Dropbox 系统设计

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:Medium / Narendra L

你有没有想过这些服务是如何在内部提供文件上传、更新、删除和下载功能的?

  • 文件版本管理
  • 文件和目录同步

下面是这些系统如何在底层工作的高级解释:

视频解释:
https://youtu.be/U0xTu6E2CT8

Google Docs 系统设计

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:Medium Narendra L

Google Docs 系统设计分为 2 个视频。在第一个视频中,你将了解操作转换和差别同步。在第二个视频中,你会了解使用微服务架构和 API 网关的系统组件。

视频解释 1:
https://youtu.be/2auwirNBvGg

视频解释:
https://youtu.be/U2lVmSlDJhg

Zoom 系统设计

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:code karle

到目前为止,谁还没使用过 Zoom、Microsoft teams、WebEx 或某种视频会议平台呢!现在甚至在 Zoom 上上课。如果你正在阅读本文,我确定你会对它是如何工作的感兴趣。因此,通过访问下面给出的视频链接,我确信在视频结束时,你能够成功设计一个视频会议系统。

视频解释:
https://youtu.be/G32ThJakeHk

Yelp 系统设计

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:Medium / Narendra L

让我们设计任何基于位置的服务,类似 Yelp 或 Trip Advisor,用户可以搜索附近的旅游景点、餐馆、剧院或超市等,用户还能够登录,添加或浏览评论、图片和景点评论。我们将以 Yelp 为例来了解相关的一切。

视频解释:
https://youtu.be/TCP5iPy8xqo

Cricbuzz 系统设计

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:Medium / Narendra L

视频解释:
https://youtu.be/exSwQtMxGd4

股票交易系统设计

国外知名互联网公司的系统设计和推荐算法汇总

 

图片来源:Tech Dummies

系统设计的目标:

  • 每种股票每秒数千个订单匹配(作为参考,纳斯达克每秒处理超过 60k 条消息)
  • 高可用性、可伸缩性、可靠性和持久性
  • SLA/ 延迟
  • 允许 1 个数据中心故障
  • 为特定地址位置的用户服务将降低延迟

视频解释:
https://youtu.be/dUMWMZmMsVE

原文链接:

https://www.theinsaneapp.com/2021/03/system-design-and-recommendation-algorithms.html



Tags:推荐算法   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
导读:本文的主题为阿里飞猪推荐算法探索实践,首先会介绍电商背景下主流推荐技术的发展,例如基于全空间的CVR预估技术的发展历程等 ( ESMM / ESM^2 / HM^3 );接着会重点结合旅行...【详细内容】
2021-10-21  Tags: 推荐算法  点击:(56)  评论:(0)  加入收藏
商品详情页是手淘内流量最大的模块之一,它加载了数十亿级商品的详细信息,是用户整个决策过程必不可少的一环。这个区块不仅要承接用户对当前商品充分感知的诉求,同时也要能肩负起其他来源导流流量的留存,最终尽可能地激活...【详细内容】
2021-08-04  Tags: 推荐算法  点击:(89)  评论:(0)  加入收藏
架构头条 作者 | theinsaneapp.com译者 | 张健欣策划 | 万佳今天,我们会讨论一些不同的东西,例如 Spotify、YouTube、Signal Messenger、Amazon 等科技巨头的推荐算法,以及像 U...【详细内容】
2021-07-15  Tags: 推荐算法  点击:(121)  评论:(0)  加入收藏
导读:近年来,电商呈现内容化的趋势,以直播和短视频为首,内容化提升了用户体验,增加了平台收益。作为电商的重要流量入口,推荐算法除了应用于商品,现在也被应用于直播场景。我们将以阿里的B类电商网站1688为例,分享直播推荐相...【详细内容】
2021-04-21  Tags: 推荐算法  点击:(287)  评论:(0)  加入收藏
【写在前面】淘宝搜索引擎至今已经迭代了多轮,搜索排序也已经从最开始的统计模型升级到机器学习模型;2010年前是没有标签概念的就是基础标签这些都没有,随着算力的增强,2010年后...【详细内容】
2020-12-29  Tags: 推荐算法  点击:(220)  评论:(0)  加入收藏
指尖在抖音上划过,满屏幕的颜值少女,满屏幕的乡村野趣,满屏幕的都市传奇,满屏幕的生活乐趣。在碎片化的时间里,我们拿着手机,看着屏上的视频,充满了视觉的欢乐与笑语。手指迅速地划...【详细内容】
2020-09-28  Tags: 推荐算法  点击:(199)  评论:(0)  加入收藏
本次分享的主要内容包括以下三个方面:首先是介绍推荐业务背景,包括推荐产品形态及算法优化目标;然后是算法的演进路线;最后重点介绍在线学习是如何在饿了么推荐领域实践的。...【详细内容】
2020-09-21  Tags: 推荐算法  点击:(88)  评论:(0)  加入收藏
读者读完本文后,你会知道每类范式常用的算法有哪些、实现的思路是什么、以及常用的应用场景。本文也可以作为读者落地推荐算法到真实推荐场景的参考指南。一、推荐算法与产品...【详细内容】
2020-08-31  Tags: 推荐算法  点击:(146)  评论:(0)  加入收藏
近些年,随着深度学习理论,GPU 和 CPU 等计算机硬件,TensorFlow、Caffe、PyTorch 等算法平台的发展,深度学习算法在个性化推荐、计算机视觉、自然语言处理、语音识别等领域大放光...【详细内容】
2020-08-04  Tags: 推荐算法  点击:(52)  评论:(0)  加入收藏
今天,算法分发已经是信息平台、搜索引擎、浏览器、社交软件等几乎所有软件的标配,但同时,算法也开始面临质疑、挑战和误解。今日头条的推荐算法,从2012年9月第一版开发运行至今,...【详细内容】
2020-06-22  Tags: 推荐算法  点击:(65)  评论:(0)  加入收藏
▌简易百科推荐
前言Kafka 中有很多延时操作,比如对于耗时的网络请求(比如 Produce 是等待 ISR 副本复制成功)会被封装成 DelayOperation 进行延迟处理操作,防止阻塞 Kafka请求处理线程。Kafka...【详细内容】
2021-12-27  Java技术那些事    Tags:时间轮   点击:(1)  评论:(0)  加入收藏
博雯 发自 凹非寺量子位 报道 | 公众号 QbitAI在炼丹过程中,为了减少训练所需资源,MLer有时会将大型复杂的大模型“蒸馏”为较小的模型,同时还要保证与压缩前相当的结果。这就...【详细内容】
2021-12-24  量子位    Tags:蒸馏法   点击:(9)  评论:(0)  加入收藏
分稀疏重建和稠密重建两类:稀疏重建:使用RGB相机SLAMOrb-slam,Orb-slam2,orb-slam3:工程地址在: http://webdiis.unizar.es/~raulmur/orbslam/ DSO(Direct Sparse Odometry)因为...【详细内容】
2021-12-23  老师明明可以靠颜值    Tags:算法   点击:(7)  评论:(0)  加入收藏
1. 基本概念希尔排序又叫递减增量排序算法,它是在直接插入排序算法的基础上进行改进而来的,综合来说它的效率肯定是要高于直接插入排序算法的;希尔排序是一种不稳定的排序算法...【详细内容】
2021-12-22  青石野草    Tags:希尔排序   点击:(6)  评论:(0)  加入收藏
ROP是一种技巧,我们对execve函数进行拼凑来进行system /bin/sh。栈迁移的特征是溢出0x10个字符,在本次getshell中,还碰到了如何利用printf函数来进行canary的泄露。ROP+栈迁移...【详细内容】
2021-12-15  星云博创    Tags:栈迁移   点击:(19)  评论:(0)  加入收藏
一、什么是冒泡排序1.1、文字描述冒泡排序是一种简单的排序算法。它重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地...【详细内容】
2021-12-15    晓掌柜丶韶华  Tags:排序算法   点击:(16)  评论:(0)  加入收藏
在了解golang的map之前,我们需要了解哈希这个概念。哈希表,又称散列表(Hash table),是根据键(key)而直接访问在内存储存位置的数据结构。也就是说,它通过计算出一个键值的函数,将...【详细内容】
2021-12-07  一棵梧桐木    Tags:哈希表   点击:(13)  评论:(0)  加入收藏
前面文章在谈论分布式唯一ID生成的时候,有提到雪花算法,这一次,我们详细点讲解,只讲它。SnowFlake算法据国家大气研究中心的查尔斯·奈特称,一般的雪花大约由10^19个水分子...【详细内容】
2021-11-17  小心程序猿QAQ    Tags:雪花算法   点击:(24)  评论:(0)  加入收藏
导读:在大数据时代,对复杂数据结构中的各数据项进行有效的排序和查找的能力非常重要,因为很多现代算法都需要用到它。在为数据恰当选择排序和查找策略时,需要根据数据的规模和类型进行判断。尽管不同策略最终得到的结果完...【详细内容】
2021-11-04  华章科技    Tags:排序算法   点击:(37)  评论:(0)  加入收藏
这是我在网上找的资源的一个总结,会先给出一个我看了觉得还行的关于算法的讲解,再配上实现的代码: Original author: Bill_Hoo Original Address: http://blog.sina.com.cn/s/bl...【详细内容】
2021-11-04  有AI野心的电工和码农    Tags: KMP算法   点击:(36)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条