解析:个性化个性化个性化,目前搜索引擎的方向,各个公司正在或者将要实现的也是必须实现的功能!
1.业务场景
伴随着市场和技术的发展,个性化已经成为淘宝搜索的一个重要目标。简单来说,个性化就是让每个用户在使用淘宝搜索时都能够获取自己最想要的结果,而不再是千篇一律的展示。实现个性化最直接的手段就是通过分析用户的历史行为日志,为用户打上不同的标签,在搜索中根据这些标签来展示最贴近的结果。
在淘宝,用户属性分析是通过每天在云梯上定时运行的map reduce job来完成的,产出结果导入我们的在线kv存储ups中,搜索引擎通过查询ups获取用户属性来为用户返回个性化的结果。在云梯上执行的全量计算能够进行复杂的模型计算,并且由于利用了云梯强大的计算能力,计算全部用户几十天的日志也只需花费几个小时。
全量计算的不足之处在每次计算的输入数据都是前一天到前N天的日志,无法将用户当天的行为考虑进去,因此得到的用户属性永远是滞后一天的,无法将某些用户当前的属性很好地反映出来。实时增量弥补了这一空缺,通过实时分析用户的行为日志,将最新的用户属性反馈给搜索引擎,能够为用户展现最贴近其当前需求的结果。
2.系统需求
结合我们的业务场景和现状,对实时分析系统大致有以下几点需求。
(1)不影响在线查询的效率。这是一个最基本的需求,也决定了我们系统的定位:离线分析,将相对较重的分析过程放在离线阶段完成,在线过程只需要查询离线计算产出的结果即可。
(2)实时。既然称为实时系统,这也是一个起码的要求。至于要