可微编程与深度学习
课程计划
中国人民大学本科生的短期编程课。分四次课程:
注记第一节课:从经典统计到可微编程
- 核心目标:打破统计学“解析解”思维,建立“数值最优化”与“计算图”直觉。
- 教学内容设计:
- R 和 torch 环境,简述基本概念。
- 写出 OLS 的闭式解公式,对比梯度下降的迭代过程,理解深度学习的底层机制。
- 讲解 Autograd 的机制,利用 torch 三部曲演示求解过程
- 引入
tidymodels的recipes。讲解为什么要将归一化、哑变量等操作打包成流水线,避免数据穿越。 - 将线性模型升级为非线性的多层感知机(MLP)。
- 展示如何将流水线处理后的数据喂给 MLP 完成预测。
- 时间:2026 年 3 月 29 日下午 3 点。
- 地点:立德楼。
- 内容:对应本手册的第 1、2 章。
注记第二节课:数据的极速处理与推荐召回初步
- 核心目标:建立处理海量工业数据的能力,理解推荐系统“大海捞针”的业务逻辑。
- 教学内容设计:
- 针对亿级数据,对比
data.frame的性能瓶颈,速成data.table的 i, j, by 核心语法。 - 利用 Movielens 1M 数据集,实操数据处理的全过程。包括训练数据集和验证数据集。
- 利用 R 的矩阵/纯向量化操作,实现 Item-based 协同过滤。
- 演示 torch 如何将数据从 CPU 迁移到 GPU 环境。
- 演示该算法在 GPU 环境下性能几十倍的提升。
- 解释隐式反馈(Implicit Feedback)的痛点。为什么不能只用均方误差(MSE),引出交叉熵损失与负采样策略的必要性。
- 针对亿级数据,对比
- 时间:待定
- 地点:待定
- 内容:对应本手册的第 3、4 章
注记第三节课:推荐召回的深度架构与工程服务化
- 核心目标:掌握模型模块化训练方法,打通从模型产出到线上毫秒级调用的全链路。
- 教学设计:
- 从 One-hot 稀疏灾难讲起,解释 Embedding 的本质。
- 介绍高度模块化的
luz包。 - 用 torch 实现经典矩阵分解(MF),展示如何以更优雅的方式完成训练。
- 讲解双塔结构的业务意义,用户侧特征与物品侧特征分离,并实现该算法。
- 引入用户和商品特征,重构双塔模型,观察模型效果变化。
- 演示如何提取训练好的 Embedding 向量,并讨论使用向量数据库实现毫秒级的线上检索召回。
- 时间:待定
- 地点:待定
- 内容:对应本手册的第 5、6 章
注记第四节课:利用关系拓扑的图神经网络
- 核心目标:跨越非欧几里得数据壁垒,理解结构信息带来的降维打击。
- 教学设计:
- 以奇异值分解(SVD)为跳板,引入邻接矩阵。
- 讲解图神经网络的核心:消息传递(Message Passing)与邻居聚合。
- 演示如何用 GNN 构建网络分群。
- 对比仅使用图拓扑结构,与引入节点属性特征矩阵(Feature Matrix)在效果上的显著差异。
- 将 Movielens 转为“用户-物品”二分图。实现 LightGCN 算法,感受高阶图卷积在推荐中的效果。
- 对比 MF、双塔与 LightGCN 在测试集上的召回率差异。为整个短期课程做全局梳理。
- 时间:待定
- 地点:待定
- 内容:对应本手册的第 7、8 章
本书(及本课程全套讲义)由 Quarto 引擎强力驱动。
作为统计学院的学生,你们已经拥有了极佳的数据直觉。而这套基于 R 语言构建的教学体系,正是为了打破“R 只能用来做假设检验和跑线性回归”的传统刻板印象而设计的。在这门短期课程中,我们将彻底释放 R 生态在教学与实战中的优势:
- 无需痛苦地切换语言底座。我们将直接在你们最熟悉的 R 环境中,将古典统计学解析解的旧地图,平滑拓展到张量计算、自动微分与复杂图神经网络的新大陆。
- 借助
tidymodels优雅的声明式流水线、data.table极速处理能力,以及高度模块化的luz框架,本讲义呈现的不是“玩具代码”,而是能直接应对海量数据的真实工程实践。 - 得益于 Quarto 卓越的科学计算出版能力,讲义中的严谨数学推导与每一次前向传播的代码实现了完美映射。在这里,“复制即用”。网页上的每一段代码,丢进你们的 RStudio 即可瞬间复现。
欢迎可微编程的世界。现在,让我们开始运行第一行张量代码。