知乎推荐系统的实践及重构之路

知乎,推荐系统的实践及重构之路!

1、背景

知乎,是一个大规模的综合性知识内容平台,注册用户数累计2.2 亿,有超过 3000 万的问题,超过 1.3 亿个回答,存在着大量的推荐场景。

知乎推荐系统的实践及重构之路

先讲讲推荐系统的总体流程和架构:

知乎推荐系统的实践及重构之路

显示推荐系统的流程

知乎推荐系统的实践及重构之路

知乎早期部分推荐系统总体架构

知乎推荐系统的实践及重构之路

存在哪些问题呢?

首先,对多路召回支持不友好;

其次,召回索引全部基于Redis

第三点,通用特征和通用监控建设都较困难。

第四点,缺乏统一的校验和落地方案。

第五点,不支持多队列融合。

2、推荐系统重构之路
重构前的思考

1)语言的选择。

2)如何支持多队列混排和支持多路召回的问题。

3)召回索引除了Redis 之外,引入其他索引数据库。

首先,我们先看语言上的选择方案。

知乎推荐系统的实践及重构之路

我们选择Golang,具体理由

1)Golang 天然的优势,支持高并发并且占用资源相对较少。

2)知乎内部基础组件的 Golang 版生态比较完善。

重构之路——架构设计

知乎推荐系统的实践及重构之路

知乎推荐系统的实践及重构之路

知乎推荐系统的实践及重构之路

知乎推荐系统的实践及重构之路

3、遇到的问题及应对方案

1)离线任务和模型的管理问题。

2)特征日志问题。

3)服务监控问题。

遇到的问题

知乎推荐系统的实践及重构之路

知乎推荐系统的实践及重构之路

特征日至问题:理想与现实

知乎推荐系统的实践及重构之路

知乎推荐系统的实践及重构之路

服务监控问题

知乎推荐系统的实践及重构之路

知乎推荐系统的实践及重构之路

知乎推荐系统的实践及重构之路

3、未来挑战

  • 数据、规模快速扩张;
  • 策略用用和业务隔离的协调;
  • 资源调度和性能开销;
  • 多IDC机房数据的同步。

4、总结

  • 重构语言的选择,关键跟公司技术背景和业务场景结合起来;
  • 架构尽量灵活,并不断自我迭代;
  • 监控要早点开展,并尽可能底层化、通用化。

作者:孙付伟

来源:Aicon全球人工智能与机器学习技术大会 资料分享

本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。

(1)
Afenxi朋友们的头像Afenxi朋友们编辑
上一篇 2019-05-20 00:05
下一篇 2019-05-20 18:27

相关文章

关注我们
关注我们
分享本页
返回顶部