1、背景
知乎,是一个大规模的综合性知识内容平台,注册用户数累计2.2 亿,有超过 3000 万的问题,超过 1.3 亿个回答,存在着大量的推荐场景。
先讲讲推荐系统的总体流程和架构:
显示推荐系统的流程
知乎早期部分推荐系统总体架构
存在哪些问题呢?
首先,对多路召回支持不友好;
其次,召回索引全部基于Redis;
第三点,通用特征和通用监控建设都较困难。
第四点,缺乏统一的校验和落地方案。
第五点,不支持多队列融合。
2、推荐系统重构之路重构前的思考
1)语言的选择。
2)如何支持多队列混排和支持多路召回的问题。
3)召回索引除了Redis 之外,引入其他索引数据库。
首先,我们先看语言上的选择方案。
我们选择Golang,具体理由
1)Golang 天然的优势,支持高并发并且占用资源相对较少。
2)知乎内部基础组件的 Golang 版生态比较完善。
重构之路——架构设计
3、遇到的问题及应对方案
1)离线任务和模型的管理问题。
2)特征日志问题。
3)服务监控问题。
遇到的问题
特征日至问题:理想与现实
服务监控问题
4、未来挑战
- 数据、规模快速扩张;
- 策略用用和业务隔离的协调;
- 资源调度和性能开销;
- 多IDC机房数据的同步。
5、总结
- 重构语言的选择,关键跟公司技术背景和业务场景结合起来;
- 架构尽量灵活,并不断自我迭代;
- 监控要早点开展,并尽可能底层化、通用化。
End.
作者:孙付伟
本文为转载分享,如果涉及作品、版权和其他问题,请联系我们第一时间删除(微信号:lovedata0520)
更多文章前往首页浏览http://www.itongji.cn/
- 我的微信公众号
- 微信扫一扫
- 我的微信公众号
- 微信扫一扫
评论