|
增量更新
▍5. 丰富的功能特性
5.1 支持额外的特征存储库
-
在推荐系统中,同一个模型,产生的数据除了用于检索的索引库,常常还有视频特征/用户画像的特征数据;
-
这类数据,仅仅只需要查询的功能,并且与同个模型同个版本产出的索引库相互作用,产生正确的召回效果;
-
基于这种原子性更新的特性,SimSvr 支持了额外的特征存储库,用于存储与模型一同更新且仅用于查询的特征数据,帮助业务省去了数据同步与对齐的烦恼。
5.2 支持原子性更新的单表多索引
-
在推荐系统中,ABTest 是非常常见的,多个模型的实验往往也是需要同时进行的;
-
另外,在某些场景下,同一个模型会产生不同的索引数据,在线上使用时要求同模型的索引要同时生效;
-
对于以上两种情况,如果使用多表支持多模型,在索引更新上存在生效时间的差异从而无法支持;
-
SimSvr 对于这种情况,支持了同一张表多份索引的原子性更新,保证了索引能够同时生效。
5.3 多版本索引
-
在 ABTest 场景下,除了有多模型间的实验,还有相同模型不同版本数据的实验;
-
在相同模型中,版本迭代/不同版本进行实验的场景是广泛存在的;
-
如果使用多表支持这样的多版本索引,不管在业务方的使用上,还是在 SimSvr 的管理上,都显得不是那么地优雅;
-
对此,SimSvr 支持了同一张表的多版本管理,并且多版本支持在现网下同时进行服务,业务可以按需请求目标版本,进行灵活的实验。
5.4 支持布隆过滤器、阈值过滤器等
-
在视频号场景中,业务使用 SimSvr 对视频进行索引;
-
在使用某个用户的特征进行召回时,常常召回了许多用户已看过的视频,影响用户体验;
-
通过增加召回结果并在结果中进行过滤,对于重度用户,一样存在上述问题,并且还会导致不必要的性能开销;
-
SimSvr 改造 hnswlib,嵌入了过滤器的逻辑,使得其支持在检索过程中实时对符合特定条件的 key 进行过滤,保证了召回结果的有效性。
5.5 支持过期删除
-
对于一些推荐系统来说,对于数据的时效性要求是非常高的,在数据过了其最佳召回时间段之后,就不应该出现在召回结果中,以免出现不合时宜的尴尬;
-
SimSvr 支持导入带过期时间的数据,在现网召回过程中,实时淘汰过期的 key 以达到准确的召回要求。
▍6. 现网运营情况
-
SimSvr 目前已部署 160+ 个模型索引,使用逻辑核 8000+,总索引量超过 20 亿特征向量,广泛应用于视频号、看一看、搜一搜等推荐业务中。
-
搜一搜基于 SimSvr 建立小程序优质文章的向量索引,提升小程序文章搜索的优质结果召回率。新方案相比旧方案,优质结果召回率提升 7%;
-
搜一搜使用 SimSvr 检索视频指纹,进行相似视频去重;单表索引量高达 1.7 亿 * 128 维,检索平均耗时小于 8ms,日检索量 12.5 亿。
▍7. 总结
随着推荐系统的强势发展,特征检索的使用场景越来越广泛。而作为基础组件,除了要拥有支持亿级索引的基本素养外,在功能特性上也需要不断迎合业务的发展。因此我们开发了 SimSvr,搭配特征存储 FeatureKV,在视频号、看一看、搜一搜等推荐系统中发挥了重要的作用。

(编辑:阜新站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|