
文章插图
但问题在于,随着用户高速增长,兴趣模型种类和其他批量处理任务都在增加,涉及到的计算量太大 。
2014年,批量处理任务几百万用户标签更新的Hadoop任务,当天完成已经开始勉强 。集群计算资源紧张很容易影响其它工作,集中写入分布式存储系统的压力也开始增大,并且用户兴趣标签更新延迟越来越高 。

文章插图
面对这些挑战 。2014年底今日头条上线了用户标签Storm集群流式计算系统 。改成流式之后,只要有用户动作更新就更新标签,CPU代价比较小,可以节省80%的CPU时间,大大降低了计算资源开销 。
同时,只需几十台机器就可以支撑每天数千万用户的兴趣模型更新,并且特征更新速度非常快,基本可以做到准实时 。这套系统从上线一直使用至今 。

文章插图
当然,我们也发现并非所有用户标签都需要流式系统 。像用户的性别、年龄、常驻地点这些信息,不需要实时重复计算,就仍然保留daily更新 。
四、评估分析
【今日头条、抖音推荐算法原理全文详解】上面介绍了推荐系统的整体架构,那么如何评估推荐效果好不好?
有一句我认为非常有智慧的话,“一个事情没法评估就没法优化” 。对推荐系统也是一样 。

文章插图
事实上,很多因素都会影响推荐效果 。比如侯选集合变化,召回模块的改进或增加,推荐特征的增加,模型架构的改进在,算法参数的优化等等,不一一举例 。
评估的意义就在于,很多优化最终可能是负向效果,并不是优化上线后效果就会改进 。

文章插图
全面的评估推荐系统,需要完备的评估体系、强大的实验平台以及易用的经验分析工具 。
所谓完备的体系就是并非单一指标衡量,不能只看点击率或者停留时长等,需要综合评估 。
很多公司算法做的不好,并非是工程师能力不够,而是需要一个强大的实验平台,还有便捷的实验分析工具,可以智能分析数据指标的置信度 。

文章插图
一个良好的评估体系建立需要遵循几个原则,首先是兼顾短期指标与长期指标 。我在之前公司负责电商方向的时候观察到,很多策略调整短期内用户觉得新鲜,但是长期看其实没有任何助益 。
其次,要兼顾用户指标和生态指标 。既要为内容创作者提供价值,让他更有尊严的创作,也有义务满足用户,这两者要平衡 。
还有广告主利益也要考虑,这是多方博弈和平衡的过程 。
另外,要注意协同效应的影响 。实验中严格的流量隔离很难做到,要注意外部效应 。

文章插图
强大的实验平台非常直接的优点是,当同时在线的实验比较多时,可以由平台自动分配流量,无需人工沟通,并且实验结束流量立即回收,提高管理效率 。
这能帮助公司降低分析成本,加快算法迭代效应,使整个系统的算法优化工作能够快速往前推进 。

文章插图
这是头条A/B Test实验系统的基本原理 。首先我们会做在离线状态下做好用户分桶,然后线上分配实验流量,将桶里用户打上标签,分给实验组 。
举个例子,开一个10%流量的实验,两个实验组各5%,一个5%是基线,策略和线上大盘一样,另外一个是新的策略 。

文章插图
实验过程中用户动作会被搜集,基本上是准实时,每小时都可以看到 。但因为小时数据有波动,通常是以天为时间节点来看 。动作搜集后会有日志处理、分布式统计、写入数据库,非常便捷 。

文章插图
在这个系统下工程师只需要设置流量需求、实验时间、定义特殊过滤条件,自定义实验组ID 。系统可以自动生成:实验数据对比、实验数据置信度、实验结论总结以及实验优化建议 。
推荐阅读
- 茶能提神亦能安神
- 黑名单|近期319人被共享单车“拉黑”:多数人曾将单车停在高速、高架上
- 头条上的官方教程,我学到东西了
- yum、vim、gcc/g++、gdb、make/makefile Linux开发工具
- 汽车紧固夹紧力连接与浮动连接方式
- 奶瓶买pp还是pa
- 卫星|我国成功发射高分三号03星:实现1米分辨率、1天重访
- 金花茶树怎么种?
- NAT及PAT 网络地址转换
- TCP、UDP以及HTTP的简单讲解
