说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Netflix公布个性化和推荐系统架构,3种类型作业通实时

HTML文档下载 WORD文档下载 PDF文档下载
Netflix的推荐和个性化功能向来精准,3月27日他们公布了自己在这方面的系统架构。其公布的系统框架图中包含了多种机器学习算法,通过将作业分为离线、近在线和在线三种方式来对抗延时。
Netflix的推荐和个性化功能向来精准,前不久,他们公布了自己在这方面的系统架构。

3月27日,Netflix的工程师 Xavier Amatrain和 Justin Basilico在官方博客 发布文章,介绍了自己的个性化和推荐系统架构。文章开头,他们指出:

要开发出这样的一个软件架构,能够处理海量现有数据、响应用户交互,还要易于尝试新的推荐方法,这可不一点都不容易。

接下来,文章贴出了他们的系统框架图,其中的主要组件包括多种机器学习算法。

他们这样解释其中的组件和处理过程:

对于数据,最简单的方法是存下来,留作后续离线处理,这就是我们用来管理离线作业(Offline jobs)的部分架构。计算可以以离线、接近在线或是在线方式完成。在线计算(Online computation)能更快地响应最近的事件和用户交互,但必须实时完成。这会限制使用算法的复杂性和处理的数据量。离线计算(Offline computation)对于数据数量和算法复杂度限制更少,因为它以批量方式完成,没有很强的时间要求。不过,由于没有及时加入最新的数据,所以很容易过时。个性化架构的关键问题,就是如何以无缝方式结合、管理在线和离线计算过程。接近在线计算(Nearline computation)介于两种方法之间,可以执行类似于在线计算的方法,但又不必以实时方式完成。模型训练(Model training)是另一种计算,使用现有数据来产生模型,便于以后在对实际结果计算中使用。另一块架构是如何使用事件和数据分发系统(Event and Data Distribution)处理不同类型的数据和事件。与之相关的问题,是如何组合在离线、接近在线和在线之间跨越的不同的信号和模型(Signals and Models)。最后,需要找出如何组合推荐结果(Recommendation Results),让其对用户有意义。

接下来,文章分析了在线、接近在线和离线计算。

对于在线计算,相关组件需要满足SLA对可用性和响应时间的要求,而且纯粹的在线计算在某型情形下可能无法满足SLA,因此,快速的备用方案就很重要,比如返回预先计算好的结果等。在线计算还需要不同的数据源确保在线可用,这需要额外的基础设施。

离线计算在算法上可相对灵活,工程方面的需求也简单。客户端的SLA响应时间要求也不高。在部署新算法到生产环境时,对于性能调优的需求也不高。Netflix利用这种灵活性来完成快速实验:如果某个新的实验算法执行较慢,他们会部署更多Amazon EC2实例来达成吞吐处理目标,而不是花费宝贵的工程师时间去优化性能,因为业务价值可能不是很高。

接近在线计算与在线计算执行方式相同,但计算结果不是马上提供,而是暂时存储起来,使其具备异步性。接近在线计算的完成是为了响应用户事件,这样系统在请求之间响应速度更快。这样一来,针对每个事件就有可能完成更复杂的处理。增量学习算法很适合应用在接近在线计算中。

不管什么情况,选择在线、接近在线、还是离线处理,这都不是非此即彼的决策。所有的方式都可以、而且应该结合使用。 …… 即使是建模部分也可以用在线和离线的混合方式完成。这可能不适合传统的监督分类法(supervised classification)应用,因为分类器必须从有标记的数据中批量培训,而且只能以在线方式使用,对新输入分类。不过,诸如矩阵因子分解这样的方法更适合混合离线和在线建模方法:有些因子可以预先以离线方式计算,有些因子可以实时更新,创建更新的结果。其他诸如集群处理这样的非监督方法,也可以对集群中心进行离线计算,对集群节点进行在线作业。这些例子说明:模型训练可以分解为大规模和复杂的全局模型训练,以及轻量级的用户指定模型训练或更新阶段,以在线方式完成。

对于离线作业(Offline jobs),主要用来运行个性化机器学习算法。这些作业会定期执行,而且不必与结果的请求和展示同步。主要有两种任务这样处理:模型训练和中间与最终结果批量计算(batch computation of intermediate or final results)。不过,他们也有一些学习算法是以在线增量方式完成的。

