毕业设计之慕课推荐系统实现思路

267 阅读2分钟

写在前面

写这篇文章主要是为了方便记录自己的想法, 将一些技术文章以链接的形式保存在这里.

1 简介

实现一个简单的慕课推荐系统, 需要包含课程推荐(最主要的功能)、课程参与、课程发布、课程数据统计等功能。

2 系统架构

前端: Vue + Element UI
后端: Django
数据库: MySQL

3 功能模块

一般功能的实现思路是:
构思->前端初步搭建->后端接口初步设计->后端接口测试->前端传送数据校验->前端页面美化修改->前后端对接->完成

3.1 推荐模块

3.1.1 最近上新

对于一些新课程, 可能很难产生较多的交互数据, 所以为新课程单独划分出一个推荐模块, 不仅为学习者提供新课程, 更是为了告诉课程创作者: 你们的成果将会有更大的机会被看到。

这部分缺少数据集的支持,所以可以采用随机推荐的办法,也可以采用按照注册学习人数来排序的办法

3.1.2 综合推荐

这一块主要会偏向推荐一些经典课程, 也就是大家口碑比较好/注册学习的人多的课程。
这一块做了一个 Top N 推荐, 使用了AutoRec深度学习算法,不过效果有点差。

3.1.3 基于个性化标签的课程推荐

这里主要是根据用户的观影习惯, 根据用户所参与课程的标签, 为用户推荐相关标签下的课程。
预计采用倒排索引算法, 详细可以参考基于标签的实时短视频推荐系统 - 知乎 (zhihu.com)

采用 基于用户的协同过滤算法(User-based Collabrative Filtering), 因为用户协同过滤中包含了 “个性化标签” 信息

3.1.4 相关推荐

这是在用户点击一门课程之后, 课程下方的其他课程推荐, 推荐用户访问课程的标签下的最热门课程即可。

采用 基于物品的协同过滤算法(Item-based Collaborative Filtering)