SmartNews
Milvus 助力 SmartNews 搭建实时广告推荐系统
< 10 毫秒
P99 延迟助力实现实时数据检索
1 亿+
每日动态更新的向量,系统性能依旧出色
增加营收
为用户推荐更相关的广告,提升广告点击率
SmartNews 团队一直受益于 Milvus 社区,如果一个功能既是我们产品亟需的又是对社区伙伴们有用的,我们很乐意去实现和分享。
Dennis Zhao
SmartNews 简介
SmartNews 总部位于日本东京,成立于 2012 年,在日本市场一直高居新闻类 App 的榜首,在美国市场则是粘性最强的新闻类 App。据 Dennis Zhao,截止于 2021 年 7 月,SmartNews 用户月均浏览时间在所有新闻类应用程序中位列第一,超过 AppleNews 和 Google News 的总和。
用户痛点:广告推荐算法面临技术难题
海量用户意味着投放广告可为 SmartNews 带来更多潜在收益。但是如何在合适的时机针对用户投放最适合其的广告呢? SmartNews AI 基础设计工程师 Shu 解释到:“我们的痛点在于使用大规模机器学习系统处理高维稀疏向量及快速召回海量非结构化数据。”
其实,这些问题并不仅仅是 SmartNews 一家公司所面临的难点,也是业内常见的问题。传统的数据库已经无法满足处理高维稀疏向量的需求。同样,传统数据库也无法实现非结构化数据的高效存储和查询。但是非结构化数据查询是搭建实时推荐系统过程中亟需解决的问题。
在采用 Milvus 前,SmartNews 团队曾尝试使用 Faiss——一款针对高维空间中稠密向量的开源库,可用于相似性搜索和稠密向量聚类。但是 SmartNews 团队也在使用过程中发现了 Faiss 的一些局限性。“首先 Faiss 搭建的系统很难维护,而且扩展性交较差,无法跟上我们平台扩展的步伐。”工程师 Shu 评价到。SmartNews 团队不得不探索其他解决方案来解决性能和可扩展性的问题。最终,他们选择了 Milvus。
解决方案:搭建向量搜索系统并为开源社区做出贡献
Milvus 向量数据库能够处理大规模向量数据,完成向量相似性搜索。正因如此,SmartNews 团队最终选择了在其实时广告推荐系统中使用 Milvus。“经过近两个月的调研选型,Milvus 最终‘胜出’”Shu 说到 ,“Milvus 的优势无法比拟。”Milvus 能够帮助 SmartNews 团队达成高查询吞吐量和低延迟,满足团队 P99 延时小于 10 毫秒的要求。
SmartNews 最初在实时广告向量召回模块中使用 Milvus 的向量相似性搜索功能。Shu 解释说:“我们将非结构化的广告数据转化为向量,并借助 Milvus 的力量高效检索相似向量,从而为用户实时推荐其最感兴趣的广告内容。” Milvus 为 SmartNews 团队赋能,助力其高效从数百万广告数据中筛选出最合适的内容并实时推荐给给用户。
得益于其丰富的功能,Milvus 还被运用到了其他工作中。“除了广告推荐系统中,我们还在实施数据和索引更新模块中接入了 Milvus。这样一来,我们能够确保推荐模型实时更新。”Shu 介绍到。
SmartNews 团队才使用 Milvus 的工程中还深刻感受到了开源社区的魅力。Dennis Zhao 表示:“SmartNews 团队一直受益于 Milvus 社区,如果一个功能既是我们产品亟需的又是对社区伙伴们有用的,我们很乐意去实现和分享。” SmartNews 团队为 Milvus 贡献了动态重加载的功能——一种在调试过程中进行代码编辑的功能。有了这一功能,开发者们不需要在代码断点停止或者重启应用程序,就可以对代码进行修改,并立即看到代码修改的效果,可以大大加速开发周期。
案例亮点:高度可扩展,灵活适应未来需求
使用 Milvus 带来的收益并不只仅仅局限于技术升级。Milvus 还为 SmartNews 带来了更多收益。
SmartNews 工程师 Yusup 向我们介绍了团队面临的另一个挑战:“原始的向量数据更新流程十分复杂耗时,但是 Milvus 的 collection 别名(alias)功能支持新旧数据集间丝滑切换,大大简化了向量数据的更新流程。”在使用 Milvlus 后,广告点击率直线上升,公司收益大幅增长。此外,实时数据和索引更新帮助 SmartNews 更快速响应时刻变化的用户行为,确保广告系统总是能够向用户投放其最感兴趣的广告内容。
SmartNews 即将迎来新一轮的技术升级。Dennis Zhao 表示:“Milvus 2.0 即将发布,我们已在规划迁移至 Milvus 2.0 版本。我们相信新版本性能更优,扩展性更佳。我们十分期待使用新版本 Milvus 搭建更可靠的实时广告推荐系统。”