1. 项目背景与核心价值
中草药作为我国传统医学的重要组成部分,其市场规模近年来保持15%以上的年增长率。然而行业长期存在信息不对称、供需匹配效率低等问题。去年参与某中医药企业的数字化咨询项目时,我亲历了采购商需要辗转多个产地比价、消费者难以辨别药材真伪等痛点。这促使我开始探索如何用深度学习技术构建智能化的中草药交易平台。
经过三个月的技术验证,我们团队实现的NCF推荐系统将用户-商品交互预测准确率提升至89.7%,较传统协同过滤方法提高23%。这个毕业设计项目完整呈现了从数据采集到模型部署的全流程,特别适合计算机专业同学作为毕设参考。下面我将从技术选型、实现细节到避坑经验进行全面剖析。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计解析
2.1 整体系统架构
平台采用经典的三层架构:
- 数据层:MySQL 8.0存储用户行为、商品属性和交易记录
- 算法层:PyTorch实现的NCF模型+Flask RESTful API
- 展示层:Vue.js前端+Element UI组件库
选择这套技术栈主要基于:
- MySQL的事务特性完美适配电商场景,且与Python生态兼容性好
- PyTorch的动态图机制便于调试NCF这类复杂模型
- 前后端分离架构利于团队协作和功能扩展
2.2 核心算法选型
对比了三种推荐算法后选择NCF的原因:
| 算法类型 | 准确率 | 可解释性 | 实现复杂度 |
|---|---|---|---|
| 协同过滤 | 72.3% | ★★★★ | ★★ |
| 矩阵分解 | 81.5% | ★★★ | ★★★ |
| NCF(本项目) | 89.7% | ★★ | ★★★★ |
NCF虽然实现复杂,但其融合神经网络的优势在于:
- 能捕捉用户-商品间非线性关系
- 支持融合多源特征(如用户浏览历史+商品功效)
- 便于后续引入图神经网络等扩展
3. 关键实现细节
3.1 数据预处理管道
原始数据存在三个典型问题:
- 用户行为稀疏(平均每个用户仅5.2条记录)
- 商品特征异构(文本描述+功效标签+价格波动)
- 存在刷单噪声(检测到7.3%的异常交互)
我们的解决方案:
python复制# 缺失值处理
df['herb_effect'] = df['herb_effect'].fillna('未知')
# 文本特征处理
tfidf = TfidfVectorizer(max_features=500)
desc_features = tfidf.fit_transform(df['description'])
# 异常检测
clf = IsolationForest(contamination=0.1)
df = df[clf.fit_predict(user_behavior_features) == 1]
3.2 NCF模型实现
模型结构包含三个核心组件:
- 嵌入层:将用户ID和商品ID映射到64维空间
- 多层感知机:3层全连接网络处理显式特征
- 神经矩阵分解:融合传统MF和深度学习优势
训练时的关键参数:
python复制optimizer = Adam(lr=0.001, weight_decay=1e-5)
scheduler = ReduceLROnPlateau(optimizer, 'max', patience=3)
loss_func = nn.BCEWithLogitsLoss(pos_weight=torch.tensor([2.3]))
注意:正样本权重参数需要根据数据不平衡比例调整,本项目正负样本比为1:4.7
4. 系统部署与优化
4.1 性能优化技巧
在阿里云ECS(4核8G)上的实测表现:
- 原始版本:QPS=32,响应时间480ms
- 优化后:QPS=89,响应时间210ms
采取的关键措施:
- 使用Redis缓存高频访问的商品特征
- 对模型进行ONNX格式转换加速推理
- 实现异步批处理预测接口
4.2 常见问题排查
调试过程中遇到的典型问题:
- 冷启动问题:新商品获取不到推荐
- 解决方案:构建基于功效标签的内容相似度推荐
- 维度灾难:特征过多导致模型震荡
- 解决方案:先用PCA降维再输入网络
- 线上线下不一致:离线指标高但线上效果差
- 根本原因:测试集没有时间维度划分
- 改进方法:按时间划分训练/验证/测试集
5. 项目扩展方向
在实际应用中我们还尝试了:
- 结合知识图谱构建药材配伍推荐
- 使用GAN生成药材品质检测报告
- 基于联邦学习的多药房数据协同训练
这个项目最让我意外的是,简单的用户行为数据经过深度学习处理,竟能准确预测出"购买当归的用户有68%概率会同时选购黄芪"这样的中医配伍规律。建议后续可以加入更多中医诊断数据,或许能发现更有价值的关联规则。
