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

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云创新产品与应用项目征集,欢迎研发者、团队和创业企业参加! 

最好的Java IDE之争:Eclipse PK IntelliJ IDEA Intel发布E5 2600 v2处理器 开放硬件监控信息 XP寿终大限将近 微软再次呼吁用户尽早“分手” Dropbox CTO:离开办公室就焦虑的技术宅男 看雪学院“走进企业看安全”活动百度站落幕 九大设计技巧+作品赏析 激发你的创作灵感! 排名前十CEO的工资条,你怎么看? 麻省理工TR35之IT界年轻有为创新者(下) Storm的“翻版”:LinkedIn开源实时数据处理系统Samza 呼吸监测耳机:一个在“呼吸”上做文章的可穿戴设备 谷歌7年210亿美元的基础设施建设,及可供17万家庭使用的风电 Touch ID很安全?德国黑客宣布已绕过苹果指纹识别系统 纽约警方鼓励用户升级iOS 7 你想好了吗? Android开发者不可或缺的四大工具 Mozilla开源TogetherJS:让网站拥有实时协作功能 可穿戴技术专家Jawbone UP向所有开发者开放API 18款在线代码片段测试工具 Gartner咨询公司研究副总裁彼得·福斯特布鲁克:互联网安全新兴威胁与挑战 美国智库战略与国际研究中心(CSIS)詹姆斯·刘易斯:网络安全神话、传说与现实 云安全联盟中国分会理事赵粮:建设可信的云生态环境 Web前端优化最佳实践及工具集锦 2013中国互联网安全大会(ISC)9月23日隆重举行 科技界最聪明的人:Facebook首任CTO激情燃烧的岁月 继乔布斯时间胶囊出土 其儿时的家或成历史遗迹 微软向7亿Windows 7用户发布Internet Explorer 11预览版 乐视腾讯深度合作 超级电视26日易迅网首发 开源jQuery插件推荐 帮你快速构建单页网站 实时数据追踪?Salutron发布LifeTrak API Infoworld Bossie Awards:最好的开源App锦集 除了乔布斯的鼠标 值得装入时间胶囊的十大科技产品 2013中国互联网安全大会:云环境带来的安全隐患和机遇 请各位搞VxWorks 的高手指导一下菜鸟!一定进来看看!谢谢! C/s结构,从一个c端发一些数据(如报表等)到另一个c端,接收到后最好能返回一个成功消息,有什么好的方案么 我受不了,救命啊 如何使得树形控件中的一个没有子项目的目录前面显示为减号或不显示'+'和'-'? 如何实现将页面的内容导入到word中?在线等,急! 怎么回事?主机名可以CONNECT到SQL服务器,用IP地址不行了 打印的问题!!!! pb8与win2000server 小小问题?如何得到窗体右上角关闭,最大化,最小化的句柄??? 多少分才能有两绿三角?多少分才能有一个红星? 哪位同志知道网站的风格像 win xp? 请问哪里可以下载xml spy的中文帮助文件? 请教如何将.cab包解开 50分﹕HELP!!!為什么我的report分發后﹐項目全錯位了﹐應如何解決﹖ 各位,在工程中怎样用资源文件(*.res) !!请问如何利用ADO做三层设计? 哪位大哥有vfw.pas的啊?60分相赠 ATL在中国的现状怎样,大家进来说说!!! 如何黑一个网吧~~~ 急:问个初级问题,希望能得到解决 这个论坛不错! 能不能让C盘只读不写啊? 为什么CopyMemory在NT下的效率与在98下的效率不同! cmos密码如何破解 database控件的问题????? 关于if 语句! 急急急...所以的程序一运行报错:This Example Program Can Only Be Run From With The IDE? 我的机器一运行该页面就慢 怎样设置FileListBox1的路径 free,delete ,Free()的区别? 初学网络,从何学起?如何过渡 请问生成EXE文件以后,要把PB下的哪些dll文件拷贝过去,全部都要吗??还是只要拷贝几个就可以,请问是哪几个? 如何实现自动编号(在线等待) 请问如何在使用insert into时同时使用select和values语句?(十万火急) 怎样改变ListView1在详细显示模式下表头的高度(调用小5号字体)? 我用的是TomCat,请大侠们帮我看看这段调用access数据库的jsp程序那里错了!每次都提示“From字句语法错误”! 如何对数据窗口中的内容进行批量修改?急!!!!! 全上海暂无业者,联合起来!!! 请问如何在使用insert into时同时使用select和values语句?(十万火急) 高分解答!!!谢谢!!!! 字符'\'在c++中当什么看 初学者的problem,讲一讲 一个菜问题 我的爱机是不是感冒了? 关于.NET的资源占用问题? 大侠们好!!!为什么我用DBEdit输入中文可是在DBGrid中显示的是“#”?? 请教Sybase高手3个问题 有关打印的问题,急! 关于响应键盘事件!!菜题送分急!看看我的记录,我一向是当天给分的!!只要题答好。 SetParaFormat的问题,烦死了。 同时登上"vc版"和"网络通信版"榜首,高兴散分 形容拘谨 谨慎的词语我只等30分钟 求 8086/8088逻辑地址转换成物理地址看pc技术的国三教材,有2处不懂,望好心人指教1.8086有20位地址线,因此可以直接寻址的最大内存空间为1mb(2的20次方b),其范围为00000h~fffffh.请详细解释这句话2 埃菲尔铁塔是为谁而修建的 3P空气开关是否能改成1P一个和2P开关一个? 8086中的逻辑地址和物理地址是什么?什么是8086中的逻辑地址和物理地址?逻辑地址如何转换成物理地址? 某品牌太阳能热水器集热器面积为S=2m2,热效率为η=40%(即热水器能将照射到玻璃吸热管上的太阳能的40%转化为水的热能),该地点太阳能辐射到地面的平均功率为P=1.4X103W/m2(即平均每平方米每秒 拘谨拘束,写出相应的词语 黄河支流有哪些,分别流经哪些地方?长江的支流有哪些,分别流经哪些地方?知道的说点! 为什么北极只有冬天和夏天? 形容拘谨,不自然,不安定的样子.(什么词?) 不改变下列字母的顺序,请在60秒钟内找出12表示人体部位的英语单词,把它们写在空位上.HEADNECKNOSEYEARMOUTHAIRHANDLEGFOOTOE 1._________ 2.__________ 3.__________4._________ 5.__________ 6.__________7._________ 8._______ 北极夏天热吗? 地球哪个地方温度最高? 什么样的玉米秸秆打捆机可以捆出300~400公斤的方捆 HEADNECKNOSEYEARMOUTHAIRHANDLEGFOOTOE在不改变顺序的情况下写出12个人体部位的英语单词 空气开关1P﹢N和2P各指什么意思?有什么区别?家用空气开关总开关,不用带漏电的会不会好点,因为怕家中一处漏电导致全部停电… 诗人思念家乡的诗句和 诗人一腔爱运用国热情的诗句 太阳能热水器受光面积1.2平方米,内装50千克水太阳每分钟辐射到1平方米的热量是8*10的四次方焦,若百分之40热量被水吸收,20度的水1小时后水温多少(2)煤气的热值是4.2*10的七次方焦每千克, 地球上什么地方的温度最高? 请告诉我爱国主义题材的古诗和思念家乡亲人的古诗各一首!要题目、诗人、诗人的朝代 简易太阳能热水器受光面积为1.4m,内装80kg水,太阳每分钟辐射到1m面积上的热量为8×10的四次方J,如果60%的热量被水吸收,问:20℃的水晒3h后水温升高到多少摄氏度?(水的比热容是4.2×10J/(kg*℃) “形容死得毫无价值”这个意思的词语是什么? 变电站一次二次部分都包括什么 太阳能热水器受光面积1.2平方米内装50kg的水,太阳每分钟辐射到1平方米面积上的热量是8×10的四次方J的热量被水吸收,问:20摄氏度的水晒1h后水温达多少? 形容死的词 8086/8088系统中有20根地址线,它的存储空间最大是多少?将该内存空间顺序分为16段,每段64K,试写出第二段和最末段的地址范围. 某型号简易太阳能热水器受光面积为1.5m2,内装60kg水,太阳能的辐射热是7×10的4次幂J/m2·min,如果60%的热量被水吸收,问:(1)20℃的水晒3h后水温升高多少摄氏度?(2)煤气的热值是4.2×10的7次 死的有意义有价值的相关诗句 8086存储器系统的1MB空间为什么要分为奇偶两个部分,字访问时应注意什么 怎么理解日本福岛第一核电站爆炸中的“化学反应与能量”问题? 太阳温度很高是因为它在发生着核聚变,地球中心有五千度的温度是因为什么?有的说是公转造成的,可是地...太阳温度很高是因为它在发生着核聚变,地球中心有五千度的温度是因为什么?有的 埃菲尔铁塔是什么时间建造的 日本福岛核电站事故怎么整出了碘131. 什么是温度在运动中核聚变 法国的埃菲尔铁塔是什么时候建成的? 读了这段话,你感觉到了什么?哪个句子特别强烈的传递了这种感觉?后生们的胳膊、腿、全身,有力地搏击着,疾速地搏击着,大起大落地搏击着.它震撼着你,烧灼着你,威逼着你.它使你从来没有如 表皮中有神经末梢吗 埃菲尔铁塔是什么时候建立的? 8086储存器系统中物理地址是怎么样构成的 1.十指连心是不是因为表皮内分布有感觉神经末梢?2.当一只苍蝇飞到你面前是你的眼睛会闭上是因为?2.A.感觉 B.刺激 C.反射 长江黄河主要支流及汇入长江的城市 存储器的逻辑地址由哪几部分组成?存储器的物理地址是怎样形成的? 地球上什么地方温度最高? 埃菲尔铁塔建于什么时期? 为什么北方夏季日照时间长? 比喻非常有滋味 是什么词语的意思? 按照神经冲动的传递方向顺序反射弧结构依次包括 当北极出现极昼时,日照是什么季节?快,只限一小时啊! 核聚变产生的几亿的温度是怎么测的?用什么仪器测啊,好像没有东西能承受几亿度的高温啊 在反射弧中,哪个结构产生神经冲动,哪个结构传导神经冲动,那个结构发出“痛的”信号, 北半球夏天,北极一天日照时间 地球为什么有天气 在8086/8088CPU中,物理地址和逻辑地址是指什么?已知逻辑地址为2E00:5A00H,计算出其对应的物理地址? 夏季北方和南方哪个日照时间长?原因 现在的地球温度是多少` 在8086里 什么是物理地址,逻辑地址 为什么北极夏天也这么冷请跟阳光的照射角度联系一下 拘谨 ,拘束的相应词语 如何书写热化学反应方程式 额定功率与视在功率的分别近来用功率表测了一下我的HIFI功放,额定功率大概是337W 功率因数只有0.7 电流有2.11A左右.这样 W=UI 2.11*220=464瓦.请问,功放实际消耗的功率是不是就是用四百多瓦去算
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