原标题:个性化推荐系统架构设计(一)
互联网在不断发展,技术在不断演变。作为架构师,工程管理者需要与时俱进。
个性化推荐是一个由数据挖掘和机器学习的综合学科,它基于用户兴趣和喜好,提供相关服务精准的推荐,而且这种口味和喜欢的收集,是在用户无过多参与之情况。
我们以 Service-oriented 架构 — SOA为核心,以 Full Stack 技术为特点,结合当前炙手可热的机器学习在实际软件工程中的运用。我会介绍如何实现文本采集,关键字查询与推荐引擎技术。
推荐系统目标是构建一个高扩展和高可用产品。所用技术栈如下:
Node.js ,RPC / REST, RabbitMQ/Kafka, Crawler, MongoDB, TensorFlow
系统分为如下四部分:
1、Web前端:采用Node.js实现一个动态网站让用户访问,根据当前用户画像返回其感兴趣的内容,包括搜索结果。
说明:前端不处理任何业务逻辑,全部通过 RPC 调用后端服务 API。
2、后端服务层:使用 Python 实现 REST API ,接受前端请求,读写数据库或消息队列,调用推荐引擎,返回当前用户画像的内容,比如 TensorFlow Serving。
3、文章采集器:用来实时采集资讯数据,连续运行(不同的时间规则)的网络爬虫,不断抓取其它网站信息,然后进行过滤&归类&标签,用户画像集合&定义,更新数据库。