特征制作之后,需要进行存储到一个数据库中进行存储,一般根据推荐场景实时性的要求,一般会有两种场景:
- 实时性要求不高,推荐结果非在线更新:这种类型的推荐场景,由于对于实时的用户及物品变化趋势不是很需要,则只需要按更新周期,例如一般为按天生成推荐结果,将特征进行生产,然后离线存储在HIve、Mysql等各种数据库中,具体根据业务的数据量进行选择即可,典型的场景有:音乐app中的每日推荐场景,只需要每天批量定时任务,生成推荐结果即可,这类场景的特征工程最为简单
- 实时性要求高,推荐结果需要在线生成:这种类型的推荐场景,对用户及物品的实时变化很敏感,需要根据实时变化做出推荐,这类推荐场景的特征工程是最复杂的场景,也是我们后续讨论的主要场景,例如信息流资讯、广告推荐等场景。
这种类型的场景就需要将特征缓存到高速缓存中,目前用的最多的是基于内存的redis,但是由于内存价格昂贵,造成数据存储的成本比较高,目前各大厂商都在开发基于SSD的磁盘redis,我在vivo及腾讯都有相关产品的使用,目前暂时没有使用过可以做出满足广告、资讯等低延迟产经的磁盘产品,因为随着你的模型的复杂度逐渐增大,特征数量越来越多的时候,特征获取时延将是一个必要考虑的因素。
特征类型
每个业务的特征数据可能都有
特征存储类型
特征序列化
特征压缩
特征管理
待更新。。。