原标题:个性化推荐系统架构设计(一)

互联网在不断发展,技术在不断演变。作为架构师,工程管理者需要与时俱进。

个性化推荐是一个由数据挖掘和机器学习的综合学科,它基于用户兴趣和喜好,提供相关服务精准的推荐,而且这种口味和喜欢的收集,是在用户无过多参与之情况。

我们以 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、文章采集器:用来实时采集资讯数据,连续运行(不同的时间规则)的网络爬虫,不断抓取其它网站信息,然后进行过滤&归类&标签,用户画像集合&定义,更新数据库。

用户画像建模

用户行为收集

个性化推荐系统收集的用户行为信息,主要来自以下两类数据:

1)访问日志

一般为Web服务器的日志,如Nginx。其内容包括来源IP,客户端,HTTP响应码,来源,UserAgent代理版本等。

网站访问日志一般不会有遗漏,无论是什么场景的产品,对于开发者都是个宝贵财富,是数据统计、挖掘与分析的基础和重要来源。

2)客户端

一些用户操作行为,在日志里不能完全体现,外部环境如硬件,操作系统,软件,内部如分享,收藏,转发以及用户社交帐号(比如微博)、Cookie、浏览深度和时间长度。一般采用Ajax异步处理。

这些埋点用事先准备好完备的REST接口,加载相应服务。为提高效率,一般服务器采用异步处理,使用MQ(Rabbit或Kafka)队列来统一收集数据 。

服务器端可启动多个服务进程实时监听这些MQ数据,然后做相应处理。

数据解析

接下来我们需要对类数据进行解析。我们可定时大批量处理,小批量处理以及单条逐一处理。

1)定时大量处理。使用Scribe/Scribe,或Python/Java若干小时或每天处理。一般为处理用户画像;

2)逐条处理。主要针对埋点的用户数据 处理,借助MQ,加上Storm进行处理。

3)小批量处理。每隔分钟级,秒级的的单条处理。

责任编辑:

python个性化推荐系统毕业设计_个性化推荐系统架构设计(一)相关推荐

  1. python电影推荐算法_电影推荐系统python实现

    寒假在家保持写代码不手生,实现了这个小推荐系统. 简介:推荐系统的一种简单实现就是,给定一个用户A,找到所有用户中与A最相似的用户B,把B看过的电影中A没看过的挑出来,再把B评分最高的几部挑出来. 1 ...

  2. java 单例模式 泛型_设计模式之架构设计实例(工厂模式、单例模式、反射、泛型等)...

    设计模式, 架构设计实例, 使用到了工厂模式.单例模式.反射.泛型等 项目包结构如下图: 1.bean包 (1)Base.java父类 package test.bean; public class ...

  3. 5000并发的qps是多少_高并发架构设计

    点击蓝字,关注我们 01 概述 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求. 高并发一方面可以提高资 ...

  4. delphi7 dbgrid缓存模式下怎么判断输入重复记录_互联网公司的架构设计要怎么落地?| 技术头条...

    作者 | 张辉清 责编 | 胡巍巍 你做架构设计了吗?你认为要不要做架构设计?你的公司有没有做架构设计?互联网公司的架构设计又要怎么做? 我不知道你是怎么想的,在我得到的答复中,大部分人认为要做架构设 ...

  5. 智能个性化推荐_个性化推荐算法_新闻推荐系统_人工智能推荐平台|Giiso智搜...

    智搜(Giiso)信息成立于2013年是中国领先的"人工智能+资讯"领域的国家级高新技术企业,其自主研发的写作机器人,编辑机器人是可以从各个行业领域快速编辑写稿的人工智能机器人. ...

  6. Python+Vue计算机毕业设计高考志愿推荐系统97d19(源码+程序+LW+部署)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置: Python3.7.7+Django+Mysql5.7+pip list+HBuilderX(Vscode也行)+V ...

  7. python制作圣诞贺卡_个性化的圣诞贺卡

    用自定义的圣诞贺卡传播节日的欢呼声.上载您自己的假期照片以创建照片圣诞贺卡,或浏览数百种季节性贺卡模板. 最重要的是,它是免费的! 可自定义: 此贺卡模板可以完全自定义.您可以编辑内容,替换图像,更改 ...

  8. python爬虫项目毕业设计_基于python爬虫的电影推荐网站的设计与实现毕业论文+初稿+项目源码+安装说明+使用说明...

    摘 要 现在电影资源是网络资源的重要组成部分,随着网络上电影资源的数量越来越庞大,设计电影个性化推荐系统迫在眉睫.所以本文旨在为每一个用户推荐与其兴趣爱好契合度较高的电影. 本系统包含电影前端展示界面 ...

  9. python开发bs系统_基于BS架构的招聘管理系统的开发

    基于 B/S 架构的招聘管理系统的开发 近年来 , 伴随着中国在全球经济的地位日益强大 , 中国国内企业处于迅速发 展阶段.企业的发展离不开人才的引进和更新 , 而这也相继带来了人力资源管理 的巨大发 ...

最新文章

  1. 系统服务器巡查表,服务器操作系统巡检表
  2. AutoHotKey Script AHK脚本++Topre Realforce 104Pro十周年纪念版静电容键盘
  3. android Button背景高度被拉伸问题--解决方案
  4. postgres中文文档
  5. 笔记-项目风险管理-转-从木桶效应谈对于安全管理的认识
  6. 巴科斯范式BNF: Backus-Naur Form介绍
  7. openstack开发_在OpenStack开发中有效使用指标
  8. android adb 模拟来电,在Android模拟器中模拟GPS、打电话、发短信……
  9. 子序列问题sequence(【CCF】NOI Online能力测试2 提高组第二题 )
  10. php数字转千分制,JS实现金额千分制的转换以及还原
  11. EMNLP 2021 | 论辩挖掘在不同领域下的应用
  12. mysql show profiles 使用分析sql 性能
  13. STM32CubeMX | 30-使用硬件SPI读写FLASH(W25Q64)
  14. 决赛名单出炉!“云”上巅峰群雄竞
  15. 给网页质量进行瘦身的办法-金瑞帆建站
  16. Google服务和软件大全
  17. 给热心老哥搭个窝,2021年30分钟用Discourse搭建新一代BBS论坛站全攻略
  18. android版本14,TeamViewer14
  19. Easy Excel
  20. android 比较符合android构架,优雅的定义全局变量

热门文章

  1. android仿微信拍摄视频教程,仿微信视频拍摄UI, 基于ffmpeg的视频录制编辑(上)
  2. couple和double的区别_DC couple与AC couple的区别? couple与pair的区别
  3. 做网站不买服务器百度能搜到,做网站教程:哪几种链接是不会被百度抓取的
  4. 倍福PLC部署Jenkins入门使用笔记
  5. 靴子落地!Mobileye正式启动4D成像雷达量产进程
  6. oracle创建列默认值,表列添加默认值的方法
  7. 一个很简单的淘宝优惠券搜索助手 大家看看有没有用吧
  8. 格签名相似概念区分: SVP、SIS、LWE的区分
  9. java string.concat_Java String concat() 使用方法及示例
  10. 高仿Telegram IM Chat 聊天软件 即时通讯 在线聊天加社群 纯静态UI架构介绍