排序特征在线服务
从持续产生的用户行为日志,可以处理得到用户画像、预测模型、实体属性等有价值的数据,这些数据都可以看作某个领域的特征(Features)。
数据处理业界已有成熟的框架,比如 MapReduce、Spark、Flink 等,可以满足不同场景的特征数据生成。但如何把特征应用于在线服务,则存在以下挑战:
- 特征存储的挑战。特征数据具有短时高吞吐写、在线读性能高、大批量事务写、版本回退等特点,已有的关系型数据、KV存储系统都无法很好的满足,在线服务使用特征数据的存储成本高昂;
- 特征检索的挑战。特征在业务侧的使用,很多时候都可以抽象为二分类、多分类或排序问题,后面两者在业务中占比很大(如推荐系统中的双塔模型召回和排序,图像检索,文章去重等),且都可以用ANN(Approximate Nearest Neighbor)搜索来统一解决。该问题在学术界已被长期研究,但仍缺少高性能、高可用、易扩展的工业化组件;
- 实时性的挑战。早期的特征数据大多是小时/天级别更新一次,但现在的系统会追求更高的实时性,如在线推荐系统。如何在保持组件的已有特性前提下,支持分钟/秒级的更新,是一个新的挑战;