个性化推荐系统(四)--- 推荐系统服务端

 推荐系统怎样稳定高效提供服务,持续不断满足业务需求,持续不断面对技术挑战,是每一个服务端开发同学应该持续思考,和持续不断优化线上服务。

        以前我们开发的程序更多的是网站,并且以单体服务形式构建,好处是整个程序一次构建,维护方便,但当公司发展后,组织机构变大,程序由多个人维护,单体程序维护成本高,难于修改,难于持续升级问题就暴漏了出来。影响了线上业务持续发展,产品需求及时上线。

        为了应对大型机构,特别是大型电子商务系统,需要持续不断优化,将单体程序进行横向纵向拆分,每个组织只维护自己的服务,每个模块可进行不断持续的升级优化,微服务将系统拆分,整个系统复杂度降低,并且每个系统部分,根据自己流量情况动态调整资源,可以既保证资源最大化利用,又可以很好的应对618,双11等流量大促情况。

        对于大部分程序微服务已经能够很好的解决问题。当下个性化推荐系统面临问题和一般程序有一定差异性,一方面个性化意味着“千人千面”,每个用户用到数据都不一样,常规缓存策略失效,这就要求对程序不断优化已保证性能。 

        当下个性化推荐正由策略主导,转型到由机器学习算法,深度学习算法,这一过程对于服务端要求要支持更多数据拉取,个性化推荐服务比较核心指标召回率,准确率。所谓召回率是根据用户偏好,兴趣,热门等各种条件拉取文章或sku商品数量大小。准确率比较好理解是召回数据里面多少是用户愿意去点击的,带来多少点击量。       

        当前今日头条,淘宝等个性化推荐服务均是构建在微服务架构之上,整个流程是根据用户信息拉取分类召回集,过滤已经曝光过,已经购买过等分类召回集,根据分类召回集拉取素材,过滤相应曝光,已购买等素材信息,对数据进行品牌,品类分隔优化用户体验,这是原来常规逻辑。线上服务接入GBDT,深度学习DNN等模型后,需要根据素材信息,拉取用户,分类素材,用户素材交互特征,场景特征等多个维度几十个特征,这样特征需要每个用户实时拉取成千上万组,对于线上服务性能稳定性是极大挑战,换个角度看对于提升服务端技术水平也是很好机会。

        线上每分钟10万次访问系统实时拉取大量数据并且进行实时模型计算,是个很有挑战问题,面对问题我们怎么处理呢?首先我们处理这个核心思路是,职责拆分,将模型CTR计算拆为单独服务,召回集由60扩大到200。

       把线上素材特征召回集一下子由200扩大到1000,性能一下降到400ms,性能不可接受,经定位分析发现耗时为计算服务,怎么样才能优化GBDT模型计算性能呢?单个线程解决不了,那就多个线程,这时召回集扩大到一千单整个服务性能由原来400毫秒缩到到60毫秒,扩大召回集成功,线上点击率转换率得到提升,大家努力没有白费,还是很有成就感的。

       再一次扩大召回集,需要将服务拆成分布式,微服务节点只拉取分类召回集,素材找回集特征数据由模型计算节点处理。并分主从节点并由主节点,协调进行分布式计算,减少IO避免特征无用传输,仅返回有意义的数据素材排序,同时每个多线程利用多核计算,将召回集扩大到几千,上万完全满足线上需求。

        线上服务挑战会一直存在,什么样心态面对,会带来截然不同的结果。

微信搜索:debugme123

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CDA数据分析师

工具 | Python数据分析学习指南揭秘

摘要:灵蛇出现,必有异像,Python最热的领域,估计非数据分析、挖掘领域莫属了。以Scikit-Learn为代表的数据分析领域,从这里开始,便是Python的...

1868
来自专栏数据科学与人工智能

【机器学习】机器学习编程语言之争狼烟再起,Python称霸?

随着科技的发展,拥有高容量、高速度和多样性的大数据已经成为当今时代的主题词。数据科学领域中所采用的机器学习编程语言大相径庭。究竟哪种语言最适合机器学习成为争论不...

1768
来自专栏数据的力量

用好思维导图,工作生活有条理

1095
来自专栏腾讯大讲堂的专栏

微信一年扫出多少个二维码?

图像作为一种特殊的语言形式,它克服了音声语言的转瞬即逝性,把信息长久保存下来,传播不再单纯依赖人类记忆力。 二维码通过图形记录着一组二进制数据,成为设备之间交...

20610
来自专栏AI科技大本营的专栏

数据科学中的 R、Python 和 Julia —— 机器学习的学习随想 02

1. 我认为 R,Python 和 Julia 是机器学习和数据科学中三个最重要的语言。任何人如果想在这个领域有所发展,长远来说这三种语言都需要掌握。 2. ...

3208
来自专栏机器之心

业界 | 无缝整合PyTorch 0.4与Caffe2,PyTorch 1.0即将问世

1695
来自专栏CDA数据分析师

机器学习编程语言之争,Python夺魁

来自InfoQ 随着科技的发展,拥有高容量、高速度和多样性的大数据已经成为当今时代的主题词。数据科学领域中所采用的机器学习编程语言大相径庭。究竟哪种语言最适合机...

1928
来自专栏大数据文摘

程序员不能错过的28份技术知识图谱,你的进阶路上必备

1994
来自专栏极客生活

数据分析师从何学起

“您好,我想从事数据分析师这一块,想请教下您,我该从何学起呢?谷歌或百度答案各式各样,一时摸不着头脑。”

551
来自专栏PPV课数据科学社区

☞【可视化】揭秘信息可视化图表的设计方法

文:cherries 转自:百度UED 信息可视化包括了信息图形、知识、科学、数据等的可视化表现形式,以及视觉可视化设计方面的进步与发展。地图、表格、图形,甚...

3426

扫描关注云+社区