基于深度学习的商品推荐系统(Web)

基于深度学习的商品推荐系统(ECRS_Web)

项目简介

技术栈

项目用到的技术如下:
语言:Python3 Java
Web端:Layui,Flask,Nginx,GeventFlask_Cache
模型训练: PaddleRec , PaddlePaddle
深度学习模型:DSSM, DeepFM
向量召回:milvus
数据存储: Redis
模型推理: PaddleServing
模块通信:gRPC,protobuf

快速开始
项目部署依赖

Python3、PaddlePaddle2.2.2、PaddleServing、milvus1.0、redis、nginx、Gevent

PaddlePaddle安装参考 :PaddlePaddle飞桨安装

Milvus的安装请参考:Milvus安装

Milvus的python驱动和PaddleServing安装

python3 -m pip install redis pymilvus==1.0.1 paddle_serving_app==0.3.1

gevent模块安装

pip install gevent

Flask_Cache模块安装

pip install Flask-Cache
项目启动

当你安装以上依赖后,保证Redis和Milvus处于运行状态

1.向Redis中存储用户和商品数据

python to_redis.py

2.向Milvus中存储商品向量数据

python to_milvus.py

3.启动用户服务

python um.py

4.启动内容服务

python cm.py

5.启动召回服务

python recall.py

6.启动排序服务

python rank.py

7.启动Web应用

python controller.py

python controller2.py

到这里就可以使用系统了,在浏览器访问 http://localhost:5000http://localhost:5001即可体验使用
如果还需要进行负载均衡可以运行Nginx,该项目中的Nginx配置内容请参考Nginx配置
如果您配置了Nginx,则在浏览器中访问 http://loclhost:5158使用本系统

跨平台功能说明

本项目中内置了一个跨平台演示Demo在ECRS_jav_demo文件夹下,直接运行该文件夹下Client.java文件,即可体验使用Java访问python编写的推荐服务模块,如果需要定制访问其他服务请参考跨平台访问

系统架构及推荐流程

系统架构
在这里插入图片描述
系统工作流程
在这里插入图片描述
推荐功能流程图
在这里插入图片描述

(1)登录。
系统的默认起始页,所有用户第一次访问系统时,都将访问该页面,同时该页面还承担着请求流量承载的功能。
(2)用户服务/商品服务。
将实验用的数据集进行拆分,用户数据和商品数据各一份,数据经过解析保存到非关系型数据库 Redis 中,外部传入用户和商品的唯一id 作为 key 到 Redis 中查找对应的 value 并以二进制流的形式将结果返回到相应的模块。
(3)召回服务。
召回服务主要有三个任务,当系统中有新用户使用时,上述的用户信息库中无法查询该用户的信息。系统可以利用原有的用户信息训练的模型拟合新增用户,新用户会通过这个用户模型得到该用户的特征向量;为了完成召回任务,需要提前将所有商品信息通过商品模型转换成商品特征向量并导入 Milvus 中,同理, 当有新商品上架时,需要预执行上述步骤以便新商品可以及时地被推荐;最后把用户向量和商品向量在Milvus 中做向量近似搜索,返回只包含商品id信息的候选集列表。
(4)排序服务。
召回阶段得到的候选集商品 id 列表通过商品服务查询商品的详细信息,然后与用户向量结合作为排序服务的输入,排序模型通过打分把所有候 选待推荐的商品按分数从高到低排序,最后返回这个含有详细商品信息的推荐列表。
(5)接口服务。
后台每个功能模块通过gRPC框架划分为微服务模块,每个服务拥有独立的通信端口channel,开发者可以根据需要向指定的模块的channel发送请求参数,模块接受到参数处理后返回结果。

在这里插入图片描述

结果演示示例(仅展示部分功能页面)

您也可以查看系统的演示视频Bilibili在线演示
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模型和数据文件

受限于文件大小,本项目并未上传模型和数据文件。在训练本项目的模型文件时,做了二分类和逻辑回归两种实验条件下的训练,模型最终在测试集上的结果如下:

二分类

模型TotalCorrectACCAUC
DSSM(user)13733448577250.624550.7312
DSSM(item)13733448577250.624550.7306
DeepFM13733448588950.62540.73428

逻辑回归

模型TotalCorrectACCMAE
DSSM(user)13733447977890.580902.57662
DSSM(item)13733447983870.581342.56567
DeepFM13733447652380.557202.43759

DSSM模型的ACC最高提升了7.5%,DeepFM模型的ACC最高提升了12.24%。

如果您需要训练自己的模型文件,可以参考官方项目我的项目自己训练获取模型或者完成一个新的推荐系统,或者私信我获取本项目缺少的模型和对应的数据文件

完整项目

请访问ECRS

  • 6
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值