📄 PPT内容页初稿
第1页:封面页
标题:基于标签的推荐系统算法对比实验
副标题:张量分解 vs LDA vs 图推荐算法
信息:
- 汇报人:XXX
- 日期:XXXX年XX月
- 项目基于MovieLens数据集
第2页:项目背景与目标
研究背景:
- 标签在推荐系统中具有重要价值:增强可解释性、提供语义信息、缓解冷启动
- 不同算法在标签推荐任务中表现各异,需要系统对比
研究目标:
- 对比三类标签推荐算法的效果与效率
- 探索交互建模与语义建模的优劣
- 为实际应用提供算法选型依据
对比算法:
- 结构化交互建模:CP分解、Tucker分解、稀疏CP
- 语义主题建模:LDA主题模型
- 关系图建模:基于图的推荐算法
第3页:数据预处理流程
数据源:MovieLens数据集(tags.csv, ratings.csv, movies.csv)
标签清洗流程:
原始标签 → 小写转换 → 去除特殊字符 → 长度过滤 → 无效标签剔除关键处理策略:
- 频次过滤:min_frequency = 3
- 用户覆盖:min_users = 2
- 标签规模:max_tags = 1000
数据结构构建:
- 张量:用户×电影×标签(1123×2015×847)
- 图结构:11838个节点,89396条边
第4页:张量分解算法
CP分解:
- 核心思想:三维张量的低秩近似
- 公式:$X \approx \sum_{r=1}^R u_r \otimes v_r \otimes t_r$
- 优势:参数少、训练快、解释性好
Tucker分解:
- 核心思想:核心张量+因子矩阵的多线性变换
- 公式:$X \approx G \times_1 U \times_2 V \times_3 T$
- 优势:表达力强、对噪声鲁棒
稀疏CP(ALS):
- 适用场景:大规模稀疏数据
- 优化目标:带正则化的平方损失
- 更新策略:交替最小二乘法
第5页:LDA主题模型
建模思想:
- 标签 → "词"
- 用户/电影 → "文档"
- 学习文档-主题分布θ和主题-词分布φ
训练流程:
文档构建 → 词频统计 → LDA训练 → 主题解释推荐机制:
- 用户主题分布θ_u + 电影主题分布θ_i → 融合θ_ui
- 标签打分:p(tag) = θ_ui · φ
- 按概率排序生成Top-K推荐
优势特点:
- 语义可解释性强
- 冷启动友好
- 主题词可视化
第6页:图推荐算法
图结构构建:
节点类型:
- 用户:609个
- 电影:9742个
- 标签:1487个
边类型:
- 用户-电影(评分关系)
- 用户-标签(偏好关系)
- 电影-标签(关联关系)推荐策略:
- 基于标签传播:用户偏好标签 → 关联电影
- 基于用户相似性:共同行为 → 相似用户喜好
- 分数融合:加权合并两类推荐
评估维度:
- 新颖性:0.04
- 标签相关性:0.535
- 覆盖率:1.0
第7页:实验设计
数据划分策略:
- 随机划分:80%训练,20%测试
- 时间划分:按时间戳分割,更贴近实际场景
评估指标:
- 精度指标:Precision@K, Recall@K, F1@K (K=5,10,20)
- 效率指标:训练时间(秒)
- 质量指标:新颖性、标签相关性、覆盖率
超参数设置:
张量分解:R=30, λ=0.01, max_iter=200
LDA:K=50, max_iter=100
图算法:α=0.6, β=0.4第8页:精度对比结果
Precision@K趋势:
K=5: CP(0.225) > Tucker(0.205) > LDA(0.081)
K=10: CP(0.445) > Tucker(0.315) > LDA(0.102)
K=20: CP(0.735) > Tucker(0.491) > LDA(0.161)关键发现:
- CP分解在各项精度指标上表现最优
- LDA在K较小时精度较低,但随着K增大改善明显
- Tucker分解表达力强但需要更多训练时间
可视化建议:折线图展示三种算法随K变化的精度趋势
第9页:训练效率对比
训练时间对比:
CP分解:18秒
Tucker分解:100秒
LDA:3.75秒
图算法:45秒效率-精度权衡:
- LDA训练最快,适合快速原型开发
- CP分解在精度和效率间取得良好平衡
- Tucker分解精度高但训练成本最大
工程建议:
- 小规模数据:优先CP分解
- 快速迭代:选择LDA
- 精度优先:考虑Tucker分解
第10页:可解释性分析
LDA主题示例:
主题1:科幻、未来、太空、外星人
主题2:浪漫、爱情、温馨、感人
主题3:悬疑、惊悚、恐怖、紧张图结构分析:
- 中心节点:热门电影和常用标签
- 社区发现:相似兴趣用户群体
- 路径分析:用户→标签→电影的推荐路径
张量因子解释:
- 每个因子维度对应一种潜在语义
- 用户/电影在因子空间的位置反映偏好特征
第11页:推荐质量分析
==这里将展示结果的两张图放上== 新颖性 vs 相关性:
- LDA:相关性中等,新颖性较高
- 图算法:相关性最高,新颖性中等
- 张量分解:相关性高,新颖性相对较低
覆盖率表现:
- 图算法:覆盖率1.0,能够覆盖所有测试用户
- LDA:覆盖率0.87,存在部分冷启动用户无法覆盖
- 张量分解:覆盖率0.92,表现均衡
类型分布:
- 各算法推荐电影类型分布基本符合用户历史兴趣
- 图算法在类型多样性上略胜一筹
第12页:总结与建议
算法优劣总结:
张量分解:
- 优点:精度高、交互建模强
- 缺点:训练成本高、可解释性中等
LDA:
- 优点:训练快、可解释性强、冷启动友好
- 缺点:精度相对较低、依赖主题数设定
图算法:
- 优点:关系丰富、覆盖率广
- 缺点:可解释性中等、参数调优复杂适用场景建议:
- 数据密集、精度优先:张量分解
- 语义驱动、快速迭代:LDA
- 关系复杂、多样性强:图算法
未来工作:
- 多算法融合:LDA主题作为图节点特征
- 时序动态建模:考虑用户兴趣演化
- 跨域推荐:标签知识的迁移学习
mermaid
usecaseDiagram
actor 客户
actor 邮购公司职员
actor 供应商
actor 运输公司
boundary 订单处理软件
usecase "订单处理总流程" as UC1
usecase "客户订单管理" as UC2
usecase "采购与库存管理" as UC3
usecase "配送管理" as UC4
usecase "财务账单管理" as UC5
usecase "提交订单" as UC2_1
usecase "退货申请" as UC2_2
usecase "查询订单状态" as UC2_3
usecase "维护个人订单" as UC2_4
usecase "修改订单信息" as UC2_5 <<include>>
usecase "取消订单" as UC2_6 <<include>>
usecase "处理客户订单" as UC3_1
usecase "管理产品目录" as UC3_2
usecase "采购产品" as UC3_3
usecase "查询库存" as UC3_4 <<include>>
usecase "触发补货" as UC3_5 <<include>>
usecase "安排配送" as UC4_1
usecase "选择运输公司" as UC4_2 <<include>>
usecase "跟踪物流" as UC4_3 <<include>>
usecase "生成账单" as UC5_1
usecase "处理付款" as UC5_2 <<include>>
usecase "处理退货账单" as UC5_3 <<extend>>
' 参与者与用例的关联
客户 -- UC2_1
客户 -- UC2_2
客户 -- UC2_3
客户 -- UC2_4
UC2_4 -- UC2_5
UC2_4 -- UC2_6
邮购公司职员 -- UC3_1
邮购公司职员 -- UC3_2
邮购公司职员 -- UC3_3
UC3_3 -- UC3_4
UC3_3 -- UC3_5
邮购公司职员 -- UC4_1
UC4_1 -- UC4_2
UC4_1 -- UC4_3
邮购公司职员 -- UC5_1
UC5_1 -- UC5_2
UC5_1 -- UC5_3
' 系统边界内的总流程关联
UC1 -- UC2
UC1 -- UC3
UC1 -- UC4
UC1 -- UC5