从机器学习的角度讲,推荐系统的实时性的重要之处体现在以下两个方面:
- 推荐系统更新的越快,说明最近用户兴趣更新的越快,越能为用户进行有效推荐;
- 推荐系统更新的越快,模型越容易捕捉最新流行的数据模式,进行流行推荐。
这两方面的原因直接对应着推荐系统实时性的两大要素:特征 的实时性和 模型 的实时性。
一、推荐系统“特征”的实时性
1. 客户端实时特征
客户端是最接近用户的环节,也是能够实时收集用户会话内行为及所有上下文特征的地方,在经典的推荐系统中,利用客户端收集时间、地点、推荐场景等上下文特征,然后让这些特征随http请求一起到达服务器端是常用的请求推荐结果的方式。但容易被忽视的一点是客户端还是能够实时收集session内用户行为的地方。
如果采用传统的流计算平台,如Flink,甚至批处理计算平台,如Spark,由于延迟问题,系统可能无法在3min之内把一个session内的历史行为存储到特征数据库中,如Redis。这就导致用户的推荐结果不会马上收到session内部行为的影响,无法做到推荐系统的实时更新。
如果客户端能够缓存session内部的行为,将其作为与上下文特征同样的实时特征传给推荐服务器,那么推荐模型就能实时得到session内部的行为特征,进行实时推荐,这就是利用客户端实时特征进行实时推荐的优势所在。
2. 流计算平台的准实时特征处理
流计算平台(比如storm、spark streaming、flink)将收到的日志以流的形式进行批量微处理