推荐系统-Task03离线物料系统的构建
Posted GoAl的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐系统-Task03离线物料系统的构建相关的知识,希望对你有一定的参考价值。
新闻推荐系统项目:datawhale-fun-rec: JustForFun小队,Datawhale推荐系统学习项目,仅供个人学习!
如上图所示,离线部分的物料系统流程分为物料爬取、画像构建,用户画像更新与构建。进行离线计算,为每个用户提供一个热门页列表和推荐页列表并缓存,为后续在线部分服务。
离线系统基本内容:
- 新闻物料爬取:主要采用
scrapy
爬虫工具,在每天晚上23点将当天的新闻内容从网页中进行抓取,存入MongoDB的SinaNews
数据库中。 - 物料画像构建:更新当天新闻动态画像,将用户对前一天新闻的交互,包括阅读、点赞和收藏等行为(动态)存入Redis中;对物料画像处理,将新闻静态和动态数据分别存入对应的Redis中。
- 用户画像构建:用户通过前端注册页面,进行用户注册,将用户信息存入mysql的用户注册信息表(register_user)中;用户通过阅读、点赞及收藏新闻,将用户行为数据存入MySQL的用户阅读信息表(user_read)、用户点赞信息表(user_likes)和用户收藏信息表(user_collections);将当天的新注册用户基本信息及其行为数据构造用户画像,存入MongoDB中的
UserProtrai
集合中。 - 自动化构建画像:将物料画像构建和用户画像构建进行整合,构建整个自动化流程。
项目结构:
物料画像的构建
文件目录
├── material_process
│ ├── log_process.py
│ ├── news_protrait.py
│ ├── news_to_redis.py
│ └── utils.py
├── process_material.py
└── update_redis.py
物料画像构建流程
运行process_material.py
会自动构建物料画像然后存储到数据库中。
- 将今天爬取的数据构造画像存入画像数据库(MongoDB)中,包含:
ews_id,title,raw_key_words,manual_key_words,ctime,content,cate,url,
动态画像初始值(likes,collections,read_num,hot_value)
- 每天都需要将新闻详情更新到
redis
中,并且将前一天的redis
数据删掉 - 用
redis
的动态画像更新mongodb
的画像,将mongodb
中对应的动态画像更新
用户画像数据构建
文件目录
├── process_user.py
├── update_redis.py
└── user_process
├── user_protrail.py
└── user_to_mysql.py
用户画像数据构建流程
运行process_user.py
会自动将用户的曝光数据从redis
落到mysql
中,并且更新用户画像
- 用户曝光数据
user_id,news_list
保存到mongodb
- 每天都需要将当天注册的用户添加到用户画像池中
- 获取用户历史行为的统计特征进行用户画像数据更新(弃用)
├── process_material.py
├── process_user.py
├── update_redis.py
└── user_process
├── user_protrail.py
└── user_to_mysql.py
后续更新!!!
参考资料:我的组队学习
以上是关于推荐系统-Task03离线物料系统的构建的主要内容,如果未能解决你的问题,请参考以下文章