这两种任务都需要改善数据,通常是由数据库查询完成。由于这些查询要操作大量数据,以分布式方式完成更方便,因此通过Hadoop或是Hive、Pig作业就是自然而然的事情。一旦查询完成,就需要某种机制发布产生的数据。对于这样的机制,Netflix有如下需求:

  • 可以通知订阅者查询完成。
  • 支持不同存储方式(不只是HDFS,还有S3或是Cassandra等等)
  • 应该透明处理错误,允许监控和报警。

Netflix使用内部的工具Hermes完成这些功能,它将数据以接近实时的方式交付给订阅者,在某些方面接近 Apache Kafka,但它不是消息/事件队列系统。

无论是离线还是在线计算,都需要处理三种输入:模型、数据和信号。模型是以离线方式训练完成的参数文件,数据是已完成处理的信息,存在某种数据库中。在Netflix,信号是指输入到算法中的新鲜信息。这些数据来自实时服务,可用其产生用户相关数据。


对于事件和数据分发,Netflix会从多种设备和应用中收集尽可能多的用户事件,并将其集中起来为算法提供基础数据。他们区分了数据和事件。事件是对时间敏感的信息,需要尽快处理。事件会路由、触发后续行动或流程。而数据需要处理和存储,便于以后使用,延迟不是重要,重要的是信息质量和数量。有些用户事件也会被作为数据处理。

Netflix使用内部框架Manhattan处理接近实时的事件流。该分布式计算系统是推荐算法架构的中心。它类似Twitter的 Storm,但是用处不同,而且响应不同的内部需求。数据流主要通过 Chukwa,输入到Hadoop,进行处理的初步阶段。此后使用Hermes作为发布-订阅机制。

Netflix使用Cassandra、EVCache和MySQL存储离线和中间结果。它们各有利弊。MySQL存储结构化关系数据,但会面临分布式环境中的扩展性问题。当需要大量写操作时,他们使用EVCache更合适。关键问题在于,如何满足查询复杂度、读写延迟、事务一致性等彼此冲突的需求,要对于各种情况到达某个最优点。

在总结中,他们指出:

我们需要具备使用复杂机器学习算法的能力,这些算法要可以适应高度复杂性,可以处理大量数据。我们还要能够提供灵活、敏捷创新的架构,新的方法可以很容易在其基础上开发和插入。而且,我们需要我们的推荐结果足够新,能快速响应新的数据和用户行为。找到这些要求之间恰当的平衡并不容易,需要深思熟虑的需求分析,细心的技术选择,战略性的推荐算法分解,最终才能为客户达成最佳的结果。

原文链接: Netflix公布个性化和推荐系统架构

“ 第五届中国云计算大会 ”将于2013年6月5-7日在北京国家会议中心隆重举行。猛击报名! 

相关活动已经火热启动:

2013中国云计算大调查,每周大奖等你拿! “ 

Innovation Cloud 2013云创新产品与应用项目征集,欢迎研发者、团队和创业企业参加! 

研发人员超过500,基金会金牌会员,华为豪赌OpenStack New way of thinking:索尼SmartWatch 2应用开发马拉松大赛圆满结束 离了你地球照样转,谷歌地图并非苹果的必需品 面试必备的9大成功秘诀 Chuck Goldman:乔布斯从来不会说苹果不是企业应用的公司 全球最大的图片社交分享网站Pinterest发布首个API UX设计程序的五个谬论 研发周报:2013年美国开发者薪资调查报告 【开源推荐】PredictionIO:构建预测功能的机器学习服务器 只需4步 百度SiteApp助力京华网移动版落地 Windows Azure开放公测5个月的收获 RDS添加PostgreSQL支持 几家欢喜几家忧 首届智能硬件峰会:解读硬件创业机遇与挑战(下) 平台与技术专题论坛(二):游戏开发实践分享及IE11新体验 看Twitter上市后的入职面试题 六届中国大数据技术大会PPT精粹(三) AMD推多款异构计算开发工具 着力打造APU软件生态系统 Ceylon 1.0发布:又一个“Java语言替代品”? HTML5开发工具:英特尔XDK New 苹果公司为何“情系”PrimeSense 微App专场:不同平台下微App开发运营那些事 25载工程经验,HBase七年——BDTC2013讲师Michael Stack 或许对你创业有所启示:10个英国快速增长的科技创业公司 小米游戏中心10月报告:分析各种手游活动之优劣 欢网王智勇:传统电视厂商须补互联网基因 透露与百度合作细节 支付宝声波支付之初体验 首款使用HSA架构的Kaveri APU、多款异构计算开发工具APU13上齐亮相 分享10段实用的HTML5代码 十条建议送给那些初入职场的小白 这是要灭掉DC的节奏?谷歌欲推Android摄像头API 支持RAW 专访产品经理Markus Spiering:冬眠多年后的Flickr如何在夹缝中生存? 懂串口编程的哥们帮帮忙?? 如果数据窗口显示有数据,如何用代码实现数据窗口不显示数据? 怎样使JSP和Servlet共用一个Bean?急急急 如何才能获取运行时指定一表的字段信息和索引信息 请问如何定义任意组合的热键?请给例子 怎样让工具条缺省是漂浮着的啊?(先答先给分,50分全送) 3000-5000元寻求软件开发合作! 怎么把图片设为桌面? 3000-5000元寻求软件开发合作!!! tfilesteam怎么才能显示出文本 pb中如何执行sp_who并得到结果 3000-5000元寻求软件开发合作!! 怎么用IHTMLDocument2接口查询IHTMLElement接口 3000-5000元寻求软件开发合作!!!!! 日期数据类型的问题;MDI子窗口的问题。 top851 用VC打开SQL数据库问题! QR怎樣讓報表分列 诚征工程外包 我的AOUTOCAD总装不上? 如何实现在asp页面上操作,备份数据库? PB中发送HTML邮件问题 各位仁兄。我要在内存位图上作画。怎么搞。help.255' 刷新另一个页面的问题 ■■BCB没有PTR函数?DELPHI中的PTR对应BCB中的函数是什么?请高手指教■■ 我加不起分,怎么回事? 求一个位运算的算试 《深入浅出MFC》中一个小问题不明白! 关于键盘消息的问题 谁有《Linux内核源代码分析》.发给我或告诉我连接都给分 在SESSION STARTZ()中是不是不能用ASP脚本程序? 问一个菜鸟级的问题。答者有分。 为何我用CDialogBar生成的停靠栏上Button都是灰色的? Help!!help!!请教如何在vc程序将我的信息发到别人的手机中?? tapi播放语音 关于变量传递问题,请高手帮忙! 有谁在OnDraw()中用过MessageBox()?为什么不是死循环?怎么解释发生的现象? 关于播放flash的问题 把0显示成0.00怎么弄? 简单问题,怎样得到ListView一单元格中的内容,如用GetItemText请问里面的参数怎样添? 全新安装的redhat 7.2为什么启动kde后不能打开Konqueroer浏览器和主目录 研究生在毕业时真的比本科生有优势吗? 请教:谁知道自动控制原理根轨迹乃试图。。,的算法? 我的AOUTOCAD总装不上??? 爱恋是什么东西?是好人就来看!!! 新闻组(NNTP)怎么用? 为何我用 Delphi写的 MDI Child Window关闭后无法打开? 为什么这样画不行呢? 语句char a='\72'则变量a包含几个字符 急,不难的问题(有代码) 问一个幼稚的问题,delphi6.0分为那几个版本,你们都用的哪一个。 将0.2mol/l盐酸200ml与0.1mol/l氢氧化钠100ml混合后,其混合后的溶液显何性?通过计算说明显酸性.碱性.中性? 一块花布,用去全长的4分之1,用去2.5米,这块花布全长多少?一块画布,用去全长的4分之1,还剩7.5米,这块 322 ng/ml 等于多少 μg/ml 室温下0.1mol/L溶液滴定amL某浓度的HCl溶液,达到终点时消耗NaOH溶液bmL.此时溶液中的氢离子浓度是 急求A 0.1/(a+b) B 0.1b/(a+b)C 1*10^7 D 1*10^-7 一根十分之九米长的铁丝,用去四分之三还剩多少米,如果用去四分之三米那还剩多少米 ml等于多少g 中和0.2mol氢离子需要多少克氢氧化钠? 一个圆的半径长为r cm,减少2cm后,这个圆的面积减少了多少?) 停车场停着货车,六个车轮,和轿车,四个车轮共六十辆,有280个车轮,停车场的货车,轿车合多少辆? 一块花布,用去9分之1,还剩9米这块花布全长多少米 一个圆的直径是10cm,另一个圆的面积比这个圆的面积少16派(平方cm),求另一个圆的半径(关键是解得步骤 计算题:在25℃60ml0.1mol·L-1 HAc溶液中,加人40ml0.1mol·L-1 NaOH溶液后,计算在25℃60ml0.1mol·L-1 HAc溶液中,加人40ml0.1mol·L-1 NaOH溶液后,计算该溶液的pH值和缓冲容量。 100mg等于多少克 停车场有80辆小汽车,比货车多三分之一,停车场停有货车多少辆? 一张办公桌有4个抽屉.每个抽屉长60厘米,宽45厘米,深15厘米.做两张办公桌的抽屉共需要木板多少平方米? 100mg等于多少g 停车场内大货车和小货车数量的比是2:5已只有小汽车60辆有大货车多少辆 加加的写字台抽屉长48厘米,宽12厘米,做这样一个抽屉至少需要木板多少平方分米?一个无盖的长方体铁皮水桶,底面是边长为4分米的正方体,桶高0.5米,做一对这样的水桶至少要多少铁皮?小辉拿 100mg/ml的液体现在要80mg要取多少ul?怎么算? 1μg/L等于多少ng/ml? 一张办公桌有5个抽屉,每个抽屉长55厘米,宽45厘米,深7米,做这个办公桌的抽屉至少需要多少平方米木板【得数保留整数】开始时厘米最后换算单位到米 某商店库存的花布比白布的2倍多20米,如果每天卖出30米白布和40米花布,几天后白布全部卖完而花布还剩140米,原来库存这两种不共多少米?用一元一次方程解 世纪联华超市停车场客车的辆数是货车的2.5倍.客车开走50辆,货车开走5辆后,剩下的客车和货车的辆数相等,原来的客车和货车各有多少辆?(列方程解) 停车场里有小汽车54辆,大卡车是小汽车的6分之1,又是小货车的3分之1,停放小货车有多少辆 某商店里库存的花布是白布的2倍,如果每天卖30米白布和30米花布,几天后,白布全部卖完,而花布还剩下120米,原来库存花布多少米?请列式解答. 有一块花布长5米,正好可以做6条同样大小的童裤.每条童裤用布几分之几?每天童裤用布几分之几米? 1.096g/ml等于多少g/l 某商店库存的花布是白布的2倍,如果每天卖出30米白布,40米花布,几天后白布卖完,花布还剩120米,原来库存的两种布各是多少米? 有一块花布长5米,正好可以做6条同样大小的童裤,每条童裤用这块布的几分之几 1.84g/ml等于多少g/l 某商店里花布是白布的2倍,如果每天卖30米白布和40米花布.几天后,白布全部买卖完,而花布还剩下120米,原来 库存花布多少米? 有一块花布长7米,正好可做8条同样大小的童裤.1、每条童裤用这块布的几分之几?2、每条童裤用布几分之几米? 25度时,PH=4.75,浓度均为0.1mol/L的CH3COOH、CH3COONa混合溶液C(CH3COO-)+C(OH-) 某商店库存的花布比白布的2倍,如果每天卖出30米白布和40米花布,几天后,白布全还剩20米,而花布还剩180米.问原来库存花布有多少米?求详细过程,要算式,不要方程,谢谢! 有一块花布长7米,正好可做9条同样大小的童裤.1、每条童裤用这块布的几分之几?2、每条童裤用布几分之几米? 0.1mol/L的CH3COOH溶液与0.1mol/L的NaOH溶液等体积混合的电荷守恒、物料守恒和质子守恒分别是什么? 用一块花布和一块黑布,花布长3.5米,黑布长2.7米,妈妈用它们给小明分别做了一套大小相同的衣服.剩下的花布是黑布的3倍,做一套衣服多少米? 将0.1mol/L的醋酸钠溶液20mL与0.1mol/L盐酸10rnL混合后,溶液显酸性,则溶液中有关微粒的浓度关系正确的是将0.1mol/L的醋酸钠溶液20mL与0.1mol/L盐酸10rnL混合后,溶液显酸性,则溶液中有关微粒的浓度 0.1mol/L的CH3COOH溶液和0.1mol/L的NaOH溶液等体积混合后溶液中微粒的物质的量关系正确的是A c(CH3COO-)>c(Na+)>c(H+)>c(OH-)B c(Na+)>c(OH-)>c(CH3COO-)>c(H+)C c(CH3COOH-)+c(CH3COOH)=0.05mol/L D c(Na+) 将AgCl分别放入0.1mol/L的CaCl2溶液和0.1mol/L NaCl溶液中 AgCl在哪种溶液中的溶解度大? 有一块花布长3米正好做4条同样大小的童裤每条童裤用了这块布的几分之几?每条童裤用布几分之几? 用0.1mol•L1 CH3COOH溶液滴定0.lmol•L-1 NaOH至中性时:c(CH3COO—)+ c(CH3COOH)=c(Na+) 为什么错?以及滴定过程中可能情况. 7.30mL 1mol/L NaCl溶液和40mL 0.5mol/L CaCl2溶液混合后,混合液中Cl-浓度为( )A.0.5mol/L B.0.6mol/L C.1.00mol/L D.2mol/L 0.0001g/ml=多少ppm 高三化学!25度时,将20ml 0.1mol/l CH3COOH溶液和20ml 0.1mol/l HSCN溶液分别与20ml 0.1mol/l NaHCO3溶液混合,实验测得的产生气体的体积随时间的变化如下图,反应结束后所得两溶液中,为什么c(CH3COO-)<c(SCN-)? 30mL 1mol/L NaCl溶液和40mL 0.5mol/L CaCl2溶液混合后,混合液中Cl-浓度为 答案是1mol/L我的疑问是,为什么混合液的体积能相加呢,不是说体积不能相加么.望高手解答体积相加的规则T-T 1.29g/ml等于多少ppm空气中标准的二氧化碳是多少ppm? 做一个体积为96立方分米的长方体抽屉,长8分米,宽6分米,做一个这样的抽屉至少要木板多少平方分米?谁知道 色拉油50g等于多少ml 面粉70g等于多少ml 向20ml 0.1mol/L硫酸铵溶液中逐滴加入0.2mol/L的NaOH 停车场里有36辆大汽车,大汽车数量的1/2等于小汽车的1/3,小汽车有多少辆? 一块长方形的铁板长6米,宽是长的3分之1,这块铁板的面积是多少?周长是多少?算式 25℃时,在25mL 0.1mol•L-1的NaOH溶液中,逐滴加入0.2mol•L-1的CH3COOH溶液,溶液的pH与醋酸体积关系下列分析正确的是(   C.D点时溶液中有:c(CH3COO-)+c(CH3COOH)=2c(Na+)c项为什么是2. 求做一个长方体抽屉至少需要多少木板,就是求这个长方体抽屉的( ) 停车场客车的辆数是货车的1.5倍客车开走42辆后,剩下的客车和货车的车数相等原来客车和货车各有多少辆? 一个停车场里70辆公共汽车,比货车多7/3,比轿车少5/2.停车场里有多少辆货车?停车场里有多少轿车? 要做一个长6分米,宽40厘米,高3分米的长方体木质抽屉,至少需要用多少平方米的木板? 200ml 0.2mol/L的HCl与100ml 0.1mol/L的NaOH混合后,氢离子浓度为多少? 25℃20mL0.1mol/L的NaOH溶液中逐滴加入0.2mol/L醋酸溶液.为什么醋酸体积为20mL时,浓度CH3COO->Na+>...25℃20mL0.1mol/L的NaOH溶液中逐滴加入0.2mol/L醋酸溶液.为什么醋酸体积为20mL时,浓度CH3COO->Na+>H+>OH DL 等于ML 吗?求大神帮助
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn